第3章软件需求获取与结构化分析方法_第1页
第3章软件需求获取与结构化分析方法_第2页
第3章软件需求获取与结构化分析方法_第3页
第3章软件需求获取与结构化分析方法_第4页
第3章软件需求获取与结构化分析方法_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 软件需求获取与结构化分析方法 需求获取与需求分析阶段的任务需求获取与需求分析阶段的任务 结构化分析方法结构化分析方法 系统需求规格说明系统需求规格说明 需求评审需求评审 需求管理需求管理3.1 需求获取与需求分析阶段的任务 需求获取的任务和原则需求获取的任务和原则 需求获取的过程需求获取的过程 软件需求分析阶段的任务软件需求分析阶段的任务需求获取的任务和原则需求获取的任务和原则 需求获取的主要任务是与客户或用户需求获取的主要任务是与客户或用户沟通沟通,了解,了解系统或产品的目标是什么?客户或用户想要实现系统或产品的目标是什么?客户或用户想要实现什么?系统和产品如何满足业务的要求,最终系

2、什么?系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作?统或产品如何用于日常工作? 获取并理解用户的需求是软件工程师所面对的获取并理解用户的需求是软件工程师所面对的最最困难困难的任务之一的任务之一。 需求获取的任务和原则需求获取的任务和原则 导出需求变得如此困难的原因归为以下几导出需求变得如此困难的原因归为以下几个方面的问题:个方面的问题:系统的目标或范围问题;系统的目标或范围问题;需求不准确性问题需求不准确性问题 ;需求的易变问题需求的易变问题 ; 需求获取除了需要有专业的系统分析师,还需要需求获取除了需要有专业的系统分析师,还需要通过有效的通过有效的客户开发者的合作客户开发者的

3、合作才能成功。才能成功。 需求获取的任务和原则需求获取的任务和原则1. 需求获取的任务需求获取的任务(1) (1) 发现和分析问题发现和分析问题,并分析问题的原因,并分析问题的原因/ /结果关结果关系。系。(2) (2) 与用户进行各种方式的交流,并使用调查研究与用户进行各种方式的交流,并使用调查研究方法方法收集信息收集信息。(3) (3) 按照三个成分观察问题的不同侧面:即按照三个成分观察问题的不同侧面:即数据、数据、过程和接口过程和接口。(4) (4) 将获取的需求将获取的需求文档化文档化,形式有,形式有用例、决策表、用例、决策表、需求表需求表等。等。需求获取的任务和原则需求获取的任务和原

4、则2. 需求获取应遵循的原则需求获取应遵循的原则(1) (1) 深入浅出的原则深入浅出的原则。就是说,需求获取要尽可能。就是说,需求获取要尽可能全面、细致。获取的全面、细致。获取的需求是个全集需求是个全集,目标系统真,目标系统真正正实现的是个子集实现的是个子集。(2) (2) 以流程为主线的原则以流程为主线的原则。在与用户交流的过程中,。在与用户交流的过程中,应该应该用流程将所有的内容串起来用流程将所有的内容串起来。如信息、组织。如信息、组织结构、处理规则等。这样便于交流沟通。流程的结构、处理规则等。这样便于交流沟通。流程的描述既有宏观描述,也有微观描述。描述既有宏观描述,也有微观描述。软件需

5、求分析阶段的任务软件需求分析阶段的任务 可以把软件需求分析阶段的工作分为可以把软件需求分析阶段的工作分为4 4个步骤,即个步骤,即获取需求获取需求、分析需求分析需求、定义需求定义需求和和验证需求验证需求,如,如图所示。图所示。 软件需求分析阶段的工作步骤软件需求分析阶段的工作步骤 软件需求分析阶段的任务软件需求分析阶段的任务1. 需求获取需求获取 通过启发、引导从客户(或用户)那里得到的原始通过启发、引导从客户(或用户)那里得到的原始需求是他们的业务要求(需求是他们的业务要求(needs),简称为),简称为N。 这是分析之前获取的需求,其中可能存在一些实际这是分析之前获取的需求,其中可能存在一

6、些实际问题,这些问题只有通过分析才能得到解决,直接问题,这些问题只有通过分析才能得到解决,直接把获取的需求作为软件设计阶段的依据将会导致严把获取的需求作为软件设计阶段的依据将会导致严重的后果。重的后果。 软件需求分析阶段的任务软件需求分析阶段的任务2. 需求分析需求分析 认真研究获取的需求,必须考虑以下几方面:认真研究获取的需求,必须考虑以下几方面: (1) 完整性完整性:每项获取的需求都应给出清楚的描述,:每项获取的需求都应给出清楚的描述,使得软件开发工作能够取得设计和实现该功能所使得软件开发工作能够取得设计和实现该功能所需要的全部必要信息。需要的全部必要信息。 (2) 正确性正确性:获取的

7、每项需求必须是准确无误的,:获取的每项需求必须是准确无误的,并且需求描述无歧义性。并且需求描述无歧义性。 (3) 合理性合理性:各项需求之间、软件需求与系统需求:各项需求之间、软件需求与系统需求之间应是协调一致的,不应存在矛盾和冲突。之间应是协调一致的,不应存在矛盾和冲突。 软件需求分析阶段的任务软件需求分析阶段的任务2. 需求分析需求分析 (4) 可行性可行性:包括技术可行性:包括技术可行性 、经济可行性、经济可行性 、社、社会可行性会可行性 。 (5) 充分性充分性:获取的需求是否全面、周到。:获取的需求是否全面、周到。 软件需求分析阶段的任务软件需求分析阶段的任务2. 需求分析需求分析

