1과목: 소프트웨어 설계 - 하향식 설계 방법 vs 상향식 설계 방법
상향식 설계 방법 (Top-down design)
: 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
구조적 설계 (절차지향 설계)
ex) C언어
- 먼저 시스템의 큰 구조를 계획하고, 그 구조에서 하위 모듈들을 세분화하여 구체적인 동작 방식을 정의
- 이때 각 모듈의 입출력, 기능, 인터페이스 등을 상세하게 정의하고, 이후 모듈들 간의 연결을 고려하여 전체 시스템을 통합
- 깊이 우선 통합법, 넓이 우선 통합법 사용
- 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있다.
- 상위 모듈에서는 tc를 사용하기 어렵다.
예를 들어, 소프트웨어 프로젝트에서 상향식 설계 방식을 사용하면, 먼저 요구사항을 분석하여 큰 구조를 설계하고, 그 구조에서 하위 모듈들을 정의하고, 이후 각 모듈을 상세히 구현하는 방식으로 개발할 수 있다.
절차
- 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁( stub )로 대체 한다.
- 깊이우선 or 넓이 우선 등의 통합방식에 따라, 하위 모듈인 스텁들이 한 번에 하나씩 실제모듈로 교체된다.
- 모듈이 통합될 때마다 테스트 실시
- 새로운 오류가 발생하지 않음을 보증 하기 위해 회귀 테스트 실시
히향식 설계 방법 (Bottom up design)
: 하위모듈에서 상위모듈 방향으로 통합하면서 테스트하는 방법
객체지향 설계
- 먼저 세부적인 기능을 가진 모듈을 구현하고, 이 모듈들을 조합하여 큰 구조를 형성
- 이때 각 모듈은 독립적으로 테스트할 수 있도록 설계되며, 이후 모듈들을 조합하여 전체 시스템을 완성
- 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁은 필요하지 않다
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(cluster)는 필요하다.
예를 들어, 소프트웨어 프로젝트에서 하향식 설계 방식을 사용하면, 먼저 기능을 가진 작은 모듈을 개발하고, 이 모듈들을 조합하여 전체 시스템을 완성하는 방식으로 개발할 수 있다.
절차
- 하위 모듈을 클러스터로 결합
- 상위 모듈에서 데이터의 입출력을 확인하기 위해, 모듈인 드라이버 작성
- 통합된 클러스터 단위로 테스터
- 테스트가 완료되면 클러스터는 프로그램 구조의 상위로 이동 하여 결합하고, 드라이버는 실제 모듈로 대체
2022년 03월 05일 기출문제
5. 설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은?
① 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.
② 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설기초기 단계에서 필요하다.
③ 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.
④ 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능추가가 쉽다.
ㄴ 상향식 설계는 최하위 수준에서 각각의 모듈을 상세하게 설계하고 이러한 모듈이 완성되면 전체적으로 이들을 결합하여 설계하는 방식으로 인터페이스가 이미 성립되어 있어야지 기능 추가가 쉽다.
(정답률 62% 문제)
흥달쌤 - 정보처리기사 필기 2022년 1회 - 소프트웨어 설계
5번문제 해설 26:23부터
'개발공부 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기 오답] 화이트박스 테스트 vs 블랙박스 테스트 (0) | 2023.05.14 |
---|---|
[정보처리기사 필기 오답] 소프트웨어 재공학(Reengineering) (1) | 2023.05.13 |
[정보처리기사 필기 오답] 객체지향 분석기법 - 럼바우(Rumbaugh) 방법 (0) | 2023.05.12 |
[정보처리기사 필기 오답] GoF(Gangs of Four) 디자인 패턴 - 생성패턴, 구조패턴, 행위패턴 (0) | 2023.05.11 |
[정보처리기사 필기 오답] 클래스 설계 원칙 (0) | 2023.05.10 |