软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析

上传人:E**** 文档编号:89440137 上传时间:2019-05-25 格式:PPTX 页数:166 大小:3.12MB
返回 下载 相关 举报
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析_第1页
第1页 / 共166页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析_第2页
第2页 / 共166页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析_第3页
第3页 / 共166页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析_第4页
第4页 / 共166页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析_第5页
第5页 / 共166页
点击查看更多>>
资源描述

《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析》由会员分享,可在线阅读,更多相关《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第二章 可行性研究及需求分析(166页珍藏版)》请在金锄头文库上搜索。

1、第二章 可行性研究及需求分析,可行性研究,需求分析,结构化需求分析的方法,结构化需求分析的工具,面向对象的软件工程方法,2.1,2.2,2.3,2.4,2.5,可行性研究及需求分析,2.6,面向对象需求分析方法,UML简介,2.7,2.1 可行性研究,可行性研究的目的与意义 可行性研究的内容 可行性研究的步骤,2.1 可行性研究,可行性研究是项目开发之前的重要阶段。为了避免盲目的软件开发,相关人员需要对开发特定软件项目的可行性进行研究,结合资金、时间和环境等各方面的制约条件,对该软件产品是否能够解决存在的问题,是否能够带来预期的效果和价值做出评估。,可行性研究的目的与意义,可行性研究的目的不在

2、于提出解决问题的方案,而在于研究解决问题的必要性和可能性。 在软件开发实践中,由于软件开发人员或用户对市场的了解不充分,对技术的把握不成熟,对进行开发的各项风险估计不足等因素,许多问题都不能在预期的时间范围内或资源限制下得到解决。,可行性研究的目的与意义,如果开发人员能够尽早预知存在的问题没有合理的解决方案,那么尽早停止项目的开发就能够避免时间、资金、人力和物力的浪费。,可行性研究的内容,可行性研究主要是从技术、经济和社会三个方面对软件项目的可行性进行分析,如图所示。,可行性研究的内容,技术可行性研究是对技术解决方案的实用性、技术资源的可用性和设备条件做出评估。 概括地说,就是要回答使用现有的

3、技术资源是否能实现待开发的软件系统的问题。 其研究内容一般包括风险分析、资源分析和技术分析。,可行性研究的内容,经济可行性研究要对项目开发总成本与开发系统将带来的经济效益之间的差值进行度量,从经济的角度去判断是否值得为软件开发项目进行投资。 经济可行性研究也叫做成本效益分析。 简单地说,只有开发系统的总成本小于将来系统投入使用后会带来的总收益的软件开发项目才值得进行下去。,可行性研究的内容,经济可行性研究的研究内容包括以下几项:,可行性研究的内容,社会可行性研究从政策、法律和制度等社会因素方面考虑项目开发的合理性和意义。 比如,项目是否与现行的某些国家政策相背离,是否会违反某些法律法规,是否不

4、符合社会的伦理道德等。,可行性研究的步骤,典型的可行性研究的步骤如图所示。,可行性研究的步骤,1. 确定系统的目标 系统分析人员要详细地阅读各种相关资料,并对用户和市场进行调查,从而确认目标系统要完成的任务。 同时,还要明确进行项目开发时的一切限制和约束,以及可以使用的各种资源。,可行性研究的步骤,2. 分析研究正在运行的系统 对现有系统功能特点的充分了解是成功开发新系统的前提。 对现有系统的研究包括阅读和分析各种文档资料,观察系统的运行状况和实地操作系统,收集和分析用户对现有系统的意见等。 可以说,现有系统是开发目标系统时重要的信息来源。,可行性研究的步骤,3. 设计新系统的高层逻辑模型 一

5、般来说,新系统应该完成现有系统的功能,并对现有系统中存在的问题进行改善或修复。 在分析研究了现有系统的基础上,就可以大体把握新系统的功能和结构,然后从较高层次上建立新系统的逻辑模型。,可行性研究的步骤,4. 提出可行的解决方案并对其进行评估和比较 基于新系统的高层逻辑模型,系统分析人员可以从技术的角度提出多种解决方案,并从经济、社会和技术等多个方面对各种解决方案进行比较和评估。,可行性研究的步骤,5. 选择合适的解决方案 在上述研究的基础上,回答该软件产品是否能够解决存在的问题,是否能够带来预期的效果和价值的问题。 如果该软件开发项目没有必要性和可能性,则应立即停止,并给出详细的理由。 如果有

6、开发该软件产品的必要性和可能性,那么应该从上述的多个解决方案中选取出最合适、最可行的解决方案,列举出选择该方案的原因,从经济可行性、社会可行性和技术可行性三个方面对该方案进行可行性研究。,可行性研究的步骤,6. 撰写可行性研究报告 可行性研究报告是可行性研究阶段的输出文档,应该包括的内容有项目背景、管理概要、候选方案、系统描述、经济可行性分析、社会可行性分析、技术可行性分析及可行性研究的结论等。,可行性研究的步骤,可行性研究的结论一般有三种:,可行性研究的步骤,上述可行性研究的步骤只是一个经过长期实践总结出来的框架。 在实际的使用过程中,它不是固定的,根据项目的性质、特点以及开发团队对业务领域

