SwDD Template comformed with IEEE 1016-2009

本文档根据IEEE 1016-2009标准指导,以及Jam所提供的原始模板修订而来,作为ASPICE SWE.3阶段软件详细设计的文档模板及其指导。

Jam模板下载来源:

https://github.com/jam01/SDD-Template

1 SwDD Identification

o Authorship

o System Name

2 Introduction

> This section should provide an overview of the entire document

2.1 Document Purpose

Describe the purpose of the SDD and its intended audience.

2.2 Subject Scope

2.3 Definitions, Acronyms and Abbreviations

2.4 References

List any other documents or Web addresses to which this SDD refers. Provide enough information so that the reader could access a copy of each reference, including title, author, version number, date, and source or location.

2.5 Document Overview

Describe what the rest of the document contains and how it is organized.

3 Stakeholder Concerns

> Identify the different type of stakeholders to whom the SDD will be of interest and their concerns on the design subject. For example, on a prescriptive design, software developers are one of the main stakeholders and their concerns could be functionality and software interoperability, whereas operators may be more concerned with configurability and deployment options.

> Usual design stakeholders include users, developers, operators, software designers, system integrators, maintainers, acquirers, and project managers. Design concerns are usually aligned with functional or non-functional properties like functionality, reliability, performance, or maintainability. Concerns can also be more specific or abstract like the feasibility of constructing and deploying the system, or potential risks and impacts of the system to its stakeholders throughout its life cycle.

> The specific stakeholders entries should:

* Be identifiable.

* State their design concerns.

* Reference the design views that address such concerns.

4 Selected Viewpoints

4.1 Viewpoint Guideline

按照流程要求,本章节的Viewpoint在交付物中并不必须的,但是为了下述目的,这些Viewpoint子章节以及本模板对Viewpoint的指导性阐述必须保留在SwDD文档中:

  • 保持软件设计文档的内容完整性与叙述逻辑完整性,这种完整性是由IEEE 1016标准所设定并推荐的:《IEEE Standard for Information Technology – Systems Design – Software Design Descriptions IEEE Std 1016-2009》。
  • 保持系统软件设计文档的向后兼容性,以备在将来的软件开发过程中,正式应答Stakeholder所提出的Viewpoint,也就是从特定专业角度要求SwDD通过View所回答的问题。
  • 章节什么是Viewpoint从直观的角度阐述了什么是Viewpoint,以及它与View之间的关系。

  • 关于Viewpoint典型内容与阐述范式,请查阅《IEEE Standard for Information Technology – Systems Design – Software Design Descriptions IEEE Std 1016-2009》第5章。
> 什么是Viewpoint

Viewpoint是IEEE为了以下2个目的,在Design Concern与View之间设立的中间框架:

1. 避免IEEE 1016标准自身对View提出过于“硬编码”的指导意见,向软件设计人员提供在View中工作的最大自由度。

2. 确保具体项目SwDD文档具有极强的可移植性,即:如果硬件或操作系统环境原因导致View所述的具体软件设计无法在新的硬件或操作系统中实施,SwDD的上层(Concern、Viewpoint这些客户与软件顶层问题)仍然可以被迁移到全新的软件开发环境和工具链中,而不做修改。

wps1

Figure 1 Where do Viewpoint and View Come from

Figure 1展示了Viewpoint、View的关系及其来源。在具体的软件设计活动中,SwED应通过Viewpoint规范地、技术性地复述特定Stakeholder所关心的Concern。例如:

  • 商用飞机客户所关心的Concern是:飞机允许搭载何种乘客或货物 – 则应通过Context Viewpoint(详见IEEE 1016-2009第5章)要求对应的View描述用户用例。
  • 商用飞机维修工程师关心的Concern是:飞机软件应当如何诊断故障 – 则应通过Interface Viewpoint(详见IEEE 1016-2009第5章)要求View阐述软件信号与诊断接口。

IEEE 1016-2009第5章阐述的是对具体SwDD中Viewpoint的指导,而不是实际的Viewpoint内容,这种指导包括:

  • Viewpoint应当包含概述信息。
  • Viewpoint应当包含对应的Design Concern
  • Viewpoint应当包含对对应View所使用的Design Element的规范性要求,这种Element诸如:View必须对特定的Design Entity进行描述,例如用户、子系统、单元、函数、数据库;View必须对特定的Design Relationship进行描述,也就是Entity(用户、子系统、数据库等)之间的关系进行阐述;
  • Viewpoint应当对对应的View提出设计语言(Design Language)要求,例如xx Viewpoint对xx View提出明确要求:应使用UML序列图、IDEF0功能模型图或伪代码 – 注意:通常编程所使用的Simulink、C#语言并不是SwDD所使用的Design Language

4.2 Viewpoint子章节名称(预留)

  • Context
  • Composition
  • Logical
  • Dependency
  • Information
  • Patterns
  • Interface
  • Structure
  • Interaction
  • State dynamics
  • Algorithm
  • Resources
  • Physical
  • Deployment
  • Concurrency
  • Behavioral

5 Views

本模板根据实际情况,提出了下述种类的View要求。具体项目SwDD View中包含的Design Element必须包含对上游需求(SwRD)或者架构要求的可追溯性。

5.1 Composition – Not Mandatory

自顶向下、级联地阐述软件所包含的对象,这种对象包括诸如:子系统、组件、模块、库程序甚至软件对象模板。具体指导参考IEEE 1016-2009章节5.3 Viewpoint的阐述。

5.2 Information – Not Mandatory

软件中所使用的数据,包括数据对象、数据结构、数据访问策略、元数据定义等信息在Information View中阐述。具体指导参考IEEE 1016-2009章节5.6 Viewpoint的阐述。

5.3 Interface – Not Mandatory

软件中各项Entity所提供的外部/内部的接口,包括信号、服务。这些信息是软件设计工程师、程序员、客户、测试人员、诊断工程师所关心的。具体指导参考IEEE 1016-2009章节5.8 Viewpoint的阐述。

5.4 Algorithm

这是当前SwDD所必须的View。阐述软件中所包含的具体函数、方法,及其内部的技术性过程,例如:流程、算法。

初步搞定了SwDD/SDD的模板之后,又可以回过头整理一下正式的Architecture流程文档了,紧接着SwDD的流程文档也可以写出来了