资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2015/9/23,#,基于,UML,的软件开发过程,1,UML,概述,案例,内容,3,1.,UML,语言概述,1.1,UML,的历史,1.2,UML,的定义,1.3,UML,包含的内容,1.4,UML,的应用领域,4,为什么需要,UML,?,客户,系统分析员,其他人员,开发人员,UML,模型,5,1.1,UML,的历史,面向对象的分析与设计(,OOA&OOD,)方法的发展在,20,世纪,80,年代末至,90,年代中出现了一个高潮,,UML,是这个高潮的产物。,它不仅统一了,Booch,、,Rumbaugh,和,Jacobson,的表示方法,而且对其做了进一步的发展,,并最终统一为大众所接受的标准建模语言。,公认的面向对象建模语言出现于,20,世纪,70,年代中期对象是问题域或实现域中某些事物的一个抽象。,1996,年,6,月和,10,月分别发布了两个新的版本,即,UML 0.9,和,UML 0.91,,并将,UM,重新命名为,UML,(,Unified Modeling Language,)。,UML,的开发者倡议并成立了,UML,成员协会。,6,UML,的诞生,创始人,Grady Booch,Grady,(,IBM fellow,)因其在软件架构、软件工程和软件建模方面的杰出贡献而在国际上享有盛名。自,Rational,于,1981,年创建以来,他就一直担任,IBM Rational,的首席科学家。,Grady,于,2003,年,3,月荣获,IBM,名士(,IBM fellow,)的称号。,Booch,方法的力量在于其丰富的符号体系,包括:,.,类图(类结构静态视图),.,对象图(对象结构静态视图),.,状态转移图(类结构动态视图),.,时态图(对象结构动态视图),.,模块图(模块体系结构),.,进程图(进程体系结构),7,UML,的诞生,创始人,Ivar Jacobson,Ivar Jacobson,博士是,Objectory,方法的发明者,也是瑞典,Objectory AB,公司的创始人。,Jacobson,博士是两本影响深远的畅销书的主要作者:,面向对象的软件工程,一种用例驱动方法,(,1992,年计算机语言生产力奖获得者)和,对象的优势,采用对象技术的业务过程再工程,。,Jacobson,将,use case,模型与其它五种系统模型关联:,.,领域对象模型。,use case,模型根据领域来表示。,.,分析模型。,use case,模型通过分析来构造。,.,设计模型。,use case,模型通过设计来具体化。,.,实现模型。该模型依据具体化的设计来实现,use case,模型。,.,测试模型。用来测试具体化的,use case,模型。,8,UML,的诞生,创始人,James Rumbaugh,James Rumbaugh,博士是享誉全球的软件开发方法学家。,Jim,一直是引导,UML,未来开发的领袖,他提出了许多有关,UML,的概念。他与,Rational,的其他软件领袖一起工作在各个领域,比如,Rational,统一过程和实时开发方法学。自从,2003,年,IBM,收购了,Rational,之后,,Jim,就一直致力于推动,IBM,建模工具的开发。,Rumbaugh,的,OMT,方法将开发过程分为四个阶段:,.,分析,.,系统设计,.,对象设计,.,实现,9,UML发展历史,10,1.2,UML,的定义,UML,适用于各种软件开发方法、软件生命周期的各个阶段,、各种应用领域以及各种开发工具。,2.UML,由以下,5,类图来定义,:,第,1,类:用例图,第,2,类:静态图(包括类图、对象图和包图),第,3,类:行为图(包括状态图和活动图),第,4,类:交互图(包括时序图和协作图),第,5,类:实现图(包括组件图和配置图),11,1.3,UML,包含的内容,作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。,(1)UML,语义,描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致和通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。,(2)UML,表示法,定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。,12,UML,的组成,模型,是一个特定系统的完整描述。,视图,模型,图,UML,中的,5,类图形,Use Case,Diagrams,Use Case,Diagrams,用例图,Scenario,Diagrams,Scenario,Diagrams,协作图,State,Diagrams,State,Diagrams,构件图,Component,Diagrams,Component,Diagrams,部署图,State,Diagrams,State,Diagrams,包图,Scenario,Diagrams,Scenario,Diagrams,状态图,Use Case,Diagrams,Use Case,Diagrams,时序图,State,Diagrams,State,Diagrams,类图,/,对象图,活动图,模型库,静态图,行为图,交互图,实现图,14,小例子,用,UML,图来描述一台洗衣机。,一台洗衣机应该具备的属性:,品牌,比如海尔。,模式,比如全自动,半自动。,序列号,比如,AS19980909,容量,比如,5L,一台洗衣机操作包括:,装入衣物,装入洗衣粉,开电源,关电源,一台洗衣机的功能:浸泡,洗涤,漂洗,脱水,人使用洗衣机来洗衣服。,15,类图,类,(class),:一类或一组具有类似属性和共同行为的事物。,类名,属性名,操作名,类的图示,洗衣机类的图示,品牌,模式,序列号,装入衣物,装入洗衣粉,容量,开机,关机,16,对象图,对象名:类名,匿名对象,某台具体的洗衣机就是洗衣机类的一个对象。,比如:小明家的海尔洗衣机,17,用例图,用例,(use case),:从用户的观点对系统行为的一个描述。,用来从用户的观察角度收集系统需求。,用例图表达系统的外部事物(参与者)与系统的交互,它表达了系统的功能,即系统所提供的服务。,整个软件项目的开发可以采用,Use Case,驱动的方式进行。,这个用例图描述了用户使用洗衣机洗衣服。,18,状态图,在任一给定的时刻,一个对象总是处于某一特定的状态。,状态图主要表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。,起始状态,中间状态,结束状态,开始,结束,浸泡,洗涤,漂洗,脱水,洗衣机的状态图,19,时序图的定义,在一个运行的系统中,对象之间要发生交互,并且这些交互要经历一定的时间。,顺序图表达的正是这种基于时间的动态交互。重点是完成某个行为的对象类和这些对象类之间所传递的消息的时间顺序。,:,活动者,对象,发送的消息,自调用,返回的消息,20,时序图,洗衣机的例子:,定时器,(timer),注水的进水管,(water piper),装衣服的洗涤缸,(drum),21,1,浸泡定时,2,注水,3,储水,4,停止注水,5,洗涤定时,6.,反复旋转洗涤,7.,排脏水,8.,停止洗涤,9.,漂洗定时,10.,注水,11,储水,12.,反复旋转洗涤,14.,停止漂洗,13.,排脏水,15.,脱水定时,16.,顺时针旋转,17.,停止脱水,22,协作图,协作图,通过对象之间的连接和它们相互发送的消息来显示参与交互的对象。,:,活动者,对象类,1:,发送的消息,2:,自调用,3:,返回的消息,23,协作图的图例,1,,,5,,,9,,,15,由定时器完成,2,,,4,,,10,由定时器调用注水管完成,2,,,10,由注水管调用洗衣缸完成,6,,,7,,,8,,,12,,,13,,,14,,,16,,,17,由定时器调用洗衣缸完成,24,交互图的应用,顺序图和协作图都是交互图,它们既是等价的,又是有区别的。,顺序图和协作图都能等价的表现系统运行中对象通过消息发生的交互行为。,顺序图表示了时间的消息序列,便于分析交互的,时序,,但没有表示静态对象关系,顺序图可以有效地帮助人们观察系统的顺序行为。,协作图着重表示一个协作中的,对象之间的联系和消息,。,25,活动图,活动图实质上是一种流程图,只不过表现的是从一个活动到另一个活动的控制流。活动图描述活动的序列,并且支持对带条件的行为和并发行为表达。,开始,初始化,条件判断,并发,1,并发,2,结束,同步,成功,失败,洗涤缸往返旋转,15,分钟,排掉脏水,洗涤缸停止旋转,26,构件图,组件图代表系统的一个物理实现块,代表逻辑模型元素如类、接口的物理打包。,27,部署图,显示基于计算机系统的物理体系结构。,28,UML2.0,中的新图,组成结构图(,composite structure diagram,),交互纵览图(,interaction overview diagram,),计时图(,timing diagram,),29,组成结构图,从类的内部来审视这个类。,30,交互纵览图,31,计时图,32,1.4,UML,的应用领域,UML,的目标是,以面向对象图的方式来描述任何类型的系统,。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。,UML,模型可作为测试阶段的依据,。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的,UML,图作为测试依据:,单元测试,使用,类图和类规格说明,;,集成测试,使用,部件图和协作图,;,系统测试,使用,用例图,来验证系统的行为;,验收测试,由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。,33,2.,选取,一个过程,RUP,迭代,1,迭代,2,迭代,n,CMS,系统,该系统需求非常简单,大致课做如下描述:,这个系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布新闻。任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除等。,34,一个简单的案例,35,与用户进行访谈,并且做好记录,了解用户的业务流程。,在访谈过程中,抽象出系统的“词汇”,画出领域类图,画出业务用例图,用来与用户沟通”系统应该实现什么样的业务”,完成了业务用例图后,我们要为每一个业务用例绘制一幅活动图。活动图描述了这个业务用例中,用户可能会进行的操作序列。活动图有个很重要的使命:从业务用例分析出系统用例。例如,下面是“新闻管理”的活动图:,36,将每个业务用例都绘制出相应的活动图,再将其中的“活动”整合,就得出所有备选系统用例。,找出所有的备选系统用例后,我们要对他们进行,合并和筛选,。合并就是将相同的用例合并成一个,筛选就是将不符合系统用例条件的备选用例去掉。一个系统用例应该是实际使用系统的用户所进行的一个操作。,37,得出系统用例图后,我们应该对每一个系统用例给出用例规约。关于用例规约,没有一个通用的格式,大家可以按照习惯的格式进行编写。对用例规约唯一的要求就是“清晰易懂”。下面给出“登录”这个系统用例的一个规约:,38,在设计阶段,需要绘制实现类图和包图。同时还涉及到组件图,时序图,协作图等。,实现类图和领域类图不一样,它描述的是真正系统的静态结构,是和最后的代码完全一致的。因此,它和平台关系密切,必须准确给出系统中的实体类、控制类、界面类、接口等元素以及其中的关系。,39,有了静态结构,我们还要给出动态结构,这样,才能看清系统间的类是如何交互的,从而有效帮助程序员进行编码工作。,40,时序图在实际中是很多的,几乎
展开阅读全文