UML面向对象分析与建模
 

2010-07-07 作者:刘朝辉 来源:刘朝辉的Blog

 

【1】面向对象技术概述

一、软件开发方法

常见的软件开发方法有面向过程的开发方法,面向数据结构的开发方法和面向对象的开发方法。其中面向过程的开发方法也称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法强调过程抽象和功能模块化。它一般利用图形表达用户需求,使用的手段有数据流图、数据字典、结构化语言、判定表及判定树等。面向数据结构的开发方法适合于求解算法依赖于问题描述的数据结构之类的情况。这种方法最适合在完成了软件结构设计之后,用它来设计每个模块的处理过程。它根据问题的数据结构定义一组映射,把问题的数据结构转换为问题求解的程序结构。面向对象开发方法思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块话的,可重用的,维护性好的软件,同时限定软件的复杂性和降低开发维护费用。它是通过面向对象的分析(OOA)、面向对象的设计(OOD)和面向对象的程序设计(OOP)等过程,将现实世界的问题空间平滑地过渡到软件空间的一种软件开发过程。目前,典型的面向对象的开发方法是UML和统一开发过程(RUP)。

二、软件生命周期

软件生命周期是指软件从立项、功能确定、设计,到开发成功投入使用,并在使用过程中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。

阶段

研究问题

给出的标准和文档

问题定义

问题是什么

目标和规模报告书

可行性研究

有可行的方法吗

高层逻辑模型、数据流图、成本效益分析

需求分析

系统做什么

逻辑模型、数据流图、数据字典、算法描述

总体设计

如何解决问题

系统流程图、系统结构层次图

详细设计

怎样具体实现

编码规格说明、HIPO图或PDL

编码和单元测试

给出正确的程序模块

源程序清单、单元测试方案和结果

综合测试

给出符合要求的软件

综合测试方案和结果、一直的软件配置

维护

持久地满足用户需要

完整地维护记录、文档、软件新版本

三、软件开发模型

软件开发模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。分为:瀑布模型、原型模型、螺旋模型、增量模型和喷泉(迭代)模型。

四、面向对象方法的特点

面向对象的方法学可以概括为下列方程:OO=Object+Classes+Inheritance+Communication with Messages 也就是说面向对象就是既使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。

五、面向对象分析(OOA)

面向对象分析的关键,是识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。分析就是抽取和整理用户需求并建立问题域精确模型的过程。基本步骤有 问题域分析、发现和定义对象和类、识别对象的外部联系、建立系统的静态结构模型和建立系统的动态行为模型。

六、面向对象设计(OOD)

面向对象设计是把分析阶段的需求转变成符合成本和质量要求的、抽象的系统实现方案过程。细分为系统设计和对象设计。设计准则包括 模块化、抽象、信息隐藏、弱耦合、强内聚和可重用。设计过程包括 设计对象和类、设计系统结构、设计问题域子系统、设计人-机交互子系统、设计任务管理子系统、设计数据管理子系统和设计优化。

七、面向对象方法和工具

面向对象方法主要有 Booch、Jacobson、Coad-Yourdon、James Rumbauth开发方法。已发展成当前最流行的系统分析方法和软件开发技术,并且已经逐步统一、融合形成UML语言。

参考文献:

[1] 唐学忠等著. UML面向对象分析与建模. 电子工业出版社. 2008

[2] 蔡敏等著. UML基础与ROSE建模教程. 人民邮电出版社. 2006

[3] Carlo Ghezzi等著. 施平安译. 软件工程基础(第2版) 清华大学出版社. 2003

[4] 参考网站:

http://www.omg.org/UML

http://www.rational.com/UML

http://www.software.ibm.com/ad/ocl

【2】UML语言基础

一、UML的主要内容

UML主要文件包括UML概要、UML语义、UML表示法指南和对象约束语言规约。

二、UML的主要特点

UML主要特点包括统一标准、面向对象、可视化及表示能力强大、独立于过程和容易使用掌握。UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分。UML贯穿软件系统开发的需求分析、系统分析、系统设计、系统实现和测试五个阶段。

三、UML建模中9种图的特点

1. 用例图

用例图描述系统外部的活动者(角色)与系统提供的用例之间的某种联系。它着重从系统外部活动者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁。

2. 静态图

静态结构包括类图、对象图、组件图和配置图。

类图主要用来描述系统中各种类之间的静态结构。类与类之间的各种联系以及类的属性和行为都可以在类图中描述。

对象图是类图的一种变形,是对类图的实例化,即系统在某一时期或者某个特定时刻可能存在的具体对象实例以及它们之间的具体关系。

