统一软件开发过程概述-上海交通大学课件.ppt

上传人(卖家):晟晟文业 文档编号:4520692 上传时间:2022-12-16 格式:PPT 页数:93 大小:770KB
下载 相关 举报
统一软件开发过程概述-上海交通大学课件.ppt_第1页
第1页 / 共93页
统一软件开发过程概述-上海交通大学课件.ppt_第2页
第2页 / 共93页
统一软件开发过程概述-上海交通大学课件.ppt_第3页
第3页 / 共93页
统一软件开发过程概述-上海交通大学课件.ppt_第4页
第4页 / 共93页
统一软件开发过程概述-上海交通大学课件.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

1、上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-161XPExtreme Programming上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-162上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-163wEricsson方法方法n1967年,年,Ericsson公司将整个系统模型转化成相互公司将整个系统模型转化成相互联系的模块的集合。他们用底层的模块装配成较高层联系的模块的集合。他们用底层的模块装配成较高层的子系统,使整个系统易于管理。通过遍历以前曾详的子系统,使整个系统易于管理。通过遍历以前曾详细描述过程的

2、业务实例来发现这些模块。对每一个业细描述过程的业务实例来发现这些模块。对每一个业务实例,识别出其实现所需的相关模块。了解模块的务实例,识别出其实现所需的相关模块。了解模块的职能后,他们就编制每一个模块的规格说明,设计出职能后,他们就编制每一个模块的规格说明,设计出一批带有接口的静态模块图,将其组合成子系统。一批带有接口的静态模块图,将其组合成子系统。n本质上,该方法就是基于构件的开发。本质上,该方法就是基于构件的开发。Ivar Jacobson是该方法的创始人。是该方法的创始人。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-164w规格说明与描述语言规格说明与描述

3、语言SDLn1976年,年,CCITT公布了用以描述电信系统中功能行公布了用以描述电信系统中功能行为的规格说明与描述语言。该标准受为的规格说明与描述语言。该标准受Ericsson的重大的重大影响,用一系列相互关联的模块来刻划一个系统,各影响,用一系列相互关联的模块来刻划一个系统,各模块之间仅仅通过消息来相互通信。每一个模块都拥模块之间仅仅通过消息来相互通信。每一个模块都拥有一系列的过程,它们是有一系列的过程,它们是SDL语言中的主动类。一个语言中的主动类。一个过程拥有实例,过程实例通过消息产生交互。过程拥有实例,过程实例通过消息产生交互。SDL推推荐的图可以看成荐的图可以看成UML中的类图,活

4、动图,协作图和顺中的类图,活动图,协作图和顺序图的特化。序图的特化。nSDL目前还被一些人使用,总的趋势是被目前还被一些人使用,总的趋势是被UML代替。代替。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-165w对象工厂对象工厂n1987年,年,Ivar Jacobson离开了离开了Ericsson公司,在公司,在斯德哥尔摩建立了斯德哥尔摩建立了Object AB。在此后的八年中,他。在此后的八年中,他和助手一起开发了一个称为对象工厂的过程产品。和助手一起开发了一个称为对象工厂的过程产品。n对象工厂中将相继的工作流表示为一系列的模型:需对象工厂中将相继的工作流表示

5、为一系列的模型:需求用例、分析、设计、实现和测试。每个模型是对求用例、分析、设计、实现和测试。每个模型是对一个系统的一种刻划。一个系统的一种刻划。n对象工厂过程在发展中产生了一系列版本,从对象工厂过程在发展中产生了一系列版本,从1988年的年的objectory 1.0 到到1995年的第一个在线版本年的第一个在线版本0bjectory 3.8版本。版本。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-166wRational方法方法nRational公司在公司在1995年秋季引进了年秋季引进了Objectory AB并并在已有的软件开发过程基础上统一了基本原则,从

6、而在已有的软件开发过程基础上统一了基本原则,从而获得了新的突破。强调了构架和迭代式开发。形成了获得了新的突破。强调了构架和迭代式开发。形成了Rational对象工厂过程对象工厂过程4.1版本。版本。n1998年中期,年中期,Rational对象工厂过程已经完全成熟,对象工厂过程已经完全成熟,能够支持整个软件开发生命周期。能够支持整个软件开发生命周期。1998年年6月发表了月发表了该产品的新版本该产品的新版本Rational统一过程统一过程RUP5.0版本。版本。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-167上海交通大学计算机科学与工程系上海交通大学计算机科学

