본문 바로가기

개발공부/정보처리기사

[정보처리기사 필기 오답] 하향식 설계 방법 / 상향식 설계 방법

1과목: 소프트웨어 설계 - 하향식 설계 방법 vs 상향식 설계 방법

 

상향식 설계 방법 (Top-down design)

: 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법

  구조적 설계 (절차지향 설계)

  ex) C언어

 

  • 먼저 시스템의 큰 구조를 계획하고, 그 구조에서 하위 모듈들을 세분화하여 구체적인 동작 방식을 정의
  • 이때 각 모듈의 입출력, 기능, 인터페이스 등을 상세하게 정의하고, 이후 모듈들 간의 연결을 고려하여 전체 시스템을 통합
  • 깊이 우선 통합법, 넓이 우선 통합법 사용
  • 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있다.
  • 상위 모듈에서는 tc를 사용하기 어렵다.

예를 들어, 소프트웨어 프로젝트에서 상향식 설계 방식을 사용하면, 먼저 요구사항을 분석하여 큰 구조를 설계하고, 그 구조에서 하위 모듈들을 정의하고, 이후 각 모듈을 상세히 구현하는 방식으로 개발할 수 있다.

 

절차
    - 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁( stub )로 대체 한다.
    - 깊이우선 or 넓이 우선 등의 통합방식에 따라, 하위 모듈인 스텁들이 한 번에 하나씩 실제모듈로 교체된다.
    - 모듈이 통합될 때마다 테스트 실시
    - 새로운 오류가 발생하지 않음을 보증 하기 위해 회귀 테스트 실시

 

히향식 설계 방법 (Bottom up design)

: 하위모듈에서 상위모듈 방향으로 통합하면서 테스트하는 방법 

  객체지향 설계 

 

  • 먼저 세부적인 기능을 가진 모듈을 구현하고, 이 모듈들을 조합하여 큰 구조를 형성
  • 이때 각 모듈은 독립적으로 테스트할 수 있도록 설계되며, 이후 모듈들을 조합하여 전체 시스템을 완성
  • 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁은 필요하지 않다
  • 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(cluster)는 필요하다.

예를 들어, 소프트웨어 프로젝트에서 하향식 설계 방식을 사용하면, 먼저 기능을 가진 작은 모듈을 개발하고, 이 모듈들을 조합하여 전체 시스템을 완성하는 방식으로 개발할 수 있다.

 

절차
    - 하위 모듈을 클러스터로 결합
    - 상위 모듈에서 데이터의 입출력을 확인하기 위해, 모듈인 드라이버 작성
    - 통합된 클러스터 단위로 테스터
   - 테스트가 완료되면 클러스터는 프로그램 구조의 상위로 이동 하여 결합하고, 드라이버는 실제 모듈로 대체

 


2022년 03월 05일 기출문제

 

5. 설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은?

 

① 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.

② 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설기초기 단계에서 필요하다.

③ 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.

④ 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능추가가 쉽다.

ㄴ 상향식 설계는 최하위 수준에서 각각의 모듈을 상세하게 설계하고 이러한 모듈이 완성되면 전체적으로 이들을 결합하여 설계하는 방식으로 인터페이스가 이미 성립되어 있어야지 기능 추가가 쉽다.

 

(정답률 62% 문제)

 

 

흥달쌤 - 정보처리기사 필기 2022년 1회 - 소프트웨어 설계

5번문제 해설 26:23부터