《软件需求-第二部分(精品).ppt》由会员分享,可在线阅读,更多相关《软件需求-第二部分(精品).ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件需求(二)周勇 就理论而言,理论和实践并无差异。但真付诸实行,差异即开始显现。Jan L.A.van de Snepscheut 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求工程与需求工程过程p软件需求与产品生命周期 n瀑布模型n快速应用开发(RAD)模型n螺旋模型nRUPn迭代式模型n形式化方法n关于选择生命周期模型的总结p需求工程 n什么是需求工程n需求工程的内容n需求工程过程n需求工程的涉众人员n需求工程的方法n面向对象的需求工程方法n面向对象的需求工作流n需求过程的改进2007年7月 SEI of ECNU版权所有 软件需求工程 2-第3章 主要软件生命周
2、期模型 p瀑布模型p快速应用开发模型(RAD)p螺旋模型pRUPp迭代式模型 2007年7月 SEI of ECNU版权所有 软件需求工程 2-瀑布模型(Waterfall Model)2007年7月 SEI of ECNU版权所有 软件需求工程 2-瀑布模型的优点 p客户很容易熟悉该模型。p以有序的方式解决复杂的问题,易于理解,目标简单完成所需要的活动。p可以严格控制项目进程,使项目管理易于实施。p方便按阶段设置里程碑,便于项目跟踪。p定义了质量控制过程。运用该过程来确定系统的质量。2007年7月 SEI of ECNU版权所有 软件需求工程 2-瀑布模型的缺点(一)p它有内在的线性顺序,尝
3、试重新使用两个或更多阶段开改正一个问题或缺陷,会导致成本上升和进度安排上工作量的急剧增加。p它不能准确反映软件开发中解决问题的特点。各阶段严格与活动一致,而不管开发团队的实际工作如何。p它的状态和进展容易给人以错觉,实际工作中“完成50%的工作”对项目经理来说并无实际意义。p最后集成造成较大的风险。由于过程中的线性传递特点,常常在集成中出现问题时就已为时太晚。最后会发现前期未发现的错误或设计缺陷,由于没有时间恢复而增加了风险。p它是文档驱动的,文档工作量非常大。p当瀑布模型必须面对范围管理的挑战时,就显得力不从心了。如果把这个模型应用于大范围的项目时,会出现最后期限到来时,没有任何实质性的成果
4、,系统集成和测试被迫推迟或放弃,在前期需求规格说明、设计和编码中可观的投入未能产生有效的成果,没有任何可提交的产品。2007年7月 SEI of ECNU版权所有 软件需求工程 2-瀑布模型的缺点(二)p实际的项目很少按照该模型给出的顺序进行。虽然瀑布模型能够容许迭代,但却是间接的。结果,在项目组的开发过程中变化可能引起混乱。p用户常常难以清楚地给出所有需求,而瀑布模型却要求如此,它还不能接受在许多项目的开始阶段自然存在的不确定性。p开发者常常被不必要地耽搁。在对实际项目的分析中,BradacBRA,1994发现传统生命周期的线性特征会导致“阻塞状态”,其中某些项目组成员不得不等待组内其他成员
5、先完成其依赖的任务。事实上,花在等待上的时间可能会超过花在开发工作上的时间。阻塞状态经常发生在线性顺序过程的开始和结束。2007年7月 SEI of ECNU版权所有 软件需求工程 2-采用瀑布模型需要具备的项目特征 p在系统开发前要对需求有完整、全面、清晰的了解。p上述需求不存在隐含的不可克服的风险。p需求变更不能过于频繁。p不同涉众的需求互相兼容,不存在明显的冲突。p开发团队掌握了解决需求问题的有效方法。p开发期限允许分阶段地串行工作。2007年7月 SEI of ECNU版权所有 软件需求工程 2-快速应用开发(RAD)模型 2007年7月 SEI of ECNU版权所有 软件需求工程
6、2-RAD模型的优点模型的优点 p采用高效率的开发工具,从而减少了整个产品的开发周期。提高了生产率,降低了成本。p用户能够持续地参与开发,提高了用户参与程度,从而使用户的满意度上升,保证了系统能够满足用户的需要。p工作重点从文档转为构建,所见即所得。2007年7月 SEI of ECNU版权所有 软件需求工程 2-RAD模型的缺点模型的缺点 p如果用户不能持续地参与整个生命周期中,最终产品会受到负面影响。p要求系统能适当模块化,如果没有可重用的组件,它的效率就会下降。p盲目应用时,会缺乏成本概念和项目完成的时间限制。项目有永远不能完结的风险。p对于大型的、但可伸缩的项目,RAD 需要足够的人力
7、资源以创建足够的RAD 组。pRAD 要求承担必要的快速活动的开发者和用户在一个很短的时间框架下完成一个系统。如果两方中的任何一方没有完成约定,都会导致RAD 项目失败。2007年7月 SEI of ECNU版权所有 软件需求工程 2-采用RAD模型的项目特征 p系统可模块化(基于组件的结构)和可缩放。p用户能参与到整个生命周期中。p项目开发周期很短通常约60天。p项目团队熟悉问题领域,能熟练使用开发工具。2007年7月 SEI of ECNU版权所有 软件需求工程 2-螺旋模型螺旋模型2007年7月 SEI of ECNU版权所有 软件需求工程 2-螺旋模型的优点 p能够及时找到项目存在的风
8、险,避免因为克服不了的困难而造成大的损失。p使用户能够尽早将信息经常反馈给开发人员,保证了产品的正确性和高质量。p可以方便地评估和验证每次迭代的成果;实现从开发到维护的无缝连接。2007年7月 SEI of ECNU版权所有 软件需求工程 2-螺旋模型的缺点 p如果项目本身是低风险的或者规模较小,采用该模型可能产生昂贵的成本。每一次螺旋结束后评估风险的时间及人工耗费都较大。p模型本身比较复杂,开发人员和用户难于掌握。p大量的中间阶段会产生额外的内外部文档。p难以定义每阶段的目标。2007年7月 SEI of ECNU版权所有 软件需求工程 2-采用螺旋模型的项目特征 p适用于大型项目;更适用于
9、内部开发(指没有外包的开发内容)。p用于新功能、新产品或需要采用新技术时。p收益不确定,项目不能确保成功时。p用户不能确定其需求或需求很复杂时。2007年7月 SEI of ECNU版权所有 软件需求工程 2-统一软件过程(RUP)2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的核心概念 2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的核心工作流(一)的核心工作流(一)p6个核心过程工作流 n商业建模(Business Modeling)n需求(Requirements)n分析和设计(Analysis&Design)n实现(Implement
10、ation)n测试(Test)n部署(Deployment)2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的核心工作流(二)的核心工作流(二)p3个核心支持工作流 n配置和变更管理(Configuration&Change Management)n项目管理(Project Management)n环境(Environment)2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的裁剪 p确定本项目需要哪些工作流。RUP的9个核心工作流并不总是需要的,可以取舍。p确定每个工作流需要哪些制品。p确定4个阶段之间如何演进。确定阶段间演进要以风险控制为原则
11、,决定每个阶段要那些工作流,每个工作流执行到什么程度,制品有那些,每个制品完成到什么程度。p确定每个阶段内的迭代计划。规划RUP的4个阶段中每次迭代开发的内容。p规划工作流内部结构。工作流涉及角色、活动及制品,它的复杂程度与项目规模即角色多少有关。最后规划工作流的内部结构,通常用活动图的形式给出。2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的迭代开发模式 2007年7月 SEI of ECNU版权所有 软件需求工程 2-多次迭代 2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的优点 p降低了在一个增量上的开支风险。如果开发人员重复某个迭代,
12、那么损失只是这一个开发有误的迭代的花费。p降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。p加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。p由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。2007年7月 SEI of ECNU版权所有 软件需求工程 2-RUP的缺点 pRUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容p它没有支持多项目的开发结构,这在一定程度上降低了在开发组
13、织内大范围实现重用的可能性。2007年7月 SEI of ECNU版权所有 软件需求工程 2-迭代式模型 p在迭代的方法中,生命周期的阶段与各阶段的活动是分离开来的,即允许我们在项目的不同迭代中重新进行其中的某些活动,如需求、设计、实现等。p开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。2007年7月 SEI of ECNU版权所有 软件需求工程 2-迭代模型与瀑布模型的差别 2007年7月 SEI of ECNU版权所有 软件需求工程 2-迭代方法常见的问题 p过分详细的规划 p项目不收敛
14、p轻率地开始设计和编码 p自掘陷阱 p忘记新风险 p不同的小组按自己的进度进行工作 p第一次迭代做太多的事情 p太多的迭代 p迭代重叠 2007年7月 SEI of ECNU版权所有 软件需求工程 2-形式化方法 p形式化方法模型包含了一组活动,它们带来了计算机软件用数学说明描述的方法。形式化方法使得软件工程师能够通过采用一个严格的、数学的表示体系来说明、开发和验证基于计算机的系统。p支配形式化方法的基本概念是:n数据不变式。个条件表达式,它在包含一组数据的系统的执行过程中总保持为真;n状态。系统访问和修改的存储数据;n操作。系统中发生的动作,以及对状态数据的读或写。每一个操作是和两个条件相关
15、联的:前置条件和后置条件。n离散数学。与集合和构造性规约、集合运算符、逻辑运算符、以及序列相关联的符号体系,形成了形式化方法的基础。这些数学在形式化规约语言,如Z 语言中被实现。2007年7月 SEI of ECNU版权所有 软件需求工程 2-形式化方法的优点 p形式化规约可以用数学方法研究,而非形式化方法则不能。p某些形式的不完整性和不一致性可以被自动地检测。p形式化方法提供了规约环境的基础,它使得所生成的分析模型比用传统的或面向对象的方法生成的模型更完整、一致和无二义。集合论和逻辑符号的描述使得软件工程师能创建清晰的关于事实(需求)的陈述。2007年7月 SEI of ECNU版权所有 软
16、件需求工程 2-形式化方法的缺点 p形式化规约主要关注于功能和数据,而问题的时序、控制和行为等方面却更难于表示。p使用形式化方法来建立规约比其他分析方法更难于学习。p形式化模型的开发目前还很费时和昂贵。p因为很少有软件开发者具有使用形式化方法所需的背景知识,所以尚需多方面的培训。p难以使用该模型与用户进行交流沟通,因为几乎所有的用户对其一无所知。2007年7月 SEI of ECNU版权所有 软件需求工程 2-第4章 需求工程 p需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。p完整的软件需求工程包括需求开发和需求管
17、理两个部分,需求开发的一般过程分为需求获取、需求建模、需求规格说明、需求验证四个阶段,需求管理则主要包括需求基线的建立、需求变更控制以及需求跟踪等活动。p需求工程过程被认为是建立软件系统最重要的方面之一。在项目中,它涵盖了与需求相关的所用活动。p需求工程的涉众。p需求工程方法大致分为四类:面向过程、面向数据、面向控制、面向对象。p面向对象的需求工作流包括:问题分析,理解涉众需要,定义系统,管理项目规模,改进系统定义。p软件需求过程的改进具有以下两个主要目标:解决在以前项目或目前项目中遇到的问题;防止和避免你可能在将来的项目中要遇到的问题。p需求过程改进路线图。2007年7月 SEI of EC
18、NU版权所有 软件需求工程 2-需求工程的内容 2007年7月 SEI of ECNU版权所有 软件需求工程 2-Pressman的需求工程过程 2007年7月 SEI of ECNU版权所有 软件需求工程 2-Boehm的需求工程过程 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求工程的涉众人员 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求工程的方法 p面向过程p面向数据p面向控制p面向对象 2007年7月 SEI of ECNU版权所有 软件需求工程 2-面向对象的需求工程方法 p与用户广泛接触,收集和查看相关资料,对问题域有一个大致的了解
19、。在此基础上,提炼和标识对象。p描述对象(类)的属性。p描述对象之间的关系,如整体关系和从属关系等。p描述问题域的“场景”,即描述问题域中完成每个任务需要的对象间的协作关系。2007年7月 SEI of ECNU版权所有 软件需求工程 2-面向对象的需求工作流 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求过程的改进 p解决在以前项目或目前项目中遇到的问题p防止和避免你可能在将来的项目中要遇到的问题 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求与其他项目过程的联系 2007年7月 SEI of ECNU版权所有 软件需求工程 2-软件需求对其他
20、涉众的影响 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求过程改进的基础需求过程改进的基础p改进过程应该是革命性的、彻底的、连续的、反复的。p人们和组织机构都只有在他们获得激励时才愿意变更。p过程变更是面向目标的。p将改进活动看成是一些独立的小项目。2007年7月 SEI of ECNU版权所有 软件需求工程 2-过程改进周期 2007年7月 SEI of ECNU版权所有 软件需求工程 2-过程改进学习曲线 初始状态过程改进开始学习曲线不要从这里退出改进后的状态生产率时 间2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求开发和管理过程的积累材料 2007年7月 SEI of ECNU版权所有 软件需求工程 2-需求过程改进路线图 2007年7月 SEI of ECNU版权所有 软件需求工程 2-