组件图描述程序代码的组织结构,说明各组件间的依赖关系,组件可以是源代码组件、二进制目标码组件、可执行文件组件或文档型组件。组件一般与类图相关,一个组件图总能映射到一个或多个对象类、接口或协同。

配置图描述系统中物理节点及它们之间的联系,说明系统中硬件和软件的物理配置情况和体系结构。

3. 动态行为图

动态行为图包括交互图(顺序图与协同图)、状态图和活动图。

顺序图描述几个对象之间的动态协作关系,重点反映了在一次特定的交互过程中对象之间传送消息的时间顺序,即在系统执行过程中某个特定时刻所发生的事情。

协同图与顺序图作用相似,但侧重描述各个对象间存在的消息收发关系,而不突出这些消息发送的时间顺序。

状态图是对类的一种补充描述,展示类对象所具有的所有可能的状态以及某些事件发生时其状态的迁移情况。

活动图描述系统中各种活动的执行顺序,重点在对象间的控制流,常用来描述一个用例的处理流程或某种交互流程。

UML图分类

类型

包含

静态图

类图、对象图、包图

行为图

状态图、活动图

用例图

用例图

交互图

顺序图、协作图

实现图

组件图、部署图

参考文献:

[1] 唐学忠等著. UML面向对象分析与建模. 电子工业出版社. 2008

[2] 蔡敏等著. UML基础与ROSE建模教程. 人民邮电出版社. 2006

[3] Carlo Ghezzi等著. 施平安译. 软件工程基础(第2版) 清华大学出版社. 2003

[4] 参考网站:

http://www.omg.org/UML

http://www.rational.com/UML

http://www.software.ibm.com/ad/ocl

【3】用例图

一、用例图的描述

用例(Use Case)是指系统的外部事物(活动者、设备或外部系统)与系统交互,它表达了系统的功能,即系统所提供的服务。

用例图是一种描述用例的可视化工具,用简单的图形元素表示出系统的活动者、用例及它们之间的关系,准确地表达了活动者与系统的交互情况和系统所能提供的服务。用例图是从用户角度而不是从开发者角度来描述对软件产品的需求,分析产品所需的功能和动态行为。

二、活动者

确定活动者。活动者可以通过泛化关系定义。

1. 系统的主要客户是谁

2. 谁从该系统获取信息

3. 谁向系统提供信息

4. 谁来安装、操作该系统

5. 谁来关闭该系统

6. 在预定的时刻,是否有时间自动发生

7. 谁使用或删除系统中的信息

8. 系统从何处获得信息

三、用例描述

用例的描述其实是一个关于角色和系统如何交互的规格说明,该规格清晰明了,没有二义性。一般情况下,用例描述包括 用例的目标、用例是怎样被启动的、用例和活动者间的消息流、用例的多种执行方案、用例怎样才算完成并把值传给了活动者。用例描述可以使用用例模板来实现。

用例模板

用例名称 (用例名)

用例目标 (用例在系统中的目标)

级别 (概要任务)

活动者 (此用例的活动者)

状态

前提条件 用例执行前系统应具有的状态

置后条件 用例成功执行后系统应具备的状态

主路径 用例主路径的名称

可选路径 用例的可选路径

例外路径 用例的例外路径

四、用例间的关系

用例除了与其活动者发生关联外,它们之间也存在一定的联系,包括泛化关系、使用关系、包含关系、扩展关系等。

五、用例建模

建立用例图一般可按以下步骤进行:

1. 确定系统的边界和范围,明确系统外部的活动者和外部系统。

2. 确定每个活动者所期望的系统行为。

3. 把这些系统行为作为系统的用例。

4. 把公共的系统行为分解为新的用例,供其它用例引用。把变更的行为分解为扩展用例。

5. 编制每个用例的剧本。

6. 绘制用例图。

7. 区分主业务流和异常情况的事件流。可以把表达异常情况的事件流的用例画成一个单独的子用例图。

8. 精化用例图。解决用例图的重复与冲突问题,简化用例中的对话序列。高层次的用例可以分解为若干下属子系统中的用例。

六、例子

在图书管理系统中,工作人员可以维护(增加、删除、更新)读者信息,可以维护书籍信息,读者可以通过图书管理员请求借书、还书和续借,读者可以登录并查询书籍和借阅信息。给出用例图。

参考文献:

[1] 唐学忠等著. UML面向对象分析与建模. 电子工业出版社. 2008

[2] 蔡敏等著. UML基础与ROSE建模教程. 人民邮电出版社. 2006

[3] Carlo Ghezzi等著. 施平安译. 软件工程基础(第2版) 清华大学出版社. 2003

[4] 参考网站:

http://www.omg.org/UML

http://www.rational.com/UML

