본문 바로가기
2023-2/소프트웨어 공학

5. 설계

by 철없는민물장어 2023. 12. 17.
728x90

좋은 설계의 조건

- 요구 분석 명세서 내용을 설계서에 모두 포함

- 유지보수가 용이하도록 추적 가능토록 함

- 변화에 쉽게 적응

- 시스템 변경으로 인한 영향이 최소화되도록 국지적이어야 함

- 설계서는 읽기 쉽고, 이해하기 쉬워야함

 

설계는

상위 설계: 아키텍처,데이터,인터페이스 정의, 사용자 인터페이스 설계

하위 설계: 모듈 설계, 자료구조 설계, 알고리즘 설계

로 나뉨

 

상위설계(예비 설계)

- 아키텍처 설계: 시스템의 전체적 구조 설계(여러개의 서브시스템으로 구분)

- 데이터 설계: 시스템에 필요한 정보를 자료구조와 DB설계에 반영

- UI설계

 

하위 설계

- 각 모듈의 실제적인 내부를 알고리즘 형태로 표현

- 인터페이스에 대한 설명,자료구조,변수 등 상세한 정보 작성

 

 

설계
- 추상화: 주어진 문제에서 관련없는 부분은 생략하여 본질에 집중토록함. 객체지향에서 클래스로 가면 추상화, 객체로 가면 인스턴스화

 

- 단계적 분해: 기능을 점점 작은 단위로 분해

- 모듈화: 다른 프로그램에서도 모듈 호출 가능. 이해하기 쉽고, 팀개발 쉬워지고, 재사용 가능성 높아지고, 추적성 높아짐

- 정보 은닉

- 탑다운 vs 바텀업

 

SW Architecture Model

- 데이터 중심형 모델(Repository model)
주요 데이터가 repository에서 중앙 관리

대량의 데이터를 공유하는 은행 업무 시스템에 유용

 

- 클라이언트 서버 모델

:네이트워크를 이용하는 분산 시스템 형태

분산 아키텍처에 유용

 

- 계층 모델

기능을 몇 개의 계층으로 나누어 배치

 

-MVC모델

중앙 데이터 구조.

MVC로 분리함으로써 변경에 대한 영향을 덜 미침. 느슨한 결합

MVC가 각각 자신의 부분만 집중하여 개발할 수 있음

 

- Pipe and filter

 

 

SW 아키텍처 모델을 사용한 설계의 장점

- 개발 기간 단축, 고품질 생산

- 의사소통 유리

- 유지보수 유리

- 검증된 아키텍처임

- 구축 전 시뮬 가능

- 기존 시스템 빠른 이해 가능

 

 

좋은 설계는 유지보수가능함

High cohesion, low coupling

 

cohesion은 응집도임.

모듈 내부에 존재하는 구성 요소들 사이의 밀접한 정도.

 

coupling은 결합도임.

모듈 간 인터페이스를 사용하지 않고 직접 왔다갔다 하는 경우의 관계

서로 간섭할 수 있고 유지보수가 어려워짐

 

**구조적 설계

하향식 설계

객체지향 설계

- 실세계 객체와 대응되게 설계

 

 

기술 부채

Technical debt

귀찮다거나 시간이 부족하다는 이유로 필요한 작업을 수행해두지 않으면 추후에 빚이 되어 돌아옴

728x90

'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

댓글