현재 선택한 정보처리 과정

정보처리기사 필기 이론 학습

이론 목록으로 돌아가기

설계 수준·추상화·분해·모듈화와 구조적 표현

상·하위 설계와 추상화·분해·정보 은닉·모듈화 원리를 구조적 표현과 함께 익힌다.

예상 읽기 3

설계 수준

소프트웨어 설계는 요구사항을 구현 가능한 구조로 바꾸는 활동이다. 문서 이름보다 결정의 범위와 상세도로 수준을 구분한다.

구분주요 결정
상위 설계시스템 구조, 서브시스템, 외부 인터페이스, 데이터 흐름, 주요 컴포넌트
하위 설계모듈·클래스 내부 구조, 자료 구조, 알고리즘, 세부 인터페이스

상위 설계는 “무엇을 어떤 큰 단위로 나눌 것인가”, 하위 설계는 “각 단위를 어떻게 구현할 것인가”에 가깝다. 두 수준은 완전히 분리되지 않고 상세 설계에서 발견된 제약이 상위 구조를 수정하게 할 수 있다.

복잡성을 줄이는 원리

추상화

불필요한 세부를 감추고 현재 문제에 필요한 본질만 표현한다.

  • 기능 추상화: 수행할 기능의 이름과 결과에 집중
  • 데이터 추상화: 데이터와 허용 연산을 하나의 개념으로 표현
  • 제어 추상화: 복잡한 제어 흐름을 의미 있는 단위로 표현

단계적 분해와 정제

큰 기능을 하위 기능으로 나누고 각 기능을 점차 상세화한다. 분해 기준은 단순한 코드 길이보다 책임·변경 이유·데이터와 기능의 관련성이다.

정보 은닉

다른 모듈이 알 필요가 없는 내부 자료 구조·알고리즘·변경 가능 결정을 감춘다. 외부는 안정된 인터페이스를 통해서만 사용한다.

모듈화

추상화와 모듈화 구조도를 설명하는 교육용 도식
추상화와 모듈화 구조도를 설명하는 교육용 도식

추상화와 모듈화 구조도

시스템을 독립적인 책임 단위로 나누는 것이다. 좋은 모듈은:

  • 하나의 분명한 책임을 가진다.
  • 외부에 필요한 인터페이스만 공개한다.
  • 내부 변경이 다른 모듈에 적게 퍼진다.
  • 입력·출력·오류·제약이 명확하다.
  • 시험과 재사용이 가능하다.

무조건 작게 나누는 것이 목표는 아니다. 너무 잘게 분리하면 호출 관계와 관리 비용이 증가한다.

하향식과 상향식 설계

방식출발점특징
하향식전체 기능상위 기능을 하위 기능으로 단계적으로 분해
상향식재사용 가능한 하위 요소기존 모듈을 조합하여 상위 시스템 구성

실제 설계에서는 전체 구조를 잡는 하향식 접근과 재사용 요소를 활용하는 상향식 접근을 함께 사용할 수 있다.

구조적 설계와 표현

구조적 설계는 시스템을 기능 중심의 모듈로 분해하고 모듈 간 호출·자료 전달 관계를 명확히 한다.

구조도(Structure Chart)

모듈의 계층과 호출 관계, 전달되는 자료·제어 정보를 나타낸다. DFD가 데이터의 흐름과 변환을 표현하는 분석 도구라면 구조도는 프로그램 모듈 구조에 더 가깝다.

N-S 차트

N-S 차트(Nassi-Shneiderman Chart)는 한 절차 내부의 구조적 제어 논리를 상자 중첩으로 표현한다.

  • 순차
  • 선택(if/else)
  • 반복(while 등)

화살표 중심의 순서도와 달리 구조적 제어 블록을 명확히 보여 주며 임의의 흐름 이동을 줄인다. 시스템 전체 모듈 관계나 데이터 흐름을 표현하는 도구는 아니다.

표현 도구 비교

도구중심 표현
DFD데이터의 이동과 변환
구조도모듈 계층·호출·자료 전달
N-S 차트모듈 내부의 순차·선택·반복
UML 클래스 다이어그램클래스와 정적 관계
UML 시퀀스 다이어그램객체 간 시간 순 메시지
의사코드구현 언어에 독립적인 처리 절차