밍경송의 E.B

<5> Architecture design 본문

CSE/소프트웨어공학

<5> Architecture design

m_gyxxmi 2023. 10. 16. 11:57

이 글은 시험이 약 2시간 남은 학부생이 중간고사 암기를 위해 적은 글입니다...........내용은 지현박 교수님의 강의자료를 참고하였음을 밝힙니다.

 

 

✔️ Architecture design이란?

: 구현할 수 있을 정도로 Sub-system을 식별하고, 각각을 통제하며 이를 가지고 의사소통하는 디자인 프로세스

 

 

✔️Explicit architecture의 장점 (High-level)

  • 이해관계자 간의 의사소통 용이 (이해도가 높아짐)
  • 시스템 분석 (요구사항을 만족시킬 수 있는지)
  • 재사용 가능 범위의 증가 (Large-scale reuse)

 

✔️ SW life cycle

 

 

✔️ Design process 

- Architecture design : 시스템의 전체적인 구조와 컴포넌트 식별

- Interface design : 각 시스템 컴포넌트 간의 interface 정의

- Component design :  각 시스템 컴포넌트를 어떻게 작동시킬지

- DB design : 시스템의 데이터 구조를 디자인

 

 

✔️ sw 아키텍쳐 설계도 작성 시 고려사항

  • 검증 가능성
  • 구조 변경 가능성
  • sw에 대한 적합성
  • 단위 sw로의 설계/구현 가능성
  • sw 아키텍처의 테스트 용이성
  • 유지보수성

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

 

각 컴포넌트의 높은 응집력  + 컴포넌트 간의 낮은 결합력

 

*응집력: 모듈이 단일 업무를 하도록 집중되게 / *결합력 : 모듈 사이의 연결성

 


 

✔️ 아키텍처 패턴 

1) Layered architecture : Used to model the interfacing of sub system (안드로이드 같은..)

 

*장점

- 각 레이어가 독립성이 높음  = 레이어가 변경되면 그 레이어에만 영향을 미침.

 

*단점

- 각 레이어를 명확하게 구분하는 것은 어려움.

-  계층 간의 소통이 어렵기 때문에 성능이 저하됨.

 

 

2) Repository architecture : 통합 개발 환경(공통된 저장소)를 가지고 있음.

-> data 크기가 크거나, 이를 오래 저장해야 하는 경우에 사용

 

*장점

- 각 컴포넌트가 독립적임.

- 데이터를 한 군데에서 한 번에 관리 가능

 

*단점 

- 레포의 문제는 전체 시스템에 영향을 미침

- 레포가 분산될 시 시스템의 일관성 유지가 어려움.

 

 

3) Client-Server architecture : Network를 이용한 distributed system model

-> 다양한 위치에서 접근하고자 할 때 사용

 

*장점 

- network를 이용한 소통

- 클라이언트는 서비스를 설치할 필요 없이 가볍게 접속 및 이용이 가능

 

*단점

- network에 따른 성능 차이가 불가피

- data의 소유자와 공급자가 다르기 때문에 관리의 문제 발생 가능

 

 


 

'CSE > 소프트웨어공학' 카테고리의 다른 글

<6> SWModel_UML, Usecase diagram, Class diagram  (0) 2023.12.09
<5> Architecture design 2  (0) 2023.12.08
<4> Requirements Engineering  (0) 2023.10.16
<3> Software Processes  (0) 2023.10.16
<2> Project Planning of Software Engineering 1  (0) 2023.10.16