소프트웨어공학 11

[소프트웨어분석및설계🛠️] 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요소로 구성클래스 간의 상관성을 클래스의 관계로 나타냄- 식별 ..

[소프트웨어분석및설계🛠️] 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) 요구사항의 명세- 요구사항의 추출과 분석을 통해 얻어지..

[소프트웨어분석및설계🛠️] 2장 프로젝트 관리

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만)1. 프로젝트 관리의 개넘✏️ SW 개발 프로젝트 실패 원인- 부족한 소프트웨어 마인드: 소프트웨어는 하드웨어와 다르게 물리적으로 존재하지 않으므로 언제든지 변경 가능하다?- 업무 증가와 일정 지연 등의 이유로 공학 기법 적용을 미룸- 부족한 프로젝트 관리 기술: 소프트웨어 개발 기술의 고도화, 다양한 응용 도메인으로 프로젝트 수행 시 고려해야 할 요소가 기하급수적으로 증가 1.1 프로젝트 관리 (management)1) 프로젝트 관리- SW 개발 프로젝트는 최소의 비용으로 최고의 품질을 유지하는 SW를 성공적으로 개발하는 것이 목표- SW 개발 프로젝트 관리를 어렵게 하는 요인보이지 않는 소프트웨어빠르게 변하는 기술조직마다 다른 ..

[소프트웨어분석및설계🛠️] 1장 SW 개발 프로세스

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만) 1. 소프트웨어 개발 개요1.1 소프트웨어 개발 개요1) 소프트웨어 개발 과정1️⃣ 실현 가능성 분석2️⃣ 요구사항 도출 및 분석3️⃣ 설계4️⃣ 코딩 및 단위 시험5️⃣ 통합 및 시스템 시험6️⃣ 배포, 설치 및 운영 2) 소프트웨어- 프로그램 자체 + 프로그램의 개발, 운용, 보수에 필요한 정보 일체- 개념적, 무형적- 소프트웨어의 특징복잡성 (complexity)순응성 (conformity)변경성 (changeabilty)비가시성 (invisibility)- 소프트웨어는 사람의 지적 활동에 의해 구축된다.- 소프트웨어 개발작업의 특징명세화의 어려움재사용의 어려움예측의 어려움유지보수의 어려움고품질의 어려움 2. 분석과 설계2...