哈尔滨工业大学计算机学院唐好选Email:tanghx@hope.hit.edu.cn统一开发RUP工程RUP(Rational统一过程)是一种软件工程过程,提供了如何在开发组织中严格分配任务和职责的方法其目标是:按照预先制定的时间计划和经费预算,开发高质量的软件产品以满足用户最终需求RUP是一个过程产品,有自己的过程框架,该框架可以被改造和扩展以适应采纳此方法的组织RUP是UML的过程的补充框架基本概念UML用若干个不同的视图完整描述所建造的系统,每个视图(View)是由若干幅图(diagram)组成的一种抽象,而每一幅图又有若干个模型元素组成模型元素表示图中的概念,如类(class)、对象(object)、用例(use-case)、结点(node)、接口(interface)、包(package)、注解(note)、构件(component)等用于表示模型元素之间相互连接的关系也是模型元素,如关联(Association)、泛化(generalization)、依赖(dependency)、聚集(aggregation)等回顾UMLUML结构图UML事物关系图结构事物行为事物分组事物辅助事物依赖关系泛化关系聚集关系关联关系静态图动态图用例图部署图类图构件图对象图顺序图活动图状态图协作图交互状态机包注释节点组件活动协作接口类用例共享聚集组合聚集类属性操作对象属性操作状态用例结点包注解构件接口关联依赖组合聚集共享聚集泛化细化静态图(StaticDiagram)用例图(use-casediagram):展示了各种外部行为者与系统所提供的用例之间的连接.类图(classdiagram):描述系统中类的静态结构,即类与类之间的相互联系对象图(objectdiagram):是类图的实例,展示了系统在某一时间点上的一个快照构件图(componentdiagram):描述实现系统的元素组织部署图(deploymentdiagram):描述系统环境元素的配置,即系统中软件和硬件的物理结构关于图(diagram)的说明动态图(DynamicDiagram)时序图(sequencediagram):按时间顺序描述系统元素间的交互协作图(collaborationdiagram):说明消息的交互,显示对象及对象之间的关系状态图(statediagram):说明类的对象的所有可能的状态以及哪些事件将导致状态的改变活动图(activitydiagram):展示了连续的活动流,通常用来描述完成一个操作所需要的活动关于图(diagram)的说明用例图活动图类图时序图协作图构件图部署图状态图描述每个用例的活动对体系结构建模,确定包和类及类之间关系自动生成细化关于图(diagram)的说明对象图关联(Association)是类之间的连接,即与该关联连接的类的对象之间的语义连接,称为链(link)常规关联,比如公司和员工的关联,关联的两端通常写上重数的数值范围(如0..1,0..*,1..*,5..11等),重数默认为1多重关联:两个以上的类之间互相关联,如程序员用某种程序语言开发了某个项目类之间的几种关系聚合(Aggregation):是一种整体/部分层次关系,一个聚合对象包括(拥有)其他对象,每个被包括的对象被认为是聚合对象的一部分,聚集可以看作关联的特例组合聚合(Composition):”整体”拥有它的”部分”,”部分”生存在整体中,它们与整体一起消亡,整体的重数必须是0或1.共享聚合(sharedaggregation):”部分”对象可以是任意”整体”对象的一部分,如果整体端的重数不是1,这种聚集是共享的类之间的几种关系泛化/特殊化(Generalization/Specialization):是一种“一般-特殊关系”,特殊类和一般类之间的关系是“isa”的关系,比如汽车和交通工具交叠(overlapping)泛化:存在某种具有公共父类的多重继承不交(disjoint)泛化:是一种默认的泛化关系,具有公共父类的子类不能特化出公共的子类完全(complete)泛化:可特化出所有的子类不完全(incomplete)泛化:默认泛化类型类之间的几种关系依赖和细化依赖:一个类的实现依靠另一个类细化:对同一个事物在不同抽象级别上的两种描述之间的关系,细化用来协调不同阶段模型之间的关系约束和派生约束:定义属性的取值范围,当一个关联是另一个关联的子集时,它们建立了约束派生:有关什么事能被导出的规则,如年龄可通过当前日期和出生日期派生出来类之间的几种关系用例建模用例图:一个用例模型可由若干幅用例图组成,一幅用例图包含的模型元素有系统、行为者、用例以及它们之间的不同关系,如泛化,关联和聚集等基本步骤确定行为者确定用例用例之间的关系:扩展《extend》和使用《use》(均属于泛化关系).通常在描述一般行为的变化时采用《extend》关系;而在两个和更多的用例中出现重复描述,又想避免这种重复时可采用《use》关系用例图举例设置边界风险分析交易估计进行交易超越边界更新账目评价《use》《use》《extend》记账系统销售员交易经理交易人员一个贸易系统的用例类和对象建模类和对象模型描述了系统的静态结构,在UML中用类图和对象图来表示基本步骤确定类:寻找类,定义属性,定义操作画出类图和对象图类图和对象图举例LineX1:realY1:realX2:realY2:realPointX:realY:real2..*0..*相交类图L1:LineX1=10Y1=10X2=-10Y2=-10L2:LineX1=-10Y1=10X2=10Y2=10L3:LineX1=10Y1=5X2=-10Y2=-5L4:LineX1=9Y1=5X2=9Y2=3P1:PointX=0Y=0P2:PointX=9Y=4.5对象图动态建模用来描述系统的动态行为,显示系统在运行期间不同时刻的动态交互,用状态图,时序图,协作图和活动图来建立动态模型状态图举例状态名状态变量活动状态初始状态结束状态迁移OnFirstfloorMovingUpdo/movingtofloorIdletimer=0do/increasetimerMovingDowndo/movingtofloorMovingtoFirstfloorarrivedgoup(floor)arrivedgoup(floor)godown(floor)[timer=time-out]arrived协作图举例:Button:Elevatorcontrol:Order{new}:Quene:ElevatorPush()1:GetElevator(floorid)1.1*[allquenes]:len=Length(){Broadcast}1.3:Invoke(job)2:nextjob=GetJob(){local}nextjob{parameter}job1.2:Create()job控制电梯运行的协作图顺序图举例EC应用MAS服务器IAGW-AIAGW-M终端用户短信发送请求提交鉴权鉴权结果返回状态报告状态报告短信发送请求短信下发记录消息状态查询消息状态消息状态活动图举例ShowMessageBox“Diskfull”onscreenShowMessageBox“Printing”onscreenCreatepostcriptfileRemoveMessageBox[diskfull][freediskspace]^Printer.print(file)CustomerWindow.printAllCustomer()物理体系结构建模系统的体系结构用来描述系统各个部分的结构、接口以及它们用于通信的机制,系统体系结构可分为逻辑体系结构和物理体系结构逻辑体系结构涉及到系统的功能,物理体系结构涉及到系统的详细描述(根据系统所包含的硬件和软件),它显示了系统的硬件结构,包括不同的结点和这些结点之间如何连接UML中的物理体系结构用构件图和部署图来描述构件图举例windowHandle(Whnd.cpp)CommHandle(comhnd.cpp)MainClass(main.cpp)windowHandle(Whnd.obj)CommHandle(comhnd.obj)MainClass(main.obj)GraphicLib(graphic.dll)ClientProgram(client.exe)部署图举例SGIO2UnixTransactionServerProgram《Supports》用例视图:展示了外部行为者所观察到的系统将提交的功能,用用例图或活动图描述用例,针对客户、分析者、设计者、编程者和测试者逻辑视图:展示系统内部如何提供系统的功能,针对分析者、设计者和编程者。不仅描述系统的静态结构(类图和对象图),还可描述对象之间的动态协作关系(状态图,时序图,协作图和活动图)构件视图:展示了代码构件的组织,描述了实现模块和他们之间的依赖关系,针对开发者(构件图)并发视图:展示了系统的并发性,针对开发者和系统集成者,用动态图,构件图和部署图描述部署视图:展示了系统的物理部署,针对开发者,集成者和测试者,用部署图描述UML的五种视图RUP的特点用况驱动以构架为中心迭代和增量过程风险驱动基于构件统一过程模型分析模型详细说明为用况模型包含了所有用例,即与用户之间关系设计模型具体表现为实施模型分布为实现模型实现为测试模型验证时采用构架的4+1视图模型逻辑视图过程视图实现视图实施视图用况视图描述系统的功能性需求,描述系统为最终用户做什么,是设计模型的抽象程序员与实现有关的部分.是事物的静态视图系统工程师系统的拓扑结构、交付、安装、通信.注重事实和系统必须服从的约束.描述系统在运行时的并发性-任务、线程、过程以及它们之间的交互作用,针对系统集成人员设计人员/测试人行为模型和构架视图的关系模型构架视图设计模型逻辑视图设计模型(或复杂系统的过程模型)过程视图实现模型实现视图实施模型实施视图用况模型用况视图统一过程模型元素四种重要的模型元素:工作人员:谁做制品:做什么活动:怎么做工作流:什么时候做用况分析用况设计活动工作人员制品负责设计师项目相关人员请求构想业务用况风险清单规格补充说明用况模型术语表软件开发计划软件构架文档测试计划实施计划软件需求规格说明分析模型设计模型实现模型产品RUP的主要制品核心工程工作流1)业务建模工作流2)需求工作流3)分析和设计工作流4)实现工作流5)测试工作流6)实施工作流核心支持工作流1)配置变更工作流2)项目管理工作流3)环境工作流需求工作流[新系统]定义系统管理变更[现有系统]分析问题理解需要[不正确问题][正确问题][更多迭代][需求定义完成]精化系统定义管理系统范围[范围内][不在范围内][新输入]初始阶段启动项目建立业务案例、制定迭代计划、选择开发环境等细化阶段构造构架基线建立完善的业务模型、建立所有模型、给出构架说明(包括各种视图)、给出更新过的风险清单等构造阶段形成初步的可运行能力提交软件的可执行版本、提交移交阶段的项目计划、提交足够详细的用户手册等移交阶段完成产品发布提交安装软件、法律文档、培训资料等迭代过程的步骤界面设计师分析人员构架设计师用况描述人员确定参与者和用况构造用况模型区分用况优先级详细描述一个用况构造用户界面原型用况建模中的工作流分析阶段工作流构架设计师用况工程师分析用况构架分析分析类构件工程师分析包设计阶段工作流构架设计师用况工程师设计一个用况构架的设计设计一个类构件工程师设计一个子系统实现阶段工作流构架设计师系统集成人员构架的实现实现一个子系统构件工程师集成系统实现一个类执行单元测试测试阶段工作流构件工程师测试工程师集成测试人员系统测试人员制定测试计划设计测试执行集成测试执行系统测试实现测试评估测试例:自动取款机(ATM)系统参与者“银行储户”使用ATM从账