상세 설계 - 의미, 목적, 방법
상세 설계는 어떻게 구현할지를 상세하게 프로그래머에게 전달하기 위한 것이다.
상세 설계는 대략적으로 설계한 기본 설계의 결과를 상세하게 설계하는 것이 아니라 분명한 목적이 있고 기본 설계와는 다른 관점으로 작업하여야 한다.
상세설계 목적
상세 설계는 기본 설계서를 바탕으로 프로그램의 내부 데이터를 결정하고 로직 등 시스템의 구체적인 구현 방법을 정의한다.
구조적 설계는 톱다운 방식으로 기능을 분할하여 모듈을 정의 한다.
또한 객체지향 프로그램의 경우 클래스의 조합과 기능을 결정하고 서브시스템을 모듈로 분할한다.
상세 설계서를 작성하는 목적
1. 프로그램을 작성할 때 오류를 방지하고 개발 초기 단계에서 품질을 높이기 위하여
2. 프로그래머의 능력에 관계없이 프로그램의 품질이 균일하게 하기 위하여
3. 여러 개발 업체에서 하나의 시스템을 개발하는 경우 프로그램의 결합을 용이하게 하기 위하여
4. 프로그램의 재사용을 촉진하는 컴포넌트로 만들기 쉽게 하기 위하여
- 개발초기부터 품질을 화보하려면 잘 정의된 상세한 설계서를 마련해야 한다.
프로그래머가 잘 정의된 설계서대로 프로그래밍할 수 있도록 상세 설계가 필요하며 이렇게 하면 품질이 일정한 프로그램으로 완성될 가능성이 높아진다,
상세 설계 범위
상세 설계 범위는 시스템 내부에 집중한다. 반면 기본 설계는 시스템 외부에 대한 디자인으로 볼 수 있다.상세 설계는 기본설계에서 정해진 기능을 담당하는 시스템 구성요소의 내부를 만들기 위해 설계하는 것이고, 기본설계는 고객이 사용할 실제 눈에 보이는 기능을 구축하기 위한 설계이다.
상세 설계의 범위를 이해하기 위해서는 SW 구성 요소의 역할을 구별할 수 있어야 한다.
특히 설계 범위를 구별하는 데는 MVC 모델이 사용된다.
MVC 모델은 UI를 가진 시스템을 구출할 때 프로그램의 내부를 구성하는 디자인 패턴이다.
역할마다 분할하여 모듈을 나누어 프로그래밍할 때 적합한 방법이다.
MVC 모델을 적용하여 시스템을 분할하면 기본 설계와 상세 설계의 범위를 확인 할 수 있다.
모델 - 데이터를 접근하여 조작하는 비즈니스 로직이 되는 부분으로 주로 상세 설계의 대상이 된다.
뷰 - 화면 표시와 입출력이 되는 부분으로 기본설계의 대상이 된다.
컨트롤러 - 모델과 뷰를 제어하는 부분으로 상세 설계의 대상이 된다.
상세 설계 작업에서 다룰 부분은 이미 기본 설계의 업무 기능 분할에서 밝혀졌다. 업무 기능 목록을 보고 각 기능을 최소 단위 까지 분할 한다. 최소 단위까지 분할한 후 프로그램의 작성에 필요한 로직을 설계하는 것이다.
최소 단위로 분할하는 과정에 사용되는 방법은 구조적 설계와 UML의 액티비티, 클래스, 시퀀스 다어그램이 있고, IPO 차트 같은 것이 있다.
모델 부분에 해당되는 부분 중 하나인 데이터에 대한 상세 설계도 필요하다. 데이터베이스를 사용하는 경우 기본 설계 결과인 논리 데이터 모델을 기반으로 물리 데이터 모델을 작성한다.
설계절차
상세 설계에서도 프로그래밍에 필요한 개별 디자인을 실시한 후 상세 설계서를 작성한다. 상세 설계 개발 작업의 종류는 대상 시스템의 종류에 따라 다르지만 비즈니스 시스템은
기본 설계 구성 파악 > 모듈 분할 설계 > 처리 로직 설계 > 메시지 상세 설계 > 물리 데이터 설계 > 상세설계서 설계 > 리뷰
순서대로 작성하는 것이 일반적이다.
'메모하는 습관' 카테고리의 다른 글
[IT 관련] 정보시스템 - 정보시스템이란 / 구성요소 / 종류 (2) | 2024.04.26 |
---|---|
[업무 용어] 테스팅 - 단위테스트, 통합테스트, 시스템 테스트, 인수테스트 용어 정리 (0) | 2024.04.05 |
블로그 쓰려면 이렇게! - 블로그 글쓰기 입문 (Tip!!) (0) | 2024.03.24 |
TDD 단위테스트_단위테스트를 해야하는 이유와 방법 (feat. Clean Clode) (2) | 2024.03.23 |
[업무관리 : Clean Code] 깨끗한 코드 : 내가 쓰는 코드는 좋은 코드 ? 나쁜 코드 ? (0) | 2024.03.21 |