반응형
5. 소프트웨어 아키텍처 설계
5.1 소프트웨어 아키텍처 설계
소프트웨어 아키텍처 개요
- 소프트웨어 아키텍처 : 소프트웨어 개발에 직간접적으로 영향을 미치고 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 것
- 소프트웨어 아키텍처는 의사소통 수단 및 프로젝트 초기 의사결정 도구로 활용, 시스템 전체 구조 및 개발 프로젝트 조직 결정 시 참조
소프트웨어 아키텍처 설계 절차
- 요구사항분석, 아키텍처 분석 및 설계, 아키텍처 검증 및 승인 절차로 진행
- 요구사항 : 제안요청서, 인터뷰, 회의 등을 통계 구체적으로 파악, 기능 및 비기능 요구사항 및 명세
- 아키텍처 분석 : 품질 요소 식별, 우선순위 결정하여 평가 및 상세화
- 아키텍처 설계 : 사용자 요구사항 만족시킬 수 있도록 시스템 구조 설정 -> 시스템 분할하여 프로그램 구조상에 있는 각 구성 모듈 사이 관계 기술
5.2 소프트웨어 아키텍처 스타일
저장소 구조
한 서브시스템에서 데이터 생성, 다른 서브시스템에서 데이터 사용하는 경우 시스템에서 사용되는 모든 공유 데이터를 한 곳에 보관하여 모든 서브시스템들이 데이터 공유할 수 있도록 만든 구조
MVC(Model-View-Controller) 구조
한 객체의 여러 가지 표현이 서로 상호 작용하도록 지원하는 접근법 (학 객체 표현이 수정되면 다르 모든 표현도 따라서 수정)
클라이언트-서버 모델
서비스를 요구하는 클라이언트와 서비스를 제공하는 서버로 구성
계층 구조
시스템을 여러 계층으로 구성하며, 각 계층은 특정 서비스를 제공 ex) 네트워크 프로토콜의 7계층 구조
5.3 소프트웨어 아키텍처 설계 표현 방법
컨텍스트 모델
개발해야 할 시스템의 영역을 기술, 시스템과 외부 환경과의 경계를 결정, 외부와의 인터페이스를 제시하여 시스템의 입출력 데이터를 보여줌
컴포넌트 다이어그램
컴포넌트 (소프트웨어 개발 속도와 생산성을 높이기 위해 다른 분야와 같이 잘 만들어진 부품을 사다가 조립하여 만들 수 있도록 재사용 가능한 부품) 기술 이용
패키지 다이어그램
패키지(다수의 사용자를 위해 개발된 상업용 소프트웨어) 내부의 자세한 사항을 감추어 패키지 사이의 의존 관계 최소화 -> 서브시스템들 사이의 의존 관계를 최소화
반응형
'CS > TOPCIT' 카테고리의 다른 글
[TOPCIT] 01소프트웨어 개발_4.소프트웨어 설계 원리와 구조적 설계 (0) | 2021.09.19 |
---|---|
[TOPCIT] 01소프트웨어 개발_3.자료구조와 알고리즘 (0) | 2021.09.19 |
[TOPCIT] 01소프트웨어개발_2.소프트웨어 재사용 (0) | 2021.09.19 |
[TOPCIT] 01소프트웨어 개발_1. 소프트웨어 공학 개요 (0) | 2021.09.14 |