sonumb

소프트웨어 설계 문서 템플릿 본문

개발자 이야기/Software Engineering

소프트웨어 설계 문서 템플릿

sonumb 2018. 8. 22. 11:19

소프트웨어 설계 문서

속성
가치
발행 번호
 
프로젝트 제목  
팀 이름  
이름
 
날짜
 

ℹ️ 설계 단계는 두단계로 나뉜다.

  1. 개념 설계 (conceptual design) (혹은 사전설계:preliminary design)
  2. 상세 설계 (detailed design)

각 단계별 내용과 산출물은 아래와 같이 정의될 수 있다.

  • 개념 설계
    • 시스템의 구조 설계
    • 기능을 분해하여 모듈 구조 (모듈 자체의 기능, I/O 설계)
      • 모듈이름
      • 모듈형
      • 인터페이스
      • 오류메시지
      • 사용하는 파일
      • 호출하는 모듈
      • 기능설명
    • 모듈 간의 관계를 정립(모듈 인터페이스)
    • 자료설계(데이터베이스 설계)
    • 결과 시스템 구조도(Structure Chart)
    • 외부 파일 및 DB 설계도(레코드 레이아웃, ERD)
  • 상세 설계
    • 모듈 내부 설계
      • 모듈별로 아래 내용을 기술
        • 자료구조
          • 변수명
          • 자료형
          • 역활 (주석으로 상세히 기술하면 좋다.)
        • 알고리즘
          • 알고리즘 이름
          • 매개변수 타입
          • 내부 절차(Pseudo code)
          • 반환값
        • 모듈 내 변수
          • 이름
          • 목적(무엇을 위해 저장하는지, 어떻게 이용될 것인지 기술)
    • DBMS 물리스키마
      • 개념설계에서 논리스키마를 제공했다면, 상세설계에서는 실제로 작동할 수 있는 SQL 생성 구문이 제공되어야 한다.
      • 컬럼명,자료형, 인덱스, 제약사항
      • 효율적인 동작을 고려해야한다. 즉 컬럼들의 순서가 중요하다.(옵티마이징)
    • 사용자 인터페이스 ( DBMS와 같은 시스템 프로그램(혹은 라이브러리)은 거의 해당하지 않는다. iSQL와 같은 사용자 툴만 해당.)
      • 메뉴
      • 입력 폼
      • 출력 레포트 자료구조 설계
      • 구조형 및 배열 결과
      • 프로그램 사양서
      • 화면 및 출력물 레이아웃

 

 

1. 서론

1.1. 목적

이 SDD 및 해당 대상의 목적을 식별하십시오. (예 : "이 소프트웨어 설계 문서는 XX의 아키텍처 및 시스템 설계를 설명합니다.").

1.2. 범위

소프트웨어의 설명과 범위를 제공하고 프로젝트의 목표, 목적 및 이점을 설명하십시오. 이것은 귀하의 제품에 대한 간략한 설명을위한 기초를 제공합니다.

1.3. 개요

이 문서와 조직에 대한 개요를 제공하십시오.

1.4. 참고 자료

이 섹션은 선택 사항입니다.

테스트 계획에 대한 정보 출처로 사용 된 모든 문서를 나열하십시오.

1.5. 정의 및 약어

이 섹션은 선택 사항입니다.

SDD를 올바르게 해석하기 위해 존재할 수있는 모든 용어, 두문자어 및 약어에 대한 정의를 제공하십시오. 이 정의는 SDD에서 사용되는 것으로 청중에게 가장 잘 알려지지 않은 항목이어야합니다.

2. 시스템 개요

프로젝트의 기능, 컨텍스트 및 디자인에 대한 일반적인 설명을 제공하십시오. 필요한 경우 배경 정보를 제공하십시오.

3. 시스템 구조

3.1. 아키텍쳐 설계

