资源描述
Email:统一开发RUP工程1概况1您的内容打在这里,或者通过复制您的文本后。概况2您的内容打在这里,或者通过复制您的文本后。概况3您的内容打在这里,或者通过复制您的文本后。+整体概况2uRUP(Rational统一过程)是一种软件工程过程,提供了如何在开发组织中严格分配任务和职责的方法u其目标是:按照预先制定的时间计划和经费预算,开发高质量的软件产品以满足用户最终需求uRUP是一个过程产品,有自己的过程框架,该框架可以被改造和扩展以适应采纳此方法的组织uRUP是UML的过程的补充框架基本概念3UML用若干个不同的视图完整描述所建造的系统,每个视图(View)是由若干幅图(diagram)组成的一种抽象,而每一幅图又有若干个模型元素组成模型元素表示图中的概念,如类(class)、对象(object)、用例(use-case)、结点(node)、接口(interface)、包(package)、注解(note)、构件(component)等用于表示模型元素之间相互连接的关系也是模型元素,如关联(Association)、泛化(generalization)、依赖(dependency)、聚集(aggregation)等回顾UML4UML结构图UML事物关系图结构事物行为事物分组事物辅助事物依赖关系泛化关系聚集关系关联关系静态图动态图用例图部署图类图构件图对象图顺序图活动图状态图协作图交互状态机包注释节点组件活动协作接口类用例共享聚集组合聚集5类属性操作对象属性操作状态用例结点包注解 构件接口关联依赖组合聚集共享聚集泛化细化6u静态图(Static Diagram)u用例图(use-case diagram):展示了各种外部行为者与系统所提供的用例之间的连接.u类图(class diagram):描述系统中类的静态结构,即类与类之间的相互联系u对象图(object diagram):是类图的实例,展示了系统在某一时间点上的一个快照u构件图(component diagram):描述实现系统的元素组织u部署图(deployment diagram):描述系统环境元素的配置,即系统中软件和硬件的物理结构关于图(diagram)(diagram)的说明7u动态图(Dynamic Diagram)u时序图(sequence diagram):按时间顺序描述系统元素间的交互u协作图(collaboration diagram):说明消息的交互,显示对象及对象之间的关系u状态图(state diagram):说明类的对象的所有可能的状态以及哪些事件将导致状态的改变u活动图(activity diagram):展示了连续的活动流,通常用来描述完成一个操作所需要的活动关于图(diagram)的说明8用例图活动图类图时序图协作图构件图部署图状态图描述每个用例的活动对体系结构建模,确定包和类及类之间关系自动生成细化关于图(diagram)(diagram)的说明对象图9关联(Association)是类之间的连接,即与该关联连接的类的对象之间的语义连接,称为链(link)常规关联,比如公司和员工的关联,关联的两端通常写上重数的数值范围(如0.1,0.*,1.*,5.110.1,0.*,1.*,5.11等),重数默认为1 1多重关联:两个以上的类之间互相关联,如程序员用某种程序语言开发了某个项目类之间的几种关系10u聚合(Aggregation):是一种整体/部分层次关系,一个聚合对象包括(拥有)其他对象,每个被包括的对象被认为是聚合对象的一部分,聚集可以看作关联的特例u组合聚合(Composition):”整体”拥有它的”部分”,”部分”生存在整体中,它们与整体一起消亡,整体的重数必须是0或1.u共享聚合(shared aggregation):”部分”对象可以是任意”整体”对象的一部分,如果整体端的重数不是1,这种聚集是共享的类之间的几种关系11u泛化/特殊化(Generalization/Specialization):是一种“一般-特殊关系”,特殊类和一般类之间的关系是“is a”的关系,比如汽车和交通工具u交叠(overlapping)泛化:存在某种具有公共父类的多重继承u不交(disjoint)泛化:是一种默认的泛化关系,具有公共父类的子类不能特化出公共的子类u完全(complete)泛化:可特化出所有的子类u不完全(incomplete)泛化:默认泛化类型类之间的几种关系12u依赖和细化u依赖:一个类的实现依靠另一个类u细化:对同一个事物在不同抽象级别上的两种描述之间的关系,细化用来协调不同阶段模型之间的关系u约束和派生u约束:定义属性的取值范围,当一个关联是另一个关联的子集时,它们建立了约束u派生:有关什么事能被导出的规则,如年龄可通过当前日期和出生日期派生出来类之间的几种关系13用例建模u用例图:一个用例模型可由若干幅用例图组成,一幅用例图包含的模型元素有系统、行为者、用例以及它们之间的不同关系,如泛化,关联和聚集等u基本步骤u确定行为者u确定用例u用例之间的关系:扩展extend和使用use(均属于泛化关系).通常在描述一般行为的变化时采用extend关系;而在两个和更多的用例中出现重复描述,又想避免这种重复时可采用use关系14用例图举例设置边界风险分析交易估计进行交易超越边界更新账目评价useuseextend记账系统销售员交易经理交易人员一个贸易系统的用例15类和对象建模u类和对象模型描述了系统的静态结构,在UML中用类图和对象图来表示u基本步骤u确定类:寻找类,定义属性,定义操作u画出类图和对象图16类图和对象图举例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对象图17动态建模u用来描述系统的动态行为,显示系统在运行期间不同时刻的动态交互,用状态图,时序图,协作图和活动图来建立动态模型18状态图举例状态名状态变量活动状态初始状态 结束状态迁移OnFirst floorMoving Updo/moving to floorIdletimer=0do/increase timerMoving Downdo/moving to floorMoving toFirst floorarrivedgo up(floor)arrivedgo up(floor)go down(floor)timer=time-outarrived19协作图举例:Button:Elevator control:Order new:Quene:ElevatorPush()1:GetElevator(floorid)1.1*all quenes:len=Length()Broadcast1.3:Invoke(job)2:nextjob=GetJob()localnextjobparameterjob1.2:Create()job控制电梯运行的协作图20顺序图举例21活动图举例ShowMessageBox“Disk full”onscreenShowMessageBox“Printing”onscreenCreate postcriptfileRemove MessageBoxdisk fullfree disk spacePrinter.print(file)Customer Window.printAllCustomer()22物理体系结构建模u系统的体系结构用来描述系统各个部分的结构、接口以及它们用于通信的机制,系统体系结构可分为逻辑体系结构和物理体系结构u逻辑体系结构涉及到系统的功能,物理体系结构涉及到系统的详细描述(根据系统所包含的硬件和软件),),它显示了系统的硬件结构,包括不同的结点和这些结点之间如何连接uUMLUML中的物理体系结构用构件图和部署图来描述23构件图举例 window Handle (Whnd.cpp)Comm Handle (comhnd.cpp)Main Class (main.cpp)window Handle (Whnd.obj)Comm Handle (comhnd.obj)Main Class (main.obj)Graphic Lib (graphic.dll)Client Program (client.exe)24部署图举例SGI O2 Unix Transaction Server ProgramSupports25u用例视图:展示了外部行为者所观察到的系统将提交的功能,用用例图或活动图描述用例,针对客户、分析者、设计者、编程者和测试者u逻辑视图:展示系统内部如何提供系统的功能,针对分析者、设计者和编程者。不仅描述系统的静态结构(类图和对象图),),还可描述对象之间的动态协作关系(状态图,时序图,协作图和活动图)u构件视图:展示了代码构件的组织,描述了实现模块和他们之间的依赖关系,针对开发者(构件图)u并发视图:展示了系统的并发性,针对开发者和系统集成者,用动态图,构件图和部署图描述u部署视图:展示了系统的物理部署,针对开发者,集成者和测试者,用部署图描述UML的五种视图26RUP的特点用况驱动以构架为中心迭代和增量过程风险驱动基于构件27统一过程模型分析模型详细说明为用况模型包含了所有用例,即与用户之间关系设计模型具体表现为实施模型分布为实现模型实现为测试模型验证时采用28构架的4+1视图模型逻辑视图过程 视图 实现视图实施 视图 用况视图描述系统的功能性需求,描述系统为最终用户做什么,是设计模型的抽象 程序员与实现有关的部分.是事物的静态视图 系统工程师系统的拓扑结构、交付、安装、通信.注重事实和系统必须服从的约束.描述系统在运行时的并发性-任务、线程、过程以及它们之间的交互作用,针对系统集成人员设计人员/测试人行为29模型和构架视图的关系模型构架视图设计模型逻辑视图设计模型(或复杂系统的过程模型)过程视图实现模型实现视图实施模型实施视图用况模型用况视图30 统一过程模型元素四种重要的模型元素:工作人员:谁做 制品:做什么 活动:怎么做 工作流:什么时候做用况分析用况设计活动工作人员制品负责设计师31项目相关人员请求 构想业务用况 风险清单规格补充说明用况模型 术语表软件开发计划软件构架文档测试计划实施计划软件需求规格说明分析模型设计模型实现模型 产品 RUPRUP的主要制品32u核心工程工作流 1 1)业务建模工作流 2 2)需求工作流 3 3)分析和设计工作流 4 4)实现工作流 5 5)测试工作流 6 6)实施工作流 u核心支持工作流 1 1)配置变更工作流 2 2)项目管理工作流 3 3)环境工作流33需求工作流 新系统 定义系统管理变更 现有系统 分析问题理解需要不正确问题正确问题更多迭代需求定义完成精化系统定义管理系统范围范围内不在范围内 新 输 入 34u初始阶段启动项目u建立业务案例、制定迭代计划、选择开发环境等u细化阶段构造构架基线u建立完善的业务模型、建立所有模型、给出构架说明(包括各种视图)、给出更新过的风险清单等u构造阶段形成初步的可运行能力u提交软件的可执行版本、提交移交阶段的项目计划、提交足够详细的用户手册等u移交阶段完成产品发布u提交安装软件、法律文档、培训资料等迭代过程的步骤35 界面设计师分析人员 构架设计师用况描述人员确定参与者和用况构造用况模型 区分用况优先级 详细描述一个用况 构造用户界面原型用况建模中的工作流36分析阶段工作流 构架设计师 用况工程师分析用况 构架分析分析类 构件工程师分析包37设计阶段工作流 构架设计师 用况工程师设计一个用况 构架的设计设计一个类 构件工程师设计一个子系统38实现阶段工作流 构架设计师系统集成人员 构架的实现实现一个子系统 构件工程师集成系统实现一个类执行单元测试39测试阶段工作流 构件工程师 测试工程师集成测试人员系统测试人员制定测试计划 设计测试执行集成测试执行系统测试实现测试评估测试40例:自动取款机(ATM)系统u参与者“银行储户”使用ATM从账户中取款、存款,或在不同的账户间转账u三个用况构成用况模型在不同的账 户间转账取款存款银行储户41u用况模型捕获了系统所有的功能性需求,每一个用况给出了一个动作序列u比如取款用况,其动作序列为:(1)银行储户表明自己的身份 (2)银行储户选择从某账户取款,确定取款金额 (3)系统从账户上减掉该数量的金额,发给该储户相应金额的货币确定用况的动作序列42取款用况取款分配 出纳接口取款 分析模型账户跟踪参加者边界类控制类实体类分析模型中用况的实现分析模型从建立用况实现并确定类元的角色开始使用类的三种不同构造型:边界类、控制类和实体类43每个用况实现为分析类结构在不同的账户间转账取款存款银行储户用况模型分析模型取款转账存入账户出纳接口分配银行储户货币接收器44使用协作图来描述用况的实现:出纳接口2:请求取款3:确认并取款:取款:账户:分配:银行储户1:表明身份4:授权分发5:分发 货币45设计模型中的设计类跟踪到分析模型中的分析类跟踪跟踪跟踪跟踪分配传感器 取款 账户分配输送器 客户管理永久类 点钞机事务管理 账户管理 显示 数字键盘 读卡机 设计模型出纳接口分配取款账户分析模型46设计模型部分实现“取款”用况的类图 显示 分配传感器 取款账户数字键盘分配输送器 客户管理永久类 读卡机点钞机事务管理账户管理 银行储户47设计模型部分实现设计模型部分实现“取款取款”用况的顺序图用况的顺序图显示数字键盘客户管理读卡机点钞机事务管理银行储户请求确认PIN合法性插ATM卡 接受ATM卡(标识)询问PIN(个人身份号)代码 显示请求 确定PIN代码PIN代码询问取款数额 显示请求确定数额数额A取款数额请求A现金可用性请求A48按子系统对类分组账户永久类事务管理账户管理银行储户 显示分配传感器数字键盘分配输送器客户管理读卡机点钞机账户管理ATMATM接口 取款管理事务管理取款分配转账取款49 实现设计类的构件文件client.c可执行体 client.exe文件dispenser.c实现客户管理分配输送器分配传感器点钞机设计跟踪跟踪编译50根据用况确定测试用例X用况模型测试模型取款取款 基本流 黑盒测试跟踪X用况实现的设计测试模型(来自设计模型)白盒测试跟踪51 输入:银行储户的账户XXXXXXXXXX上余额350350元银行储户正确表明本人身份银行储户请求从账户XXXXXXXXXX上取款200200元ATMATM有足够货币 结果:银行储户的账户XXXXXXXXXX上余额减为150150元银行储户从ATMATM获得200200元.条件:该测试用例运行期间,不允许其他用况对账户XXXXXXXXXX进行访问测试用例52用况模型的构架视图取款存款银行储户在不同的账 户间转账用况模型的构架视图应显示出对用况完整描述53设计模型构架视图设计模型的构架视图展示了设计模型对构架的重要类元:子系统,接口,主动类,以及重要的用况是如何按照这些类元实现的客户管理 事务管理账户管理 ATMATM中设计模型的构架视图的静态结构包含描述主动类的类图54ATM中设计模型构架视图的静态结构描述子系统及其接口的类图子系统ATM接口子系统事务管理子系统账户管理银行储户分发取款转账存款历史转账处理银行储户的所有输入和输出保存所有长期账户的信息,处理账户事务包含用况专用行为的类55从子系统和参与者交互来说明“取款”用况子系统ATM接口子系统事务管理子系统账户管理1:1:确认(数额)2:2:取款:执行(数额,账户)3:3:转账:验证 并取款(数额,账户)4:4:分配:授权分配(数额)5:5:货币()()银行储户前提:银行储户有一个可以用于ATM ATM 的银行账户56提问与解答环节Questionsandanswers57添加标题添加标题添加标题添加标题此处结束语点击此处添加段落文本.您的内容打在这里,或通过复制您的文本后在此框中选择粘贴并选择只保留文字58谢谢聆听THANKYOUFORLISTENING演讲者:XX时间:202X.XX.XX59
展开阅读全文