<프로젝트 이름>

소프트웨어 구조 문서

버전 <1.0>

[참고: 다음 템플리트가 RUP(Rational Unified Process)와 함께 사용할 수 있도록 제공됩니다. 대괄호로 묶이고 파란색 이탤릭체(양식=InfoBlue)로 표시된 텍스트는 작성자에게 가이드를 제공하기 위해 포함되었으므로 문서 발행 이전에 삭제되어야 합니다. 이 양식에 따라 입력된 단락은 자동적으로 보통(양식=Body Text)으로 설정됩니다.]

 

개정판 이력

날짜

버전

설명

작성자

<일일/월월/년년>

<x.x>

<세부사항>

<이름>

       
       
       

목차

1. 소개         
1.1 목적     
1.2 범위     
1.4 참조     
1.5 개요     

2. 구조적 표시

3. 구조적 목표 및 제한조건   

 
5.1 개요     

6. 프로세스 보기

7. 전개 보기

8.1 개요     
8.2 계층     

9. 데이터 보기(선택적)       

10.크기 및 성능               

11.품질               


소프트웨어 구조 문서

1.                  소개

[소프트웨어 구조 문서의 소개에는 전체 소프트웨어 구조 문서의 개요가 제공되어야 합니다. 여기에는 소프트웨어 구조 문서의 목적, 범위, 정의, 머리글자, 약어, 참조 및 개요가 포함되어야 합니다.]

1.1               목적
이 문서는 시스템의 여러 측면을 서술하기 위해 다수의 여러 구조적 보기를 사용하는 시스템의 포괄적인 구조적 개요를 제공합니다. 이것은 시스템에서 작성된 의미 있는 구조적 결정을 캡처하고 알리기 위한 것입니다.

[이 섹션에서는 전체 프로젝트 문서에서 소프트웨어 구조 문서의 목적을 정의하고 해당 문서의 구조를 간략히 설명합니다. 해당 문서에 대한 특정 독자가 식별되고 문서 사용 방법이 함께 표시되어야 합니다.]

1.2               범위

[소프트웨어 구조 문서가 적용되는 것과 이 문서에 의해 영향을 받는 것에 대한 간략한 설명.]

1.3               정의, 머리글자 및 약어

[이 서브섹션에서는 소프트웨어 구조 문서를 올바르게 해석하기 위해 필요한 모든 용어, 머리글자 및 약어의 정의를 제공합니다.  이 정보는 프로젝트 용어집에 대한 참조로 제공될 수 있습니다.]

1.4               참조

[이 서브섹션에서는 소프트웨어 구조 문서 어디에서나 참조되는 모든 문서의 완성된 목록을 제공해야 합니다.] 각 문서는 제목, 보고서 번호(해당되는 경우), 날짜 및 발행한 조직별로 식별되어야 합니다. 참조사항을 얻을 수 있는 소스를 지정하십시오. 이 정보는 부록 또는 다른 문서에 대한 참조로 제공될 수 있습니다.]

1.5               개요

[이 서브섹션에서는 나머지 소프트웨어 구조 문서에 포함된 것에 대해 설명하고 소프트웨어 구조 문서가 구성되는 방법을 설명합니다.]

2.                  구조적 표시

[이 섹션에서는 현재 시스템의 소프트웨어 구조 및 해당 소프트웨어 구조 표시 방법을 설명합니다.] 유스 케이스, 논리, 프로세스, 전개구현 보기 중에서 필요한 보기를 나열하고 각 보기에 포함되는 모델 요소의 유형을 설명합니다.]

3.                  구조적 목표 및 제한조건

[이 섹션에서는 구조에 중요한 영향을 미치는 소프트웨어 요구사항 및 목적(예: 안전, 보안, 프라이버시, 재고 제품 사용, 이식성, 분배 및 재사용)에 대해 설명합니다. 또한 적용될 수 있는 특수 제한조건(설계 및 구현 전략, 개발 툴, 팀 구조, 스케줄 및 레가시 코드 등)도 캡처합니다.]

4.                  유스 케이스 보기

