Design
Overview
- Architecture Design: What
- Architecture Design: Who
- Architecture Design: Why
- Architecture Design: When
- Architecture Design: Output
- IEEE standard for software life cycle
software design
- 소프트웨어 디자인의 목표 : 고객 요구사항 충족, 성공적인 구현을 이끄는 모델을 만드는 것
Architecture Design: What
- 소프트웨어의 주요 구조적 요소 간의 관계를 정의
- 어떤 부분이 시스템의 핵심 요소이며 이들이 어떻게 상호 작용 하는지 결정
- 시스템에 정의된 요구사항 달성하고 아키텍처를 구현하는 데 사용할 수 있는 아키텍처 스타일과 아키텍처를 구현하는 방식에 영향을 미치는 제약 사항을 결정
- 아키텍처 스타일의 선택 : 시스템의 성능, 확장성, 보안에 영향을 미침
- 제약조건 : 기술적, 비용적, 시간적, 리소스 관련된 제약 조건을 고려해야 함
- 아키텍처 디자인 표현은 시스템 요구 사항 명세와 분석 모델에서 파생됨
- 아키텍처를 그림, 다이어그램, 문서 등으로 표현하여 팀원 간의 이해를 촉진
Architecture Design: Who
- 소프트웨어 아키텍트와 디자이너들이 소프트웨'어 시스템의 요구사항을 아키텍처 디자인으로 번역하는 역할
- 번역 과정에서 시스템의 복잡성을 분석하고 이를 해결하기 위해 다양한 디자인 전략을 적용
Architecture Design: Why
- 디자인을 통해 시스템 요구사항을 충족할 수 있고 미래의 요구사항 변경및 재사용을 위해 소프트웨어 디자인이 필요함
- 소프트웨어 제작 과정에서 시간과 비용의 절약을 위해 필요
- 좋은 디자인은 제작 과정에서 위험을 줄이고 개발팀의 협력을 도우며 구현 및 테스트를 쉽게 만들어줌
Architecture Design: When
- 소프트웨어 아키텍처의 디자인은 소프트웨어 개발 수명 주기(SDLC)중 하나에 속함
- SDLC
- 소프트웨어 요구사항 분석 : 고객 및 관계자와 대화를 통해 요구사항 수집 및 문서화
- 소프트웨어 아키텍처 디자인 : 이 단계에서 아키텍처 디자인이 수행, 시스템의 구조와 구현 방향 결정
- 소프트웨어 개발 및 구현 : 디자인 단계에서 결정된 구조와 디자인에 따라 실제 개발
- 테스팅 및 품질 보증, 유지보수 및 진화 : 개발된 소프트웨어를 유지 보수 및 발전
소프트웨어 아키텍처 디자인은 소프트웨어 개발 수명 주기의 초기 단계 중 하나이다
Architecture Design: Output
- 전반적으로 시스템을 구축할 계획 및 설계의 개요를 나타내는 것이 아키텍처 디자인이다
- IEEE의 소프트웨어 디자인 설명서의 권장 방법에 제공된 주요 섹션
- 디자인 개요 : 소프트웨어 디자인 문서의 목적, 범위 및 개요
- 분해 설명 : 모듈, 데이터 프로세스를 어떻게 나누고 조합할 것인지 설명
- 의존성 및 연결 설명 : 구성 요소간의 상호 작용과 관계를 설명하여 시스템 전체의 동작 방식을 이해하도록 해줌
- 속성 : 각 구성 요소의 특징과 기능을 자세히 다루는 부분
- 사용자 인터페이스 설명 : 사용자 인터페이스의 디자인과 동작에 대한 설명, 사용자와 시스템 간의 상호 작용을 이해하기 위한 정보를 제공
- 상세 디자인 : 데이터 구조, 모듈의 동작, 알고리즘 등을 자세히 설명
IEEE standard for software
Software Requirement Specification (SRS)
디자인에 필요한 요구사항을 분석하는 방법
- 요구사항 모델링
- 정보 도메인 및 데이터 모델링
- 시스템이 다루는 정보와 데이터를 모델링, 설명 데이터베이스의 구조와 데이터 흐름 등
- 기능 및 행위 모델링
- 기능은 수행해야 하는 기능과 작업 행위는 시스템의 동작과 흐름을 설명
- 사용자 인터페이스 모델링
- 사용자와 시스템 간의 상호작용을 설명하고 시각적으로 표현
- 요구사항 설명(설명하는 방법)
- Use Case Specifications(UML)
- UML을 사용하여 사용사례와 사용자 요구사랑을 설명
- 시스템의 사용 사례는 시나리오와 행위를 포함하는 다이어그램과 텍스트로 설명됨
- Data Flow Diagram(DFD)
- 데이터 흐름과 처리 과정을 표현
- 정보의 흐름을 시각화한다
- State Transition Diagrams(STD)
- 상태 전이 다이어그램, 상태와 상태 간의 전이 및 변화를 표현
- 종적인 행위를 설명하는데 주로 사용
- 요구사항의 두 가지 측면
- 기능적 요구사항
- 비기능적 요구사항
- 품질, 제약 사항, 성능, 보안, 유지 보수 등