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