面向对象技术基础统一建模方法(UML)DQ

上传人:猪** 文档编号:242872242 上传时间:2024-09-10 格式:PPT 页数:143 大小:2.77MB
返回 下载 相关 举报
面向对象技术基础统一建模方法(UML)DQ_第1页
第1页 / 共143页
面向对象技术基础统一建模方法(UML)DQ_第2页
第2页 / 共143页
面向对象技术基础统一建模方法(UML)DQ_第3页
第3页 / 共143页
点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,对象入门 -,北航软件所 刘超,面向对象技术基础,第二部分,统一建模方法浅介,北京航空航天大学软件工程研究所,李虎,Liuchao,对象入门 -,UML,建模方法概述,建模技术概述,UML,的来源,UML,概述,对象入门 -,建模的基本目的,模型是对事物的一种抽象。,人们常常在正式建造实物之前,先建立模型,以便更透彻地了解它的本质,抓住问题的要害,建模的目的是为所要建造的复杂系统预先绘制(或制作)一个具体的、简明易懂的模型(或原型),以便,在着手解决一个复杂问题之前,对解决方案进行检测,用于同客户和其他相关人员进行交流,加强视觉效果,对复杂问题进行适度简化,对象入门 -,建模技术要点,构造模型的基本技术是抽象,应突出与问题有关的特征,将与问题无关的性质略去。,不必追求绝对的真实和完全,只需从期望的目的角度看其是否充分。,应当刻画问题的关键方面,略去相对次要的因素。,建模语言应支持人的由模糊到清晰、由粗到细逐渐完善的认识过程。,应采用可视化图形建模语言。,对象入门 -,系统的多态性,在功能和性能方面:功能正确,性能良好(效率要高)。,在非功能方面:鲁棒性、可扩充性、可再用性、兼容性、可移值性、可验证性、完整性以及易使用性等方面要好。,一个系统应具有多方面的特点:,一个系统要从多个视角去描述。,一个视图可能包含多个模型图,每张模型图都应当简单明了,易于交流。,UML,:,重点是针对系统的,“,功能性,”,对象入门 -,What we look for?,techniques to improve quality and reduce cost and time-to-market, include,component technology,visual programming,patterns,frameworks,also, techniques to manage the complexity of systems as they increase in scope and scale.,对象入门 -,什么是,UML?,UML 1.3: The Unified Modeling Language (UML) provides system architects working on object analysis and design with one consistent language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling.,对象入门 -,What does UML provide?,The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems.,The UML represents a collection of the best engineering practices that have proven successful in the modeling,of large and complex systems.,UML can better fit and support those advanced technologies,对象入门 -,UML,是一种建模语言,建模方法 = 建模语言 + 建模过程 + 工具。,建模语言定义了用于表示设计的符号(通常是图形符号);,建模过程描述进行设计所需要遵循的步骤。,标准建模语言,UML,是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。,建模能力:建模方法 + 领域知识 + 实践,对象入门 -,UML,概述,1. 引 论;,2.,UML,的模型图;,3,.,UML,的基本视图;,4,.,标准建模过程概述;,5. UML,的学习方法和应用领域。,对象入门 -,1. 引 论,为什么有必要统一建模语言;,UML,是一种建模语言;,UML,的设计目标;,UML,的发展历程。,对象入门 -,为什么有必要统一建模语言,面对众多的建模语言,用户没有能力区别不同语言之间的差别。,在众多的建模语言中,实际上各有千秋,需要取长补短,日臻完善。,虽然不同的建模语言大多相同,但仍存在某些细微的差别,这极大地妨碍了用户之间的交流。,对象入门 -,UML,的设计目标,UML,是由,Booch,Rumbaugh,和,Jacobson,发起,在,Booch,方法、,OMT,方法和,OOSE,方法的基础上,集众家之长,几经修改而成。,UML,的设计目标是:,运用面向对象概念来构造系统模型(不仅是针对软件)。,建立起从概念模型直至可执行体之间明显的对应关系。,着眼于那些有重大影响的问题。,创建一种对人和机器都适用的建模语言。,对象入门 -,UML,的主要特点,UML,统一了,Booch,OMT,和,OOSE,等方法中的基本概念:用例图从,OOSE,来;类图从,OMT,和,Booch,等方法来;,实现图(构件图和配置图),从,Booch,的模块,图,和过程图来。,UML,吸取了,OO,技术领域各流派的长处:状态图从,Harel,而来;活动图从工作流图而来;合作图从,Booch,的对象图和,Fusion,的对象交互作用图等而来;等等。,在演变过程中,UML,提出了一些新的概念。,对象入门 -,UML,的发展历程,1994.10,,Booch,和,Rumbaugh,将,Booch93,和,OMT-2,统一,1995.10.发布,UM0.8。,1995,年秋,经过,Booch,等三人的努力,1996.6 和1996.10发布,UML0.9,和,UML0.91。,1996,年成立,UML,成员协会,有700多公司支持,UML,,,占领,OO,市场的 85%。,1997.1发布,UML1.0,1997,.9发布,UML1.1。,1997,.11,OMG,采纳,UML1.1,作为,OO,技 术的标准建模语言。,此后,,UML,的维护工作由,Cris,Kobryn,领导的,OMG,版本修改小组,RTF ( Revision Task Force),负责.,1998.6:,UML V. 1.1 (,编辑修改版).,1999.6:,UML V. 1.3 (,技术终订版).,UML3.0 ,目前,对象入门 -,UML,的发展历程,(续),公众,反馈,OOPSLA95 Unified Method 0.8,工业化,标准化,统一化,分散的,各部分,Booch93 OMT-2,1996.6和1996.10,UML 0.9&0.91,1997.11.17,1997.9公布,UML 1.1,1997.1公布,UML 1.0,合作伙,伴意见,UML 1.1,被,OMG,接纳为标准,其他方法,Booch91 OMT-1 OOSE,1999.6,UML1.3,2003.6.12.,UML2.0,对象入门 -,Who is OMG?,The Object Management Group, Inc. (OMG) is an international organization supported by over 800 members, including information system vendors, software developers and users. Founded in 1989,OMG promotes the theory and practice of object-oriented technology in software development.,Primary goals are the reusability, portability, and interoperability of object-based software in distributed, heterogeneous environments.,对象入门 -,主要参考书(续1),刘超、张莉,可视化面向对象建模技术-标准建模语言,UML,,北京航空航天大学出版社,2001.7(第二次印刷), 17.00,姚淑珍等译,,UML,参考手册,机械工业出版社,2001.1,邵维忠等译,,UML,用户指南,机械工业出版社,2001.6,周伯生等译,统一软件开发过程,机械工业出版社,2002.1,蒋慧等编,,UML Programming Guide-,设计核心技术,北京希望电子出版社,2001年4月,对象入门 -,有关的常用网址,www.omg.org,: OMG home page. Contains specs for UML and related modeling,stds, such as MOF and XMI.,: UML RTF home page. Contains UML spec artifacts, including the UML 1.3 final draft and the RTFs final report., UML resource page containing links to specs, pubs, events, and vendors.,: Rational Products & UML,对象入门 -,Some References of Interest,Bruce Powel Douglass, Ph.D.Chief,Evangelist,I-Logix, Inc.,,,bpd,对象入门 -,2,.,UML,的模型图,两类、九种模型图,静态模型图,又称结构图,可视化、说明、构造和文档化系统静态特性,动态模型图,又称行为图,可视化、说明、构造和文档化系统动态特性,对象入门 -,静态图,类图,:展示对象类、接口、及其相互合作与关联,包图,:在,UML 1.1,以后,它不再被看作一种独立的模型图,对象图,:展示对象及其相互之间的关系,实现图:,构件图,:描述部件的物理结构以及各部件之间的依赖关系;,配置图,:定义系统中软硬件的物理构架。,对象入门 -,动态图,用例图,: 从用户角度描述系统的行为,并指出各功能的操作者,状态图,:描述由事件驱动的系统/对象的状态转移,活动图,:描述活动之间的控制流,交互图:描述对象之间的交互情况,顺序图,:重点描述消息发生的事件顺序,合作图,:重点描述各个对象之间收发消息的情况,对象入门 -,2,.1,关于保险业务的一张用例图,保险销售人员,客 户,客户统计表,签署保险文件,销售统计表,1. 领取保险文件;,2.讲解保险条款,3.填写保单;,4.客户和销售代表签字;,对象入门 -,用例图举例(,UML1.1),使用,贸易经理,设置边界,更新帐目,记帐系统,扩展,用例,执行者,使用,风险分析,交易估价,进行交易,超越边界,-,扩展点:大交易量,评 价,营销人员,销售人员,对象入门 -,用例图举例(,UML1.3),包含,贸易经理,设置边界,更新帐目,记帐系统,泛化,用例,执行者,包含,风险分析,交易估价,进行交易,超越边界,评 价,营销人员,销售人员,对象入门 -,用例,Use Cases,用例,:,是用户与计算机之间为达到某个目的的一次典型交互,描述用户提出的可见需求,包含一组场景:,一个主场景和若干个备选场景,场景,:,用户与系统之间的一个交互过程,即为实现这次交互所要经历的一系列步骤,以字处理程序为例,“将某些正文置为黑体”和“创建一个索引”便是两个典型的用例,用例可大可小,例:10人年的项目,20-100个用例,例:基用例和扩展用例,对象入门 -,对象入门 -,用例的描述,用例名称,目标,内容:用例预达到的业务目标,描述方式:可以用自然语言描述 (“该用例的目的是”,描述,内容:,基本工作流程,备选工作流程,描述方式:,最好用半形式化 的方式(“该系统应当”),也可以用形式化的方式,前置条件,该用例执行的前置条件?,后置条件,该用例执行之后系统应当满足什么条件,?,约束条件,其他需求或约束条件,对象入门 -,思考题,采用用例模型来描述一个典型软件产品/系统的需求,产品/系统名称:,产品/系统说明:,用例模型:,用例说明:,需求文档:,对象入门 -,对象入门 -,用例图中的图符(,UML1.3),执行者,系统,用例,关联,扩展,注释体,注释连接,包含,泛化,对象入门 -,2,.2,静态图:类图、对象图和包图,静态图包括类图、对象图和包图,用以描述模型中类及其实例之间的静态关系,类图用于定义系统中的类,包括描述类之间的联系,(如关联、依赖、聚合等)以及类的内部结构,,即类的属性和操作,对象图显示类的对象实例,一个对象图是类图的一个实例,包图由包或类组成,主要表示包与包、或包与类之间的关系。包图用于描述系统的分层结构,对象入门 -,关于金融贸易的一张类图,客 户,有价证券明细表,代理,1 1.*,Owns,1.* 1.*,Handles,Contains,0.*,0.*,证 券,债 券,互助基金,股 票,对象入门 -,关于保险的一张类图,客 户,保险单,代理,1 1.*,Owns,1.* 1.*,Handles,Contains,0.*,0.*,保险,人寿险,医疗保险,车险,对象入门 -,类图和对象图,类图,展示类,Uses,0.1 1.*,计算机,名字:,String,内存:,Integer,作者,名字:,String,年龄:,Integer,小影:作者,名字 =“王小兰,”,年龄 = 32,王小兰的家用,PC:,计算机,名字 = “联想1+1,”,内存 = 1,G,王小兰的工作,PC:,计算机,名字 = “,Compaq P4”,内存 = 2,G,对象图,展示类的实例,类和对象的表示:,类图和对象图,(,续,),类 名,(,Class Name),类 名,属 性,(,Attributes),类 名,属 性,(,Attributes),操作,(,Operations),类的表示,对象名,(,Object Name),对象名,属性,值,(,AValues,),对象名,属性,值,(,AValues,),方法,(,Methods),对象的表示,20071114,对象入门 -,属性,的,语法,可见性 名称:类型 = 缺省值 约束特性,可见性:表示该属性对类外的元素是否可见。常用的有公有“+” 、受保护“#”和私有“-”三种。,名称:属性的名称, 是一个字符串。,类型:,定义属性的种类(基本数据类型或用户自定义的类型),缺省值:属性的初始值。,约束特性:描述对属性的约束。,对象入门 -,补充说明,客户属性的名称可以定义为一个单独的类:定义名字的属性及其相关的操作;然后在客户类和该属性名称类之间建立关联。,对于任何一个对象,其每个属性都具有一个确定的值。而且,一般来讲,属性总是单值的。,目前只须将属性看成是一个小而简单的类,诸如字符串、日期、,资金对象以及非对象的值(例如整型和实型)。,对象入门 -,派生属性,派生关联和派生属性是指那些可以根据类图中其他的关联和属性计算得到的关联和属性。,在说明层,派生表示值与值之间的约束关系。,图中为属性,duration,加注了派生标记,(,“,/,”,),表示对这个属性的一种约束。,时间段,start:Date,end:Date,/,duration:Date,时间段表,对象入门 -,操作的语法,可见性 名称(参数表):返回类型表达式约束特性,可见性:表示该属性对类外的元素是否可见。常用的有公有“+” 、受保护“#”和私有“-”三种。,名称:操作的名称,是一个字符串。,参数表:其语法与属性的参数相同,参数个数是任意的。,返回类型表达式,(可选项):,依赖于语言的描述。,约束特性:用以描述对此操作的约束。,对象入门 -,补充说明,两类操作:,不改变类(对象)的可见状态的操作;例如,查询操作仅从类中取值,但不改变其可见状态。改变类(对象)的可见状态的操作称为修改操作。,查询操作可以按任意的顺序执行,但修改操作的顺序是重要的,如果不按照预定的顺序执行修改操作,有可能得到不同的结果。为了保证这两类操作相互独立,应避免从修改操作中返回值。,对象入门 -,操作(,Operations),与方法(,methods),操作(,Operations):,界面,可见性 名称(参数表):返回类型表达式约束特性,例:,+,Age(Date,Today):Integer,方法(,methods):,操作的一个具体的实现,class Person ,String Name;,Date Birthday;,Integer,Age(Date,Today) ,return(Year(Today,) -,Year(this.Birthday,); ,对象入门 -,可见性,+,(,Public,),:,公有成员在程序的任何位置都是可见的,系统中的任何对象都可以使用它。,-,(,Private,),:,私有成员仅可以由定义它的类使用。,#,(,Protected,),:,受保护的成员仅可以由定义它的类和该类的子类中的对象使用。,对“,Public”、Private,”,和“,Protected”,等三个可见性标识符的含义,各种语言都有它自己的规定。,UML,的定义是:,对象入门 -,角色的多,元,性,角色可以具有多元性,(,一个角色可以有多个对象来扮演,),。例如,每一个客户对象可以有零个或多个订单对象。,多元性的表示。1 表示 1.1 ;*代表零到无穷;0.1是选择符,表示没有或仅有1个;一个数;一个范围;数字和范围不连续的组合。,*,B,A,表示,A,和零个、一个或多个,B,关联,0.1,B,A,表示,A,和零个或一个,B,关联,1.,*,B,A,表示,A,和一个或多个,B,关联,1,B,A,表示,A,和一个,B,关联,对象入门 -,泛化的定义,泛化关系定义两个同类(可泛化的)元素之间存在的一般与特殊关系,即一般元素说明了所有同类的特殊元素所具有的共同特性,特殊元素说明的实例带有的该一般元素说明的所有共同特性,并还具有自己的独有特性。,一般元素称作父,特殊元素称作子。,泛化是一种可传递的反对称关系。,可泛化元素:类、用例、其它类元、关联、状态、时间、协作,对象入门 -,类元(,Classifier,),描述结构或行为特性的模型元素,模型中一些概念的总称,这些概念具有身份标识、状态、行为和关系,类元:,类、接口、数据类型,行为概念、环境事物、执行接口的具体化:,用例、参与者、构件、节点、子系统、信号,对象入门 -,泛化(,Generalization),泛化(,Generalization):,抽象化,特化(,Specialization):,实例化,继承(,Inheritance):,泛化关系的一种实现机制,并非所有的泛化关系都适合用继承关系实现,对象入门 -,继承与泛化,继承是实现泛化的一种机制。在这种机制中,超类的任何一个子类都须具有其超类的所有行为:不仅要求其操作界面在文法上一致,而且要求其行为在语义上一致。,当子类中的一个操作重载其超类中相应的操作时,必须确保它提供与超类中的操作相同的服务,(,内容可以更多或更具体,),。,如没有证明子类的行为是否与父类相同,就试图用继承来实现新类中的行为,当两者不一致时,会导致难以预测的错误。,对象入门 -,约束规则的语法,在画类图的过程中,关联、属性和操作等基本要素都要为模型加注约束条件,约束规则的语法:将约束条件放在括号, ,中,用自然语言或其他常见的设计语言来描述,其描述要简洁准确,在理想的情况下,在所使用的程序计语言中,规则应该作为断言来实现,并在调试代码时调用它,对象入门 -,约束规则实例,if,定货单、客户、信用等级=“低”,then,定货单、预付款 必须是“真”,1,*,项,订单项,数量:,Integer,价格:,Money,确认:,Boolean,订单,收到日期,预付款,数量,价格,发货(),结束(),对象入门 -,聚集和组成的基本概念,聚集描述类的对象之间的关系是整体与部分“是,.,的一部分”或“包含,.”,的关系。,组成描述类的对象之间的关系是整体拥有各部分,(,一个部分对象仅属于一个整体,),且部分与整体共存亡,:“,由,组成”。,关联是指任意两个对象,(,或者多个对象甚至一个对象的两种角色,),之间的某种联系,聚集和组成都是一种关联。,对象入门 -,聚集和组成的符号,对象入门 -,聚集,多边形,点,ordered,1,3.,*,图形属性块,颜色,结构,1,1,组成,包,:,1,图形属性块,多边形,点,1,3.,*,ordered,组成的另一种表示,分类和泛化,泛化:,描述基类和子类之间的关系;,基类和子类之间的属性是可传递的;,通过泛化可以合并分类。,分类:,描述两个子类之间的关系;,子类之间的属性是非传递的;,不能通过分类合并泛化。,对象入门 -,多重继承,一个类可能有多个基类,实例:,对象入门 -,车,船,两栖车,对象入门 -,多值分类,在单值分类中,一个对象仅属于一个类型,多值分类:一个对象具有一组类型(多个类型的向量),性别,complete,女 人,男 人,角色,识别名称,泛化线,人,理疗师,护 士,医 生,外科医生,家庭医生,健康人,病 人,多值分类,(续),识别名称:多值分类中几个子类可以共享同一个识别名称,此时这些子类是互斥的。识别名称用,complete,标记时,表示这些子类是全集。,子类的组合:多值分类可用一条标有识别名称的泛化线将子类进行任意可接受的组合。,合法组合有:,(,女人,病人,护士,),;,(,女人,病人,),;,(,女人,医生,外科医生,),。非法组合有:,(,病人,医生,),和,(,男人,医生,护士,),;等等。,对象入门 -,对象入门 -,多值分类的实现:授权机制,授权机制:组合类型,人,理疗师,护士,医生,职业,健康,病,身体状况,性别,女,男,动态分类,动态分类允许动态改变对象的类型。这种改变在其同类的子类型结构中进行。,静态分类不允许改变对象的类型。,静态分类对类型和状态做了明确的区分,而动态分类则合并了这两个概念。,此图用于说明一个人的职业。因为人的职业可以改 变,因而需要用到动态分类。,工作,dynamic,推销员,工程师,管理者,人,性别,complete,女人,男人,对象入门 -,接口和抽象类,接口是一个不带实现的类,它只规定类的外部特性,包括公共属性、操作及其语义,因此只有操作声明而没有方法体和物理存储区。,抽象类和接口很相似,也只定义接口而推迟定义其实现部分,然而抽象类允许增加一些方法的实现。,UML,采用斜体表示抽象元素的名称;如果不用斜体字,也可使用,abstract,约束来表示。,对象入门 -,接口和抽象类,(续),依赖,文本,编辑器,toFront,(),toBack,(),abstract,窗口,Mac,窗口,toFront,(),toBack,(),Windows,窗口,toFront,(),toBack,(),抽象类允许增加一些方法的实现,但接口必须推迟定义所有的方法。,对象入门 -,Java,示例(,Order:LineItem,的实现方案),Interface,Collection,equals,add,Order,Line Items*,Interface,List,get,Dependency,(requires interface),Interface,Abstract List,equals,get,add,Implementation,(provides interface),Abstract,method,Abstract,class,ArrayList,get,add,overriding,注:,Martin Fowler, UML Distilled (3rd Edition),对象入门 -,Interface: Ball-and-socket notation,Order,Line,Iterm,*,ArrayList,List,Collection,对象入门 -,限定关联,限定关联是一对多或多对多关联的另一种表示,它通过添加限定符来标识在这个关联的一方出现的多个对象中的每一个对象。,例如,紧贴关联目录类一端的小矩形是一个限定符,它限定目录对象使用文件名来标识属于它的每一个文件。,文件名,目录,文件,*,限定关联,对象入门 -,关联类,关联类不仅有名称、有相关对象的角色以及参与这些角色的对象数量,(多重性),而且还有属性(如工作时间)、,操作以及其他一些特性。,关联类,雇 佣,Period:dateRange,公司,*,雇主,0.1,人,使用关联类时,在任何两个相关的对象之间只能存在关联类的一个实例。,对象入门 -,参数化类,参数化类的表达;,模板的应用;,注意事项。,对象入门 -,参数化类的表达,T,Insert,(T),Remove,(T),模板参数,模板类,Set,一个模板可有多个占位符,相当于类的参数。利用模板可以声明任何具有特定类型的元素的集合类。,参数化类也叫模板,这一概念特别适用于强类型语言中的集合或群的概念,其表达如图示。图中,T,表示类型参数的占位符。,对象入门 -,模板的应用,模板的应用有两种表示方法,如图所示。其中,bind,是一种基于细化关系的构造型,表示,EmployeeSet,应与,Set,的接口一致,即,EmployeeSet,是,Set,的一个子类型。,Set ,模板类,细化,参数约束,边界元素,EmployeeSet,模板参数,T,Insert,(T),Remove,(T),Set,(,a),(b),对象入门 -,构造型,构造型的定义;,构造型的表示;,定义构造型的步骤。,对象入门 -,构造型的定义,构造型扩展机制是在一个已定义的模型元素的基础上构造一种新的模型元素的机制,适用于所有类型的模型元素。,采用构造型扩展机制构造的模型元素叫作构造型的模型元素,(构造型元素或构造型);,那个被扩展的元素称作它的基元素。构造型可以看作是元模型类型的子类型。,一个构造型元素与它的基元素并无不同,只是添加了某种新的语义,可以用在它的基元素能够使用的各种场合。,对象入门 -,构造型(,Stereotype),的表示,构造型用带有一对尖括号的词组来表示,如执行者、使用和扩展等。为增加模型的直观效果,也可采用不同的图符。,实例:构造型执行者的三种表示符号。,执行者,营销人员,营销人员,营销人员,对象入门 -,构造型举例,泛化关系:,uses,,extend,分层概念:概念层,说明层,实现层,常用构造型:,dynamic,,etc,.,对象入门 -,定义构造型的步骤,在定义构造型元素时,需要做两件工作:,确定图符:在基元素模型符号的基础上,附加 构造型名称或者指定一个图符。,定义语义:可以扩展它的基元素的语义,但必须与基元素的语义一致,且不能扩展基元素的文法结构;采用形式化方法、自然语言或其他半形式化方法描述。,实例:使用和扩展这两个关系都是泛化关系的构造型。,对象入门 -,对象入门 -,2,.3,行为图:状态图,活动图,行为图包括状态图和活动图,描述系统的动态模型和组成对象间的交互关系。,状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件。,活动图描述为满足用例要求所要进行的活动以及活动间的约束关系。使用活动图可以很方便地表示并行活动。,状态图,状态语法和转移语法;,状态的转移条件;,转移条件的互斥性;,状态图的基状态表示法;,并发状态图。,对象入门 -,对象入门 -,一部电梯的状态图,上升(楼层),在第一层,上升(楼层),向第一层下降,下降状态,空闲状态,上升状态,到达,(楼层),到达,(楼层),下降(楼层),超时,对象入门 -,基本文法,B,T1(int,r)r, 0 /,f(r,),event name,guard,action list,state,A,entry /,g(x,),h(y,),exit /,m(a,),n(b,),do /,act(a,y,z,),defer / e1, e2,e3 /,p(x,y,),q(z,),event parameters,entry actions,exit actions,activities,deferred events,internal transition,state name,对象入门 -,组合状态,对象入门 -,对象(或系统)并发行为的建模,状态图:对象的并发状态,拒绝 状态,已发货状态,取消 状态,终点,已确认状态,付款确认 状态,等待 状态,发货 状态,检查 状态,活动图,来源,:,活动图主要来源于,Jim Odell,的事件图、,SDL,状态建模技术和,Petri,网技术,活动图的核心符号是活动,通过连接将活动组成活动图,对象入门 -,对象入门 -,一台打印机服务器的活动图,创建附加文件,显示磁盘已满,的信息,显示正在打印,的信息,磁盘已满,尚有磁盘空间,打印机.,打印(文件),删除显示信息的对话框,对象入门 -,没有可口可乐,判断条件,判定活动,找到可,口可乐,活动,找到咖啡,没有咖啡,同步条件,找饮料,将咖啡放到 过滤器中,取一听,可口可乐,加水到,容器中,取出,咖啡杯,人,熄灭咖啡炉,点燃,咖啡炉,把过滤器放到咖啡炉上,冲调咖啡,终点,喝饮料,倒咖啡,并发活动,对象入门 -,泳道技术,图10.5 泳道技术,收到订单,选出未付的订单项,按订单 分配货物,对于被选中的,每一订单项,*,所有未付的,订单项入库,将剩余货物入库,认可,失败,取消,订单,付款认可,财务管理,订单处理,仓库管理,收到订单,对每一订单项,*,检查,订单项,有库存,分配,订单,订购货物,需要订购,发送订单,将库存货物分配给每个订单项并认可付款,工作流程与用例分析:避免混淆!,贸易经理,营销人员,销售人员,记帐系统,更新帐目,使用,扩展,设置边界,使用,风险分析,交易估价,进行交易,超越边界,-,扩展点:大交易量,评 价,用例之间没有“流程”关系!,对象入门 -,活动的,元模型,活动的元模型基于,SADT,技术,它包含五个元 素: 输入,输出,支持,控制和活动。,活 动,控 制,输 入,输 出,支 持,前置条件,后置条件,对象入门 -,活动图的基本要素,活动和组合活动;,特殊活动;,对 象;,起点和终点;,控制流,对象(数据)流,信号流;,泳道和时标;,注释体和注释连接。,对象入门 -,活动和组合活动,活动:活动图所描述的过程中的某一原子活动,(即不可再被细分)。,组合活动:活动图所描述的过程中的某一活动可再分为成多个活动,(一般用另一张活动图加以描述)的,活动,。,组合活动的定义是递归的。,对象入门 -,特殊活动:条件判断,同步条,信号接收和信号发送,条件判断:表示活动流程中的判断。通常有多个信息流从它引出,表示决策后的不同活动分支。,同步条:表示活动之间的同步。一般有一个或多个信息流向它引入,有一个或多个信息流从它引出,表示引入的信息流同时到达,引出的信息流被同时触发。,信号接收:若与信号流相连,表示它是某个活动转移的必要条件,等价于信息流上的事件标识 。,信号发送:若与信号流相连,表示在某个活动转移发生时向某个对象发送一个信号,等价于信息流上的发送子句。,对象入门 -,对象入门 -,2,.4,交互图:顺序图,合作图,交互图包括顺序图和合作图,,它描述对象间的交互(动态合作)关系,。,顺序图:用以显示对象之间在时间顺序方面的动态合作关系。因此,如果强调时间和顺序,应当使用顺序图。,合作图:着重描述对象间的通信方面的动态合作关系。因此,如果强调通信关系,则可以选择合作图。,对象入门 -,一台打印机服务器的顺序图,: 计算机,: 打印服务程序,: 打印机,: 打印队列,打印机空闲,打印(文件),打印机忙保存(文件),打印(文件),订货系统的顺序图,needsToReorder,=“true” new,创建,交付货物,check=“true” new,返回,进货货物,check=true remove(),needsToReorder,(),回授,订单提交窗口,订单项,仓库货物,对象,check(),条件,订单,prepare(),消息,迭代,*,prepare(),对象的生命线,对象入门 -,并发过程、激活和审查失败,交易协调人,be,I,nvalid,new,new,交易,new,第二个交易审查员,fail,new,第一个交易审查员,终止检测,kill,对象入门 -,顺序图的基本要素,顺序图描述对象之间的动态交互关系,着重体现对象间消息传递的时间顺序。,顺序图的基本要素:,对象:对象、对象的生命线、激活的对象和对象的删除。,消息:简单消息、同步消息、异步消息、返回消息。,条件、注释体和注释连接。,对象入门 -,对象入门 -,一台打印机服务器的合作图,打印机忙,1.2保存(文件),: 计算机,: 打印队列,1:打印,(文件),: 打印服务程序,: 打印机,打印机空闲,1.1打印,(文件),对象入门 -,2,.5,实现图:构件图,配置图,实现图包括构件图和配置图。,构件图:描述部件的物理结构以及各部件之间的依赖关系。,配置图:定义系统中(特别是在分布式及网络环境中)软硬件的物理构架,。,对象入门 -,反映程序代码构件之间的依赖关系的构件图,main.obj,:,主类,comhnd.obj,:,命令处理器,Whnd.obj,:,窗口处理器,client.exe,:,客户程序,graphic.dll,:,图形库,comhnd.cpp,:,命令处理器,Whnd.cpp,:,窗口处理器,main.cpp,:,主类,不同类型的构件,对象入门 -,对象入门 -,描述系统物理构架的配置图,DecNet,协议,客户,A:,个人电脑,PC,客户,B:,个人电脑,PC,TCP/IP,协议,TCP/IP,协议,服务器:02,数据库,服务器:,VAX,分布式应用,对象入门 -,C/S,体系结构,关系数据库,C,客户端,WWW Browser,Web,服务器,HTML,CGI,ASP,Java,商业对象服务,商业对象引擎,应用,商业对象服务,A,客户端,商业对象引擎,廋客户端,胖服务器,B,客户端,Application,商业对象服务,商业对象引擎,商业逻辑服务器,DCOM,ADO/R,CORBA,Beans,COM,MTS,Beans,ETS,对象入门 -,复杂的,Internet,系统,客户端,服务器,应用,服务器,执行,系统,金融,系统,库存,系统,关系数据,库系统,Dynamic HTML, JavaScript, Java,plug-ins, source code enhancements,Java, C, C+, JavaScript, CGI,Java, C, C+, JavaBeans, CORBA, DCOM,Native languages,对象入门 -,部署,图的基本要素,结点:部署图中的结点代表物理设备及其在上运行的软件系统。结点用一个立方体表示,结点名放在左上角。图中有“一台多窗口,PC”、“,肝病部门服务器”和“糖尿病部门服务器”等三个结点。,连接:,结点之间的连线表示系统之间的通信路径(在,UML,中称为连接),,通信类型放在连接旁边的“”之间。,构件:而部署图中,每个构件代表一个负责某种专门处理,(即具有某种专门功能),的包。因此,部署图显示了各个包在系统中运行的分布情况。,接口:一个构件可以有多个接口,以表示出哪些构件与哪一个接口进行通信。,对象:部署图中的对象与对象图中的对象表示法相同。,对象入门 -,对象入门 -,4.,UML,的基本视图,UML,的五类基本视图;,UML,的用例视图;,UML,的逻辑视图;,UML,的构件视图;,UML,的并发视图;,UML,的配置视图。,对象入门 -,3.,UML,的五类基本视图,构件视图,用例视图,配置视图,逻辑视图,并发视图,对象入门 -,UML,的五类基本视图,(续),用例视图,:,从系统外部执行者的角度理解、展示系统功能。,逻辑视图,:,从系统的静态结构和动态行为的角度展示系统内部功能性设计。,构件示图,:,展示代码构件的组织结构。,并发视图,:,展示系统的并发性,刻画并发系统中的通讯和同步问题。,配置视图,:,展示系统的物理的体系结构,其中用到的计算机和各种设备称作节点,。,对象入门 -,UML,的用例视图,从系统外部执行者的角度理解系统的功能:它描述执行者与系统的交互,其执行者可以是一个用户,也可以是另一个系统。,用例图面向客户、建模人员、开发人员和测试人员,是系统模型图的核心。,用例视图:用例图和活动图描述。,一张用例图是系统的一种用途的描述;一组用例图描述了整个系统所期望的用途。,对象入门 -,UML,的逻辑视图,描述系统如何提供要求的功能:,静态结构,:,类,(界面,内部结构);,对象;关系。,用类图和对象图描述。,动态行为:,对象之间相互发送消息而引发的动态合作关系。,用状态图、顺序图、合作图和活动图描述。,各种特性:永久性,,,并发性。,主要是面向设计人员和开发人员。,对象入门 -,UML,的构件视图,描述实现的各个模块及其相互之间的关系:,模块的内部结构;,模块间的依赖关系;,关于各构件的一些附加信息:,资源分配,(构件的责任);,其它管理信息,如开发工作的进展报告等。,主要面向开发人员。,构件视图:由构件图组成,其中构件表示不同类型的代码模块。,对象入门 -,UML,的并发视图,系统中进程和处理器的划分与任务的分配。,属于非功能性特性:,着眼于资源的有效利用;,并行执行,并发地执行多线程控制,处理线程之间的通信和同步;,处理来自外部环境的同步事件。,面向开发人员和系统集成人员。,描述并发视图的主要模型图:,动态图:状态图,合作图,活动图。,实现图:构件图,配置图。,对象入门 -,UML,的配置视图,展示系统的物理配置,如计算机和其它设备(统称结点)及其相互之间的连接关系,包括在物理的体系结构中如何配置构件的映像关系。,面向开发、集成和测试人员。,配置视图,用配置图描述。,对象入门 -,4. 标准建模过程,标准过程的生命周期阶段视图,标准过程的迭代视图,核心工作流和模型,迭代和工作流,标准过程的特征,对象入门 -,标准过程的生命周期阶段视图,时间,初始阶段,细化阶段,构造阶段,移交阶段,初始阶段,细化阶段,构造阶段,移交阶段,初始阶段:项目范围(,Scope)、,效益,开发事务实例(,Business Case),细化阶段:建立项目计划,描述系统特征,捕获详细需求,建立基线体,系结构,构造阶段:在基线体系结构的基础上建立系统,移交阶段:确认测试,用户测试,向用户移交最终的软件,对象入门 -,标准过程的迭代视图,体系结构,迭代,.,开发迭代,开发迭代,.,移交迭代,.,内部提交,内部提交,内部提交,内部提交,内部提交,内部提交,内部提交,外部提交,初始迭代,.,初始阶段,细化阶段,构造阶段,移交阶段,1:每个阶段都有若干个迭代过程组成,2:每次迭代都有产品提交(提交给开发组,所以是“内部提交”),迭代:按照确定的计划执行的一组有顺序的活动。当满足确定的评价准则时,迭代结束。每次迭代都有一个可执行的提交,对象入门 -,核心工作流和模型,需求获取,设计,实现,测试,分析,用例模型,设计模型,配置模型,实现模型.,分析模型,测试模型,各个模型都采用,UML,的模型图来描述,每个核心工作流都会产生一个或多个模型,对象入门 -,迭代和工作流,需求获取,设计,实现,测试,分析,核心工作流,过程阶段,初始阶段,细化阶段,构造阶段,移交阶段,迭代,初始迭代,迭代,#1,迭代,#2,迭代,#,n,迭代,#,n+1,迭代,#,n+2,迭代,#,m,迭代,#,m+1,细化阶段的一次迭代,工作量,三维结构,对象入门 -,迭代过程,关键活动及其进度计划,周,任务,1 2 3 4,5 6 7 8,9 10 11 12,需求分析,任务1,任务2,概要设计,详细设计,编码,测试,进度表(,Gantt Chart,),对象入门 -,SRS,开发过程?,参考,a.,软件课程实践文档,3.2 任务分工和进度计划,附件1 项目组分工及实际完成情况说明,对象入门 -,标准过程的特征,用例驱动的过程,以体系结构为中心的过程,增量式的迭代过程,对象入门 -,5,UML,的学习方法和应用领域,使用,UML,的目的,学习,UML,的方法,UML,的应用领域,对象入门 -,使用,UML,的目的,软件开发的过程犹如雕琢一件艺术品,由无形到有形,由粗到细。但软件开发的最终形式必须生成程序代码。因此当考虑使用,UML,时,一定要想清楚,使用,UML,的目的以及对编写代码有何帮助。,学习面向对象技术;,和领域专家交流;,帮助理解全局。,对象入门 -,学习面向对象技术,UML,的各种模型图,其中用例图描述系统的功能及其外部的使用者,确定谁使用系统以及做什么。,类图描述系统的静态构架,即构成系统的各种对象类及其相互关系。对象图是类图的实例化,描述系统在某个时刻可能包含的对象和相互关系。,行为图和交互图描述系统的动态行为。,构件图和配置图描述系统实现体的构成及其在硬件环境中的配置情况。,对象入门 -,和领域专家交流,有效的方法是使用用例。一个用例描述了系统的某一侧面,所有用例构成了系统的整个外观。用例也有助于制订项目规划和对问题进行深入理解。,类图很有用,但应注重在概念层上使用。应将每个类对应用户心中一个概念,并用用户的语言来命名和定义。,对于侧重于工作流过程的应用系统,活动图非常有用。活动图也有助于对实际业务流程中的并行特性进行自然描述。,对象入门 -,帮助理解全局,对于大型项目,常常只见树木不见森林,采用,UML,有助于理解全局。譬如,类图可了解系统中有哪些类型的事物,哪些需要作进一步的考察。,对大型软件,无论概念层、说明层或实现
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!