CS/정보처리산업기사

공통 모듈 설계 - 설계 모델링

jjh0119 2025. 3. 21. 16:53

01. 소프트웨어 공학의 기본 원칙

  • 현대적인 프로그래밍 기술을 계속적으로 적용해야 한다.
  • 개발된 소프트웨어의 품질이 유지되도록 지속즉으로 검증해야 한다.
  • 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.

02. 소프트웨어 생명 주기(SDLC)

  • 소프트웨어가 개발되기 위해 정의되고 사용이 완전히 끝나 폐기될 때까지의 전 과정을 단계별로 나눈 것을 의미한다.
  • SDLC의 기본단계
    계획 - 분석 - 설계 - 개발(구현) - 테스트 - 유지보수

소프트웨어 생명주기 모델

  • 폭포수 모형
    • 이전 단계로 돌아갈 수 없다는 전헤하에 각 단계를 확실히 매듭짓고 다음 단계를 진행하는 개발 방법론이다.
    • 보헴이 제시한 고전적 생명주기 모형이다.
    • 요구사항을 반영하기 어렵다.
  • 나선형 모형
    • 나선을 따라 돌듯이 점진적으로 완벽한 최종 소프트웨어를 개발하는 것이다.
    • 계획수립 - 위험분석 - 개발 및 검증 - 고객 평가 과정이 반복적으로 수행된다.

02. 소프트웨어 설계

1) 설계의 개념

  • 분석 단계에서 밝혀진 요구사항을 컴퓨터에서 어떻게 실현할 것인가를 결정하는 과정
  • 설계는 관리적 시각과 기술적 시각으로 나눌 수 있다
  • 기술적 시각 : 자료설계, 구조설계, 사용자 인터페이스 설계, 절차 설계

2) 설계의 원리

  • 단순성 : 복잡한 여러가지 요소를 정리하여 단순화 하거나 복잡함을 최소화하여 시스템의 유지보수성에 영향을 주는 가장 중요한 특성
  • 효율성 : 사용하는 자원이 적장하고 효과적이게 함
  • 구조화 : 분할과 정복, 서로 연관되어 있는 부분들은 같은 구성요소에, 연관성이 없는 부분들은 연관성이 없는 구성요소들에 할당되어야 함
  • 추상화 : 자세한 부분에 좌우되지 않게 컴포넌트 정의
  • 모듈화 : 프르그램들을 작고 독립적인 단위로 분할하는 기준, 각 모듈이 외부와의 결합이낮고, 내부요소가 응집되도록 해야 함
  • 정보 은닉 : 모듈 내부의 세부상황을 은폐시키고 다른 모듈과의 접속에 필요한 정보만을 노출시킴으로써 모듈간의 접속을 가능한 한 최소화

(1) 추상화

  • 복잡한 문제나 단순하면서도 규모가 큰 문제를 해결하기 위해 필요 없는 세부사항을 배제하고 문제를 쉽게 이해할 수 있도록 전체적이고 포괄적인 개념으로 단순화 시키는 것이다.
  • 제어 추상화 : 프로그램의 흐름 등에 대해 간략화
  • 기능 추상화 : 모델이 수행하는 기능 측면으로 간략화
  • 데이터 추상화 : 데이터의 상세정보를 간략화

(2) 모듈

  • 모듈이란 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행코드이다.
  • 자체적으로 컴파일 가능하고 다른 프로그램에서 재사용이 가능하다.
  • 공통 모듈은 날짜 처리를 위한 유틸리티 모듈처럼 ㄹ여러 기능 및 프로그램에서 공통적으로 사용할 수 있는 모듈을 의미한다.
  • 공통 모듈 작성 원칙 : 정확성, 명확성, 완전성, 일관성, 추적성

3) 설계 모델링

(1) 구조 모델링

  • 소프트웨어 구성요소들 사의의 구조적 관계에 대한 특성을 모델링
  • 구성요소들은 유형, 인터페이스, 내부 설계 구조 형태별로 분류하여 구조화한다.

(2) 행위 모델링

  • 구성요소들의 정적 특성 모델링 : 입출력 데이터, 데이터 흐름, 데이터 변환, 데이터 저장 등을 모델링한다.
  • 구성요소들의 동적 특성 모델링 : 구성요소가 언제 어떠한 순서로 수행되는지(상태 전이, 데이터 흐름 경로, 사건 발생 순서, 실행 경로 등) 모델링 한다.

04. 구조적 설계

  • 분할과 정복의 원리에 입각, 프로그램의 주요 과업을 하향식으로 세분화 시켜, 세분화된 모듈들이 계층적 구조를 이루게 하는 방식이다.
  • 자료의 흐름과 구조에 따라 프로세스를 구분하고 점차적으로 세분화하여 사용자 요구 사항에 맞는 시스템을 구축하는 구조적 방법론에 의한 설계 기법이다.

1) 자료 흐름도(DFD)

  • 자료의 흐름과 변환 과정, 기능을 도형 중심으로 기술하는 방법이다.
  • 자료 흐름 그래프 또는 버블 차트라고도 한다.
  • 자료의 흐름과 기능을 프로세스, 자료흐름, 자료저장소, 단말의 네가지 기본 기호로 표시한다.

2) 자료 사전(DD)

  • 자료 흐름도에 나타나는 데이터의 흐름과 저장소 등의 데이터 항목을 더 자세히 정의하고 기록한 것이다.
  • 자료 사전의 표기법
    • "=" : 자료의 정의
    • "+" : 자료의 연결
    • "[ ]" : 자료의 선택
    • "{ }" : 자료의 반복
    • "( )" : 자료의 생력
    • " ** " : 주석

3) N-S Chart

  • 논리 기술에 중점을 두고 상자 도형을 이용한 도형식 표현방버이다.
  • 순차, 선택 및 다중 선택, 반복 등의 제어 논리 구를 표현하는 도구이다.

4) HIPO(Hierachy plus Input Process Output)

  • 기능 중심의 표현 방식으로 도표 상에 기능 위주로 입력 내용, 처리 방법, 출력 내용이 제시되어 시스템의 이해가 쉽다.
  • 시스템을 설계하거나 표준화된 문서를 위한 수단이다.
  • 3단계 종류
    • 도식 목차 : 전체적인 흐름과 구조를 나타내는 도표
    • 총괄 도표 : 사용자의 관점에서 본 시스템 또는 프로그램의 기능과 처리 내용을 설명
    • 상세 도표 : 총괄 도표를 구체적으로 표현한 모듈 도표