8、由于分析的过程会对获取的需求做部分调整,也即由于分析的过程会对获取的需求做部分调整,也即从获取的需求从获取的需求N中去掉了一些中去掉了一些a,又补充了一些,又补充了一些c,从而得到的是分析的需求从而得到的是分析的需求R1(b+c)。)。 软件需求分析阶段的任务软件需求分析阶段的任务3. 需求定义需求定义 将已经过分析的需求清晰、全面、系统、准确地将已经过分析的需求清晰、全面、系统、准确地描述成为正式的文档,这一步定义需求的工作就描述成为正式的文档,这一步定义需求的工作就是编写需求规格说明。是编写需求规格说明。 软件需求分析阶段的任务软件需求分析阶段的任务4. 需求验证需求验证 为了确保已定义的

9、需求(需求规格说明)准确无为了确保已定义的需求(需求规格说明)准确无误,并能为客户(或用户)理解和接受,需要对误,并能为客户(或用户)理解和接受,需要对其进行严格的评审。其进行严格的评审。 需求获取的过程需求获取的过程1. 开发高层的业务模型开发高层的业务模型2. 定义项目范围和高层需求定义项目范围和高层需求3. 识别用户类和用户代表识别用户类和用户代表系统的不同用户之间在很多方面存在差异,例如:系统的不同用户之间在很多方面存在差异,例如:(1) (1) 使用产品的频率;使用产品的频率;(2) (2) 用户在应用领域的经验和使用计算机系统的技用户在应用领域的经验和使用计算机系统的技能;能;(3

10、) (3) 所用到的产品功能;所用到的产品功能;(4) (4) 为支持业务过程所进行的工作;为支持业务过程所进行的工作;(5) (5) 访问权限和安全级别访问权限和安全级别 需求获取的过程需求获取的过程4. 获取具体的需求获取具体的需求 确定了项目范围和高层需求,并确定了用户类及用户代表确定了项目范围和高层需求,并确定了用户类及用户代表后,就需要获取更具体、完整和详细的需求。具体需求的后,就需要获取更具体、完整和详细的需求。具体需求的来源可以来自以下几种典型的来源可以来自以下几种典型的途径途径。 (1) (1) 与用户进行交流。与用户进行交流。 (2) (2) 现有产品或竞争产品的描述文档。现

11、有产品或竞争产品的描述文档。 (3) (3) 系统需求规格说明。系统需求规格说明。 (4) (4) 当前系统的问题报告和改进要求。当前系统的问题报告和改进要求。 (5) (5) 市场调查和用户问卷调查。市场调查和用户问卷调查。 (6) (6) 观察用户如何工作。观察用户如何工作。 需求获取的过程需求获取的过程5. 确定目标系统的业务工作流确定目标系统的业务工作流 具体到当前待开发的应用系统,确定系统的业务工作流和具体到当前待开发的应用系统,确定系统的业务工作流和主要的业务规则,采取需求调研的方法获取所需的信息。主要的业务规则,采取需求调研的方法获取所需的信息。例如,针对信息系统的需求调研方法如

12、下:例如,针对信息系统的需求调研方法如下: (1) (1) 调研用户的组织结构、岗位设置、职责定义,从功能调研用户的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统上区分有多少个子系统,划分系统的大致范围,明确系统的目标。的目标。 (2) (2) 调研每个子系统的工作流程、功能与处理规则,收集调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。者的关系。 (3) (3) 对调研内容事先准备,针对不同管理层次的用户询问对调研内容事先准备,针对不同管理层次的

13、用户询问不同的问题,列出问题清单。将操作层、管理层、决策层不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。的需求既联系又区分开来,形成一个需求的层次。 需求获取的过程需求获取的过程6. 需求整理与总结需求整理与总结必须对上面步骤取得的需求资料进行整理和总结,必须对上面步骤取得的需求资料进行整理和总结,确定对软件系统的综合要求,即软件的需求。确定对软件系统的综合要求,即软件的需求。并提出这些需求实现条件,以及需求应达到的标并提出这些需求实现条件,以及需求应达到的标准。准。这些需求包括功能需求、性能需求、环境需求、这些需求包括功能需求、性能需求、环境需

14、求、可靠性需求、安全保密要求、用户界面需求、资可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等。源使用需求、软件成本消耗与开发进度需求等。3.2 结构化分析方法 结构化分析方法结构化分析方法传统的分析建模方法称为结构化分析传统的分析建模方法称为结构化分析(structured analysis,SA)方法。)方法。最有代表性的是一种面向数据流进行需求分析的最有代表性的是一种面向数据流进行需求分析的方法,最初于方法,最初于20世纪世纪70年代由年代由D.Ross提出,后提出,后来又经过扩充,形成了今天的结构化分析方法的来又经过扩充,形成了今天的结构化分析方法的框

