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