资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Software Development with UML Copyright Ken Lunn 2003,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 软件开发生命周期,本章要点,软件开发生命周期的各个阶段,软件开发的瀑布法和迭代法,控制迭代开发的一些方法,5.1,软件开发生命周期的阶段,大型,IT,项目是十分复杂的,复杂性的原因:对软件开发过程没有一个全面、明确的概念,本章的目的:给出一个全面的过程和开发路线图,大家应该注意全面的阶段,和怎样通过这些阶段开展工作,关于软件开发阶段的问题:,统一过程:大量中间产物,(Jacobson 1999),极限编程:几乎没有阶段和中间产物,本书介绍的方式:绘制一副完整的地图,完全的阶段性描述,软件开发生命周期的阶段,每个开发项目都要经历这些阶段,不管是不是正规,自觉的还是不自觉的,这些阶段并不必一个接一个的完成,他们可以部分重叠及并行完成,需求分析,系统分析,系统设计,实现,测试,部署,维护,需求分析,目的:需求分析决定了系统中各种项目相关者的需要和期望,形成关于系统是做什么的描述。,注意:语言被所有的项目相关者理解,并能对描述达成一致意见,分类,功能需求,系统是做什么的,非功能需求,可靠性、鲁棒性、使用人数、交互界面,输入:现有业务过程 组织目标,可能出现的问题:“越严重的问题越晚发现”,输出:业务模型(外部行为)、用例模型、原型,功能需求、非功能需求,方法:,专题讨论、会谈,注意反馈,并形成协议,Figure 5.1,Key inputs and outputs of requirements analysis,系统分析,目的:定义计算机系统的行为,以及如何与计算机系统交互,使用被开发人员理解的语言填写需求分析的细节。,输入:业务模型、用例模型、原型以及详细业务运作知识,输出:完全专用的用例和详细的对象模型,确定了系统具有的信息和使用信息的方式,方法:,如何操作?处理什么信息?,专题讨论、会谈,构成用例并收集细节,剧本分析,要被使用的数据以及人们如何使用他们,原型,Figure 5.2,Key inputs and outputs of systems analysis,系统设计,目的:定义了系统将如何运作,以及对开发和部署来说,如何把系统分解为可管理的部分,产生一个系统构架的概要,并且建立基于该构架的用例图。,输入:用例定义集合、对象模型集合、原型,输出:对象模型,支持用例的对象协作、对象分组组成组件、组件与外部系统之间的用户接口说明,以及数据库存储信息的数据模型,方法:,定义架构,完成单独的对象,对象协作,3 Key inputs and outputs of the design process,输入:业务模型、用例模型、原型以及详细业务运作知识,本章的目的:给出一个全面的过程和开发路线图,大家应该注意全面的阶段,和怎样通过这些阶段开展工作,本书介绍的方式:绘制一副完整的地图完全的阶段性描述,Wont明确在阶段内不交付,本书介绍的方式:绘制一副完整的地图完全的阶段性描述,软件开发生命周期的各个阶段,输入:业务模型、用例模型、原型以及详细业务运作知识,极限编程:几乎没有阶段和中间产物,极限编程:几乎没有阶段和中间产物,目的:需求分析决定了系统中各种项目相关者的需要和期望,形成关于系统是做什么的描述。,关于软件开发阶段的问题:,目的:定义了系统将如何运作,以及对开发和部署来说,如何把系统分解为可管理的部分,产生一个系统构架的概要,并且建立基于该构架的用例图。,输入:现有业务过程 组织目标,漫长的过程,可能造成信息的丢失,复杂性的原因:对软件开发过程没有一个全面、明确的概念,第五章 软件开发生命周期,Figure 5.3,Key inputs and outputs of the design process,实现,目的:产生了以组件构成的系统,把系统新的部分整合到系统先前已构成的部分中去,输入:对象模型,对象协作、接口说明、构架定义,数据模型,输出:源代码、编译过的组件、部署计划,方法:,对象模型转化为运行代码和数据库定义,CASE,工具部分转化后,再由编程人员完成,Figure 5.4,Key inputs and outputs of the implementation process,测试,目的:功能和非功能满足需求,为开发提供反馈,输入:已构造的系统、业务说明、用例说明、非功能性需求说明,输出:出错报告,or,成功的测试报告,方法:,业务过程和用例说明用来生成测试剧本,测试剧本:输入 和 希望的输出,Figure 5.5,Key inputs and outputs of the testing process,维护,目的:保持系统功能,使之与需求一致,输入:代码错误报告 和 修改请求,输出:修改的分析、设计与实现,方法:,帮助台,Call Center,较小的系统改进,系统的后续开发,5.2,瀑布法,瀑布:每一阶段依次进行,直到前面的阶段结束,下一个阶段才能进行,每一个阶段使用一个正式的方法来“结束”,后果,需求变化,产品过时,漫长的过程,可能造成信息的丢失,这样一个过程的动机,适用条件:,需求长期不变的情况下,才能采用,Figure 5.6,The waterfall life cycle,5.3,迭代法,迭代法是广泛使用的方法,优点,如果需求变化,很多内容并不是固定不变的。开发的系统能够被提前使用,交付系统的反馈可以在将来的开发中改进,适用条件:,无论正是和非正式开发,都被广泛采用,Figure 5.7,Depiction of the iterative approach as an expanding spiral of development,螺旋式扩张的系统按功能和质量成长,Figure 5.8,The iterative approach in terms of stages,5.3.1,迭代方法和用例,迭代开发的核心:用例的概念,在需求阶段,充分识别用例,在系统分析阶段,详述他们,在设计和实施阶段,生成一个系统满足所选择的用例集合,如果用例可以独立使用,那么就可以部署系统,进行其他用例的开发,Figure 5.9,The tracing of use cases through the stages in iterativedevelopment,迭代法是广泛使用的方法,关于软件开发阶段的问题:,在设计和实施阶段,生成一个系统满足所选择的用例集合,关于软件开发阶段的问题:,CASE工具部分转化后,再由编程人员完成,输入:业务模型、用例模型、原型以及详细业务运作知识,无论正是和非正式开发,都被广泛采用,阶段由时间范围控制某时间段内工作在某个阶段上,目的:定义了系统将如何运作,以及对开发和部署来说,如何把系统分解为可管理的部分,产生一个系统构架的概要,并且建立基于该构架的用例图。,需求长期不变的情况下,才能采用,控制迭代开发的一些方法,本章的目的:给出一个全面的过程和开发路线图,大家应该注意全面的阶段,和怎样通过这些阶段开展工作,迭代法是广泛使用的方法,目的:需求分析决定了系统中各种项目相关者的需要和期望,形成关于系统是做什么的描述。,2 Key inputs and outputs of systems analysis,5.3.2,迭代控制方法,80/20,原则,最为常见的功能最先开发,MoSCoW,优先次序,Must,一定要按期交付,Should,希望在本阶段交付,Could,有余下的时间和资源就尽可能将其实现,Wont,明确在阶段内不交付,阶段开发用例表,列出了在一个阶段中的开发用例,时间范围,阶段由时间范围控制,某时间段内工作在某个阶段上,Table 5.1,Moscow prioritization for release of the system,Figure 5.10,Organization of the iterations,Table 5.2,Moscow prioritization for the first iteration of the ICANDO chemicals system,
展开阅读全文