15、架。框架。 3.2 结构化分析方法 结构化分析模型结构化分析模型 结构化分析方法是一种建模技术,它建立的分析结构化分析方法是一种建模技术,它建立的分析模型如图所示。模型如图所示。3.2.1 功能建模 概念概念 功能建模的思想就是用抽象模型的概念,按照软功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件解,直到找到满足功能要求的所有可实现的软件为止。功能模型用为止。功能模型用数据流图数据流图来描述。来描述。3.2.1 功能建模 数据流图的基本图形符号数据流图的基本图形符号 或 加

16、工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 或 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数据源或数据汇点的名字。 或 数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名词或名词性短语命名。 3.2.1 功能建模 多个数据流之间的关系多个数据流之间的关系 3.2.1 功能建模 环境图环境图环境图(环境图(context diagram)也称为)也称为顶层数据流顶层数据流图图(或(或0层数据流图层数据流图),它仅包括一个数据处理),它仅包括一个数据处理过程,也就是要开发的目标系统

17、。过程,也就是要开发的目标系统。环境图的作用是确定系统在其环境中的位置,通环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定过确定系统的输入和输出与外部实体的关系确定其边界。其边界。3.2.1 功能建模 典型的环境图典型的环境图3.2.1 功能建模 招生系统需求描述招生系统需求描述学校首先公布招生条件,考生根据自己的条件报学校首先公布招生条件,考生根据自己的条件报名,之后系统进行资格审查,并给出资格审查信名,之后系统进行资格审查,并给出资格审查信息;息;对于资格审查合格的考生可以参加答卷,系统根对于资格审查合格的考生可以参加答卷,系统根据学校提供的试题及答案进

18、行自动判卷,并给出据学校提供的试题及答案进行自动判卷,并给出分数及答题信息,供考生查询;分数及答题信息,供考生查询;最后系统根据学校的录取分数线进行录取,并将最后系统根据学校的录取分数线进行录取,并将录取信息发送给考生。录取信息发送给考生。 3.2.1 功能建模 招生系统的环境图招生系统的环境图 3.2.1 功能建模 数据流图的分层数据流图的分层对于稍微复杂一些的实际问题,在数据流图上常对于稍微复杂一些的实际问题,在数据流图上常常出现十几个甚至几十个加工,这样的数据流图常出现十几个甚至几十个加工,这样的数据流图看起来不直观,不易理解,分层的数据流图能很看起来不直观,不易理解,分层的数据流图能很

19、好地解决这一问题。好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。易理解整个系统。 3.2.1 功能建模 招生系统的分层数据流图招生系统的分层数据流图 3.2.1 功能建模 数据流图的分层示意图数据流图的分层示意图 3.2.1 功能建模 实例研究实例研究 银行储蓄系统的业务流程:银行储蓄系统的业务流程:储户填写的存款单或取款单由业务员键入系统;储户填写的存款单或取款单由业务员键入系统;如果是存款则系统记录存款人姓名、住址(或电话如果是存款则系

20、统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期号码)、身份证号码、存款类型、存款日期、到期日期、利率、密码(可选)等信息,并印出存单给日期、利率、密码(可选)等信息,并印出存单给储户;储户;如果是取款而且开户时留有密码,则系统首先核对如果是取款而且开户时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。计算利息并印出利息清单给储户。要求画出分层的数据流图,并细化到要求画出分层的数据流图,并细化到2层数据流图。层数据流图。3.2.1 功能建模 (1) 识别外部实体及输入输出数据

21、流。识别外部实体及输入输出数据流。外部实体外部实体:储户、业务员。:储户、业务员。输入数据输入数据:如果需要储户输入密码,储户才直接:如果需要储户输入密码,储户才直接与系统进行交互。储户填写的存款或取款信息通与系统进行交互。储户填写的存款或取款信息通过业务员键入系统,可以将存款及取款信息抽象过业务员键入系统,可以将存款及取款信息抽象为事务。为事务。输出数据输出数据:存款单,利息清单。:存款单,利息清单。 3.2.1 功能建模 (2) 画出环境图(顶层数据流图)画出环境图(顶层数据流图) 业务 员 银行储蓄 系统 事务 存款单 储 户 利息清单 储 户 密码 3.2.1 功能建模 (3) 画出一

22、层数据流图画出一层数据流图 3.2.1 功能建模 (4) 画出二层数据流图画出二层数据流图 对一层图中的对一层图中的“处理存款处理存款”及及“处理取款处理取款”进行进行进一步分解,得到二层数据流图,即进一步分解,得到二层数据流图,即处理存款的处理存款的数据流图数据流图和和处理取款的数据流图处理取款的数据流图。 存款业务 2.1 记录存款 信息 2.2 打印存款单 存款信息 存款单 存款信息 处理存款的数据流图处理存款的数据流图3.2.1 功能建模 (4) 画出二层数据流图画出二层数据流图处理取款的数据流图处理取款的数据流图练习:完成下列需求功能建模 机票预定系统简要需求机票预定系统简要需求 各

23、个旅行社旅行社把预定机票的旅客信息旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入输入到系统中,系统为旅客安安排排航班。 当旅客交付了交付了预订金预订金后,系统打印打印出取票通知取票通知和帐单帐单给旅客。 旅客在飞机起飞前一天凭取票通知和帐单交款取票交款取票,系统核对无误即打印打印出机票机票给旅客。 此外航空公司为随时掌握各个航班飞机的乘载情况乘载情况,需要定期进行查询统计查询统计,以便适当调整。3.2.2 数据建模 在结构化分析方法中,使用实体在结构化分析方法中,使用实体关系建模技术关系建模技术来建立数据模型。来建立数据模型。 这种技

