문제 요구사항을 소프트웨어 구조로 바꾸는 과정
구현하기에 충분히 상세하게 대상 소프트웨어를 정의하기 위해 기술과 원칙을 적용하는 프로세스입니다.
요구 사항이 소프트웨어 표현으로 변환되는 프로세스입니다.
설계 과정에서 '터널 비전'을 겪지 않아야 합니다.
설계는 분석 모델을 추적할 수 있어야 합니다.
디자인이 바퀴를 재발명해서는 안 됩니다.
디자인은 균일성과 통합성을 나타내야 합니다.
디자인은 변화를 수용할 수 있도록 구성되어야 합니다.
설계는 비정상적인 데이터, 이벤트 또는 작동 조건이 발생하는 경우에도 완만하게 저하되도록 구조화되어야 합니다.
디자인의 품질은 사후가 아니라 생성되는 즉시 평가되어야 합니다.
개념적(의미론적) 오류를 최소화하기 위해 설계를 검토해야 합니다.
요구 사항을 데이터 및 소프트웨어 아키텍처로 변환
소프트웨어 제품의 외부 특성 지정
소프트웨어의 상위 수준 구조 보기 설정
소프트웨어에 대한 상세한 데이터 구조 및 알고리즘 표현으로 이어지는 아키텍처 표현의 개선
내부 구조 및 처리 내용 지정
휴먼-컴퓨터 인터랙션을 위한 레이아웃 및 인터랙션 메커니즘 구축
설계는 분석 모델에 포함된 모든 명시적 요구 사항을 구현해야 하며 고객이 원하는 모든 암시적 요구 사항을 수용해야 합니다.
디자인은 코드를 생성하는 사람과 소프트웨어를 테스트하고 후속적으로 지원하는 사람들을 위해 읽고 이해할 수 있는 가이드여야 합니다.
설계는 구현 관점에서 데이터, 기능 및 행동 영역을 다루는 소프트웨어의 완전한 그림을 제공해야 합니다.
추상화 — 데이터, 절차, 제어
Architecture — 전체 구조
소프트웨어 개념
필수 속성에 집중하여 세부 사항을 억제합니다.
우려의 분리
어떤 결과를 얻을 수 있는지 강조합니다.
이것이 달성되는 방법에 대해 억제합니다.
정보의 현지화 : 제어, 데이터, 설계 결정
데이터 구조에 대한 지식을 하나의 모듈로만 제한
정보의 숨김