统一软件开发过程概述-上海交通大学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《统一软件开发过程概述-上海交通大学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统一 软件 开发 过程 概述 上海交通大学 课件
- 资源描述:
-
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这些视图通过展示如何将软件架构分解成组件,组件之这些视图通过展示如何将软件架构分解成组件,组件之间如何通过连接器进行连接来表达主要的结构方面的设间如何通
展开阅读全文