24、术是在较高的抽象层次(概念层)上对数这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。据库结构进行建模的流行技术。 实体实体关系模型表示为可视化的实体关系模型表示为可视化的实体关系图关系图(entity-relationship diagramentity-relationship diagram,ERDERD),也称),也称为为ERER图。图。 ERER图中仅包含图中仅包含3 3种相互关联的元素:种相互关联的元素:数据对象数据对象(实(实体)、描述数据对象的体)、描述数据对象的属性属性及数据对象彼此间相及数据对象彼此间相互连接的互连接的关系关系。 3.2.2 数据建模 数

25、据对象数据对象数据对象是目标系统所需要的复合信息的表示,数据对象是目标系统所需要的复合信息的表示,所谓复合信息是具有若干不同属性的信息。在所谓复合信息是具有若干不同属性的信息。在ERER图中用矩形表示数据对象。图中用矩形表示数据对象。在实际问题中,数据对象(实体)可以是外部实在实际问题中,数据对象(实体)可以是外部实体、事物、角色、行为或事件、组织单位、地点体、事物、角色、行为或事件、组织单位、地点或结构等。或结构等。 3.2.2 数据建模 属性属性属性定义数据对象的特征,如数据对象属性定义数据对象的特征,如数据对象学生学生的学号、姓名、的学号、姓名、性别、专业等,性别、专业等,课程课程的课程

26、编号、课程名称、学分等。的课程编号、课程名称、学分等。在在ERER图中用椭圆或圆角矩形表示属性,并用无向边将属性图中用椭圆或圆角矩形表示属性,并用无向边将属性与相关的数据对象连接在一起。与相关的数据对象连接在一起。 3.2.2 数据建模 关系关系不同数据对象的实例之间是有关联关系的,在不同数据对象的实例之间是有关联关系的,在ERER图上用图上用无向边无向边表示。表示。 在无向边的两端应标识出关联实例的数量,也称在无向边的两端应标识出关联实例的数量,也称为关联的为关联的重数重数。从关联重数的角度可以将关联分为种。从关联重数的角度可以将关联分为种。(1) (1) 一对一(一对一(1:11:1)关联

27、)关联(2) (2) 一对多(一对多(1:m1:m)关联)关联(3) (3) 多对多(多对多(m:nm:n)关联)关联实例关联还有实例关联还有“必须必须”和和“可选可选”之分。之分。 3.2.2 数据建模 关联数量的表示关联数量的表示在在ERER图中用圆圈表示所关联的实例是可选的,隐含图中用圆圈表示所关联的实例是可选的,隐含表示表示“0 0”,没有出现圆圈就意味着是必须的。出现,没有出现圆圈就意味着是必须的。出现在连线上的短竖线可以看成是在连线上的短竖线可以看成是“1 1”。 3.2.2 数据建模 关联关系举例关联关系举例3.2.2 数据建模 关系的属性关系的属性关系本身也可能有属性,这在多对

28、多的关系中尤关系本身也可能有属性,这在多对多的关系中尤其常见,如学生和课程之间的关系可起名为其常见,如学生和课程之间的关系可起名为“选选课课”,其,其属性属性应该有应该有学期学期、成绩成绩等。等。关系属性的表示关系属性的表示:在表示关系的无向边上再加一:在表示关系的无向边上再加一个菱形框,并在菱形框中标明关系的名字,关系个菱形框,并在菱形框中标明关系的名字,关系的属性同样用椭圆形或圆角矩形表示,并用无向的属性同样用椭圆形或圆角矩形表示,并用无向边将关系与其属性连接起来。边将关系与其属性连接起来。 3.2.2 数据建模 关系的属性关系的属性3.2.2 数据建模 银行储银行储蓄系统蓄系统的的ERE

29、R图图3.2.3 行为建模 状态转换图(简称状态图)通过描绘系统的状态状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。及引起系统状态转换的事件,来表示系统的行为。状态图中使用的主要符号如图所示。状态图中使用的主要符号如图所示。3.2.3 行为建模 状态状态状态是任何可以被观察到的系统行为模式,一个状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式,状态规定了系统状态代表系统的一种行为模式,状态规定了系统对事件的响应方式。对事件的响应方式。 状态可能有:状态可能有:初态初态(初始状态)、(初始状态)、终态终态(最终状(最终状态)和态)和中间

30、态中间态。在一张状态图中只能有一个初态,而终态则可以在一张状态图中只能有一个初态,而终态则可以有多个,也可以没有。有多个,也可以没有。 3.2.3 行为建模 状态的表示:状态的表示:初态用初态用实心圆实心圆表示,终态用表示,终态用牛眼牛眼图形图形表示,中间态用表示,中间态用圆角矩形圆角矩形表示。表示。3.2.3 行为建模 状态转换状态转换状态图中两个状态之间带箭头的连线称为状态转状态图中两个状态之间带箭头的连线称为状态转换。换。 状态的变迁通常是由事件触发的,在这种情况下状态的变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事应在表示状态转换的箭头线上标出触发转换的

