软件工程第三章精.ppt





《软件工程第三章精.ppt》由会员分享,可在线阅读,更多相关《软件工程第三章精.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程第三章第1页,本讲稿共69页需求分析n评判一个软件项目成功的标准是看它是否解决了用户的问题,而用户的问题就是体现为用户的需求,需求也就顺理成章的成为项目的成功标准。而需求阶段的一个不慎都有可能导致软件实现阶段的大量返工,而需求的不慎不是说你小心就可以的,因为很多需求是隐性的,连用户都不清楚自己的需求。这时候就需要一种科学的方法来帮助软件组织实施需求过程。第2页,本讲稿共69页n没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。第3页,本讲稿共69页需求分析的概念n什么是需求?对用户来讲:需求是对软件产品的解释,是用户对目标软件
2、系统在功能、行为、性能、设计和约束等方面的期望。而开发人员所讲的需求对用户来说又像是详细设计。比较权威的定义是IEEE软件工程标准词汇表中的需求定义。第4页,本讲稿共69页(1)用户解决问题或达到目标所需的条件或权能(Capability)。(2)系统或系统部件要满足合同,标准,规范或其他正式规定文档所需要具有的条件或权能。(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。第5页,本讲稿共69页 可行性分析 vs 需求分析第6页,本讲稿共69页需求的层次n需求可分解为4个层次:(1)业务需求(Business Requirement)(2)用户需求(User Requirement
3、)(3)功能需求(Functional Requirement)(4)非功能需求第7页,本讲稿共69页需求分析的任务需求工程需求管理需求开发问题获取分析编写规格说明验证变更控制版本控制需求跟踪需求状态跟踪需求工程结构图第8页,本讲稿共69页需求开发n需求获取是需求开发的第一步。n分析员通过与用户充分交流,准确、完整地获取用户需求,确定软件系统的综合要求。通常软件系统的综合要求包括下述几个方面:(1)系统功能要求(2)性能要求(3)运行和扩充要求(4)系统维护要求(5)系统文档规格要求第9页,本讲稿共69页需求开发n具体分析建模过程如下图当前系统当前系统物理模型当前系统逻辑模型目标系统逻辑模型模
4、型化抽象化理解、表达分析建模过程第10页,本讲稿共69页需求开发需求验证(1)完整性(2)正确性(3)一致性(4)必要性(5)无歧义性(6)可验证性(7)优先级的划分第11页,本讲稿共69页需求分析的任务n需求开发的过程如下图:问题获取分析编写规格说明验证需求开发的过程第12页,本讲稿共69页需求管理n需求开发的结果是形成了客户与开发人员双方均满意的系统逻辑模型,它连结需求开发和需求管理,作为需求管理的输入。n需求管理的过程,从需求获取即开始,并贯穿于整个软件项目生命周期,以实现最终产品同需求的最佳结合。第13页,本讲稿共69页获取需求的方法n在需求获取中遇到的典型问题如下:(1)对需求的理解
5、问题(2)分析人员与用户的通信的问题(3)用户需求的可变性问题(4)分析方法和分析工具问题第14页,本讲稿共69页获取需求的常用方法n1 访谈(分正式访谈和非正式访谈)正式访谈时,系统分析员将提出一些事先准备好的具体问题,例如,询问处理的单据种类、处理的方法及信息反馈时间应该多快等。而在非正式访谈中,分析员可提出一些用户可以自由回答的开放性问题。采用访谈方式分析员的主要任务是问题的设计,包括探讨功能,非功能,例外情况的问题,甚至是一些看起来似乎“愚蠢”的问题。第15页,本讲稿共69页获取需求的常用方法2 问卷调查 采用问卷调查方法的关键是调查表的设计。3 情景分析 所谓情景分析就是对目标系统解
6、决某个具体问题的方法和结果,给出可能的情景描述,以获知用户的具体需求。优点:第一,它能在某种程度上演示目标系统的行为,便于用户理解,从而进一步揭示出一些分析员目前还不知道的需求 第二,情景分析较容易为用户所理解,使得用户在需求分析中能够扮演一个积极主动的角色。第16页,本讲稿共69页获取需求的常用方法4 实地考察5 构造原型第17页,本讲稿共69页需求分析的原则n解决逻辑问题n以运行环境为基础n用户参与的原则n构造高质量的需求规格说明第18页,本讲稿共69页需求分析方法应满足的基本要求n必须能理解问题的数据域和功能域 计算机程序所处理的数据域的描述一般为 数据内容、数据结构和数据流 数据内容就
7、是数据项,数据结构就是数据项的组织形式,数据流是数据通过系统时的变化方式n必须能按自顶向下、逐层分解的方式对问题进行分解和不断细化第19页,本讲稿共69页教学管理系统学生管理教师管理课程管理教务管理考试管理学生考试试卷评阅考务管理题库维护试卷生成纵向分解横向分解问题的分解第20页,本讲稿共69页需求分析方法应满足的基本要求n要给出系统的逻辑视图和物理视图 逻辑视图:描述的是软件要达到的功能和要处理的信息之间的关系,但没有描述实现的细节。在逻辑视图中只关心库存文件的数据结构,而不考虑计算机的具体存储方式。物理视图:给出的是处理功能和信息结构的实际表现形式,需考虑实际的环境和具体的设备。如一些数据
8、是由终端键盘输入的,而有些数据可能是由模数转换设备提供的。第21页,本讲稿共69页结构化分析方法n包括:结构化分析(SA)、结构化设计(SD)和结构化编程(SP)n面向数据流进行需求分析的方法n结构化分析方法适合于数据处理类型软件的需求分析n基本思想:具体来说,结构化分析方法就是用抽抽象模型象模型的概念,按照软件内部数据传递、变换数据传递、变换的关系,自顶向下逐层分解自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止第22页,本讲稿共69页结构化分析方法n描述工具:数据流图(Data FlowDiagram,DFD):描绘系统逻辑模型的图形工具,描述了系统的组成部分及各部分之间的联系
9、。通常通过对系统的分解得到一套分层的数据流图。数据字典(Data Dictionary,DD):DFD只描绘信息在系统中的流动和处理情况,而数据字典则是对图中的元素进行定义。结构化英语,判定表与判定树:详细描述数据流图中一些复杂处理的加工逻辑。第23页,本讲稿共69页结构化分析方法的描述工具n数据流图(Data FlowDiagram,DFD):描绘系统逻辑模型的图形工具,描述了系统的组成部分及各部分之间的联系。通常通过对系统的分解得到一套分层的数据流图。第24页,本讲稿共69页数据流图中的主要图形元素数据加工(数据变换)数据加工(数据变换)数据源或终点(外部实体)数据源或终点(外部实体)数据
10、流数据流数据存储文件数据存储文件加工是对数据进行处理的逻辑单元。它接受若干输入数据流,通过加工,内部产生规定的输出数据流它是系统之外的实体,可以是人、物、部门或者其他系统。利用数据源点和终点可明确标识出系统与环境的接口,给出系统有效作用范围的边界。第25页,本讲稿共69页举例:学生1 学生选择课程3 打印表格2 注册课程学生教师选课单费用学生课程成绩记载单开课清单课程注册表一个学生选课系统的数据流图第26页,本讲稿共69页数据流n数据流用带数据流标识的箭头表示,表示系统处理的数据对象和数据流动的方向。数据流的方向是:n从一加工流向另一加工n从加工流向数据存储或数据存储流向加工n从源点流向加工或
11、从加工流向终点 当数据流的方向指向一个加工时,表示它是该加工的一个输入数据流;当数据流的方向是从一个加工发出时,表示它是通过该加工得到的一个输出数据流。第27页,本讲稿共69页数据流n含有控制流的例子 数据流反映的是加工处理的对象,控制流是一种选择或用来影响加工的性质,而不是对它进行加工的对象读入卡片卡片校验合法卡卡片数读下张卡片第28页,本讲稿共69页 数据存储n数据存储逻辑上是信息的静态存储。物理上,DFD中的数据存储可以是计算机系统中的外部或者内部文件的一部分、数据库的元素或记录的一部分等,还可以是一个人工系统中的表册、账单等。n一个数据流从加工流向数据存储,表示该加工对文件写入;如果数
12、据流是从数据存储流向加工,表示该加工对文件读。如果加工到数据存储之间的数据流是双向的,表示该加工对文件的操作包括读、写和修改。第29页,本讲稿共69页数据的数据的数据的数据的加工或加工或加工或加工或变换变换变换变换输入输入输入输入输出输出输出输出软件软件软件软件系统系统系统系统外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体 外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体 输入输入输入输入数据流数据流数据流数据流输入输入输入输入数据流数据流数据流数据流输出输出输出输出数据流数据流数据流数据流输出输出输出输出数据流数据流数据流数据流-系统的系统的逻辑逻辑模型模型
13、第30页,本讲稿共69页描述银行取款过程的数据流图描述银行取款过程的数据流图第31页,本讲稿共69页数据流图的分层n为了表达数据处理过程的数据加工情况,需要采用层次结构层次结构的数据流图。按照系统的层次结构进行逐步分解逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统第32页,本讲稿共69页顶层顶层0层层一层一层第33页,本讲稿共69页数据流图的分层n在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据n底层流图是指其加工不需再做分解的数据流图,它处在最底层n中间层流图则表示对其上层父图的细化。它的每一加工可
14、能继续细化,形成子图。第34页,本讲稿共69页画分层画分层 DFD 的指导原则的指导原则n注意父图和子图的平衡S1S2S3A父图BCMNOS3.1S3.2S3.3子图1NXTMQOS3.1S3.2S3.4NXMQOS3.3PS3.1S3.2S3.4NXMQJS3.3P子图2子图3KFiFi第35页,本讲稿共69页画分层画分层 DFD 的指导原则的指导原则n掌握分解的速度 一般来说,每一个加工每次可分为 2-4个子加工,最多不得超过 7 个。n遵守加工编号规则 顶层加工不编号。第二层的加工编号为1,2,3,n号。第三层编号为1.1,1.2,1.3n.1,n.2等号,依此类推第36页,本讲稿共69
15、页 画数据流图的步骤n(1)找外部实体,确定系统边界,确定数据流源和数据终点。以项目开发计划确定的目标为基础,经过需求获取工作,可以比较容易划定系统的边界,确定系统的数据源点和终点。进而找出外部实体的输入和输出数据流,画出顶层数据流图。n(2)从数据源点出发,按照系统的逻辑需要,逐步画出一系列逻辑加工框,直至数据终点。自顶向下,对每个加工进行内部分解,画出分层数据流图n(3)按照下述一般原则对数据流图进行复查求精。复查求精应由分析员与用户共同参与,分析员借助数据流图及数据词典,向用户阐述系统输入数据如何一步一步地转变为输出结果。第37页,本讲稿共69页构造分层数据流图及求精的原则n数据流图中所
16、有图形符号必须是四种元素之一,图数据流图中所有图形符号必须是四种元素之一,图中的每一个元素都必须有良好的命名中的每一个元素都必须有良好的命名n分解应该自然,概念上清晰、合理分解应该自然,概念上清晰、合理n流入、流出加工的数据流应连续,必须有输入、流入、流出加工的数据流应连续,必须有输入、输出数据流,缺一不可。输出数据流,缺一不可。n在分解过程中,注意保持父图和子图数据流的平衡在分解过程中,注意保持父图和子图数据流的平衡性,合理利用局部文件实现信息隐蔽。性,合理利用局部文件实现信息隐蔽。n控制单张数据流图的复杂性。控制单张数据流图的复杂性。n当一个加工逻辑足够简单,则分解可以终止。当一个加工逻辑
17、足够简单,则分解可以终止。第38页,本讲稿共69页构造分层数据流图及求精的原则n在软件分析过程中应只考虑稳态,暂时忽略有关细节。n在进行逐层分解时,应注意分解层次的均匀性。第39页,本讲稿共69页举例学生学生学生学生开购书开购书开购书开购书证明证明证明证明购书购书购书购书证明证明证明证明开购书开购书开购书开购书发票发票发票发票 发发发发 票票票票收书费收书费收书费收书费 领书单领书单领书单领书单发书发书发书发书学生学生学生学生人工销售教材人工销售教材人工销售教材人工销售教材 系统流程图系统流程图系统流程图系统流程图第40页,本讲稿共69页学学学学生生生生教材教材教材教材购购购购销销销销系统系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第三

限制150内