7、的熟悉程度会有些变化。,2.2 需求分析,需求分析的目的与意义 需求分析的步骤,需求分析的目的与意义,需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。 一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。 因此,开发人员和用户之间充分和有效的沟通在需求分析的过程中至关重要。,需求分析的目的与意义,有效的需求分析通常都具有一定的难度,一方面是因为交流存在障碍,另一方面是因为用户通常对需求的陈述不完备、不准确和不全面,并且还可能不断地变化。 开发人员不仅需要在

8、用户的帮助下抽象现有的需求,还需要挖掘隐藏的需求。 此外,把各项需求抽象为目标系统的高层逻辑模型对日后的开发工作也至关重要。 合理的高层逻辑模型是系统设计的前提。,需求分析的目的与意义,在进行需求分析的过程中,首先要明确需求分析应该是一个迭代的过程。 由于市场环境的易变性以及用户本身对于需求描述的模糊性,需求往往很难做到一步到位。 需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。,需求分析的目的与意义,此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。,需求分析的步骤

9、,遵循科学的需求分析步骤可以使需求分析工作更高效。需求分析的一般步骤如图所示。,需求分析的步骤,需求涉及的方面,需求分析的步骤,1.获取需求,识别问题 开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。 开发人员通过调查研究,要理解当前系统的工作模型和此外,在需求的获取时,还要明确用户对系统的安全性、可移植性和容错能力等其他要求。 比如,多长时间需要对系统做一次备份,系统对运行的操作系统平台有何要求,发生错误后重启系统允许的最长时间是多少等。,需求分析的步骤,获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科

10、学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。,需求分析的步骤,当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。 原型系统就是目标系统的一个可操作的模型。在初步获取需求后,开发人员会快速地开发一个原型系统。 通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。,需求分析的步骤,2. 分析需求,建立目标系统的逻辑模型 在获得需求后,开发人员应该对问题进行分析抽象,并在此基础上从高层建立目标系统的逻辑模型。模型是对事物高层次的抽象,通常由一组符号和组织这些符号的规则组成

11、。 常用的模型图有数据流图、E-R图、用例图和状态转换图等,不同的模型从不同的角度或不同的侧重点描述目标系统。绘制模型图的过程,既是开发人员进行逻辑思考的过程,也是开发人员更进一步认识目标系统的过程。,需求分析的步骤,利用原型系统获取需求的方法的示意图如图所示。,需求分析的步骤,3. 将需求文档化 获得需求后要将其描述出来,即将需求文档化。对于大型的软件系统,需求阶段一般会输出三个文档:,需求分析的步骤,对于简单的软件系统而言,需求阶段只需要输出软件需求文档就可以了。 软件需求规格说明书主要描述软件的需求,从开发人员的角度对目标系统的业务模型、功能模型和数据模型等内容进行描述。 作为后续的软件

12、设计和测试的重要依据,需求阶段的输出文档应该具有清晰性、无二义性和准确性,并且能够全面和确切地描述用户需求。,需求分析的步骤,4. 需求验证 需求验证是对需求分析的成果进行评估和验证的过程。为了确保需求分析的正确性、一致性、完整性和有效性,提高软件开发的效率,为后续的软件开发做好准备,需求验证的工作非常必要。 在需求验证的过程中,可以对需求阶段的输出文档进行多种检查,比如,一致性检查、完整性检查和有效性检查等。同时,需求评审也是在这个阶段进行的。,2.3 结构化需求分析 的方法,结构化需求分析的方法,结构化需求分析是20世纪70年代由Yourdon、Constaintine及DeMarco提出

13、的一种面向数据流的需求分析方法。 它基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。 “分解”是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。,结构化需求分析的方法,下图演示了对目标系统X进行自顶向下逐层分解的示意图。,结构化需求分析的方法,最顶层描述了整个目标系统,中间层将目标系统划分为若干个模块,每个模块完成一定的功能,而最底层是对每个模块实现方法的细节性描述。 可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的

14、细节。 这种用最本质的属性表示一个软件系统的方法就是“抽象”。,2.4 结构化需求分析 的工具,数据流图 数据字典 E-R图,数据流图,数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具。 是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。 数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。,数据流图,结构化需求分析采用的是“自顶向下,由外到内,逐层分解”的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。

15、顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。 底层的数据流图是对系统某个部分的精细描述。,数据流图,按照Gane-Sarson法,在绘制数据流图的过程中,主要用到了4个基本符号,如下表所示。,数据流图,为了对数据流图有更直观的认识,我们以一个考试成绩管理系统为例,介绍它的数据流图。 某单位进行招聘考试,应聘者报名后,单位的招聘委员会将每位应聘者的基本情况输入系统。 招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。,数据流图,某单位进行招聘考试,应聘者报名后,单位的招聘委员

16、会将每位应聘者的基本情况输入系统。 招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。,数据流图,该考试成绩管理系统顶层和底层的数据流图分别如下图。,数据流图,在绘制数据流图的过程中,要注意以下几点: 数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。 数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数据的中间数据。 数据流和数据存储是不同状态的数据。数据流是流动状态的数据,而数据存储是指处于静止状态的数据。 当目标系统的规模较大时,为了描述的清晰和易于理解,通常采用逐层分解的方法,画出分层的数据流图。在分解时,要考虑到自然性、均匀性和分解度几个概念。,数据流图,在绘制数据流图的过程中,要注意以下几点: (1) 数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。 (2) 数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数据的中间数据。 (3) 数据流和数据存储是不同状态的数据。数据流是流动状态的数据,而数据存

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号