31、事件表达式。件表达式。如果在箭头线上未标明事件,则表示在源状态的如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。内部活动执行完之后自动触发转换。 3.2.3 行为建模 状态转换状态转换下图为计算机应用软件的启动过程,在这个过程下图为计算机应用软件的启动过程,在这个过程中没有外部事件触发,每个状态下的活动完成时,中没有外部事件触发,每个状态下的活动完成时,状态发生转换。状态发生转换。 3.2.3 行为建模 事件事件事件是在某个特定时刻发生的事情,它是对引起系统做动作事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外部事件的抽象。事件表或

32、从一个状态转换到另一个状态的外部事件的抽象。事件表达式的语法如下:达式的语法如下: 事件说明(守卫条件)事件说明(守卫条件)/ /动作表达式动作表达式(1) (1) 事件说明事件说明的语法如下:的语法如下: 事件名(参数表)事件名(参数表)(2) (2) 守卫条件守卫条件是一个布尔表达式。如果同时使用守卫条件和事是一个布尔表达式。如果同时使用守卫条件和事件说明,则当且仅当事件发生且布尔表达式成立时,状态转件说明,则当且仅当事件发生且布尔表达式成立时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真,状态转换就发生。件为真,状态

33、转换就发生。(3) (3) 动作表达式动作表达式是一个过程表达式,当状态转换开始时执行该是一个过程表达式,当状态转换开始时执行该表达式。表达式。3.2.3 行为建模 存款过程的状态图存款过程的状态图( (考虑新开户考虑新开户 ) )3.2.3 行为建模 取款过程的状态图取款过程的状态图3.2.4 数据字典 数据字典以词条方式定义在数据模型、功能模型数据字典以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、加工、数据给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据源点、数据汇

34、点等。文件、数据元素,以及数据源点、数据汇点等。 数据字典成为把数据字典成为把3 3种分析模型黏合在一起的种分析模型黏合在一起的“黏合黏合剂剂”,是分析模型的,是分析模型的“核心核心”。 3.2.4 数据字典 词条描述词条描述对于在数据流图中每一个被命名的图形元素均加对于在数据流图中每一个被命名的图形元素均加以定义;以定义;其内容包括图形元素的名字,图形元素的别名或其内容包括图形元素的名字,图形元素的别名或编号,图形元素类别(如加工、数据流、数据文编号,图形元素类别(如加工、数据流、数据文件、数据元素、数据源点或数据汇点等)、描述、件、数据元素、数据源点或数据汇点等)、描述、定义、位置等。定义

35、、位置等。 3.2.4 数据字典 数据流词条数据流词条数据流是数据结构在系统内传播的路径,数据流词数据流是数据结构在系统内传播的路径,数据流词条应包括以下几项内容。条应包括以下几项内容。数据流名:要求与数据流图中该图形元素的名字一致。数据流名:要求与数据流图中该图形元素的名字一致。简述:简要介绍它产生的原因和结果。简述:简要介绍它产生的原因和结果。组成:数据流的数据结构。组成:数据流的数据结构。来源:数据流来自哪个加工或作为哪个数据源的外部实体。来源:数据流来自哪个加工或作为哪个数据源的外部实体。去向:数据流流向哪个加工或作为哪个数据汇点的外部实体。去向:数据流流向哪个加工或作为哪个数据汇点的

36、外部实体。流通量:单位时间数据的流通量。流通量:单位时间数据的流通量。峰值:流通量的极限值。峰值:流通量的极限值。3.2.4 数据字典 数据元素词条数据元素词条数据流图中的每个数据结构都是由数据元素构成的,数据数据流图中的每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征。事物的某一特征。 类型:数据元素分为数字型与文字型。数字型又分为离类型:数据元素分为数字型与文字型。数字型又分为离散值和连续值,文字的类型用编码类型和长度区分。散值和连续值,文字的类型用编码类型和长度区分。 取值范围:离散值

37、的取值或是枚举的(如取值范围:离散值的取值或是枚举的(如3 3,1717,2121),),或是介于上下界的一组数(如或是介于上下界的一组数(如2.1002.100);连续值一般是有);连续值一般是有取值范围的实数集(如取值范围的实数集(如0.0.100.00.0.100.0)。对于文字型,文字)。对于文字型,文字的取值需加以定义。的取值需加以定义。 相关的数据元素及数据结构。相关的数据元素及数据结构。 3.2.4 数据字典 数据存储文件词条数据存储文件词条数据存储文件是数据保存的地方。一个数据存储文件词条数据存储文件是数据保存的地方。一个数据存储文件词条应有以下几项内容。应有以下几项内容。 文

38、件名:要求与数据流图中该图形元素的名字一致。文件名:要求与数据流图中该图形元素的名字一致。 简述:简要介绍存放的是什么数据。简述:简要介绍存放的是什么数据。 组成:文件的数据结构。组成:文件的数据结构。 输入:从哪些加工获取数据。输入:从哪些加工获取数据。 输出:由哪些加工使用数据。输出:由哪些加工使用数据。 存取方式:分为顺序、直接、关键码等不同存取方式。存取方式:分为顺序、直接、关键码等不同存取方式。 存取频率:单位时间的存取次数。存取频率:单位时间的存取次数。3.2.4 数据字典 加工词条加工词条加工可以使用诸如判定表、判定树、结构化语言加工可以使用诸如判定表、判定树、结构化语言等形式表