http://www.software.ibm.com/ad/ocl

来自:http://www.uml.org.cn/oobject/201007071.asp

UML面向对象分析与建模相关推荐

  1. UML 面向对象分析与设计

    面向对象方法以其超越传统方法的技术先进性越来越得到更多的重视,但技术的先进性不能完全代表一种新生事物的最后成功,还要看它是否能得到有效的推广.统一建模语言(UML)的产生为这种推广规定了一致的表示,诸 ...

  2. UML与软件建模之面向对象的软件建模概述

    好久没有写写新东西了,最近闲下来了,看了一本名叫<URL与软件建模>这边书,感觉里面讲的不错,现在将我学习到的东西和大家做一个简单的分享. 横竖都是写,建模和不建模有什么区别呢?如果你是一 ...

  3. UML和模式应用学习笔记-1(面向对象分析和设计)

    大学时曾经开过<UML和模式应用>的课程,当时没有引起足够的重视,只为了应付考试并没有真正掌握书中的内容:现在工作中经常要用到UML及设计模式,决定每周花点时间重新对书中的内容进行学习:本 ...

  4. 计算机网络工程实验分析与体会_《软件工程》面向对象分析实验

    面向对象分析实验报告要求 1目的与要求: 1)系统学习和理解面向对象软件工程分析与设计阶段的基本任务.过程以及基本概念.原理.技术和方法: 2)掌握OOA阶段的建模方法和建模工具,如对象模型.动态模型 ...

  5. [软件工程] 面向对象分析

    面向对象分析 面向对象分析 一. 面向对象的基本过程 (一) 概述面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程. (二) 3个子模型与5个层次 二.需求陈述 (一) 书写要点 (二) ...

  6. 实验三 面向对象分析与设计

    文章目录 一.实验目的 二.实验内容 实例1:在线选课系统 实例2:试卷自动生成系统 实例3:人事信息管理系统 三.实验步骤 四.实验内容 1.问题陈述 2.用例图(Use Case View)的建模 ...

  7. 第1章 面向对象分析和设计

    本文为<UML和模式应用(原书第3版)>读书笔记 为对象分配职责   在OO开发中,最重要的就是为对象分配职责.因为分配职责是必须进行的一项工作,并且它对软件构件的健壮性.可维护性和可重用 ...

  8. 软件工程之面向对象分析与设计

    文章链接:https://codemouse.online/archives/2020-05-15124035 面向对象的基本概念 对象:一组属性以及这组属性上专用操作封装体. 消息:对象间通信手段, ...

  9. 面向对象的需求建模复合技术研究[1]

    http://www.csai.cn 作者:王如龙 来源:希赛网 2007年8月24日 发表评论 进入社区 摘 要:在需求工程方法学中,用例技术和原型法都是需求建模的主要工具.作者在比较.分析其用例与 ...

最新文章

  1. 干货 | XGBoost在携程搜索排序中的应用
  2. 用ipad维护Linux服务器
  3. C# 中类对象与JSON字符串互相转换的几种方法
  4. html内容权重计算,HTML CSS 选择器权重计算规则
  5. 未来会有特供iPhone 来针对各国调查法案?
  6. 单片机语音识别源码与资料(ASR M08-B模块arduino与51驱动)
  7. html5图像、图片处理【转】
  8. (Quicker动作)MathType公式快速标红
  9. 绿联串口线linux驱动下载,绿联pl2303转串口驱动下载
  10. Python 操作谷歌浏览器
  11. 公众号开发小技能:解决模板消息(业务通知)的日调用上限问题
  12. 电风扇计算机控制系统,语音识别电风扇控制系统设计.doc
  13. 快速下载 Android framework 源码
  14. VR技术给我们的生活带来哪些影响
  15. 现代服务业行业税收筹划,信息技术公司节税方案
  16. 没日没夜做需求,就能交出满分答卷吗?
  17. F2FS 基础知识二
  18. springboot整合mybatis:Consider defining a bean of type 'com.mk.mapper.UserMapper'
  19. hpuoj 1250: HH的米5 (并查集)
  20. 畅谈元宇宙的十大商业模式

热门文章

  1. 这些论文绘图软件,你一个都不会用
  2. (转)女人,别忘了经营自己!(同事亲身经历)
  3. java jstat m ccs_jstat命令详解
  4. 大华摄像头使用外网接收数据
  5. Kettle: 合并记录
  6. Java异常(漂亮简洁的思维导图)
  7. 开发笔记--项目部署到linux服务器
  8. AE特效的理解从入门到入门
  9. 用人篇-曾国藩家书整理
  10. 借Kinect 扫描 软件 reconstructMe skanect ksan3d