밍경송의 E.B
<5> Architecture design 본문
이 글은 시험이 약 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 |