软件需求解读-第二部分(最终版)解读_第1页
软件需求解读-第二部分(最终版)解读_第2页
软件需求解读-第二部分(最终版)解读_第3页
软件需求解读-第二部分(最终版)解读_第4页
软件需求解读-第二部分(最终版)解读_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件需求二软件工程与需求工程软件工程与软件开发过程模型瀑布模型快速原型模型螺旋模型增量模型RUP喷泉模型关于选择生命周期模型的总结需求工程 什么是需求工程需求工程的内容需求工程过程需求工程的涉众人员需求工程的方法面向对象的需求工程方法第3章 软件工程与软件开发过程模型 软件工程软件开发过程模型2022/7/1543.1 软件工程软件危机是指人们难以控制软件的开发和维护。表现: 1大型软件系统十分复杂,很难理解和维护; 2软件开发周期过长; 3大型软件系统的可靠性差; 4软件费用往往超出预算。 2022/7/155软件工程续软件危机的解决方法应用工程化的方法来进行软件的开发和维护 。软件工程的研

2、究内容软件开发过程、软件开发和维护的方法和技术、软件开发和维护工具系统、质量评价和质量保证、软件管理和软件开发环境等。2022/7/1562.2 软件开发过程模型软件生命周期模型瀑布式模型快速原型模型 螺旋式模型 增量模型 RUP(Rational统一过程喷泉模型基于面向对象技术 1瀑布模型Waterfall Model 瀑布模型的优点 客户很容易熟悉该模型。是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性。各阶段工作任务明确,要求文档完备性,可方便按阶段设置里程碑,便于工程跟踪可以严格控制工程进程,使工程管理易于实施。定义了质量控制过程。运用该过程来确定系统的质量。

3、瀑布模型的缺点需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变更代价很大风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时假设发现大的错误,可能引起客户的惊慌,其后果也可能是灾难性的效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间要长,即所谓的“堵塞状态适用于一些需求已明确并且变化较少的系统2快速原型模型原型快速建立起来的可以在计算机上运行的程序,通常选取系统中某个关键功能作为原型。编程测试分析定义需求设计原型实施完成再构造快速原型的根本思想和开发步骤根本思想 在投入大量的人力、物力之前,在限定的时间内,用最经济的方法

4、构造一个系统原型,使用户尽早看到系统的概貌,在系统原型的实际运行中与用户一起发现问题,提出修改意见,不断完善原型,使它逐步满足用户要求。开发步骤明确用户根本信息需求建立初始原型集成原那么、最小系统原那么评价原型修改和完善原型快速原型的开发工具第四代技术可复用软件构件形式化规约和原型环境快速原型的类型抛弃式原型。将开发原型看做是沟通工具,永远也不会将一次式原型引入正式运行环境中。主要解决需求的不确定性,二义性,不完整性等。进化式原型。会在未来的系统中包含的原型。这种方法能够将最大量的工作投入到正式系统中。水平原型也称为行为原型,用来探索预期系统的一些特定行为,并到达细化需求的目的。水平原型通常只

5、是功能导航,并未真实实现功能。主要用在用户界面上。垂直原型也称为结构化原型,实现了一局部功能。主要用在复杂的算法实现上。抛弃式原型模型演化式原型模型是交付目标系统建立/完善原型系统充分吗?否软件过程的演化式原型模型使用原型系统需求抽象描述快速原型的典型应用快速原型的评价这个原型所实现的功能与你所期望的一致吗?有遗漏的功能吗?有多余的功能吗?你能考虑一下这个原型所没有涉及到的一些出错情况吗?这些功能导航的逻辑性和完整性如何?有更简单的方法来完成这一任务吗?快速原型的特点和应用场合用户积极参与原型的开发没有严密的阶段性短期获得测试版本,降低风险应用于以下场合:需求模糊,用户不能标识出详细的输入、处

6、理和输出需求设计方案不明确,开发人员不能确定算法的有效性、操作系统的适应性或人机交互的有效性快速原型的缺乏降低风险的同时,引入了其他风险:用户随意无止境的需求变化,因为用户容易产生误解,认为系统很容易被构造和修改如果采用原型根底上继续构造,由于修补过度,软件质量不易于保证开发人员为了快速构造原型,可能会采用不适宜的操作系统、语言、算法等,造成后期风险,如系统适应性差、维护困难等快速原型开发的原那么你的工程方案中应包括原型风险。方案开发多个原型,因为你很少能一次成功。尽快并且廉价地建立抛弃型原型。在抛弃型原型中不应含有代码注释、输入数据有效性检查、保护性编码技术,或者错误处理的代码。对于已经理解

7、的需求不要建立原型。不能随意地增加功能。不要从水平原型的性能推测最终产品的性能。在原型屏幕显示和报表中使用合理的模拟数据。不要期望原型可以代替需求文档。3螺旋模型是增加了风险分析和躲避措施的“原型 + 瀑布的迭代式开发模型,由于一系列活动和活动间的回溯过程用螺旋线描述,故而得名。螺旋模型是一种迭代模型,软件开发过程定义成不断上升的螺旋周期,每个周期划分为方案、风险分析、实施和评价四个方面。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本螺旋模型操作概念螺旋模型的优点 能够及时找到工程存在的风险,防止因为克服不了的困难而造成大的损失。使用户能够尽早将信息经常反响给开发人员,保证了产品的

8、正确性和高质量。可以方便地评估和验证每次迭代的成果;实现从开发到维护的无缝连接。 螺旋模型的缺点 如果工程本身是低风险的或者规模较小,采用该模型可能产生昂贵的本钱。每一次螺旋结束后评估风险的时间及人工消耗都较大。模型本身比较复杂,开发人员和用户难于掌握。大量的中间阶段会产生额外的内外部文档。难以定义每阶段的目标。 采用螺旋模型的工程特征 适用于大型工程;更适用于内部开发指没有外包的开发内容。用于新功能、新产品或需要采用新技术时。收益不确定,工程不能确保成功时。用户不能确定其需求或需求很复杂时。 4增量模型一条直线一次性到达目的总是困难的。紧迫的市场期限使得难以完成一个完善的软件产品,缓解压力的

9、方式是先提交一个有限的版本,细节局部逐步增加。增量模型融合了瀑布模型的根本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。搭积木的方式,如按子系统划分增量增量模型的特点以功能递增的方式进行软件开发能较快地产生可操作的系统在每一步递增中,都可以把用户/开发者的经验结合到不断求精的产品中可改善测试效果和降低软件开发总本钱分析分析分析分析设计设计设计设计编码编码编码编码测试测试测试测试增量1增量2 增量3增量4 功能时间增量模型例如例子:设计一个字处理软件增量1:实现软件的根本需求,提供最核心的功能。增量2:提供更完善的编辑和文档生成功能。增量3:实现拼写和语法检查功能。增量4:完成高

10、级的页面排版功能。增量模型的应用场合工程开始,明确了需求的大局部,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解对于有庞大和复杂功能的系统进行功能改进,本身就需要一步一步实施的。5统一软件过程 RUP统一软件过程RUP,Rational Unified Process是基于面向对象统一建模语言UML的一种面向对象的软件过程模型。RUP遵循了逐步求精的、迭代的开发策略。RUP是以用例为驱动,以系统构架为中心的一个迭代式的增量过程。RUP分成初始、细化、构造和移交四个阶段,每个阶段又分成假设干次迭代,每次迭代都经过一个核心工作流程。 统一软件过程 RUP在统一过程中,有6个核心工作

11、流。 业务建模工作流:用商业用例为商业过程建立文档。 需求工作流:目标是描述系统应该做什么,确保开发人员构建正确的系统。为此,需明确系统的功能需求和非功能需求约束。 分析和设计工作流:其目标是说明如何做。结果是分析模型和设计模型。 实现工作流:用分层的方式组织代码的结构,用构件的形式来实现类,对构件进行单元测试,将构件集成到可执行的系统中。统一过程的核心工作流 测试工作流:验证对象之间的交互、是否所有的构件都集成了、是否正确实现了所有需求、查错并改正。 部署工作流:制作软件的外部版本、软件打包、分发、为用户提供帮助和支持。统一过程的核心工作流续RUP初始阶段的主要工作初始阶段:确定所设立的工程

12、是否可行。明确说明工程规模,了解环境以及最重要的需求和约束。划分主要子系统,给出系统的体系结构概貌。考虑时间、经费、人员、技术、工程方案和效益等因素。分析工程执行的风险。该阶段的焦点是需求和分析工作流。RUP细化阶段的主要工作细化阶段:识别出大多数用例80%。建立健全的体系结构根底,编制工程方案,细化风险评估。用例模型需要完成80%。创立软件结构的描述性文档。创立可执行的系统原型。细化风险列表。创立整个工程的开发方案。该阶段的焦点是商业建模和需求工作流。RUP构造阶段的主要工作 构造阶段:识别出最后剩余的用例。每一次迭代开发都对用例进行分析、设计、编码、测试和集成过程,最终得到满足工程需求的产

13、品。优化资源,使开发本钱降到最低。尽快到达质量要求。尽快完成有用的版本。完成所有功能的分析、开发和测试。迭代式、递增地开发随时可以发布的产品。确定准备好软件系统的外部环境。 该阶段的焦点是实现工作流。RUP交付阶段的主要工作交付阶段:完成最后的软件产品和产品验收测试,并编制用户文档,进行用户培训等工作。将完整的系统部署到用户所处的环境,确保软件对最终用户是可用的。按用户的要求验证新系统。替换旧的系统。对用户和维护人员进行培训。开始调整工作,例如性能或可用性的增强。与用户达成共识,部署基线与评估标准一致。该阶段的焦点是测试和部署工作流。RUP的迭代开发模式 屡次迭代 RUP的优点 降低了在一个增

14、量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。 加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。 RUP的缺点 RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容它没有支持多工程的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

15、总结:迭代式模型 在迭代的方法中,生命周期的阶段与各阶段的活动是别离开来的,即允许我们在工程的不同迭代中重新进行其中的某些活动,如需求、设计、实现等 。开发迭代是一次完整地经过所有工作流程的过程:至少包括需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式工程。每次迭代工程都会向前推进一步,产生一个可以发布的产品。 迭代模型与瀑布模型的差异 迭代方法常见的问题 过分详细的规划 工程不收敛 轻率地开始设计和编码 自掘陷阱 忘记新风险 不同的小组按自己的进度进行工作 第一次迭代做太多的事情 太多的迭代 迭代重叠 6喷泉模型喷泉模型:主要用于面向对象技术的软件开发工

16、程,它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。 喷泉模型以面向对象的软件开发方法为根底,以用户需求作为喷泉模型的源泉,属于面向对象的软件过程模型。 喷泉模型要点:各阶段相互重叠,它反映了软件过程并行性的特点表达认识事物的往返过程强调增量开发,整个过程是一个迭代的逐步提炼的过程。开发活动之间的无间隙性和循环迭代性适用于面向对象的开发过程强调无明显的活动阶段划分 集成和测试阶段编码阶段面向对象设计阶段面向对象分析阶段需求阶段进一步开发进行状态维护期练习题假设要开发一个软件,该软件的功能是对特定工程进行一项验证计算假定计算方法十分确定、成熟,一

17、旦实现后将用于该工程的测试验证中,由于工程的特殊性,所以,该软件产品在完成使命后将被抛弃。软件需求明确,算法确定、成熟,故无须原型来验证。一旦验证完成之后将被抛弃,故无须使用提高软件可维护性的迭代模型和螺旋模型。综上所述,为了开发此软件,使用瀑布模型即可。练习题续假设工程组正在开发已经被广泛使用的字处理软件的新版本,由于市场竞争剧烈,公司规定了严格的完成期限。旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定新版本的需求,故无需用原型模型软件工程师对旧版很熟悉,有开发字处理软件的经验,具有采用迭代式增量模型开发的技术水平。软件今后可能还要开发更新版本,因此该软件的体系结构应该是开放式

18、的,已利于今后的改进和扩充。综上所述,为了开发此软件,使用迭代式增量模型即可。第4章 需求工程 需求工程的定义软件需求工程的内容软件需求工程过程需求工程的涉众需求工程方法需求工程的定义需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。需求工程的组成系统需求工程软件需求工程软件需求工程的定义分析并记录软件需求的学科分解系统需求子系统和任务分配将某些子系统和任务分配给软件转换将系统需求转换为软件的需求描述和一些性能参数。软件需求工程的内容 需求基线团队成员已经承诺将在某一特定产品版本中实现的功能和非功能需求的一组集合。一定要通过正式的评审和批准工程的涉众必须要对此需求集合达成共识将此需求集合明确为一个基线版本即基线化SRS从此开始要实施严格的版本控制惟一地标识每一个SRS的不同版本。此后的需求管理将围绕基线展开软件需求工程过程 需求建模需求描述需求有效性验证初步需求说明系统分析模型需求规格说明书确认的需求文挡需求获取与分析软件需求工程的根本活动获取与分析需求;深入实际,在充分理解用户需求的根底上,获取系统需求。需求建模;进行需求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论