[이 섹션에서는 유스 케이스 모델의 유스 케이스 또는 시나리오가 최종 시스템의 의미 있고 주요한 일부 기능을 표시하는 경우나 대규모 구조적 커버리지를 가지는 경우(많은 구조적 요소를 사용하는 경우) 또는 정밀한 특정 구조의 핵심을 강조하거나 설명하는 경우에 유스 케이스 모델의 유스 케이스 또는 시나리오를 나열합니다.]

5.                  논리 보기

[이 섹션에서는 서브시스템 및 패키지로의 분해, 각각의 중요한 패키지에서 클래스 및 클래스 유틸리티로의 분해와 같이 구조적으로 중요한 설계 모델의 파트에 대해 설명합니다. 구조적으로 의미 있는 클래스를 소개하고 매우 중요한 몇몇 관계, 조작 및 속성뿐 아니라 책임을 설명해야 합니다.]

5.1               개요

[이 서브섹션에서는 계층 구조 및 계층에 따른 전체 설계 모델 분해에 대해 설명합니다.]

5.2               구조적으로 의미 있는 설계 패키지

[각각의 중요한 패키지에 대해 이름, 간략한 설명, 패키지 내에 있는 중요한 클래스 및 패키지 모두가 포함된 다이어그램이 들어 있는 서브섹션을 포함시키십시오.

패키지에 있는 각각의 의미 있는 클래스에 대해 이름, 간략한 설명 및 선택적으로 주요 책임, 운영, 속성 중 일부에 대한 설명을 포함시키십시오.]

5.3               유스 케이스 구현

[이 섹션에서는 선택된 소수의 유스 케이스(또는 시나리오) 구현을 제공하여 소프트웨어가 실제로 작동하는 방법을 설명하고 다양한 설계 모델 요소가 기능성에 어떻게 도움을 주는지 설명합니다.

6.                  프로세스 보기

[이 섹션에서는 간단한 프로세스(단일 제어 스레드) 및 완전한 프로세스(간단한 프로세스의 그룹)의 시스템 분해를 설명합니다. 의사소통하거나 상호작용하는 프로세스의 그룹별로 섹션을 조직하십시오. 메시지 전달, 인터럽트 및 랑데뷰와 같이 프로세스 간에 통신의 기본 모드를 설명하십시오.]

7.                  전개 보기

[이 섹션에서는 소프트웨어가 전개되고 실행되는 하나 이상의 실제 네트워크(하드웨어) 형상에 대해 설명합니다. 이것은 전개 모델의 보기입니다. 최소한 각 형상에 대해 소프트웨어를 실행하는 실제 노드(컴퓨터, CPU) 및 이들 간의 상호 연결(버스, LAN, 지점간 등)을 표시해야 합니다. 또한 실제 노드에 있는 프로세스 보기의 프로세스에 대한 맵핑을 포함해야 합니다.]

8.                  구현 보기

[이 섹션에서는 구현 모델의 전체 구조, 구현 모델에서 계층 및 서브시스템으로의 분해 및 구조적으로 의미 있는 구현 요소에 대해 설명합니다.]

8.1               개요

[이 서브섹션에서는 다양한 계층과 컨텐츠, 해당 계층에 포함되는 사항과 계층 간의 경계를 관리하는 규칙을 이름 지정하고 정의합니다. 계층 간의 관계를 보여주는 컴포넌트 다이어그램을 포함시키십시오. ]

8.2               계층

[각 계층에 대해 계층의 이름을 포함하는 서브섹션, 계층에 위치한 서브시스템 열거 및 컴포넌트 다이어그램을 포함시키십시오.]

9.                  데이터 보기(선택적)

[시스템의 지속적 데이터 저장영역 Perspective에 대한 설명. 이 섹션은 지속적인 데이터가 거의 없거나 전혀 없고 또는 설계 모델과 데이터 모델 간의 변환이 사소한 것인 경우 선택적입니다.]

10.             크기 및 성능

[대상 성능 제한조건 및 구조에 영향을 주는 소프트웨어의 주요 크기를 표시하는 특성에 대한 설명.]

11.             품질

[소프트웨어 구조가 시스템의 모든 성능(기능성과는 다른 확장 가능성, 신뢰성, 이식성 등)에 어떻게 기여하는지에 대한 설명. 이런 특성에 특수 의미(예: 안전, 보안 또는 프라이버시 내포)가 있는 경우 명확하게 서술되어야 합니다.]