전공과목 정리 78

[소프트웨어분석및설계🛠️] 9장 SW 아키텍쳐

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만)1. 아키텍쳐 기초1.1 SW 아키텍쳐 기초- 소프트웨어 아키텍쳐시스템을 구성하는 컴포넌트(구성요소)와 컴포넌트 상호작용의 집합- SW 아키텍쳐는 비기능적 결정(non-functional decisions)을 반영하고, 기능 요구사항을 분할- SW 아키텍쳐 설계에서 고려해야 할 요구사항변경유지보수 용이성상용 컴포넌트의 사용시스템 성능신뢰성보안고장 인내성복구- SW 아키텍쳐의 역할시스템의 구조를 확립하는 소프트웨어 개발의 중심축설계, 구현과 통합, 테스팅까지 통합하는 뼈대모든 단계에 영향을 줄 만한 초기 의사 결정의 핵심- SW 아키텍쳐가 중요한 이유 : 시스템이 개발된 후에 구조를 바로잡기 어려움- SW 아키텍쳐 관점 (view)U..

[소프트웨어분석및설계🛠️] 8장 소프트웨어 설계

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 🔎 분석에서 설계로- 요구 분석 : '무엇을 만들 것인가'를 다루는 작업- 설계'어떻게 실현할 것인가'를 구체적으로 결정하는 활동기본 구조 설계 : 아키텍쳐 설계로 각 모듈의 역할과 인터페이스를 정의상세 설계 : 모듈 내부의 알고리즘과 데이터를 명세화 1. 설계의 개념과 원리1.1 설계의 개념- 설계높은 수준의 의사 결정 과정의 연속설계 원리와 중요- 전통적 설계 방법 : 분할 정복, 추상화, 합성 등의 원리를 적용- 최근의 방법아키텍쳐 기반의 설계 방법아키텍쳐 이해서브시스템, 모듈의 개념과 설계 작업의 관점, 설계 작업을 숙지해야 함. 1.2 설계 작업 과정- 의사결정 과정이면서 동시에 시스템을 알아가는 과정 1.3 품질 목표..

[소프트웨어분석및설계🛠️] 7장 객체지향방법론 - (2) 정적·동적 모델링

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. 정적 모델링1.1 구조적 모델1) 구조적 모델- 시스템 내부의 관점구조의 관점어떤 구성요소가 있고, 이들이 어떤 관계를 맺고 있는지 표현시간이 흐르더라도 변하지 않는 정적 구조- 새로운 문제 도메인의 중요한 클래스를 발견하기 위함- 비즈니스에서 사용되는 용어들을 이용하여 객체들을 정의함으로써, 실 세계와 소프트웨어의 의미적 차이를 줄이는 작업- 개발 대상 소프트웨어가 어떤 구조적 요소들로 이루어질 수 있는지 분석- 모델링 과정 : 겍체식별 ➡️ CRC 카드 ➡️ 클래스 다이어그램  2) 객체 식별- UML에서 정의하는 클래스클래스명, 클래스 속성, 클래스 연산 3요소로 구성클래스 간의 상관성을 클래스의 관계로 나타냄- 식별 ..

[모바일소프트웨어📱] 코틀린(Kotlin) 문법 (2)

출처 : 코틀린 학습을 위한 링크(이전 글 1.2 참고), 강의 교안 1. Functions (함수)1.1 Functions- fun 키워드- 반환 타입 선언 가능- 함수의 매개변수에는 var, val 키워드 사용 불가 (자동으로 val이 적용)fun hello() { return println("Hello, world!")}fun sum(x:Int, y:Int): Int { return x + y} 1.2 Named Arguments- 매개변수명 지정 호출 가능 (Named Argument)fun printMessageWithPrefix(message: String, prefix: String) { println("[$prefix] $message")}fun main() {// Uses..

[모바일소프트웨어📱] 코틀린(Kotlin) 문법 (1)

출처 : 코틀린 학습을 위한 링크(1.2 참고), 강의 교안 1. 코틀린이란?1.1 코틀린 언어- JetBrains에서 개발한 정적 타입의 프로그래밍 언어- 2017년 구글에서 안드로이드 공식 언어로 지정- JVM 기반 언어- 간결한 구문으로 프로그램 작성- 자바 100% 호환- 함수형 언어, 람다식, 널 안정성(null safey) 등 최신 언어의 트렌드 지원- 세미콜론 생략 1.2 코틀린 학습을 위한 링크- Kotlin Programming Language (kotlinlang.org) Kotlin Programming LanguageKotlin is a programming language that makes coding concise, cross-platform, and fun. It is Goo..

[소프트웨어분석및설계🛠️] 7장 객체지향방법론 - (1) 기능 모델링

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. 객체지향 기술 개요1.1 객체지향 기술 개요1) 1970년대- 프로그램을 여러 개 작은 부분으로 쪼개 개발하는 구조적 개발 방법론 이용- 프로그램의 논리와 데이터를 분리해서 소프트웨어를 설계 ➡️ 개발단계별로 자연스럽게 연결되지 않고, 유지보수 비용이 이 많이 발생 ⭐ 객체지향 개발방법론 등장: 인간이 사고하는 방식대로 프로그램을 개발하려는 노력으로 탄생 2) 1990년대: 여러 SW 기술 중 가장 중요한 기술로 인식SW 위기 현상이 객체지향 기술로 인해 해결될 수 있다는 공감대 형성소프트웨어 생산 기술의 초점이 프로그래밍에서 분석, 설계로 옮겨지며 더욱 주목받음개발생산성을 높이는 방법을 제공일관된 소프트웨어 개발 모델 제공..