모듈 형 프로그램 구조를 개발하고 모듈 간의 관계를 설명하여 시스템의 완전한 기능을 구현하십시오. 이것은 시스템의 책임이 어떻게 분할되어 하위 시스템에 할당되었는지에 대한 고차원적인 개요입니다. 상위 수준의 각 하위 시스템과 그에 할당 된 역할 또는 책임을 식별하십시오. 원하는 기능을 수행하기 위해 이러한 서브 시스템이 어떻게 서로 협력하는지 설명하십시오. 개별 하위 시스템에 대해 너무 자세히 설명하지 마십시오. 주된 목적은 시스템이 어떻게, 왜 왜 분해되었는지, 어떻게 개별 부품이 함께 작동 하는지를 이해하는 것입니다. 주요 하위 시스템과 데이터 저장소 및 상호 연결을 보여주는 다이어그램을 제공하십시오. 필요한 경우 다이어그램을 설명하십시오.

3.2. 분해 설명

건축 설계에서 서브 시스템의 분해를 제공하십시오. 필요에 따라 텍스트를 보충하십시오. 기능적 설명 또는 객체 지향적 설명을 제공 할 수 있습니다. 기능적 설명을 위해 최상위 데이터 흐름도 (DFD)와 구조적 분해도를 작성하십시오. OO 설명의 경우, 서브 시스템 모델, 오브젝트 다이어그램, 일반화 계층 다이어그램 (있을 경우), 집계 계층 다이어그램 (있는 경우), 인터페이스 스펙 및 시퀀스 다이어그램을 여기에 입력하십시오.

3.3. 디자인 이론적 근거

고려 된 중요한 문제 및 거래 / 해제를 포함하여 3.1에 설명 된 아키텍처를 선택하는 근거에 대해 토론합니다. 고려하지 않은 다른 아키텍처에 대해 토론 할 수 있습니다. 단, 선택한 아키텍처를 선택하지 않은 이유를 설명해야합니다.

4. 데이터 디자인

4.1. 데이터 설명

시스템의 정보 도메인이 어떻게 데이터 구조로 변환되는지 설명하십시오. 주요 데이터 또는 시스템 엔티티를 저장, 처리 및 구성하는 방법을 설명하십시오. 데이터베이스 또는 데이터 저장 항목을 나열하십시오.

4.2. 데이터 사전

유형이나 설명과 함께 시스템 엔티티 또는 주요 데이터를 알파벳순으로 나열합니다. 3.2 절의 기능 설명을 제공 한 경우 모든 기능 및 기능 매개 변수를 나열하십시오. OO 설명을 제공 한 경우, 객체와 그 속성, 메소드 및 메소드 매개 변수를 나열하십시오.

5. 구성 요소 설계

이 섹션에서는 각 구성 요소가보다 체계적인 방식으로 수행하는 작업을 자세히 살펴 봅니다. 3.2 절의 기능 설명을 제공 한 경우 절차 적 설명 언어 (PDL) 또는 의사 코드로 3.2에 나열된 각 함수에 대한 알고리즘 요약을 제공하십시오. OO 설명을 한 경우 PDL 또는 의사 코드의 3.2에 나열된 모든 객체에 대해 각 객체 구성원 함수를 요약하십시오. 필요한 경우 모든 로컬 데이터를 설명하십시오.

6. 인체 공학적 설계

6.1. 사용자 인터페이스 개요

사용자의 관점에서 시스템의 기능을 설명하십시오. 사용자가 시스템을 사용하여 예상되는 모든 기능과 사용자에게 표시 될 피드백 정보를 어떻게 완성 할 수 있는지 설명하십시오.

6.2. 화면 이미지

사용자 관점에서 인터페이스를 보여주는 스크린 샷을 표시합니다. 이것들은 손으로 그린 ​​것이거나 자동화 된 그리기 도구를 사용할 수 있습니다. 가능한 한 정확하도록하십시오. (그래프 용지는 잘 작동합니다.)

6.3. 화면 개체 및 동작

화면 개체 및 해당 개체와 관련된 작업에 대한 설명입니다.

7. 요구 사항 매트릭스

구성 요소 및 데이터 구조를 SRS 문서의 요구 사항에 따라 추적하는 상호 참조를 제공합니다.

표 형식을 사용하여 SRS의 각 기능 요구 사항을 충족하는 시스템 구성 요소를 표시합니다. 기능 요구 사항을 SRS에서 제공 한 번호 / 코드로 참조하십시오.

8. 부록

이 섹션은 선택 사항입니다.

소프트웨어 설계 문서를 이해하는 데 도움이 될 수있는 지원 세부 사항을 제공하기 위해 부록이 직접 또는 참조로 포함될 수 있습니다.

 

 

반응형