본문 바로가기
소프트웨어공학

[소프트웨어공학] 7. Architectural Design

by leziwn.cs 2023. 10. 15.
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

예) The architectural of a packing robot control system

 

소프트웨어 아키텍처의 장점
  • Stakeholder communication: 커뮤니케이션 용이
  • System analysis: 시스템 분석 --> 평가하는데 이용
  • Large-scale reuse: 재사용 가능

 

SW architecture life cycle

SW architecture life cycle

 


Design process

Design process

 


Software architectural design

Software architectural design

 

소프트웨어 아키텍처 설계도 작성 시 고려사항
  • 검증 가능성
  • SW 통합 테스트를 위한 SW 아티텍처의 테스트 용이성
  • SW에 대한 적합성
  • 단위 SW로의 설계/구현 가능성
  • 구조 변경 가능성
  • 유지보수성

 

과도하게 복잡한 설계로 인한 오류를 방지하기 위해 지켜야 할 설계 속성

과도하게 복잡한 설계로 인한 오류를 방지하기 위해 지켜야 할 설계 속성

 

4) 응집력 ↑
  • 각 컴포넌트의 높은 응집력: SW 모듈이 단일 업무를 하도록 집중되게!

4) 응집력 ↑

 

5) 결합력 ↓
  • 각 컴포넌트 간의 낮은 결합력: SW 모듈 사이의 단순한 연결(결합력 ↓) --> 구조 변경 용이

5) 결합력 ↓

 


SW architecture life cycle

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.

1) Layered architecture - 예시
1) Layered architecture - 장단점

 

2) Repository architecture

: Shared data --> Each sub-system

  • 데이터 공유가 용이하다.  --> 큰 데이터를 공유할 때 이용된다.

2) Repository architecture - 장단점

 

3) Client-server architecture
  • Client: 외부 사용자가 설치
  • Server: 기능

--> 네트워크에 의해 연결되고, client가 server를 불러서 서비스가 수행된다.

3) Client-server architecture - 예시
3) Client-server architecture - 장단점