——统一过程(rul)
一,统一过程的定义与特点。
1)定义:20世纪80年代中期的10年间,发布了50多种面向对象的方法学,其中3个最成功的方法学是booch方法,jacobson方法和rumbaugh方法。后来面向对象方法领域的这3位著名专家将各自独立的面向对象的分析(ooa)和面向对象的设计(ood)方法中最优秀的特色组合在一起,于2024年提出了uml的概念。
uml已经成为一个事实上的工业标准。不论在计算机学术界,软件产业界还是在商业界,uml已经成为人们为各种系统建模、描述系统结构、商业体系结构和商业过程时使用的统一工具。
uml是一种语言,并不是方**。boochl,jacobson及rumbaugh接下来的努力是发布完善的面向对象分析与设计的方法学,它统一了他们3人独立的方法学。这种统一的方法学最初称为rational统一过程(rational united process,rup),为了简洁起见,今天通常使用“统一过程”术语。
2)特点。rup统一过程,提供了在开发机构中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
rup是rational公司开发和维护的过程产品,他们与顾客、合伙人、产品小组及顾问公司共同协作,确保开发过程持续地更新和提高以反映新的经验和不断演化的实践经历。
统一过程是一个软件开发过程,是一个将用户需求转化为软件系统所需要的活动的集合。它不仅仅是一个简单的过程,而是一个通用的过程框架,可用于各种不同的软件系统、应用领域、组织、功能级别和项目规模。
统一过程是基于构件的,使用统一建模语言来制定软件系统的所有视图。
二,统一过程的四个阶段。
1)先启阶段,以生命周期目标作为结束里程碑,建立项目的范围和版本;确定业务实现的可能性和项目目标的稳定性。
2)精化阶段,以架构作为结束里程碑,建立系统的需求和架构;即确定技术实现的可行性和系统架构的稳定性。
3)构建阶段,以最初操作性能作为结束里程碑,完成系统的构造和建立。
4)产品化阶段,以产品发布作为结束里程碑,完成系统向用户群的产品化和部署。
三,统一过程三个支持工序。
1)配置变更管理工序,用来管理系统和需求变更的配置。
2)项目管理工序,用来管理项目。
3)环境配置工序,用来配置项目的环境,包括所涉及到的过程和工具。
四,统一过程定的六个核心工序。
1)业务模型工序,通过业务模型获取相关知识以理解需要系统自动完成的业务。
2)需求工序,通过用例模型获取相关知识以理解自动完成业务的系统需求。
3)分析设计工序,通过分析/设计模型以分析需求,设计系统结构。
4)实现工序,基于实现模型实现系统。
5)测试工序,通过测试模型进行针对需求的系统测试。
6)部署工序,通过部署模型部署系统。
五,统一过程的驱动方式。
软件系统是为服务于它的用户而出现的,因此为了构造一个成功的软件系统,必须其预期的用户所希望和需要的是什么。
用例是能够向用户(不仅是,也可以是其他系统)提供有价值结果的系统中的一种功能。用例获取的是功能需求。所有的用例合在一起构成用例模型,它描述了系统的全部功能。
用例捕捉的是功能性需求。
系统应该为每个用例做什么? ”这促使我们要从系统用户的价值方面来考虑问题,而不仅仅限于提供强大的功能。然而用例不只是一种确定系统需求的工具,它还能驱动系统设计、实现和测试的进行,即用例驱动开发过程。
基于用例模型,软件开发人员创建一系列的设计和实现模型来实现各种用例。开发人员审查每个后续模型,以确保它们符合用例模型。测试人员将测试软件系统的实现,以确保实现模型中的组件正确实现了用例。
这样,用例不仅启动了开发过程,而且与开发过程结合在一起。
用例驱动”意指开发过程将遵循一个流程:它将按照一系列由用例驱动的工作流程来进行。首先是定义用例,然后是设计用例,最后, 用例是测试人员构建测试案例的**。
尽管确实是用例在驱动整个开发过程,但是我们并不能孤立地选择用例。它们必须与系统架构协同开发。也就是说,用例驱动系统架构而系统架构反过来又影响用例的选择。
因此,随着生命期的继续,系统架构和用例都逐渐成熟。
六,高效成功地运用统一过程
为了高效成功地使用统一过程,我们需要理解很多过程框架的应用指南(通过培训)。
发生在给定角色、活动、工件间的协作,其主要动力来自于项目经理、架构师和过程工程师等角色。其余的角色并不是次要的,而是辅助上述这些角色。项目经理负责整个项目;架构师负责系统架构;过程工程师负责统一过程的运用和开发案例。
项目中各种角色的交流与协作是高效成功运用统一过程的关键因素。这些协作包括架构师所定义的系统架构,过程工程师所建议角色,活动以及提交系统所需的工件,项目经理为上述工件进行活动提供所需资源。这些架构、角色、活动、工件以及资源之间的交互包括也将包括其他相关知识的高效成功地运用。
这些角色重点是平衡一个步骤范围内的多种相关因素的同时,弥合目标和实际版本之间的差异。也就是说,这些协作必须有重点地,平衡地,迭代地运用以获得成功。另一方面,项目经理过于教条死板会导致过分的线性迭代;系统架构师过于教条死板会导致过分的连续迭代;过程工程师过于教条死板会导致混乱的状态。
上述角色的问题最终将导致迭代步骤的优势无法体现。一般来说,在那些包括项目经理,过程工程师等角色的项目中往往会曲解这些主要的动态性能,(由于每一个角色都有明确的压力,目标)导致这些角色的直接利益冲突;以至于增加了项目失败的潜在威胁。
七,在应用统一过程的项目中,我们应关注并遵循的指导步骤。
1)鉴于统一过程中所有内容都是可选的,应根据不同的因素及其可能的分支做出相应的决定。一个经常要问的问题是:“为什么?
”—没有必要执行统一过程中所有的内容,而只需要进行那些需要进行的。一个过程工程师将解释为什么角色、活动和工件这样被利用。另一个经常要问的问题是“如果这样,那么会怎么样?
”也就是说,确定我们应该做什么。过程工程师将解释如果一个角色、活动以及工件被利用会有什么可能。还有一个问题经常要问:
“接下来做什么?”在给定“如果这样,那么会怎样”的条件下“接下来做什么?”。
过程工程师将解释接下来什么样的角色、活动以及工件应该被应用。如果无法回答这些问题,则表明其对特定项目了解得不够充分。
2)聚焦于项目环境(context),然后是基本内容,并迭代地,增量地尽力弥合项目环境(context)与内容之间的差距。不具备对某个项目的环境(context)相关知识或是不具备统一过程的基本知识,而使用统一过程,都将增大项目失败的可能性。过程工程师需要能够弥合项目与统一过程之间的差距;也就是说能够将统一过程的基本元素运用到特定项目的环境(context)中去,其中关于统一过程的基本元素,本文已经着重强调了。
3)聚焦于“统一过程的精髓”而不是统一过程的形式。统一过程既不松散混乱,也不死板迟钝,而是具有很强的灵活性,动态性。统一过程仅仅是说明或建议开发人员应该如何决定和执行。
如果无法平衡其中的关系,则表明过分的关注“统一过程的形式”,而不是“精髓”。这一点是很多过程工程师运用统一过程的通病,也就是说,他们无法平衡“形式”与“精髓”。
4)对项目经理,系统架构师以及过程工程师充分地授权以弥合交流中目标与项目实际版本之间的差距。在授权的同时,确定上述角色与整个团队中其他角色之间相互影响的因素,从而提高项目成功的可能性。项目经理应该是一个领导者,而不是简单的项目管理者,或是教条死板的执行者。
系统架构师应该是一个领导者,而不是简单的理论家或是技术人员,既不过分教条也不过分关注细节。过程工程师应使过程的应用成为可能并且应用顺利,而不是强迫过程的实施。团队应该可以迎接挑战,把握机会而不是停滞不前。
每一个工序都应该有一个角色来领导工序内全部的工作,得到并维护工序相关模型(宏观图),同时每个工序也都有其他的角色来获得并维护模型的细节(微观图)。
虽然有很多指南的应用明确针对于过程工程师,但是这些指南也可以应用于其他角色。除此之外,其他的指南也可以作为上述指南的一种补充。
七:在应用统一过程的项目中,我们应遵循下列指导步骤进行项目平衡:
1)不断寻找平衡;这一点毋庸置疑,过程工程师必须考虑角色、活动和工件的必要性、充分性和一致性,确定风险以保证项目成功。对必要性的判断主要是考虑其是否是项目不可或缺的;对充分性判断主要是考虑其是否满足给定的目标;对一致性判断主要是考虑其是否与其它事务前后矛盾,相互冲突。其中,一致性可以使用指南进行判断。
对统一过程基本元素重视程度的不足和对过程框架中各个过程元素的认识的不足通常表现为对必要性、充分性和一致性的判断错误。过程工程师应该提供建议,从而尽可能地考虑到项目潜在的风险,以确保项目中没有任何事情被忽略而导致无法实现目标,并给出相应论证。
2)对于角色而言,在项目中,使用全部角色,或不使用任何角色;给团队中每一个成员都分配角色,或不分配任何角色的情况都很少见。应根据每个角色的意义做出决定。
3)对于活动而言,在项目中,进行全部活动,或不进行任何角色;团队面面俱到的进行全部活动,或仅仅进行那些最必要的活动的情况都很少见。应根据每个活动的意义而做出决定。
4)对于工件而言,在项目中,生成全部工件,或不生成任何工件;团队面面俱到的生成全部工件,或仅仅生成那些最必要的工件的情况都很少见。应根据每个工件的意义而做出决定。
5)对于重复而言,在项目中,保持进行固定数量的重复,或不进行任何重复和改变;对于变化本身而言,没有原因而产生变化,或每一个原因都产生一个变化的情况都很少见。应根据每个重复的意义而做出决定。
6)不要相信一个可以在没有任何前提条件下证明一切的过程工程师。这种情况下,对于上述元素意义方面的问题,他们经常回答:“嗯,这个……!
不要相信无法证明任何事情的过程工程师。这种情况下,对于上述的“原始问题”,他们经常回答:“相信我……!
7)不要相信那些只注重统一过程的形式而不是精髓的“纯理论家”。从实用的角度来说,这些“纯理论家”迟早都会为项目的成功结束而做出某些折衷和平衡,因为没有折衷和平衡,意味着项目存在重大的风险。对于大多数过程工程师而言,无法正确地折衷和平衡是他们的通病。
虽然有很多指南的应用明确地针对于过程工程师,但是这些指南也可以应用于其他角色。除此之外,其他的指南也可以作为上述指南的一种补充。
九,在应用统一过程的项目中,我们应遵循下列指南进行迭代开发事项。
1)开发阶段以迭代为主。脱离特定阶段的环境而进行的迭代活动将失去灵活动态的特性,或松散混乱,或迟钝死板。不考虑或是过分考虑环境(context)的迭代都将阻碍统一过程优势的发挥。
在对某个项目的迭代进行计划,执行,评估的过程中,应充分考虑迭代的阶段,确定这些阶段的具体目标以及如何在特定环境中达到这些目标。
软件工程作业
题目4 operating systems 操作系统 我们通过移动时代最流行的两大操作系统来分析他们的特点。谷歌 andriod 苹果 ios 日前,市场调研机构发布了 2017 年第一季度智能 踪报告,通过该报告我们了解到,苹果依然是目前全球第二大智能手机厂商,具备ios的iphone 所占的市场...
软件工程作业
计算机与信息技术学院软件工程。专业 计算机科学与技术年级 班级 09级计科一班 2011 2012学年第二学期。一 设计背景 工资管理工作在高校日常管理中占据及其重要的地位,是真正涉及到千家万户的一件大事。高校工资管理事务政策性强,数据量大,而且报表多 条目细,要求高度精确和高度安全,还要求报表标准...
软件工程作业
生命信息与仪器工程学院。设计题目 基于gprs的远程自动抄表系统设计 专业 测试计量技术及仪器 学号。姓名。导师。一 系统功能图及网络架构。二 结构图及例图。1.用户角色关系图。主要为系统用户及权限的物理结构,其中用户对应多个角色,角色与权限为多对多的关系,中间通过中间表相互关联。2.抄表过程异常结...