39、达,主要描述如下。等形式表达,主要描述如下。 加工名:要求与数据流图中该图形元素的名字一致。加工名:要求与数据流图中该图形元素的名字一致。 编号:用以反映该加工的层次和父子关系。编号:用以反映该加工的层次和父子关系。 简述:加工逻辑及功能简述。简述:加工逻辑及功能简述。 输入:加工的输入数据流。输入:加工的输入数据流。 输出:加工的输出数据流。输出:加工的输出数据流。 加工逻辑:简述加工程序和加工顺序。加工逻辑:简述加工程序和加工顺序。3.2.4 数据字典 数据源点及数据汇点词条数据源点及数据汇点词条对于一个数据处理系统来说,数据源点和数据汇对于一个数据处理系统来说,数据源点和数据汇点应比较少

40、。点应比较少。 名称:要求与数据流图中该外部实体的名字一致。名称:要求与数据流图中该外部实体的名字一致。 简述:简要描述是什么外部实体。简述:简要描述是什么外部实体。 有关数据流:该实体与系统交互时涉及哪些数据流。有关数据流:该实体与系统交互时涉及哪些数据流。 数目:该实体与系统交互的次数。数目:该实体与系统交互的次数。3.2.4 数据字典数据结构描述数据结构描述在数据字典的编制中,分析员最常用的描述数在数据字典的编制中,分析员最常用的描述数据结构的方式有定义式、据结构的方式有定义式、WarnierWarnier图等。图等。定义式。在数据流图中,数据流和数据文件都定义式。在数据流图中,数据流和

41、数据文件都具有一定的数据结构,因此,必须以一种清晰、具有一定的数据结构,因此,必须以一种清晰、准确、无二义性的方式来描述数据结构。准确、无二义性的方式来描述数据结构。 WarnierWarnier图。图。WarnierWarnier图是表示数据结构的另一图是表示数据结构的另一种图形工具,它用树形结构来描绘数据结构。种图形工具,它用树形结构来描绘数据结构。3.2.4 数据字典 定义式中的符号定义式中的符号3.2.4 数据字典 定义式举例:存折定义式举例:存折3.2.4 数据字典 存折的定义格式存折的定义格式存折户名所号账号开户日性质(印密)存折户名所号账号开户日性质(印密) 11存取行存取行50

