第2章_软件工程与需求工程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第2章软件工程与需求工程2019/8/112第2章软件工程与需求工程2.1软件工程2.2软件开发过程模型2.3需求工程与软件开发2.4软件需求的开发和管理过程2019/8/1132.1软件工程软件危机是指人们难以控制软件的开发和维护。表现:(1)大型软件系统十分复杂,很难理解和维护;(2)软件开发周期过长;(3)大型软件系统的可靠性差;(4)软件费用往往超出预算。2019/8/114软件危机的解决方法应用工程化的方法来进行软件的开发和维护。软件工程的研究内容软件开发过程、软件开发和维护的方法和技术、软件开发和维护工具系统、质量评价和质量保证、软件管理和软件开发环境等。2019/8/1152.2软件开发过程模型1.瀑布式模型2.快速原型模型3.渐增式模型4.螺旋式模型5.面向对象的开发模型2019/8/1162.2.1瀑布式模型依据软件生命期而提出的软件开发模型,将软件的开发过程被分为六个阶段,每个阶段都有明确的分工和任务,并产生一定的书面结果。各阶段之间是紧密相关的,后一阶段的工作是依据前一阶段的工作结果而开展的。软件计划需求分析与定义设计编码测试维护2019/8/1172.2.1瀑布式模型不足(1)要求用户一开始就提出清晰完整的需求;(2)段间移交信息(文档)的过程中,由于个人的理解不同,容易产生误解;(3)用户的参与程度不够。2019/8/1182.2.2快速原型模型快速原型模型的基本思想是快速建立一个实现了若干功能的(不要求完全)可运行模型来启发、揭示和不断完善用户需求,直到满足用户的全部需求为止。收集需求快速设计建立原型评价并细化需求设计与实现测试维护2019/8/1192.2.2快速原型模型目的(1)明确并完善需求;(2)探索设计选择方案;(3)可以发展为最终的产品。特点(1)能弥补瀑布模型中用户参与程度不够等不足;(2)能减少用户需求的遗漏以及(在软件开发后期)用户频繁修改需求的可能性;2019/8/11102.2.2快速原型模型(3)用户可以充分地参与到软件开发中;(4)快速。不足(1)用户易于视原型为正式产品;(2)快速原型系统对于软件系统的开发环境要求较多,在一定程度上也影响了其使用的范围和实用价值。2019/8/11112.2.3渐增式模型渐增式模型的基本思想是从核心功能开始,通过不断地改进和扩充,使得软件系统能适应用户需求的变动和扩充,从而获得柔软性较高的软件系统。需求分析和定义(概要)设计实现与集成各个构件测试维护渐增式模型表明,必须在实现各个构件之前就全部完成需求分析和概要设计工作。2019/8/11122.2.3渐增式模型特点(1)能在短时间向用户提交可完成部分功能的产品。(2)能逐步增强产品功能以使用户有较充裕的时间学习和适应新的软件系统。2019/8/11132.2.3渐增式模型不足(1)在把每个新增的构件或功能集成到现有的软件系统中时,必须不破坏该软件系统。(2)在设计软件系统的体系结构时,要充分考虑到其开放性,而且加入新构件的过程必须简单和方便。2019/8/11142.2.4螺旋式模型将瀑布式模型与快速原型模型结合到一起,并加上风险分析。理解这种模型的一个简便方法是把它看作在每个阶段之前都增加风险分析。制定计划风险分析实施工程计划下一阶段系统实现2019/8/11152.2.4螺旋式模型需求计划与生命周期计划操作概念原型1风险分析风险分析风险分析风险分析原型2原型3可运行的原型评估方案,识别并排除风险确定目标,选定方案,设定约束条件累计费用各步骤的进度开发计划需求确认软件需求软件产品设计实现验收测试集成测试单元测试编码详细设计计划下一阶段开发、验证下一级产品时间2019/8/11162.2.4螺旋式模型特点(1)适用于软件开发机构内部开发大规模软件项目。(2)对于可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。(3)减少过多测试或测试不足所带来的风险。2019/8/11172.2.5面向对象的开发模型所谓面向对象就是应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念对问题进行分析和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作为运行机制的一种问题求解方法。面向对象分析面向对象设计面向对象实现和测试系统维护2019/8/11182.2.5面向对象的开发模型特点(1)有一部分分析工作必须在设计之前进行,而另外一些分析工作则需与其他部分的设计与实现工作并行地进行,因而呈现出非线性的工作方式。(2)软件系统的表达形式在整个开发模型中都是相同的,即面向对象方法中把类及其结构作为系统的表达单元,无论哪一个阶段都以渐增的方式不断地进化或细化这些表达单元。(3)开发模型支持软件的重用。2019/8/11192.3需求工程与软件开发1.需求工程对软件开发的影响2.需求工程面临的困难2019/8/11202.3.1需求工程对软件开发的影响需求工程对软件开发的影响如下:(1)需求是制定项目计划的基础。(2)需求工程所产生的最终产物——需求规格说明——是软件设计和软件实现的基础。(3)需求规格说明也是测试工作和用户验收软件系统的依据。(4)需求规格说明也是软件维护工作的依据。2019/8/11212.3.2需求工程面临的困难需求工程是人们通过不断地认识和深入研究而形成的结果。而且需求工程对软件开发的影响是很大的。随着软件系统日益大型和复杂化,软件需求的开发和管理也日益复杂,而且需求工程自身也面临诸多有待解决地问题。2019/8/11222.3.2需求工程面临的困难需求获取与需求分析的困难性(1)有些需求可能用户也不是很清楚;(2)需要用户与开发人间进行充分的交流和协商;(3)需求间的冲突和矛盾的检查以及解决;(4)需求是否完整的确定;(5)合适的需求建模的方法和技术。2019/8/11232.3.2需求工程面临的困难需求描述语言和规范化的困难性(1)怎样规范化用户需求;(2)规范化哪些用户需求;(3)非形式化和形式化描述语言的使用。2019/8/11242.3.2需求工程面临的困难需求验证的困难性(1)需求规格说明正确性的确认和验证;(2)验证的方法和技术;(3)如何进行自动验证。2019/8/11252.3.2需求工程面临的困难需求管理的困难性(1)需求规格说明书的质量保证;(2)需求规格说明书的版本管理;(3)需求变更的控制。2019/8/11262.4软件需求的开发和管理过程软件需求的开发和管理过程是由导出、确认和维护软件系统需求规格说明的一系列活动组成的。根据需求工程开发和管理过程可大致划分需求开发和需求管理两个阶段。其中需求开发主要产生正式的需求规格说明,需求管理主要是根据需求的变化对需求规格说明的内容及版本进行管理。2019/8/11272.4软件需求的开发和管理过程用户的问题和要求需求开发需求规格说明改进的需求规格说明明确的需求和约束条件需求管理用户意图的分析需求规范化2019/8/11282.4软件需求的开发和管理过程但在需求工程的实际处理过程中,上图所示的需求过程过于简略,不能反映需求工程复杂的执行过程。因此,为了如实地反映出需求工程的实际执行过程,需求工程过程可进一步划分为下图所示的若干阶段。需求获取需求分析需求描述需求验证需求管理需求开发过程需求管理过程2019/8/11292.4软件需求的开发和管理过程需求开发过程的主要任务(1)需求获取:确定和收集与软件系统相关的、来自不同来源和对象的用户需求信息。(2)需求分析:对获得的用户需求信息进行分析和综合,即提炼、分析和仔细审查已收集到的用户需求信息,并找出其中的错误、遗漏或其它不足的地方,以获得用户对软件系统的真正需求,建立软件系统的逻辑模型(或需求模型)。(3)需求定义:使用适当的描述语言,按标准的格式描述软件系统的需求,并产生需求规格说明及其相应文档。(4)需求验证:审查和验证需求规格说明是否正确和完整地表达了用户对软件系统的需求。2019/8/11302.4软件需求的开发和管理过程需求管理的任务有效地管理软件系统的需求规格说明及其相应文档,评估需求变更带来的潜在影响及可能的成本费用,跟踪软件需求的状态,管理需求规格说明的版本等。

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功