좋은 설계의 조건
- 요구 분석 명세서 내용을 설계서에 모두 포함
- 유지보수가 용이하도록 추적 가능토록 함
- 변화에 쉽게 적응
- 시스템 변경으로 인한 영향이 최소화되도록 국지적이어야 함
- 설계서는 읽기 쉽고, 이해하기 쉬워야함
설계는
상위 설계: 아키텍처,데이터,인터페이스 정의, 사용자 인터페이스 설계
하위 설계: 모듈 설계, 자료구조 설계, 알고리즘 설계
로 나뉨
상위설계(예비 설계)
- 아키텍처 설계: 시스템의 전체적 구조 설계(여러개의 서브시스템으로 구분)
- 데이터 설계: 시스템에 필요한 정보를 자료구조와 DB설계에 반영
- UI설계
하위 설계
- 각 모듈의 실제적인 내부를 알고리즘 형태로 표현
- 인터페이스에 대한 설명,자료구조,변수 등 상세한 정보 작성
설계
- 추상화: 주어진 문제에서 관련없는 부분은 생략하여 본질에 집중토록함. 객체지향에서 클래스로 가면 추상화, 객체로 가면 인스턴스화
- 단계적 분해: 기능을 점점 작은 단위로 분해
- 모듈화: 다른 프로그램에서도 모듈 호출 가능. 이해하기 쉽고, 팀개발 쉬워지고, 재사용 가능성 높아지고, 추적성 높아짐
- 정보 은닉
- 탑다운 vs 바텀업
SW Architecture Model
- 데이터 중심형 모델(Repository model)
주요 데이터가 repository에서 중앙 관리
대량의 데이터를 공유하는 은행 업무 시스템에 유용
- 클라이언트 서버 모델
:네이트워크를 이용하는 분산 시스템 형태
분산 아키텍처에 유용
- 계층 모델
기능을 몇 개의 계층으로 나누어 배치
-MVC모델
중앙 데이터 구조.
MVC로 분리함으로써 변경에 대한 영향을 덜 미침. 느슨한 결합
MVC가 각각 자신의 부분만 집중하여 개발할 수 있음
- Pipe and filter
SW 아키텍처 모델을 사용한 설계의 장점
- 개발 기간 단축, 고품질 생산
- 의사소통 유리
- 유지보수 유리
- 검증된 아키텍처임
- 구축 전 시뮬 가능
- 기존 시스템 빠른 이해 가능
좋은 설계는 유지보수가능함
High cohesion, low coupling
cohesion은 응집도임.
모듈 내부에 존재하는 구성 요소들 사이의 밀접한 정도.
coupling은 결합도임.
모듈 간 인터페이스를 사용하지 않고 직접 왔다갔다 하는 경우의 관계
서로 간섭할 수 있고 유지보수가 어려워짐
**구조적 설계
하향식 설계
객체지향 설계
- 실세계 객체와 대응되게 설계
기술 부채
Technical debt
귀찮다거나 시간이 부족하다는 이유로 필요한 작업을 수행해두지 않으면 추후에 빚이 되어 돌아옴
'2023-2 > 소프트웨어 공학' 카테고리의 다른 글
7. testing (1) | 2023.12.18 |
---|---|
6. Implementation (0) | 2023.12.17 |
4. 요구 사항 분석 (0) | 2023.12.17 |
3. 프로젝트 관리 (0) | 2023.10.23 |
2. 소프트웨어 개발 생명 주기 (0) | 2023.10.23 |
댓글