42、50所号所号“001001”.“999999” 户名户名22字母字母2424账号账号“0000000000100000000001”.“9999999999999999999999” 开户日年月日开户日年月日性质性质“1 1”.“6 6” 印密(印密(“0 0”| |“000001000001”.“999999999999”) 存取行日期(摘要)支出存入余额操作复核存取行日期(摘要)支出存入余额操作复核日期年月日日期年月日年年“00010001”.“99999999”月月“0101”.“1212”日日“0101”.“3131”3.2.4 数据字典 存折的定义格式存折的定义格式摘要摘要11字母字

43、母44支出金额支出金额 存入金额存入金额余额金额余额金额金额金额“0000000.010000000.01”.“9999999.999999999.99”操作操作“0000100001”.“9999999999”复核复核“0000100001”.“9999999999”字母字母 “a a”.“z z”| |“A A”.“Z Z” 3.2.4 数据字典 WarnierWarnier图图举例:存折举例:存折 3.2.5 加工规格说明 在对数据流图的分解中,位于层次树最低层的加工在对数据流图的分解中,位于层次树最低层的加工也称为也称为基本加工基本加工或或原子加工原子加工,对于每一个基本加工,对于每一

44、个基本加工都需要进一步说明,这称为都需要进一步说明,这称为加工规格说明加工规格说明。 在编写基本加工的规格说明时,主要目的是要表达在编写基本加工的规格说明时,主要目的是要表达“做什么做什么”,而不是,而不是“怎样做怎样做”。3.2.5 加工规格说明 加工规格说明应满足如下的要求加工规格说明应满足如下的要求:(1) (1) 对数据流图的每一个基本加工,必须有一个加对数据流图的每一个基本加工,必须有一个加工规格说明。工规格说明。(2) (2) 加工规格说明必须描述基本加工如何把输入数加工规格说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。据流变换为输出数据流的加工规则。(3) (3

45、) 加工规格说明必须描述实现加工的策略而不是加工规格说明必须描述实现加工的策略而不是实现加工的细节。实现加工的细节。(4) (4) 加工规格说明中包含的信息应是充足的,完备加工规格说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息。的,有用的,没有重复的多余信息。 3.2.5 加工规格说明决策表决策表决策表由决策表由4 4个部分组成:个部分组成:左上部分是左上部分是条件茬条件茬,在此区域列出了各种可能的单个条,在此区域列出了各种可能的单个条件;件;左下部分是左下部分是动作茬动作茬,在此区域列出了可能采取的单个动,在此区域列出了可能采取的单个动作;作;右上部分是右上部分是条件项条件项

46、,在此区域列出了针对各种条件的每,在此区域列出了针对各种条件的每一组条件取值的组合;一组条件取值的组合;右下部分是右下部分是动作项动作项,这些动作项与条件项紧密相关,它,这些动作项与条件项紧密相关,它指出了在条件项的各组取值的组合情况下应采取的动作。指出了在条件项的各组取值的组合情况下应采取的动作。3.2.5 加工规格说明 决策表举例决策表举例商店业务处理系统中商店业务处理系统中“检查订货单检查订货单” 的决策表。的决策表。3.2.5 加工规格说明 决策表的改进决策表的改进 如果表中有两条或更多的处理规则具有相同的动作,并且如果表中有两条或更多的处理规则具有相同的动作,并且其条件项之间存在着某

47、种关系,就可设法将它们合并。其条件项之间存在着某种关系,就可设法将它们合并。 3.2.5 加工规格说明 建立决策表的步骤建立决策表的步骤(1) (1) 列出与一个具体过程(或模块)有关的所有处理。列出与一个具体过程(或模块)有关的所有处理。(2) (2) 列出过程执行期间的所有条件(或所有判断)。列出过程执行期间的所有条件(或所有判断)。(3) (3) 将特定条件取值组合与特定的处理相匹配,消去不可能将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。发生的条件取值组合。(4) (4) 将右部每一纵列规定为一个处理规则,即对于某一条件将右部每一纵列规定为一个处理规则,即对于某一

48、条件取值组合将有什么动作。取值组合将有什么动作。3.2.5 加工规格说明 决策树决策树决策树(决策树(decision treedecision tree)也是用来表达加工逻辑的一种)也是用来表达加工逻辑的一种工具,有时侯它比决策表更直观。工具,有时侯它比决策表更直观。检查订货单的决策树检查订货单的决策树 3.3 系统需求规格说明 需求分析阶段的重要任务之一是根据分析的结果需求分析阶段的重要任务之一是根据分析的结果编写需求规格说明,经过严格评审并得到用户确编写需求规格说明,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。认之后,作为这个阶段的最终成果。 按照国家标准按照国家标准GB/T

49、 8567GB/T 856720062006计算机软件文档计算机软件文档编制规范编制规范,涉及需求规格说明的文档有,涉及需求规格说明的文档有“软件软件需求规格说明(需求规格说明(SRSSRS)”、“数据需求说明数据需求说明(DRDDRD)”等。等。3.3 系统需求规格说明1. 引言 4. 系统特性 1.1 目的 4.1 说明和优先级 1.2 文档约定 4.2 激励响应序列 1.3 预期的读者和阅读建议 4.3 功能需求 1.4 产品范围 5. 非功能需求 1.5 参考文献 5.1 性能需求 2. 综合描述 5.2 安全设施需求 2.1 产品的前景 5.3 安全性需求 2.2 产品的功能 5.4

50、 软件质量属性 2.3 用户类和特征 5.5 业务规则 2.4 运行环境 5.6 用户文档 2.5 设计和实现上的限制 6. 其他需求 2.6 假设和依赖 3. 外部接口需求 附录 3.1 用户界面 3.2 硬件接口 3.3 软件接口 注: 本模板由 IEEE 8301998 3.4 通信接口 标准改写并扩充而成 需求规格说明书一般结构需求规格说明书一般结构3.3 系统需求规格说明 应该包括在应该包括在SRS 中的内容中的内容 - 功能:功能:软件应该提供什么功能?软件应该提供什么功能? - 外部接口:外部接口:软件如何与人、系统硬件和其他系统软件如何与人、系统硬件和其他系统等进行相互等进行相

51、互 作用?作用? - 性能:性能:软件系统在运行速度、可用性、响应时间、软件系统在运行速度、可用性、响应时间、恢复时间恢复时间 等方面有什么要求?等方面有什么要求? - 特性:特性:软件系统在可移植性、可维护性、安全性软件系统在可移植性、可维护性、安全性等方面有什等方面有什 么考虑?么考虑? - 设计约束:设计约束:是否存在必要的标准、开发语言、数是否存在必要的标准、开发语言、数据库、资源据库、资源 限制、运行环境等因素的影响和策略?限制、运行环境等因素的影响和策略? 3.3 系统需求规格说明 不不应该包括在应该包括在SRS 中的内容中的内容 - 项目开发计划项目开发计划 诸如成本、人员、进度

52、、工具、方法等诸如成本、人员、进度、工具、方法等 - 产品保证计划产品保证计划 诸如配置管理、验证与测试、诸如配置管理、验证与测试、 质质量保证等量保证等 - 软件设计细节软件设计细节 需求通常用于表达需求通常用于表达“做什么做什么”, 而不而不描述描述“如何做如何做”。 3.3 质量要求 正确性正确性 - 需求规格说明对系统功能、行为、性能等的描述必须与用户需求规格说明对系统功能、行为、性能等的描述必须与用户 的期望相吻合,代表了用户的真正需求。的期望相吻合,代表了用户的真正需求。 审查需求的正确性应该考虑的问题审查需求的正确性应该考虑的问题 - 用户参与需求过程的程度如何?用户参与需求过程

53、的程度如何? - 每一个需求描述是否准确地反映了用户的需要?每一个需求描述是否准确地反映了用户的需要? - 系统用户是否已经认真考虑了每一项描述?系统用户是否已经认真考虑了每一项描述? - 需求可以追溯到来源吗?需求可以追溯到来源吗? 举例:下面的需求描述正确吗?举例:下面的需求描述正确吗? - 在用户每次存钱的时候系统将进行信用检查。在用户每次存钱的时候系统将进行信用检查。 3.3 质量要求 无二义性无二义性 - 需求规格说明中的描述对于所有人都只能有一种明确统一的需求规格说明中的描述对于所有人都只能有一种明确统一的 解释。解释。 审查需求的无二义性应该考虑的问题审查需求的无二义性应该考虑的

54、问题 - 需求规格说明是否有术语词汇表?需求规格说明是否有术语词汇表? - 具有多重含义或未知含义的术语是否已经定义?具有多重含义或未知含义的术语是否已经定义?- - 需求描述是否可量化和可验证?需求描述是否可量化和可验证? - 每一项需求都有测试准则吗?每一项需求都有测试准则吗? 举例:下面的需求描述是无歧义的吗?举例:下面的需求描述是无歧义的吗? - 如果用户试图透支,系统将采取适当的行动。如果用户试图透支,系统将采取适当的行动。 3.3 质量要求 审查需求的完整性应该考虑的问题(续)审查需求的完整性应该考虑的问题(续) -所描述的功能是否可以映射到业务过程中?所描述的功能是否可以映射到业

55、务过程中? - 文档中是否存在待确定的需求引用?文档中是否存在待确定的需求引用? - 文档中是否存在未定义的术语和引用?文档中是否存在未定义的术语和引用? - 文档的各个部分都完整吗?文档的各个部分都完整吗? - 需求包括非功能属性的说明吗?需求包括非功能属性的说明吗? 是否考虑了软件性能?是否考虑了软件性能? 是否考虑了安全性要求?是否考虑了安全性要求? 是否考虑了可靠性?是否考虑了可靠性? 是否考虑了系统容量问题?是否考虑了系统容量问题? 37 3.3 质量要求 可验证性可验证性 - 需求规格说明中描述的需求都可以运用一些可行的手段对其需求规格说明中描述的需求都可以运用一些可行的手段对其

56、进行验证和确认。进行验证和确认。 审查需求的可验证性应该考虑的问题审查需求的可验证性应该考虑的问题 - 在需求文档中是否存在不可验证的陈述,诸如在需求文档中是否存在不可验证的陈述,诸如“用户界面用户界面友友 好好”、“容易容易”、“简单简单”、“快速快速”、“健壮健壮”、“最最新技术新技术”等?等? - 所有描述都是具体的和可测量的吗?所有描述都是具体的和可测量的吗? 举例:下面的两个需求描述中哪一个难以验证?举例:下面的两个需求描述中哪一个难以验证? - 系统将在系统将在 20 秒内响应所有有效的请求。秒内响应所有有效的请求。 - 如果用户试图透支,系统将采取适当的行动。如果用户试图透支,系

57、统将采取适当的行动。 3.3 质量要求 一致性一致性 - 需求规格说明对各种需求的描述不能存在矛盾,如术语使用需求规格说明对各种需求的描述不能存在矛盾,如术语使用 冲冲突、功能和行为特性方面的矛盾以及时序上的不一致等。突、功能和行为特性方面的矛盾以及时序上的不一致等。 审查需求的一致性应该考虑的问题审查需求的一致性应该考虑的问题 - 文档的组织形式是否易于一致?文档的组织形式是否易于一致? - 不同功能的描述之间是否存在矛盾?不同功能的描述之间是否存在矛盾? - 是否存在有矛盾的需求描述或术语?是否存在有矛盾的需求描述或术语? - 文档中是否存在时序上的不一致?文档中是否存在时序上的不一致?

58、举例:下面的两个需求描述是否有矛盾?举例:下面的两个需求描述是否有矛盾? - 系统允许立即使用所存的资金。系统允许立即使用所存的资金。 - 只有在手工验证所存资金后,系统才能允许使用。只有在手工验证所存资金后,系统才能允许使用。 3.3 质量要求 可修改性可修改性 - 需求规格说明的格式和组织方式应保证后续的修改能够比较需求规格说明的格式和组织方式应保证后续的修改能够比较容易和协调一致。容易和协调一致。 审查需求的可修改性应该考虑的问题审查需求的可修改性应该考虑的问题 - 是否存在明显的需求交叉引用?是否存在明显的需求交叉引用? - 是否有内容列表和索引?是否有内容列表和索引? - 是否存在冗

59、余的需求,即同一个需求的描述出现在文档的不是否存在冗余的需求,即同一个需求的描述出现在文档的不 同地方?如果存在,它们是交叉引用吗?同地方?如果存在,它们是交叉引用吗? 3.3 质量要求 可跟踪性可跟踪性 - 每一项需求都能与其对应的来源、设计、源代码和测试用例每一项需求都能与其对应的来源、设计、源代码和测试用例 联系起来。联系起来。 可跟踪性的两种形式可跟踪性的两种形式 - 每一项需求都可以在早期的文档中追溯到其来源,例如备忘每一项需求都可以在早期的文档中追溯到其来源,例如备忘 录、法规、会议记录等;录、法规、会议记录等; - 每一项需求都有唯一的名称或索引号,与后期实现对应。每一项需求都有

60、唯一的名称或索引号,与后期实现对应。- 系统将在系统将在 20 秒内响应所有有效的请求。秒内响应所有有效的请求。 来自与用户的面谈,备忘录编号来自与用户的面谈,备忘录编号 #1234 举例:下面的需求描述记录了早期的文档来源。举例:下面的需求描述记录了早期的文档来源。 练习题( )在需求分析过程中,分析员要从用户那里解决的最重要)在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。的问题是明确软件做什么。 A. 真真 B. 假假 2. ( )软件需求规格说明书在软件开发中具有重要的作用,它)软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。是软件可行性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论