《[精选]海大计算机专业软件工程课程资料lge第三章需求分析》由会员分享,可在线阅读,更多相关《[精选]海大计算机专业软件工程课程资料lge第三章需求分析(42页珍藏版)》请在金锄头文库上搜索。
1、Email:,教材:软件工程导论(第5版) 张海藩 编著 清华大学出版社,软件工程,第三章 需求分析,3.1需求分析的任务 需求分析的基本任务就是准确地回答“系统必须做什么?”这个问题。 3.1.1确定对系统的综合要求 对系统的综合要求有下述几个方面: 1.系统的功能要求 应划分出系统必须完成的所有功能。 2.系统性能要求 包括:联机系统的响应时间、系统需要的存储容量及后援存储、系统的安全性等。,3. 可靠性和可用性需求 可靠性需求定量地指定系统的可靠性。例如,“机场雷达系统在一个月内不能出现2次以上故障“。 可用性与可靠性密切相关,它量化了用户可以使用系统的程度。例如,在任何时候主机或备份机
2、上的雷达系统应该至少有一个是可用的,而且在一个月内任何一台计算机上该系统不可用的时间不能超过总时间的2%以上。 4. 出错处理要求 这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。,5. 接口需求 接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求等。 6. 约束 设计约束或实现约束描述在设计或实现应用系统时应遵循的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准,应该使用的硬件平台等。,7. 逆向需求
3、逆向需求说明软件系统不应该做什么。应该仅选择能澄清真实需求且可消除可能发生的误解的那些逆向需求。 8.将来可能提出的要求 应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是,在设计过程中对将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。,3.1.2分析系统的数据要求 分析系统的数据要求,是软件需求分析的一个重要任务。通常采用建立概念模型的方法(见3.3节)。 常用的图形工具有层次方框图和Warnier图。 3.1.3导出系统的逻辑模型 根据上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、E-R图、状态
4、转换图、数据字典和主要的处理算法描述这个逻辑模型。 3.1.4 修正系统开发计划,3.2 与用户沟通获取需求的方法 3.2.1 访谈 访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术。 访谈有两种基本形式,分别是正式的和非正式的。 在访问用户的过程中,使用情景分析技术往往非常有效。所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。,情景分析技术的用处主要体现在下述两个方面: 它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。 由于情景分析较易为用户所理解,使用这种技术能保证用户在需求
5、分析过程中始终扮演一个积极主动地角色。,3.2.2 面向数据流自顶向下求精 结构化分析方法(SA)就是面向数据流自顶向下逐步求精进行需求分析的方法。其过程如下图示:,3.2.3 简易的应用规格说明技术(P60) 面向团队的需求收集法,用户与开发者密切合作 3.2.4 快速建立软件原型 快速原型应该具备的第一个特性是“快速”。 快速原型应该具备的第二个特性是“容易修改”。 为了快速地构建和修改软件,通常使用下述几种方法和工具: (1)第四代技术 包括众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程化语言。,(2)可重用的软件构件 使用一组已有的软件构件(也称为组件)来装配(
6、而不是从头构造)原型。 (3)形式化规格说明和原型环境,3.3 分析建模与规格说明 3.3.1 分析建模 所谓模型,就是为了理解事务而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 结构化分析实质上是一种创建模型的活动。根据结构化分析准则,需求分析过程应该建立 3 种模型,它们分别是:数据模型、功能模型和行为模型。 3.4节介绍的实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。,2.4节介绍的数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础
7、。 3.6节介绍的状态转换图(简称为状态图),指明了作为外部事件结果的系统行为。为此,状态图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式,状态图是行为建模的基础。,3.3.2 软件需求规格说明 软件需求规格说明,应包括以下内容: 系统规格说明:主要描述目标系统的概貌、功能要求、性能要求、可靠性和可用性要求、约束和将来可能提出的要求等。 数据要求:主要包括数据字典、描绘数据结构的层次方框图或Warnier图。 用户系统描述:一份初步的用户手册。主要包括对系统功能和性能的扼要描述,使用系统的主要步骤和方法,以及系统用户的责任等。,补充: 软件需求规格说明大纲 一、引言 二、信息
8、描述 1.数据流图 2 .数据结构表示 3 .数据字典 4 .系统接口描述 5 .内部接口 三、功能描述 1 .功能 2 .处理解说 3 .设计约束 四、有效性准则 1 .性能界限 2 .测试种类 3 .所指望的软件响应 4 .特殊考虑,五、参考文献(与该软件有关的文件资料的参考文献表) 六、附录(补充信息、表格数据、图表、算法详细描述等),3.4 实体-联系图 为了把用户的数据要求清楚准确地描述出来,系统分析员通常建立一个概念性数据模型(信息模型)。 概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。 数据模型中包含 3 种相互关联的信息:数据对象、数据对象的属性及数
9、据对象彼此间相互连接的关系。,3.4.1 数据对象(实体) 客观存在并可相互区别的事物称为实体。可以是具体的人、事物、行为、事件、角色或抽象的概念。总之,可以由一组属性来定义的实体都可以被认为是数据对象。 数据对象彼此间是有联系的,例如教师教课程,学生学课程。 数据对象只封装了数据而没有对施加于数据上的操作的引用,这是数据对象与面向对象中的类或对象的区别。,3.4.2 属性 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如,学生的学号、姓名等。 码(Key) 唯一标识实体的属性集称为码。 域(Domain):属性的取值范围称为该属性的域。,3.4.3 联系 客观世界中的事物彼
10、此间是有联系的,例如教师与课程间存在教这种联系,学生与课程间存在学这种联系 。 数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下 3 种类型: (1)一对一联系(1:1) 如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。(例如:部门与经理),(2)一对多联系(1:N) 如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系。记为1:N。 例如,教师和课程之间存在一对多的联系,即每
11、位教师可以教多门课程,而一门课程只能由一位教师来教。,(3)多对多联系(M:N) 如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系。记为M:N。 例如,学生和课程之间存在多对多的联系,即每位学生可以学多门课程,而一门课程可以由多位学生来学。,3.4.4 实体-联系图的符号 通常,使用实体-联系图(entity-relationship diagram)来建立数据模型。 可以把实体-联系图简称为ER图,相应的把用ER图描绘的模型称为ER模型。 ER模型使用简单的图形
12、符号表达系统分析员对问题域的理解,ER图中包含了实体、联系和属性三种基本成分。,表示方式:,例子:,3.6 状态转换图 状态转换图(状态图)通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为。 3.6.1 状态 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。系统对事件的响应,即可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。 在状态图中定义的状态主要有:初态(即初始状态,最多一个)、终态(即最终状态,0至多个)和中间状态。,3.6.2 事件 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一
13、个状态的外部事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)状态转换的控制信息。 3.6.3 符号 在状态图中,初态用实心圆表示,终态用一对同心圆表示。,中间状态用圆角矩形表示,可分成上中下三部分:状态名称(必须有),状态变量名字和值(可选),活动表(可选)。 活动表语法:事件名(参数表)/动作表达式 活动表中经常使用的标准事件:entry,exit,do 状态之间的箭头线表示状态转换,箭头指明转换方向。状态转换的触发事件表达式应标在箭头线之上。 事件表达式语法: 事件说明守卫条件/动作表达式 事件说明语法:事件名(
14、参数表) 动作表达式是一个过程表达式,当状态转换时执行,3.6.4 例子(P66),3.7 其他图形工具 3.7.1 层次方框图 层次方框图用树形结构的一系列的矩形框描绘数据的层次结构。,3.7.2 Warnier图,软件产品,Warnier图也用树形结构描绘信息,它可以表明信息的逻辑组织,即它可以指出一类信息或一个信息元素是重复出现的,也可以表示信息有条件出现。,3.7.3 IPO图 IPO图是输入/处理/输出图的简称,是美国IBM公司发展完善起来的一种图形工具,能方便地描绘输入数据、对数据的处理和输出数据之间的关系。 IPO图的基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要
15、的处理,在右边的框中列出产生的输出数据。处理框中列出处理的次序暗示了执行的顺序。 IPO图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况,图3.8 改进的IPO图的形式,3.8 验证软件需求 3.8.1 从哪些方面验证软件需求的正确性 一般说来,应该从下述四个方面进行验证: 一致性:所有要求必须是一致的,任何一条需求 不能和其他需求互相矛盾。 完整性:需求必须是完整的,规格说明书应包括 用户需求的每一个功能或性能。 现实性:指定的需求应该是利用现有的硬件技术 和软件技术基本上可以实现的。 有效性:必须证明需求是正确有效的,确实能解 决用户面对的问题。,3.8.2 验证软件需求的方法 1.
16、验证需求的一致性:人工审查、软件工具验证(需形式化需求) 2.验证需求的现实性:参照以往经验进行分析,必要时采用仿真或性能模拟技术 3.验证需求的完整性和有效性:需要用户合作(利用原型系统) 3.8.3 用于需求分析的软件工具 软件工具应满足下列要求: (1)必须有形式化的语法(或表),可以用计算机 自动处理其内容。 (2)使用该软件工具能导出详细的文档。,(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果; (4)使用这个软件工具之后,应该能够改进通信状况。 该类软件工具的典型代表:美国密执安大学开发的PSL/PSA(Problem Statement Language/ Problem Statement Analyzer 问题陈述语言/问题陈述分析程序)系统。,PSL/PSA系统的功能主要有下述四种: (1)描述任何领域的信息系统; (2)创建一个数据库保存对该信息系统的描述符; (3)对描述符施加增加、删除和更改等操作; (4)产生格式化的文档和关于规格说明书的各种分析报告。 PSL/PSA系统用描述符从系统信息流、系统