《软件工程与项目管理案例教程 第3章 软件需求分析管理》由会员分享,可在线阅读,更多相关《软件工程与项目管理案例教程 第3章 软件需求分析管理(53页珍藏版)》请在金锄头文库上搜索。
1、第3章 软件需求分析管理教学目标通过本章学习后应掌握软件需求分析的任务、方法和过程,熟练掌握面向数据流的分析方法结构化分析方法。初步具备小型系统的分析能力,并能编写软件需求规格说明书。教学内容软件需求分析概述结构化分析方法软件快速原型化开发方法如何做好需求分析案例分析3.1 软件需求分析概述软件需求分析的目标软件需求分析的原则软件需求分析的过程3.1.1 软件需求的目标 在需求分析阶段, 仍然不是具体地解决问题,而是准确地定义系统要解决什么问题,弄清楚系统究竟要“做什么”,任务是确定目标系统必须具备哪些功能。 软件需求分析的目标是深入描述软件的功能和性能要求,确定软件设计的约束条件和软件同其他
2、系统的关系,定义软件的其他有效性需求。 3.1.2 软件需求分析的原则需要能够表达和理解问题的需要能够表达和理解问题的信息域信息域和和功能域功能域要能以层次化的方式对问题进行要能以层次化的方式对问题进行分解分解和不断和不断细化细化需要给出系统的需要给出系统的逻辑视图逻辑视图和和物理视图物理视图3.1.3 软件需求分析的过程问题识别 分析与综合 制订软件需求规格说明书 需求评审 需求分析的过程(1) 问题识别问题识别 从系统的角度来理解软件并评审从系统的角度来理解软件并评审 软件范围是否恰当软件范围是否恰当 确定对目标系统的综合要求,即确定对目标系统的综合要求,即软件的需求软件的需求 提出这些需
3、求实现条件,以及需提出这些需求实现条件,以及需求应达到的标准求应达到的标准软件的需求包括:功能需求功能需求性能需求性能需求环境需求环境需求可靠性需求可靠性需求安全保密要安全保密要求求用户界面需用户界面需求求资源使用需求资源使用需求成本消耗需求成本消耗需求开发进度需求开发进度需求预先估计以后系预先估计以后系统可能达到的目统可能达到的目标标(2) 分析与综合分析与综合 从信息流和信息结构出发,逐步细从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要的约束,分析它们是否满
4、足功能要求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的系统的解决方案,给出目标系统的详细逻辑模型。详细逻辑模型。(3) 编制需求分析阶段的文档编制需求分析阶段的文档 软件需求说明书软件需求说明书 数据要求说明书数据要求说明书 初步的用户手册初步的用户手册 修改、完善与确定软件开发实施修改、完善与确定软件开发实施计划计划(4) 需求分析评审系统定义的目标是否与用户的要系统定义的目标是否与用户的要求一致求一致; ;系统需求分析阶段提供的文档资系统需求分析阶段提供的文档资料是否齐全料是否齐全; ;
5、文档中的所有描述是否完整、清文档中的所有描述是否完整、清晰、准确反映用户要求晰、准确反映用户要求; ;与所有其它系统成分的重要接口与所有其它系统成分的重要接口是否都已经描述是否都已经描述;(1) 通过对现实环境的调查,获得当前系统的物理模型。 学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书信北信北107107张张教务科教务科信北信北206206王王会计室会计室信北信北206206李李出纳员出纳员( (实南实南) )赵赵教材科教材科学生购买教材的实际处理流程:学生购买教材的实际处理流程:学生购买教材的实际处理流程:学生购买教材的实际处理流程:当前系统物理模型当前系统物理模型
6、当前系统物理模型当前系统物理模型需求分析的过程(实例)需求分析的过程(实例)(2) 去掉具体模型中的非本质因素:抽取现实系统的实质,抽象出当前系统的逻辑模型。 学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审查有效性有效性开发票开发票开领开领书单书单发书发书学生购买教材的逻辑模型学生购买教材的逻辑模型学生购买教材的逻辑模型学生购买教材的逻辑模型需求分析的过程(实例)(3) 分析当前系统与目标系统的差别,建立目标系 统的逻辑模型 。学学生生审查并审查并开发票开发票购书单购书单发票发票领书单领书单开领开领书单书单无效书单无效书单学学生生计算机教材管理系统的逻辑模型计算机教
7、材管理系统的逻辑模型计算机教材管理系统的逻辑模型计算机教材管理系统的逻辑模型需求分析的过程4 对目标系统的逻辑模型进行细化、改进与优化5 需求分析的验证当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物理物理模型模型模型化模型化抽象化抽象化具体化具体化实例化实例化怎怎么么做做做做什什么么当前当前系统系统目标目标系统系统需需求求定定义义需求分析的过程3.2 结构化分析方法 结构化分析方法概述数据流图数据字典处理说明3.2.1 结构化分析方法概述结构化分析(Structured Analysis,SA)是由Douglas Ross 提出的,由DeMarco进行推广的
8、。采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。适用于分析大型的数据处理系统。方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。一般工具:DFD、数据字典、结构化英语、判定表、判定树等。3.2.2 数据流图 数据流图(DFD,Data Flow Diagram)是描述数据处理过程的强有力工具。数据流图描述的是系统的逻辑模型,仅仅描述数据在系统中的流动和处理情况,并不涉及具体的物理元素。由于其具有图形的直观性,即使不是计算机软件人员也很容易理解,所以是极好的用户需求表达工具,设计数据流图时只考虑系统必须完成的基本逻辑功能,而不需
9、要考虑如何具体地实现这些功能。 (1)数据流图符号数据流图的数据流图的4种基本成分种基本成分1.外部项(原点和汇点)外部项(原点和汇点)外部项是指外部项是指系统以外的事物或人系统以外的事物或人,它表达了该系统,它表达了该系统数据的外部来源或去处,用方框表示之。数据的外部来源或去处,用方框表示之。2.处理(加工)处理(加工)处理表达了处理表达了对数据的逻辑加工或变换功能对数据的逻辑加工或变换功能:对数据:对数据的加工处理的结果,或者是变换了数据的结构,或的加工处理的结果,或者是变换了数据的结构,或者是在原有数据的基础上产生新的数据。处理用圆者是在原有数据的基础上产生新的数据。处理用圆表示。表示。
10、3.数据流数据流数据流指示数据流指示数据的流动方向数据的流动方向,用单箭头表示。,用单箭头表示。4.数据存储数据存储数据存储指明了数据存储指明了保存数据的地方保存数据的地方。不代表具体的存。不代表具体的存储介质。数据存储使用右端开口的矩形框表示。储介质。数据存储使用右端开口的矩形框表示。(2) 设计数据流图的步骤 确定系统的输入和输出 由外向内画系统的顶层数据流图自顶向下逐层分解,给出分层数据流层分层DFD实例一个简单的考务处理系统功能描述:(1)对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,
11、并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。考考生生考务考务处理系统处理系统考考试试中中心心阅卷站阅卷站不合格报名单不合格报名单报名单报名单准考证准考证考生通知单考生通知单成成绩绩清清单单合格标准合格标准错误错误成绩成绩清单清单考考生生名名单单统计分析表统计分析表顶层数据流图登记登记报名单报名单报名单报名单准考证准考证1 1统计统计成绩成绩2 2不合格不合格报名单报名单考生通知单考生通知单成成统计分析表统计分析表考生名册考生名册绩绩清清单单合合格格标标准准考考生生名名单单成成绩绩清
12、清单单错错误误0层数据流图1 1层数据流图层数据流图 (a) (a)检查检查报名单报名单报名单报名单准考证准考证编准考编准考证号证号不合格不合格报名单报名单考生名册考生名册考生名单考生名单合格合格报名单报名单登记登记考生考生一层数据流图一层数据流图 (b) (b)检查检查成绩清单成绩清单审定审定合格者合格者考生名册考生名册正确正确成绩清单成绩清单制作制作通知单通知单分析分析统计成绩统计成绩分析分析试题难度试题难度试题得分清单试题得分清单考生考生通知单通知单难度难度分析表分析表合格合格标准标准分类分类统计表统计表成绩清单成绩清单错误错误成绩清单成绩清单经审定的经审定的成绩清单成绩清单 数据流图分
13、解原则DFDDFD可以用来表示一个系统或软件在任何层次上的可以用来表示一个系统或软件在任何层次上的抽象。抽象。 较大型软件系统较大型软件系统DFDDFD分成多层分成多层( (子图、父图子图、父图概念概念),),可以表示数据流和功能的进一步的细节。可以表示数据流和功能的进一步的细节。0 0层数据流图应当把系统或软件作为一个单一的功层数据流图应当把系统或软件作为一个单一的功能来描述。能来描述。应当注意原始的输入和输出。应当注意原始的输入和输出。每个过程的每次细化一般控制在每个过程的每次细化一般控制在3 34 4个分过程。个分过程。所有圆圈和箭头应用有意义的名称标注。一个名所有圆圈和箭头应用有意义的
14、名称标注。一个名称标注在称标注在 同一个同一个DFDDFD中只能出现一次。中只能出现一次。每次细化时,细化部分的输入和输出必须保持一每次细化时,细化部分的输入和输出必须保持一致,即保持致,即保持信息流连续性信息流连续性,有时称为平衡。,有时称为平衡。一次最好只对一个圆圈细化。一次最好只对一个圆圈细化。3.2.3 数据字典 (DD) 数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。(1)数据字典的组成元素数据字典由以下4类元素的定义组成:数据流;数据元素(数据流分量)数据存储处理(2)数据字典的定
15、义 (1)顺序:以先后次序连接两个或多个分量。如:图书发票包括书号、单价、数量和总价等信息。(2)选择:从两个或多个可能的元素中选取一个,如:图书类型可以从计算机、外语、文学等类型中选取一个。(3)重复:把指定的分量重复零次或多次。如一次销售的图书类型可以有多种,客户一次订购的商品可以有多种。数据结构定义式符号 (3)数据字典的实现 (1)(1)人工方法人工方法(2)(2)自动方法自动方法( (利用字典管理程序利用字典管理程序) )DDDD应具特点应具特点(1)(1)通过名字可方便查阅数据定义通过名字可方便查阅数据定义(2)(2)无冗余无冗余 (3)(3)易更新修改易更新修改数据字典的内容名称
16、数据项或控制项、数据存储或外部实体的主要名称。要求命名唯一性、一致性、“见名知义”。别名(alias)最早使用的另一个名称何处用/如何用使用数据或控制项的加工列表,以及如何使用。内容描述表示内容的符号。附加信息关于数据类型、预设值、限制或局限等信息。购购书书单单发票发票领书领书单单审查并审查并开发票开发票开领开领书单书单无效书单无效书单学生学生1 12 2各班学生各班学生用用 书书 表表举例:举例:学生学生教材存量表教材存量表数据流条目说明举例数据流条目说明举例数据流名数据流名: :发票发票别名别名: : 无无简述简述: : 学生购书时填写的项目学生购书时填写的项目来源来源: : 学生学生去向
17、去向: : 加工加工1“1“审查并开发票审查并开发票”组成组成: : ( (学号学号) )姓名书号数量姓名书号数量数据流量数据流量: :10001000次次/ /周周 高峰值:高峰值:开学期间开学期间10001000次次/ /天天 数据存储条目数据存储条目(数据文件词条数据文件词条)对某个文件的定义,包括:对某个文件的定义,包括: 文件名文件名 描述描述 数据结构数据结构 数据存储方式数据存储方式 关键码关键码 存取频率和数据量存取频率和数据量 安全性要求安全性要求数据存储条目说明举例数据存储条目说明举例文件名文件名: :库存记录库存记录别名别名: : 无无简述简述: :存放库存所有可供货物的
18、信息存放库存所有可供货物的信息组成组成:货物名称编号生产厂家货物名称编号生产厂家 单价库存量单价库存量组织方式组织方式:索引文件,以货物编号为:索引文件,以货物编号为 关键字关键字查询要求查询要求: :要求能够立即查询要求能够立即查询数据项条目数据项条目(数据元素词条数据元素词条)不可再分解的数据单位,包括:不可再分解的数据单位,包括: 名称名称 描述描述 数据类型数据类型 长度长度( (精度精度) ) 取值范围及缺省值取值范围及缺省值 计量单位计量单位 相关数据元素及数据结构相关数据元素及数据结构数据项条目说明举例数据项条目说明举例数据项名数据项名: :货物编号货物编号别名别名: :G-No
19、,G-num简述简述: :本公司的所有货物的编号本公司的所有货物的编号类型类型: :字符串字符串长度:长度:1010取值范围及含义取值范围及含义: : 第第1 1位:位:JJG (G (进口进口/ /国产国产) ) 第第2 2 4 4位:位:LB01. LB29 (LB01. LB29 (类别类别) ) 第第5 5 7 7位:位:“A00”.“A99” (“A00”.“A99” (规格规格) ) 第第8 8 1010位:位:“001”.“999”(“001”.“999”(品名编号品名编号) )3.2.4 处理说明 处理说明就是加工逻辑说明。对数据流图的每一个基本加工,必须有一个基本加工逻辑说明
20、,基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节,同时加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息。 (1)加工逻辑词条描述加工名:加工名:加工编号:反映该加工的层次加工编号:反映该加工的层次简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述输入数据流:输入数据流:输出数据流:输出数据流:加工逻辑:简述加工程序,加工加工逻辑:简述加工程序,加工顺序顺序(2)加工逻辑词条描述举例加工编号:加工编号:加工名:读者查询加工名:读者查询输输入入流流:查查询询读读者者情情况况,读读者者文文
21、件,借书文件件,借书文件输出流:读者情况输出流:读者情况加加工工逻逻辑辑:根根据据查查询询读读者者的的情情况况从读者文件中读出读者记录。从读者文件中读出读者记录。3.3 软件快速原型化开发方法在开发初期,要想得到一个完整准确的规格说明在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件项不是一件容易的事。特别是对一些大型的软件项目。目。用户往往对系统只有一个模糊的想法,很难完全用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求准确地表达对系统的全面要求。软件开发者对于所要解决的应用问题认识更是模软件开发者对于所要解决的应用问题认识更是模糊不清糊不
22、清随着开发工作向前推进,用户可能会产生新的要随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。预料到的实际困难,需要以改变需求来解脱困境。 为了解决这些问题,逐渐形成了软件系统的快为了解决这些问题,逐渐形成了软件系统的快速原型的概念。速原型的概念。3.3.1 软件原型化方法概述 产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义而且反复修改是不可避免的
23、。当然能够采用原型化方法是因为开发工具的快速发展,比如用VB,DELPHI等工具我们可以迅速的开发出一个可以让用户看的见、摸的着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。3.3.2 快速原型开发模型 需求分析人员与用户一起进行需求分析、快速设计,并构建原型,原型经过用户评价后,按照用户意见进一步修改原型,在此进行分析、设计、构建、评价,不断迭代这个过程,逐渐使原型满足用户的要求。快速原型模型的优缺点如下优点:开发者和用户充分协作,有效处理用户模糊需求。开发者开发过程与用户学习过程同步,减少用户日后培训力度。开发同时修正用户原有错误设想,软件产品更趋合理。系统
24、更易维护,对用户更为友好。降低软件开发费用和开发风险,开发时间缩短。缺点:软件更新次数多,文档修改工作最为繁重,增加了管理难度。在实验环境下开发,忽略实际环境与原型环境的差异。3.4 如何做好需求分析 需求分析的五个阶段 如何做好需求分析 3.4.1 需求分析的五个阶段 开始这个阶段从项目申请开始到项目被批准结束。 这一步可以总结为:最初的项目要求、初步的经费估算、成本效益分析。确认与引导这个阶段是对详细需求的组织和构造工作。协商这一步是选择和优化包含在项目中最终的功能和非功能需求的反复过程。书写文档这一步是项目需求文件最终和最完整的记录。管理一旦你们已经协商出了最终的需求文档,你的责任就是确保实现所有的要求。3.4.2 如何做好需求分析 让用户畅所欲言,罗列出所有的需求 需求分析文档化 透过现象看本质 使用图形化工具描述需求 建立需求变更日志,制作新版本的需求分析报告 3.5 案例分析 图书管理系统需求分析