[소프트웨어분석및설계🛠️] 6장 UML (Unified Modeling Language)

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. UML 이해1.1  UML의 이해1) UML- 객체지향 방법론 표기법의 차이가 문제로 대두되며 등장- UML의 특징가시화SW 개념 모델을 시각적인 그래픽 형태로 표기표기법에 사용하는 기호에 명확한 정의를 부여하는 것명세화 : 정확하고, 명백하며, 완전한 모델을 만드는 것구축 : UML로 명세화된 설계 ↔️ 소스코드문서화 : 시스템 아키텍쳐와 모든 상세 내역에 대한 문서화- UML의 장점복잡성 단순화의사소통 라인을 열린 상태로 유지소프트웨어 프로덕션 및 프로세스 자동화지속적으로 발생하는 아키텍쳐 문제 해결 지원업무의 질 향상비용 절감 및 시장 출시 시간 단축- UML의 구성 요소 : 사물(Things) + 관계(Relation..

[소프트웨어분석및설계🛠️] 5장 정보공학방법론

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. 개념적 데이터모델1.1 정보공학방법론1) 정보공학방법론- 기업 전체의 관점에서 기업 활동을 기업 모델로 분석하고 다이어그램으로 표현하여 정보시스템의 계획, 분석, 설계, 구축 등의 전 과정을 공학적으로 적용하는 방법론- 정보공학 방법론과 기능 중심 방법론의 차이점전사차원의 정보체계 지원 (Information Architectrue)경영전략 지원 중심 (Business Oriented)데이터와 업무활동(기능)의 균형 (More Data Oriented)2) 업무영역 분석의 목적- 업무영역에 대한 상세한 이해- 업무영역에 대한 정보 요구 및 우선순위 정의- 업무영역의 모형화데이터 모형화 : 데이터베이스 구축의 기초가 됨업무활동..

[소프트웨어분석및설계🛠️] 4장 구조적 방법론

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. SW 개발 방법론1.1 SW 개발 방법론1) SW 개발 방법론- 소프트웨어 개발 프로세스의 각 작업 단계의 수행 방법을 정의- 각 단계에서 요구하는 입력 자료를 가지고 어떻게 작업하여 그 결과를 표현하는지 알려준다.- 방법론에서 제공하는 산출물의 표현 방법은 패러다임이나  SW를 보는 관점에 따라 다르다. 2) 주요 방법론- 구조적(Structured) 방법론프로세스 중심 (process-oriented)논리적 모델과 물리적 모델에서 분할하여 기능적 분해를 먼저 한 후 모듈로 구조화하는 방법자료보다는 함수에 중점적프로세스를 먼저 정하고, 프로세스에 대한 입출력을 나중에 정한다.- 정보공학 방법론데이터 중심(Data-orien..

[소프트웨어분석및설계🛠️] 3장 SW 요구사항

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1.  SW 요구사항1.1 요구사항의 정의1) 요구사항(Requirements)이란?- SW 요구사항은 시스템이 가져야 할 기능이나, 어떤 특성을 가져야 하는지를 기술한 것- 사용자가 필요한 것어떤 기능? ➡️ 비즈니스 요구 [분석 단계]어떻게 구현? ➡️ 시스템 요구 [설계 단계]2) 요구사항의 정의 : IEEE 610 표준- 문제의 해결 또는 목적 달성을 위하여 고객에 의해 요구되는 기능- 계약, 표준, 명세 등을 만족하기 위하여 시스템이 처리하거나 충족해야 하는 서비스 또는 제약사항- 고객이 요구한 사항과 요구하지 않았더라도 당연히 제공되어야 한다고 가정되는 사항들 3) 요구사항의 명세- 요구사항의 추출과 분석을 통해 얻어지..