[计算机]《软件工程》教学课件05软件需求分析

上传人:繁星 文档编号:88354507 上传时间:2019-04-25 格式:PPT 页数:82 大小:248.50KB
返回 下载 相关 举报
[计算机]《软件工程》教学课件05软件需求分析_第1页
第1页 / 共82页
[计算机]《软件工程》教学课件05软件需求分析_第2页
第2页 / 共82页
[计算机]《软件工程》教学课件05软件需求分析_第3页
第3页 / 共82页
[计算机]《软件工程》教学课件05软件需求分析_第4页
第4页 / 共82页
[计算机]《软件工程》教学课件05软件需求分析_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《[计算机]《软件工程》教学课件05软件需求分析》由会员分享,可在线阅读,更多相关《[计算机]《软件工程》教学课件05软件需求分析(82页珍藏版)》请在金锄头文库上搜索。

1、2003.01.10,SOFTWARE ENGINEERING,The Definition Phase,System Engineering,Software project planning,Software requirements analysis,Software scope,Refined,确定做什么?,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,众所周知,在解决问题之前必须首先理解所要解决的问题。对问题理解得越透彻,就越容易解决它。当我们完全、彻底地理解了一个问题的时候,通常就已经解决了这个问题。,2003.01.10,SOFTWARE ENGI

2、NEERING,软件需求分析,为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,模型可以帮助我们思考问题、定义术语、在选择术语时作出适当的假设,并且可以帮助我们保持定义和假设的一致性。 在对目标系统进行分析的初始阶段,面对大量模糊的、涉及众多专业领域的、错综复杂的信息,系统

3、分析员往往感到无从下手。模型提供了组织大量信息的一种有效机制。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,为了开发复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了减少复杂性。人的头脑每次只能处理一定数量的信息,模型通过把系统的重要部分分解成人的头脑

4、一次能处理的若干个子部分,从而减少系统的复杂程度。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,一旦建立起模型之后,这个模型就要经受用户和各个领域专家的严格审查。由于模型的规范化和系统化,因此比较容易暴露出系统分析员对目标系统认识的片面性和不一致性。通过审查,往往会发现许多错误,发现错误是正常现象,这些错误可以在成为目标系统中的错误之前,就被预先清除掉。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,通常,通过快速建立原型,让用户和领域专家经过亲身体验,对系统模型进行更有效的审查。模型常常会经过多次必要的修改,通过不断改正错误的

5、或不全面的认识,最终,软件开发人员对问题有了透彻的理解,从而为后续的开发工作奠定了坚实基础。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析的任务,为了开发出真正满足用户需求的软件产品,首先必须确切地知道用户的需求。对软件需求的深入理解,是软件开发工作获得成功的前提和关键,不论我们把设计和编码工作做得多么出色,不能真正满足用户需求的软件只会给用户带来失望,给开发者带来烦恼。 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析的任务,需求分析是定义

6、软件的最后一个阶段,也是最重要的一个阶段,其基本任务是对目标系统提出完整、准确、清晰、具体的要求。 需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须采取行之有效的办法对需求分析进行严格的审查和验证。 Boehm对软件需求的定义:研究一种无二义性的表达工具,它能为用户和软件人员双方都接受并能够把“需求”严格地、形式地表达出来。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析,在编程过程中,事情总是会变得清晰;只有在检验了软件的早期版本后项目共利益者才能够更好地理解需求;事情变化太快,需求工程是浪费时间;底线是开发一个可运行的程序,其他都是

7、次要的。 构成这些论点的原因在于其中也包含了部分的真实情况(尤其是不超过一个月的小项目)。,2003.01.10,SOFTWARE ENGINEERING,信息技术项目成功的3要素,用户参与程度 高级管理层的支持 明确的需求说明,2003.01.10,SOFTWARE ENGINEERING,软件需求分析的困难,懂得应用领域专业知识的人很可能不是实际编写软件的人。这些应用领域的专家因而必须将他们的需求告诉软件开发的技术人员。 口头、书面语言中所固有的模糊性给领域专家与开发软件的技术人员之间的交流增添了一层复杂性。 我们都拥有自己不同的背景知识,它导致基于以往的经验对相同的现象做出不同的解释。,

8、2003.01.10,SOFTWARE ENGINEERING,软件需求分析的困难,在系统开发的每个阶段应该让未来用户参与,不论这些未来用户是否是领域专家。在软件开发过程中,软件开发的计划有必要允许最终用户来评价该系统。 不幸的是,许多软件企业的人相信只需要在系统开发早期阶段和开发完成时,向用户了解专业知识。这种态度很可能会导致许多软件开发项目的失败。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析的任务,1、确定系统的综合要求 系统功能要求 系统性能要求:如响应时间、存储容量、安全性能等。 系统运行要求:主要是对系统运行时的环境要求,如系统软件、外存和数据通信接

9、口等。 将来可能提出的要求:为扩充及修改作准备。 2、分析系统的数据要求 3、导出系统的逻辑模型:用DFD、DD等描述 4、修正系统的开发计划:通过需求对系统的成本及进度有了更精确的估算,可进一步修改开发计划。,2003.01.10,SOFTWARE ENGINEERING,软件需求分析的任务 -分析系统的数据要求,任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。,2003.01.10,SOFTWARE ENGINEERING,Software Req

10、uirements Analysis 软件需求分析,有几种原因使需求分析变得困难: (1)客户说不清楚需求或无需求,用户意见不统一,错误的需求等; (2)需求自身经常变动; (3)分析人员或客户理解有误,缺乏共同语言,交流障碍。 让我们先接受“需求会变动”这个事实吧,免得在需求变动时惊慌失措。错误观点:反正“需求会变动”,软件也很灵活,所以只做简单的需求分析就开始编程更有效。,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis 软件需求分析,如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快

11、。 如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户,先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。 最怕的就是“不懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。如果这些客户甚至觉得自己是上帝的父母,那么沟通和协商都会很困难。,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis 软件需求分析,在进行需求分析时必须注意: (1)尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上。 (2)在合同中一定要说清楚“做什么”

12、和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis 软件需求分析,系统分析人员不可能都是全才。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活。 所以分析人员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂,双方都不太明白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。 由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给

13、想歪了。,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis 软件需求分析,应该先了解宏观的问题,再了解细节的问题。 了解需求的方式有好几种: (1)直接与客户交谈。 (2)有些需求客户讲不清楚,分析人员又猜不透,这时就要请教专家。 (3)有很多需求可能客户与分析人员想都没有想过。要经常分析优秀的和蹩脚的同类软件,看到了优点就尽量吸取,看到了缺点就引以为戒。,2003.01.10,SOFTWARE ENGINEERING,Analysis Concept and Principles,A complete underst

14、anding of software require-ments is essential to the success of a software development effort. The requirements analysis task is a process of discover,refinement,modeling,and specification. Both the developer and customer take an active role in requirements analysis and specification. Requirements a

15、nalysis is a software engineering task that bridges the gap between system-level software allocation and software design.,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis,Requirements analysis enables the system engineer to specify software function and performance,indicate softwares i

16、nterface with other system elements,and establish constraints that software must meet. Requirements analysis allows the software engineer(often called analyst in this role) to refine the software allocation and build models of the data,functional,and behavioral domains that will be treated by software.,2003.01.10,SOFTWARE ENGINEERING,Software Requirements Analysis,Requirements analysis provides the software designer with models that can be translated in to data,architectural, interface,an

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

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