7、与工程系2022-12-168w统一过程是一个通用的过程框架,可用于各种不同类型统一过程是一个通用的过程框架,可用于各种不同类型的软件系统、各种不同的应用领域、各种不同类型的组的软件系统、各种不同的应用领域、各种不同类型的组织、各种不同的功能级别以及各种不同的项目规模织、各种不同的功能级别以及各种不同的项目规模w统一过程是基于构件的。通过软件构件的接口相互连接统一过程是基于构件的。通过软件构件的接口相互连接成整个系统。成整个系统。w统一过程使用统一过程使用UML制定软件系统的所有蓝图制定软件系统的所有蓝图w统一过程的特点统一过程的特点:n用例驱动用例驱动n以构架为中心以构架为中心n迭代和增量迭

8、代和增量上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-169工具项目产品过程人员模板参与者自动化结果上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1610w人员至关重要人员至关重要w开发过程影响人员开发过程影响人员n项目可行性项目可行性n风险管理风险管理n团队结构团队结构n项目计划项目计划n项目的可理解性项目的可理解性n成就感成就感上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1611w软件开发方式正在发生变化,对人员的要求也在软件开发方式正在发生变化,对人员的要求也在发生变化发生变化w基于角色的人员管理

9、基于角色的人员管理n角色是对需要执行的任务和拥有的产品的抽象定义角色是对需要执行的任务和拥有的产品的抽象定义n角色通常由单个人或者多个人构成的团队来实现角色通常由单个人或者多个人构成的团队来实现n角色不是个人;相反,角色描述了单个人的业务表现角色不是个人;相反,角色描述了单个人的业务表现和单个人所负有的责任和单个人所负有的责任n一个人可以担任多种角色,一种角色可以由多个人来一个人可以担任多种角色,一种角色可以由多个人来担任担任上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1612w一个开发项目将会得到一种产品的新版本一个开发项目将会得到一种产品的新版本n一系列变换

