软件工程文档设计中的基本要求:关于每一个文档究竟该写什么

首先看软件需求分析数据库

需求分析阶段的任务分为四个阶段:需求获取,需求分析,需求定义,需求验证数组

需求获取这部分比较模糊,应该也是比较杂,比较灵活的一部分,先来个大概的功能叙述,而后将需求一项一项地列出来。网络

需求分析这部分要求对前面的需求进行规范数据结构

1,对每项需求给出清楚的描述函数

2,要求描述没有歧义工具

3,各项需求之间不能存在矛盾,软件需求和实际需求不能矛盾性能

4,对需求实现的可行性进行分析编码

  4.1 技术可行性:在现有条件和环境技术下考虑设计

  4.2经济可能性:小项目通常不考虑这个对象

  4.3社会可能性:考虑知识产权的侵害问题

5,获取的需求是否全面周到,从已知的需求是否隐含一些必须有的其余需求,以及深刻探讨系统功能所产生的可能的对功能需求的补充。

需求定义,要求系统全面地写出软件需求规格说明

需求验证,要通过客户对需求规格说明的评审

(需求规格说明尚未搞清楚,在后面有时间补充

结构化的分析方法包括了如下几种元素

数据对象描述

实体-关系图

加工规格说明

数据流图

控制规格说明

状态-迁移图

数据字典

咱们在结构化设计阶段的任务是写出概要设计和详细设计

概要设计包括:

      体系结构设计:

            数据流图相关

      接口设计:

            数据流图

      数据设计:

            数据对象描述

            数据字典

            实体-关系图

详细设计包括:

      过程设计:

            加工规格说明

            控制规格说明

            状态-迁移图

咱们来解释一下上面结构化分析方法里出现的一些项目

功能建模

    数据流图有四种基本的图形符号

    椭圆或圆角矩形: 表示加工,对输入数据进行变换以产生输出数据,其中要注明加工的名字

    直角矩形或长方体:外部实体。即数据输入源,或数据输出汇点。其中要注明数据源或数据汇点的名字

    平行线或右面竖边缺的矩形:数据存储。要用名字或名词性短语为数据存储命名。

    一个箭头:数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名词或名词性短语命名。

数据源或数据汇点表示图中要处理的数据的输入来源处理结果要送往何处,数据源或数据汇点不是目标系统的一部分,只是目标系统的外围环境

中的实体部分,所以成为外部实体。实际问题中它多是组织,部门,人,相关的软件系统或硬件设备。

数据流表示数据沿箭头方向的流动。数据流可表示这些加工之间被传送的有名数据,也可表示在数据存储和加工之间传送的未命名数据,这些数据流虽然没有命名,但因其所链接的是有名加工和有名数据存储,因此其含义也是清楚的。

加工是对数据对象的处理或变换,加工的名字是动词短语,以代表所完成的加工。一个加工可能须要多个数据流,也可能产生多个数据流

数据存储在数据流图中起保存数据的做用,能够是数据库文件或任何形式的数据组织。从数据存储中引出的数据流可理解为从数据存储中读取数据或获得查询结果,指向数据存储的数据流可理解为向数据存储中写入数据

 

环境图也称为顶层数据流图(或0层数据流图),它仅包括一个数据处理过程(加工),也就是要开发的目标系统,(就是目标系统,输入输出,实体部分)。

 

数据流图的分层是为了解决图上过多的加工引发的不直观,若是咱们的加工很少,那么分层也没有必要了。        

 

数据建模

区分数据对象和数据对象的实例

1.数据对象

数据对象是目标系统所须要的复合信息的表示。所谓复合信息是具备若干不一样属性的信息。

在ER图中用矩形表示数据对象。与面向对象方法不一样的是,此处数据对象只封装了数据,没有包含做用于这些数据上的操做。

 

2.属性

属性定义数据对象的特征。在ER图中用椭圆或圆角矩形来表示属性,并用无向边将属性与相关的数据对象链接起来。

 

3.关系

不一样数据对象的实例之间是有关联联系的。在ER图上用无向边表示,在无向边上能够代表关系的名字,也能够不标名字。但在

无向边的两边应标识出关联实例的数量,也称为关联的多重性。从关联数量的角度,能够将实例的关联分为三种:

一对一    系和系主任  大学和大学校长

一对多   学生班和班干部  

多对多   学生和课程    一个学生能够选多门课程  一门课程能够被多名学生选

一条无向边的两端该用什么记号,应当分别看一端的实例到另外一端的实例的数量对应关系

 

行为建模

 

在需求分析过程当中应当创建起软件的行为模型。状态转换图经过描绘系统的状态及引发系统状态转换的事件来表示系统的行为。

1.状态

状态是任何能够被观察到的系统行为模式,一个状态表明系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,

既能够是作一个或一系列动做,也能够仅仅改变系统自己的状态,还能够是既改变状态又作动做

 

状态图中定义的状态可能有初态,终态,中间态。

初态用实心圆表示,终态用牛眼图表示,中间态用圆角矩形表示。

一张状态图中只能有一个初态,而终态能够有多个或没有。

 

中间态可能包含三个部分,第一部分为状态的名称,第二部分为状态变量的名字和值,第三部分是活动表。

二,三部分可选。

活动部分的语法以下:

事件名(参数表)/动做表达式

 

2.状态转换

状态图中两个状态之间带箭头的连线称为状态转换

状态的变迁一般是由事件触发的,在这种状况下应该在表示状态转换的箭头线上标出触发转换的事件表达式。

                     若是在箭头线上未标明事件,则表示在源状态的内部活动执行完以后自动触发转换。

 

3.事件

事件是某个特定时刻发生的事情,他是对系统从一个状态转换到另外一个状态的外界事件的抽象。

事件表达式的语法以下:

事件说明[守卫条件]/动做表达式

事件说明的语法以下:

事件名(参数表)

 

守卫条件是一个布尔表达式。若是同时使用守卫条件和事件说明,则当且仅当事件发生且布尔表达式成立时,状态转换才发生。

若是只有守卫条件没有时间说明,则只要守卫条件为真,状态转换就发生。

 

动做表达式是一个过程表达式,当状态转换开始时执行该表达式

 

数据字典

数据字典以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准肯定义,包括

数据流、加工、数据文件、数据元素、以及数据源点和数据汇点等。

数据字典成为把3种分析模型粘合在一块儿的粘合剂,是分析模型的核心。

数据字典精确地,严格地定义了每个与系统相关的数据元素,并以字典顺序将他们组织起来,

使得用户和分析员对全部的输入、输出、存储成分和中间计算有共同的理解。

 

1.词条描述

对于在数据流图中每一个被命名的图形元素加以定义,其内容包括图形元素的名字,图形元素的别名或编号,

图形元素类别(如加工,数据流,数据文件,数据元素,数据源点或数据汇点)

描述,定义,位置等。

1.1 数据流词条

  数据流是数据结构在系统内传播的路径。一个数据流词条应有如下几项内容:

  数据流名:要求与数据流图中该图形元素的名字一致

  简述:简要介绍它产生的结果与缘由。

  组成:数据流的数据结构

  来源:数据流来自哪一个加工或做为哪一个数据源的外部实体

  去向:

  流通量:单位时间数据的流通量

  峰值:;流通量的极端值

1.2数据元素词条

  数据流图中每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的不可分割的单位,他直接反映事物的某一特征。

组成数据结构的这些数据元素必须在数据字典中给出描述。其描述须要如下信息。

  类型:数据元素分为数字型与文字型。

      数据型又分为离散值和连续值

      文字类型用编码类型和长度区分

  取值范围:

      离散值是取值或枚举,或是介于上下界的一组数

      连续值通常是有取值范围的实数集

      对于文字型,文字的取值须要加以定义

1.3数据存储文件词条

  数据存储文件是数据保存的地方。

 文件名:要求与数据流图中该图形元素的名字一致

 简述:简要介绍存放的是什么数据

 组成:文件的数据结构

   输入:从哪些加工获取数据

 输出:由哪些加工使用数据

  存取方式:分为,顺序,直接,关键码等不一样存取方式

  存取频率:单位时间的存取次数

1.4加工词条

  加工可使用诸如断定表、断定树和结构化语言等形式表达。

加工名:要求与数据流图中该图形元素的名字一致

编号:用以反映该加工的层次和“亲子”关系

简述:加工逻辑及功能简述

输入:加工的输入数据流

输出:加工的输出数据流

加工逻辑:简述加工程序、加工顺序。

 

1.5数据源点及数据汇点词条

数据源点和汇点应当比较少

名称:要求与数据流图中该外部实体的名字一致

简述:简要描述是什么外部实体

有关数据流:该实体与系统交互时涉及哪些数据流。

数目:该实体与系统交互的次数。

 

2.数据结构描述

2.1定义式

2.2Warnier图

 

3.2加工规格说明

在对数据流图的分解中,位于层次树最底层的加工,也称为基本加工或子加工,对于每个基本加工都须要进一步说明

这称为加工规格说明

 

在需求分析阶段,能够直接写出基本加工的程序逻辑,即其处理的规则。若是每个基本加工的详细逻辑功能都已写出

再自底向上综合,就能完成所有加工。

 

在编写基本加工的规格说明时,主要目的是表达“作什么”,而不是“怎样作”。所以它应知足以下要求

对数据流图的每个基本加工,必须有一个加工规格说明;

加工规格说明必须描述基本加工如何把输入数据流变换成输出数据流,即加工规则

加工规格说明必须描述实现加工的策略而不是实现加工的细节

加工规格说明中包含的信息应是充足的、完备的、有用的、没有重复的多余信息。

 

使用伪代码来描述加工规格说明的工做应该推迟到详细设计阶段进行。

 

3.2.1

  决策表

3.2.2

  决策树

 

软件需求规格说明(GB/T 8567-2006《计算机软件文档编制规范》)

1.软件需求规格说明

一些项目:

1.引言

  软件标识号,标题,版本号

  ...

3.需求

  软件配置项的运行状态和运行方式

  需求概述

    目标

    软件开发意图,目标和范围

    主要功能,处理流程,数据流程

    外部接口和数据流的高层次说明

    运行环境

    用户类型和特色

    关键点

  需求详细说明

    软件功能整体结构/对象功能

    软件子系统功能/对象结构

    (结构图、流程图、对象图)

  软件配置项的外部接口需求

    用户接口

    硬件接口

    软件接口

    通讯接口需求

  每一接口的需求

    接口优先级

    接口类型

    接口传送单个数据元素的特性

    接口传送数据元素集合的特性

    接口使用通讯方法的特性

    接口使用协议的特性

    接口实体的物理兼容性

   计算机资源需求

    硬件需求

    软件需求

    通讯需求

  故障处理

    说明属于软件系统的问题

    发生错误时的错误信息

    发生错误时可能采起的补救措施

2.数据需求说明

  描述了再整个开发过程当中所需处理的数据,以及采集数据的要求等。

 静态数据

 动态输入数据

 动态输出数据

 内部生成数据

 数据约定(容量,文件,记录和数据元素个数的最大值)

 数据的采集

    要求和范围

    输入数据的来源

    输入数据所用的媒体和硬设备

    输出数据的接受者

    输出数据的形式和硬设备

    数据值的范围

    量纲

    更新和处理的频度

 预处理

 影响

 

正式需求评审所关心的一些因素

 

1.功能:是否清楚、明确地描述了全部的功能

2.性能:是否精确描述了全部性能需求和可容忍的性能下降程度

3.接口:是否清楚地定义了全部的外部接口和内部接口

4.数据:是否认义了系统全部的输入输出,合法性检查,异常数据结果的描述

5.硬件:内存需求和存储需求的极端值

6.软件:是否指定了须要的软件环境和硬件系统

7.通讯:是否指定了目标网络和必需的网络协议

 

 

 

 

 

 

 

 

 

结构化设计

 模块结构及表示

1.模块

一个软件系统一般由不少模块组成,结构化程序设计中的函数和子程序均可称为模块,它是程序语句按逻辑关系创建起来的组合体。

模块用矩形框表示,并用模块的名字标记它。

模块能够按照在软件系统中的功能划分为四种类型

1.1传入模块

  传入模块的功能是去的数据或输入数据,通过某些处理,再将其传送给其余模块。

  它传送的数据流A叫作逻辑输入数据流,数据A可能来自外部,也可能来自系统的其余模块

1.2传出模块

  传出模块的功能是输出数据,在输出以前可能进行某些处理,数据可能输出到系统的外部,也可能

会输出到其余模块进行下一步处理,但最终的目标是输出到系统的外部

1.3变换模块

  变换模块也叫加工模块,他从上级调用模块取得数据,进行特定的处理转换成其余形式,再将加工结果返回给调用模块。

1.4协调模块

  协调模块通常自己不对数据进行加工,

2.模块结构

  2.1树状结构

·   2.2网状结构

3.结构图

  结构图是准确表达模块结构的图形表示工具。它做为软件设计文档的一部分,清楚地反映出软件模块之间的层次调用关系和联系。

它不只严格地定义了各个模块的名字、功能和接口,并且还集中地反应了设计思想。

 

3.1模块的调用关系和接口

  在结构图中,两个模块之间用单向箭头联结。箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块

  但其中隐含了一层意思,就是被调用模块执行完成以后,控制又返回了控制模块。

注意,有些结构图中模块间的调用关系将箭头简单地画为连线,这时只要调用与被调用模块的上下位置保持就是容许的。

 

3.2模块间的信息传递

  当一个模块调用另外一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块可以运行

而被调用模块在执行过程当中又把它产生的数据或控制信息回送给调用模块。

  为了表示在模块之间传递的数据或控制信息,在联结模块的箭头旁边给出短箭头,而且用尾端有空心圆的短箭头表示数据信息,

  用尾端有实心圆的短箭头表示控制信息。

一般在短箭头附近应注有信息的名字。、

 

3.3两个辅助符号

  当模块A有条件地调用另一个模块B时,在模块A的箭头尾部标一个菱形符号。

当一个模块A反复地调用模块C和模块D时,在调用箭头尾部则标以一个弧形符号。

这两个符号的条件一般无需注明

 

3.4结构图的形态特征

  模块间的连线:模块之间的调用箭头也可用没有箭头方向的直线表示

          在用直线表示时,用模块所处的位置表示他们之间的调用关系,位于上方的模块调用位于下方的模块。

  深度、宽度、模块的扇入扇出。

4数据结构及表示

  数据结构是数据的各个元素之间逻辑关系的一种表示

  数据结构设计应肯定数据的组织、存取方式、相关程度以及信息的不一样处理方法。

  标量是全部数据结构中最简单的一种。所谓标量项就是单个的数据元素,例如一个布尔量,一个整数、实数...。

  若将多个标量按某种前后顺序组织在一块儿时,就造成了线性结构。

  能够用链表或顺序向量(又称为一维数组)来存储线性结构的数据。

  把顺序向量能够扩展到n维向量空间。

组合上述基本数据结构能够构成其余数据结构。

 

 

体系结构设计

 

基于数据流方法的设计过程

1.复查并精化数据流图

2.肯定数据流图中数据流的类型,典型的数据流类型有变换型数据流和事务型数据流,数据流类型决定了映射方法。

3.导出初始的软件结构图

4.逐级分解

5.精化软件结构

6.导出接口描述和全局数据结构:对每个模块,给出进出该模块的信息,即该模块的接口描述

相关文章
相关标签/搜索