1. 시스템 설계의 정의
구분 | 시스템 분석 | 시스템 설계 |
정의 | -개발 시스템의 요구가 무엇(What)인지 깊이 이해하고 파악하여 정의하는 활동 | -요구를 어떻게(How) 만족시킬 것인가에 대한 해결방안을 찾는 활동 |
구현 플랫폼 | -구현될 플랫폼에 독립적인 논리적 모델 생성 | -구현될 플랫폼에 의존적인 물리적 모델 생성 |
생성 모델 | -논리적 모델 | -물리적 모델 |
특징 | -문제 도메인과 사용자 요구 중점 -문제 도메인과 비즈니스 프로세스 등을 표현한 분석 모델 개발 -기능 요구사항 파악 |
-분석된 요구사항 만족을 위한 기술적 솔루션 중점 -시스템 솔루션을 펴현한 설계 모델 개발 -비기능 요구 반영 |
2. 분석 결과물/설계 관계 및 설계 구성요소
가. 분석 결과물/설계의 관계
나. 시스템 설계의 구성요소
구성요소 | 결과물 | 설명 |
아키텍처 설계 | 시스템 아키텍처 설계 소프트웨어 아키텍처 설계 |
-상위 수준의 시스템 기본 구조 설계 -시스템 아키텍처 설계 : 소프트웨어를 포함하여 하드웨어, 네트워크 등 전체 운영 환경 구성 -소프트웨어 아키텍처 설계 : 모듈을 분해하여 모듈가의 구조적인 관계 정의 |
모듈 설계 | 모듈 컴포넌트 |
-소프트웨어 아키텍처의 구성요소인 모듈에 대한 상세 절차(알고리즘) 정의 |
데이터 설계 | 자료구조 데이터베이스 |
-소프트웨어 구현을 위해 자료구조와 데이터베이스 구조 정의 |
인터페이스 설계 | 시스템 인터페이스 사용자 인터페이스 |
-시스템 인터페이스 : 시스템 내부 모듈간 또는 외부 시스템과의 인터페이스 -사용자 인터페이스 : 사용자와 시스템 간의 상호 작용 |
3. 설계 원리
구분 | 특징 | 설명 |
추상화 (일반화) | 절차 자료 제어 |
-주어진 문제나 시스템 중에서 구체적인 사항은 생략하고 핵심적인 부분만을 분리하여 간결하고 이해하기 쉽도록 만드는 기법 |
단계적 정제 | 문을 연다 -> {손잡이를 돌린다. 돌아가지 않으면 열쇠를 찾는다. 열쇠를 넣는다. 문을 연다.} |
-최상위 추상화 수준에서 정제하여 계층화하는 기법 -추상화 기법과 상호 보완적인 기법 |
모듈화 | 함수 메소드 클래스 |
-시스템을 작은 요소로 나누어 재사용 가능하도록 설계하는 기법 |
정보은닉 | private 접근 제한자 | -모듈 내부의 주요 정보를 다른 모듈에서 접근 차단되도록 설계하는 기법 -모듈 간의 교류를 단순화하기 위해 필요한 최소 정보만 허용하고 그외는 차단 -재사용 및 유지보수 용이 |
구조적 분해 | 최상위 계층 (제어) 하위 계층 (기능수행) 트리 구조 |
-소프트웨어를 모듈로 분해하여 계층적 구조로 설계하는 기법 -최상위 계층은 다른 모듈과 통신, 기능 수행에 대한 의사결정 담당 -하위 계층은 실제 처리작업 담당 -테스트 및 확장, 유지보수 용이 -수평으로 확장 시 모듈 간 통신 자료 및 제어가 복잡해질 수 있음 -수직으로 확장 시 상위 모듈 변경 시 하위 모듈 영향도 증가 |
'나의 서재 > 22. 소프트웨어 공학 기본원리' 카테고리의 다른 글
9.2 설계 평가 & 명세 & 방법 (0) | 2021.12.06 |
---|---|
9.1 추상화 (0) | 2021.12.05 |
8. 객체지향 분석 방법 (0) | 2021.12.05 |
7.5 UML 2.0 표준 (0) | 2021.12.04 |
7.4 UML (Unified Modeling Language) (0) | 2021.12.04 |
댓글