10、(一系列变换(a sequence of change)每次变化产)每次变化产生一个系统版本(生一个系统版本(release)n一系列迭代(一系列迭代(a series of iterations):在一个周期):在一个周期的每个阶段,工作人员通过一系列的迭代完成该阶段的每个阶段,工作人员通过一系列的迭代完成该阶段的活动。每一次迭代都会实现一些有关的用例或降低的活动。每一次迭代都会实现一些有关的用例或降低某些风险。某些风险。n组织模式(组织模式(an organizational pattern):一个项目一个项目包括一组人员,他们被指派在业务约束(即时间、成包括一组人员,他们被指派在业务约束

11、(即时间、成本和质量)的范围内实现某种结果。本和质量)的范围内实现某种结果。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1613w软件系统是什么?软件系统是什么?n二进制代码二进制代码n程序源代码程序源代码n用例,类图,交互图,用例,类图,交互图,w系统是给机器或人员提供表示的所有制品系统是给机器或人员提供表示的所有制品w制品制品(artifact)表示在系统开发过程中由工作人表示在系统开发过程中由工作人员创建、生产、修改或使用的各种信息员创建、生产、修改或使用的各种信息w两类制品:工程制品、管理制品两类制品:工程制品、管理制品上海交通大学计算机科学与工程系上海

12、交通大学计算机科学与工程系2022-12-1614w构造系统就是一个构造模型的过程,即采用不同构造系统就是一个构造模型的过程,即采用不同的模型来描述系统所有不同视角的过程的模型来描述系统所有不同视角的过程w统一过程给出了经过仔细选择的模型集合。模型统一过程给出了经过仔细选择的模型集合。模型集合向所有人员阐明该系统。模型的选用应该能集合向所有人员阐明该系统。模型的选用应该能够满足所有人员对信息的需要。够满足所有人员对信息的需要。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1615w模型是对系统的一种抽象,从某个视点、在某种模型是对系统的一种抽象,从某个视点、在某种

13、抽象层次上详细说明被建模的系统,例如,一种抽象层次上详细说明被建模的系统,例如,一种视点为系统的规格说明视图或设计视图视点为系统的规格说明视图或设计视图w模型也是对构架设计师和开发人员构造的系统的模型也是对构架设计师和开发人员构造的系统的抽象抽象w每个模型是系统自包含的视图,即用户不需要其每个模型是系统自包含的视图,即用户不需要其他信息(即从其他模型)就可解释该系统他信息(即从其他模型)就可解释该系统w模型内部由元素构成模型内部由元素构成上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1616w一个系统包含了不同模型中模型元素之间的所有一个系统包含了不同模型中模型元

14、素之间的所有关系和约束。因此,一个系统不仅是其模型的集关系和约束。因此,一个系统不仅是其模型的集合,而且也是模型间关系的集合。合,而且也是模型间关系的集合。w例如:用例模型中的每个用例与分析模型中的协例如:用例模型中的每个用例与分析模型中的协作具有一定的关系(反之也然)。这样的关系在作具有一定的关系(反之也然)。这样的关系在UML中被称为跟踪依赖,简称为跟踪中被称为跟踪依赖,简称为跟踪用例模型分析模型设计模型实现模型上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1617w在统一过程中,过程是指软件开发业务中的关键在统一过程中,过程是指软件开发业务中的关键“业务业务

15、”过程,即开发和支持软件的组织中的关过程,即开发和支持软件的组织中的关键键“业务业务”过程。过程。w在统一过程中,过程是指通过创建模板的实例来在统一过程中,过程是指通过创建模板的实例来重用一个模板的概念。重用一个模板的概念。w相关的活动组成一个工作流相关的活动组成一个工作流上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1618上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1619w过程具体化过程具体化w没有一个过程能够适合于任何情况没有一个过程能够适合于任何情况w造成过程间差别的因素:造成过程间差别的因素:nOrganizationa

16、l factornDomain factornLife cycle factornTechnical factorw因而,统一过程可以被裁减以适应你的要求因而,统一过程可以被裁减以适应你的要求上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1620w工具的价值工具的价值w工具影响过程工具影响过程n简化任务,提高效率和质量简化任务,提高效率和质量w过程驱动工具过程驱动工具w支持支持UML的可视化开发的可视化开发w支持整个生命周期的工具支持整个生命周期的工具上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1621wRational Admin

17、istrator wRational ClearCase wRational ClearQuest wRational Process Workbench wRational ProjectConsole wRational PureCoverage wRational Purify wRational QualityArchitect wRational Quantify wRational RequisitePro wRational Robot wRational Rose Tool Set wRational Rose(classic tool mentors)wRational Ro

18、se(business modeling toolmentors)wRational Rose RealTime wRational SoDA wRational Suite AnalystStudio wRational Test RealTime wRational TestFactory wRational TestManager 上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1622上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1623w为了捕获附加在需求上的价值为了捕获附加在需求上的价值n“你希望系统为你希望系统为每个用户每

19、个用户做什么做什么”n直观直观w驱动过程驱动过程w设计构架:选择适当的用例集合作为稳定的构架设计构架:选择适当的用例集合作为稳定的构架基础基础w编写用户手册的起点编写用户手册的起点上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1624w用例不仅可以用来确定系统需求用例不仅可以用来确定系统需求w它还可以驱动系统设计、实现和测试的进行它还可以驱动系统设计、实现和测试的进行w用例驱动开发过程用例驱动开发过程(use-case driven)w用例可以驱动过程,但是我们不能孤立地选择用用例可以驱动过程,但是我们不能孤立地选择用例,它们与系统构架协调发展。用例驱动系统构例,

20、它们与系统构架协调发展。用例驱动系统构架,系统构架又将影响用例的选择架,系统构架又将影响用例的选择上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1625w需求捕获需求捕获n真正的需求真正的需求给用户带来预期的价值给用户带来预期的价值n以适合于用户、客户和开发人员的方式表示以适合于用户、客户和开发人员的方式表示需求需求的最后描述要让用户和客户理解的最后描述要让用户和客户理解w从用况得到分析模型:它是一个概念模型而不是从用况得到分析模型:它是一个概念模型而不是实现蓝图实现蓝图w从分析模型到设计模型:实现蓝图从分析模型到设计模型:实现蓝图w建立实施模型建立实施模型w通过

21、用例提出测试用例通过用例提出测试用例上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1626上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1627w软件构架作用与建筑物构架所起的作用类似软件构架作用与建筑物构架所起的作用类似w软件构架受到了软件应用平台,可重用的软件组软件构架受到了软件应用平台,可重用的软件组件、实施问题、与遗留系统的集成等多种因素的件、实施问题、与遗留系统的集成等多种因素的影响。影响。w构架刻画整体设计,忽略细节,因而依赖于人的构架刻画整体设计,忽略细节,因而依赖于人的经验的判断经验的判断“什么是重要的什么是重要的”w

22、过程可以帮助构架设计师确定正确的目标,如易过程可以帮助构架设计师确定正确的目标,如易理解性、适于将来变化的柔性以及可重用性等理解性、适于将来变化的柔性以及可重用性等上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1628w软件构架的概念看起来很容易理解,许多工程师软件构架的概念看起来很容易理解,许多工程师也认为他们知道软件构架是什么,实际上软件构也认为他们知道软件构架是什么,实际上软件构架的概念很难精确定义架的概念很难精确定义w在设计和构架之间很难画一条分界线,构架本身在设计和构架之间很难画一条分界线,构架本身就是设计的一个方面,或者说构架是针对某些特就是设计的一个

23、方面,或者说构架是针对某些特性的特殊设计性的特殊设计上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1629w用例是一种功能表达,而构架是表现形式用例是一种功能表达,而构架是表现形式w首先,从不是专门针对用例的构架(如平台)开首先,从不是专门针对用例的构架(如平台)开始,创建一个粗略的构架轮廓。尽管这部分构架始,创建一个粗略的构架轮廓。尽管这部分构架与用例无关,但构架设计师必须在创建轮廓之前与用例无关,但构架设计师必须在创建轮廓之前对用例有一个全面的了解对用例有一个全面的了解w构架设计师着手处理已经确定的重要用例子集,构架设计师着手处理已经确定的重要用例子集,详细描

24、述每一个用例,并通过子系统,类和构件详细描述每一个用例,并通过子系统,类和构件来实现来实现w随着用例的描述趋于完善,构架的更多部分将显随着用例的描述趋于完善,构架的更多部分将显现出来,从而也使更多的用例趋于完善现出来,从而也使更多的用例趋于完善上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1630w为了描述和定义软件的体系架构,首先我们需要为了描述和定义软件的体系架构,首先我们需要一种表示方法,一种对架构的重要方面进行定义一种表示方法,一种对架构的重要方面进行定义的格式。在的格式。在RUP中,这些描述在中,这些描述在Software Architecture Do

25、cument中定义中定义.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1631w我们需要通过多个架构视图来表示软件架构。每一个架我们需要通过多个架构视图来表示软件架构。每一个架构视图都定义了某些特定的方面,这些方面在开发过程构视图都定义了某些特定的方面,这些方面在开发过程中对终端用户、设计者、经理、系统工程师、维护人员中对终端用户、设计者、经理、系统工程师、维护人员等参与者具有特殊的意义等参与者具有特殊的意义.w这些视图通过展示如何将软件架构分解成组件,组件之这些视图通过展示如何将软件架构分解成组件,组件之间如何通过连接器进行连接来表达主要的结构方面的设间如何通

26、过连接器进行连接来表达主要的结构方面的设计决策计决策PW92.这些设计选择必须满足需求和其它各种这些设计选择必须满足需求和其它各种约束。同时,这些选择又进一步对更低层次的设计决策约束。同时,这些选择又进一步对更低层次的设计决策施加了约束。施加了约束。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1632w典型的架构视图集合典型的架构视图集合n架构由多个不同的架构视图表达。这些架构视图的核架构由多个不同的架构视图表达。这些架构视图的核心是表达模型中的心是表达模型中的“架构性架构性”元素。在元素。在RUP中,表达中,表达架构是通过称之为架构是通过称之为“4+1 vie

27、w model”来进行的来进行的 KRU95.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1633w在在RUP中中,架构主要是分析和设计工作流的成果。架构主要是分析和设计工作流的成果。在项目中,通过工作流中的多轮迭代,结构被演在项目中,通过工作流中的多轮迭代,结构被演化,修饰。每一次迭代都包含了集成和测试,因化,修饰。每一次迭代都包含了集成和测试,因此产品在交付时,架构已经变得很稳定可靠了。此产品在交付时,架构已经变得很稳定可靠了。架构也是细化阶段迭代的主要结果,在该阶段的架构也是细化阶段迭代的主要结果,在该阶段的最后,体系架构的基线被确定下来。最后,体系架构的

28、基线被确定下来。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1634上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1635w大型软件开发是一个艰巨的任务,划分为较小的大型软件开发是一个艰巨的任务,划分为较小的部分或者袖珍项目(部分或者袖珍项目(mini-project)是切实可)是切实可行的。行的。w每个袖珍项目都是一次能产生一个增量的迭代过每个袖珍项目都是一次能产生一个增量的迭代过程,迭代是指工作流中的步骤,而增量是指产品程,迭代是指工作流中的步骤,而增量是指产品中增加的部分。中增加的部分。w为了获得最佳效果,迭代过程必须是受控的

29、为了获得最佳效果,迭代过程必须是受控的(controlled)上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1636w统一过程生命周期模型统一过程生命周期模型n统一过程是在重复一系列组成系统的生命周期的循环,统一过程是在重复一系列组成系统的生命周期的循环,每次循环都以向用户提供一个产品版本作为终结。每次循环都以向用户提供一个产品版本作为终结。n每次循环都包括初始、细化、构造和移交。每个阶段每次循环都包括初始、细化、构造和移交。每个阶段又细分为多次迭代过程又细分为多次迭代过程上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1637w产品的

30、增量化产品的增量化n每次循环都产生系统的一个新的版本,每个版本都是每次循环都产生系统的一个新的版本,每个版本都是一个准备交付的产品。它包括由能够编译和运行的构一个准备交付的产品。它包括由能够编译和运行的构件所体现的源代码体、各种手册和相关的交付品。件所体现的源代码体、各种手册和相关的交付品。n产品还包括需求、用例、非功能性需求和测试用例,产品还包括需求、用例、非功能性需求和测试用例,还包括构架和可视化的模型(还包括构架和可视化的模型(UML模型)模型)上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1638上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系

31、2022-12-1639上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1640w初始阶段初始阶段(Inception Phase)n初始阶段最重要的目标是在项目涉及者中就项目的生初始阶段最重要的目标是在项目涉及者中就项目的生命周期目标达成共识。命周期目标达成共识。n初始阶段的重要性在于项目开始前,我们必须弄清楚初始阶段的重要性在于项目开始前,我们必须弄清楚业务和需求的风险。业务和需求的风险。n对一个关注于对现有系统进行改善的项目,初始阶段对一个关注于对现有系统进行改善的项目,初始阶段可以短一些,但是仍旧必须关注于项目是否值得去做可以短一些,但是仍旧必须关注于项目是

32、否值得去做和做的可能性。和做的可能性。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1641w细化阶段细化阶段(Elaboration Phase)n细化阶段的目标是确定系统架构的基线,从而为设计细化阶段的目标是确定系统架构的基线,从而为设计和实现奠定一个基础。和实现奠定一个基础。n架构是根据最重要的需求(对系统的架构有显著影响架构是根据最重要的需求(对系统的架构有显著影响的)和风险评估来进行的。架构的稳定性通过一个或的)和风险评估来进行的。架构的稳定性通过一个或两个架构原型来进行评估。两个架构原型来进行评估。上海交通大学计算机科学与工程系上海交通大学计算机科学与

33、工程系2022-12-1642w构造阶段构造阶段(Construction Phase)n构造阶段的目标针对的是余下的需求和架构基线来完成系统的构造阶段的目标针对的是余下的需求和架构基线来完成系统的开发。构造阶段是一种制造过程,强调对资源和活动的控制,开发。构造阶段是一种制造过程,强调对资源和活动的控制,以优化成本、计划和质量。以优化成本、计划和质量。n因此,管理的重心从初始和细化阶段的智力产品转化为对可以因此,管理的重心从初始和细化阶段的智力产品转化为对可以部署的产品的开发上。部署的产品的开发上。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1643w交付阶段交

34、付阶段(Transition Phase)w交付阶段的重点是保证软件对其终端用户可用。交付阶段的重点是保证软件对其终端用户可用。w交付阶段可以跨越多个迭代,并包含在准备发行交付阶段可以跨越多个迭代,并包含在准备发行版本前的测试,以及基于用户反馈的小的调整。版本前的测试,以及基于用户反馈的小的调整。在生命周期的该阶段,用户的反馈主要集中在对在生命周期的该阶段,用户的反馈主要集中在对产品的细小的调整,配置,安装和可用性上。所产品的细小的调整,配置,安装和可用性上。所有主要的结构方面的问题已经在早期定义下来了。有主要的结构方面的问题已经在早期定义下来了。上海交通大学计算机科学与工程系上海交通大学计算

35、机科学与工程系2022-12-1644w一次迭代中确定的目标:一次迭代中确定的目标:n一组用例,这些用例合起来能够扩展所开发产品的可一组用例,这些用例合起来能够扩展所开发产品的可用性用性n解决最突出的风险问题解决最突出的风险问题w为了在开发过程中达到最佳的效益,项目组应设为了在开发过程中达到最佳的效益,项目组应设法选择实现项目目标所需要的迭代过程,并按照法选择实现项目目标所需要的迭代过程,并按照一定的逻辑顺序来排列这些过程一定的逻辑顺序来排列这些过程上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1645w为什么要迭代为什么要迭代n传统的方法中,项目是采用一种顺序方

36、法,从一个部门流向另传统的方法中,项目是采用一种顺序方法,从一个部门流向另一个部门,这就是典型的瀑布模型一个部门,这就是典型的瀑布模型:n该方法导致的结果是在最后产品构造和测试的时候,问题堆积该方法导致的结果是在最后产品构造和测试的时候,问题堆积现象的出现。由于问题在分析,设计和实现阶段都潜伏下来,现象的出现。由于问题在分析,设计和实现阶段都潜伏下来,直到最后问题暴露出来,导致一个长时间的直到最后问题暴露出来,导致一个长时间的BUG处理过程。处理过程。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1646n一个比较柔性(和风险更小的)的方法是在不同的开一个比较柔性

37、(和风险更小的)的方法是在不同的开发部门中将项目迭代多次,从而对用户需求的了解更发部门中将项目迭代多次,从而对用户需求的了解更为清晰,系统的架构也更为可靠,开发组织也逐步成为清晰,系统的架构也更为可靠,开发组织也逐步成熟,最终通过交付一系列版本而使系统逐步完善。这熟,最终通过交付一系列版本而使系统逐步完善。这就是迭代生命周期。每一个经过各部门的过程序列都就是迭代生命周期。每一个经过各部门的过程序列都被称为一次迭代。被称为一次迭代。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1647上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-164

38、8n因此,从开发角度看,软件的生命周期就是一系列的因此,从开发角度看,软件的生命周期就是一系列的迭代构成的,通过这些迭代,软件越来越完善。每一迭代构成的,通过这些迭代,软件越来越完善。每一次迭代都将提交一个可执行的产品。该产品可能是最次迭代都将提交一个可执行的产品。该产品可能是最终版本的一个子集,但是从工程或用户的观点看,是终版本的一个子集,但是从工程或用户的观点看,是有用的。每一次释放,都伴随着下列产品:有用的。每一次释放,都伴随着下列产品:版本描述,版本描述,用户文档,计划等等,以及系统模型的更新。用户文档,计划等等,以及系统模型的更新。上海交通大学计算机科学与工程系上海交通大学计算机科学

39、与工程系2022-12-1649w迭代方法的主要结果是产品集,变得越来越完整和成熟,如下图所迭代方法的主要结果是产品集,变得越来越完整和成熟,如下图所示示上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1650w学生选课系统的开发计划学生选课系统的开发计划上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1651上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1652上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1653上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系20

40、22-12-1654上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1655上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1656上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1657在瀑布模型中,直到生命周期结束时,你才能验证系统上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1658w在一个迭代周期中,你需要根据关键风险列表选择开发的内容。由于每一在一个迭代周期中,你需要根据关键风险列表选择开发的内容。由于每一次迭代的产品都是可执行的,因此,你可以判断你是否将目标风险进行了次

41、迭代的产品都是可执行的,因此,你可以判断你是否将目标风险进行了转移。转移。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1659w如果要去管理困难,哪些技巧是需要你的组织进如果要去管理困难,哪些技巧是需要你的组织进行培养的呢?我们认为下列能力是重要的:行培养的呢?我们认为下列能力是重要的:w问题分析问题分析w理解需求理解需求w系统定义系统定义w管理项目的边界管理项目的边界w细化系统定义细化系统定义w管理需求变更管理需求变更上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1660上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系

42、2022-12-1661上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1662w在部署阶段后,查找和修复软件问题的成本将在部署阶段后,查找和修复软件问题的成本将 100倍,倍,1000倍的增加。在倍的增加。在整个项目过程中不断对软件的质量进行校核和管理是在正确的时间开发出整个项目过程中不断对软件的质量进行校核和管理是在正确的时间开发出正确的软件的必要条件。正确的软件的必要条件。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1663w变更管理不局限于对文件的变更管理不局限于对文件的checking-in和和checking-out操作。

43、它操作。它包含了对工作空间的管理,以及对并行开发,集成和构造的管理。包含了对工作空间的管理,以及对并行开发,集成和构造的管理。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1664上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1665上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1666上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1667w敏捷方法的代表。敏捷方法的代表。wKent BeckKent Beck在他的开篇之作在他的开篇之作Extreme Programming

44、 Extreme Programming Explained Embrace ChangeExplained Embrace Change中提出中提出9797年年w一种高度动态的过程,它通过非常短的迭代周期一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化来应对软件开发中的变化w强调有效测试和演化设计强调有效测试和演化设计fowler上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1668w在规定的时间生产出满足客户需要的软件在规定的时间生产出满足客户需要的软件 上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1669w需求

45、不明确、变化快需求不明确、变化快w高风险:高风险:在特定的时间内,在特定的时间内,面对面对一个相当难开发一个相当难开发的系统的系统 w中小型团队(人数不超过中小型团队(人数不超过10 个)个)上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1670过程顺利完成发扬4个价值准则实现12个实践依赖于平衡短期利益与长期利益的冲突依赖于构造XP开发规范中的四项活动:编码测试聆听设计上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1671w沟通(沟通(communication)w简化(简化(simplicity)w反馈(反馈(feedback)w

46、勇气(勇气(courage)上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1672w规划策略规划策略(Planning game)w系统隐喻系统隐喻(System Metaphor)(高层构想统一思想)(高层构想统一思想)w简单设计简单设计(Simple design)w配对编程配对编程(pair programming)w编码标准编码标准(Coding standards)w测试驱动测试驱动(Test-driven)w重构(重构(Refactoring)w持续集成持续集成(Continuous integration)w小发行版小发行版(Small releas

47、es)w现场客户现场客户(On-site customer)w集体代码所有权集体代码所有权(Collective ownership)w一周一周40小时小时(40-hour week)上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1673w某某公司是电子商务解决方案供应商,在公司是电子商务解决方案供应商,在J2EE架架构的项目执行方面有丰富的经验,结合构的项目执行方面有丰富的经验,结合RUP形形成了自己的一套电子商务项目实施方法论,并在成了自己的一套电子商务项目实施方法论,并在多个项目中成功进行实施。同时,由于具体项目多个项目中成功进行实施。同时,由于具体项目时间

48、和成本的限制,也出现了许多问题时间和成本的限制,也出现了许多问题。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1674w项目交付后,用户提出很多的修改意见,有些甚至涉及项目交付后,用户提出很多的修改意见,有些甚至涉及系统架构的修改:出现这种情况的主要原因是很多项目系统架构的修改:出现这种情况的主要原因是很多项目虽然是采用增量迭代式的开发周期,但是在部署前才发虽然是采用增量迭代式的开发周期,但是在部署前才发布版本,用户只是在项目部署后才看到真正的系统,因布版本,用户只是在项目部署后才看到真正的系统,因此会发现很多界面、流程等方面的问题;此会发现很多界面、流程等方面

49、的问题;w对于用户提交对于用户提交BUG的修改周期过长:开发人员在作开发的修改周期过长:开发人员在作开发的时候,对于单元测试的重视程度不够,模块开发结束的时候,对于单元测试的重视程度不够,模块开发结束后就提交给测试人员进行测试,而测试人员由于时间的后就提交给测试人员进行测试,而测试人员由于时间的关系,并不能发现所有的问题;在用户提交关系,并不能发现所有的问题;在用户提交BUG后,开后,开发人员由于项目接近尾声,对于代码的修改产生惰性,发人员由于项目接近尾声,对于代码的修改产生惰性,同时又没有形成有效的回归测试方法,因此,修改的周同时又没有形成有效的回归测试方法,因此,修改的周期比较长。期比较长

50、。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-12-1675w针对针对XP的核心价值,可以看到,如果能够加强与用户的沟通、增加项目中测试实施的核心价值,可以看到,如果能够加强与用户的沟通、增加项目中测试实施的力度、提高开发人员的勇气,就可以从一定程度上解决上述问题。的力度、提高开发人员的勇气,就可以从一定程度上解决上述问题。w从从2001年开始,公司内部展开对于年开始,公司内部展开对于XP等敏捷方法的研究,希望能够借鉴一些做法,等敏捷方法的研究,希望能够借鉴一些做法,来完善项目方法论。来完善项目方法论。2002年年5月,决定在公司的一个新的项目中启用月,决定在公司的一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(统一软件开发过程概述-上海交通大学课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|