博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营UML建模系列总结
阅读量:6979 次
发布时间:2019-06-27

本文共 1564 字,大约阅读时间需要 5 分钟。

软件开发为什么需要UML

(软件越来越复杂),开发人员仍然沿用25年前的方法来开发,这就是问题的根本所在 。--IvarJacobson

掌握软件开发的方法就能不断的复制成功。
你应该使用UML吗?一个字:是!旧的面向对象符号正在快速地消逝。它们还会残留在UML稳固前出版的书上面,但新的书、文章等等将会全部以UML作为符号。如果你正在使用旧的符号,你就应该在1998年间转换到UML。如果你正要开始使用建模符号,你就该直接学习UML。       --Martin Fowler, 1997 
用UML进行软件开发是一个可以积累的软件开发的过程。可以防止知识和信息的流失。

UML 建模的一般过程

  0.业务

  1.需求
  2.分析:结构
  3.分析:行为
  4.设计

 

面向对象模型

面向对象方法支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。

为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名词短语,包括可感知的事物(汽车、压力、传感器);角色(司机、教师、客户);事件(着陆、中断、请求);互相作用(借贷、开会、交叉);人员;场所;组织;设备和地点。通过浏览使用系统的脚本发现重要的对象和其责任,是面向对象分析和设计过程初期重要的技术。

当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对象的行为,这些模型从四个不同的侧面表示了软件的体系结构:静态逻辑、动态逻辑、静态物理和动态物理。

静态逻辑模型描述实例化(类成员关系)、关联、聚集(整体/部分)、和一般化(继承)等关系,这被称为对象模型。一般化关系表示属性和方法的继承关系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对设计十分重要的约束,如基数(一对一、一对多、多对多),也在对象模型中表示。

动态逻辑模型描述对象之间的互相作用。互相作用通过一组协同的对象、对象之间消息的有序序列、参与对象的可见性定义的途径来定义系统运行时的行为。Booch方法中的对象交互作用图被用来描述重要的互相作用,显示参与的对象和对象之间按时间序列的消息。可见性图用来描述互相作用中对象的可见性。对象的可见性定义了一个对象如何处于向它发送消息的方法的作用域之中。例如,它可以是方法的参数、局部变量、新的对象或当前执行方法的对象的部分。

静态物理模型通过模块描述代码布局,动态物理模型描述软件的进程和线程体系结构。

综上所述,面向对象方法用于系统开发有如下优点:

(1)强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,使系统能更准确地反映问题域。

(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息等基本原则)进行系统开发,有利于发挥人类的思维能力,有效控制系统复杂性。

(3)对象的概念贯穿于开发全过程,使各个开发阶段的系统成分具有良好的对应关系,显著提高系统的开发效率与质量,并大大降低系统维护的难度。

(4)对象概念的一致性,使参与系统开发的各类人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。

(5)对象的相对稳定性和对易变因素隔离,增强了系统对环境的适应能力。

(6)对象、类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。

 

步步为营UML建模系列导航

 

 

欢迎各位参与讨论,如果觉得对你有帮助,请点击    推荐下,万分谢谢.

作者:

出处:

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/springyangwc/archive/2012/01/16/2323723.html

你可能感兴趣的文章
MySQL日志维护策略
查看>>
2018 最吸金的编程语言排行揭晓,第一居然是...
查看>>
TCP/IP网络模型
查看>>
SpringCloud分布式开发五大神兽
查看>>
【国际IT专场】Laravel Media Library多媒体文件的上传与管理
查看>>
阿里百川电商 SDK(3.1) 接入与使用
查看>>
Swift 语法初窥
查看>>
Windows上利用github和hexo搭建个人博客
查看>>
如何处理CloudFoundry应用部署时遇到的254错误
查看>>
浅谈python中一切皆对象
查看>>
详细Fildder抓包Android教程
查看>>
又双叒叕一个Ant Design的Vue轮子(vue-antd-ui)
查看>>
微信小程序学习笔记 事件冒泡
查看>>
到底啥是JavaScript Mock
查看>>
深入理解Java虚拟机(一)之内存布局和对象的创建
查看>>
关于JavaScript对象,你所不知道的事(一)- 先谈对象
查看>>
如何用Python网络爬虫爬取网易云音乐歌曲
查看>>
MaxCompute/DataWorks权限问题排查建议
查看>>
一文读懂一个URL请求的过程是怎样的
查看>>
Java新手入门必须掌握的30个基本概念
查看>>