Software architecture
- Architectural design --> Software architecture
▶ Architectural design
: The design process for identifying the sub-systems, making up a system and the framework for sub-system control and communication.
▶ Software architecture
: 소프트웨어 구성요소와 그들이 지니고 있는 특성 중 외부에 드러나는 특성, 구성요소들 간의 관계를 표현하는 시스템 구조
예) The architectural of a packing robot control system
소프트웨어 아키텍처의 장점
- Stakeholder communication: 커뮤니케이션 용이
- System analysis: 시스템 분석 --> 평가하는데 이용
- Large-scale reuse: 재사용 가능
SW architecture life cycle
Design process
Software architectural design
소프트웨어 아키텍처 설계도 작성 시 고려사항
- 검증 가능성
- SW 통합 테스트를 위한 SW 아티텍처의 테스트 용이성
- SW에 대한 적합성
- 단위 SW로의 설계/구현 가능성
- 구조 변경 가능성
- 유지보수성
과도하게 복잡한 설계로 인한 오류를 방지하기 위해 지켜야 할 설계 속성
4) 응집력 ↑
- 각 컴포넌트의 높은 응집력: SW 모듈이 단일 업무를 하도록 집중되게!
5) 결합력 ↓
- 각 컴포넌트 간의 낮은 결합력: SW 모듈 사이의 단순한 연결(결합력 ↓) --> 구조 변경 용이
SW architecture life cycle
- Architectural pattern: 시스템 아키텍처의 구성요소와 요소 간의 관계를 패턴으로 표현한 것
Reference model(참조 모델): 모듈과 모듈 간의 데이터 흐름을 표시한 것 - Reference architecture(참조 아키텍처): 참조 모델에서 정의된 기능들을, 구현 대상인 소프트웨어 구성요소들과 요소 간의 데이터 흐름으로 대응시켜 놓은 것
Architectural patterns
: 시스템 아키텍처의 구성요소와 요소 간의 관계를 패턴으로 표현한 것
아키텍처 스타일
1) Layered architecture
: Used to model the interfacing of sub-systems.
- When a layer interface changes, only the adjacent(인접한) layer is affected.
2) Repository architecture
: Shared data --> Each sub-system
- 데이터 공유가 용이하다. --> 큰 데이터를 공유할 때 이용된다.
3) Client-server architecture
- Client: 외부 사용자가 설치
- Server: 기능
--> 네트워크에 의해 연결되고, client가 server를 불러서 서비스가 수행된다.
'소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] L6 - Software & System Modeling UML (0) | 2023.11.12 |
---|---|
[소프트웨어공학] L5 - Architectural Design (0) | 2023.11.05 |
[소프트웨어공학] 6. Requirements Engineering Process (요구 공학 프로세스) (1) | 2023.10.06 |
[소프트웨어공학] 5. Requirements Engineering (2) (0) | 2023.10.06 |
[소프트웨어공학] 5. Requirements Engineering (1) (0) | 2023.09.27 |