티스토리 뷰


메타 데이터의 끝으로 건너뛰기

Software Design에 관한 내용들을 정리한다.

1. Software Design 개요

설계라는 말은 사실 건축 용어이다.

컴퓨터 공학자들이 정교하면서도 견고한 소프트웨어를 만들기 위해 건축 공정의 개념을 빌려 쓴 것이라고 볼 수 있다.

건물을 지을 때 건축물의 품질을 유지하기 위하여,

  1. 청사진, 설계도, 일정표, 예산 등등 여러 요소들(입력물)이 필요하며,
  2. 입력물을 어떻게 배치하고 이용할 것인가에 관한 공정과
  3. 이런 입력물에 따른 산출물 등도 요구 된다.

소프트웨어 작성 과정을 건물을 짓는 과정과 비슷하다. 

즉 소프트웨어 개발은 개발과정의 입력물과 산출물을 정의하고, 위와 유사한 과정들을 수행할 수 있어야 한다.

2. Hierarchy

소프트웨어 설계는 2계층으로 나뉜다.

  • 개념설계(Conceptual Design)
  • 상세설계(Detailed Design)

개념설계는 구조 설계(전체적인 뼈대), 상위 레벨 설계 등등으로 불린다.

상세설계는 물리 설계, 하위 레벨 설계 등등으로 불린다.

사실 용어상으로 "개념(논리) ↔ 물리"가 어울리지만, "소프트웨어"에서 "물리"라는 것이 존재할 수 있을까.
따라서 "상세"라는 말이 더 어울린다고 생각한다.


2.1. 개념 설계

  • 시스템의 구조 설계
  • 기능을 분해 모듈 구조 (모듈 자체의 기능, I/O 설계)
  • 모듈 간의 관계를 정립(모듈 인터페이스)
  • 자료설계(데이터베이스 설계)
  • 결과 시스템 구조도(Structure Chart)
  • 외부 파일 및 DB 설계도(레코드 레이아웃, ERD)

2.2. 상세설계

  • 모듈 내부 설계
  • 모듈 안의 알고리즘
  • 모듈 안의 지역 변수 사용자 인터페이스
  • 메뉴
  • 입력 폼
  • 출력 레포트 자료구조 설계
  • 구조형 및 배열 결과 프로그램 사양서 화면 및 출력물 레이아웃

3. Template




댓글
댓글쓰기 폼