什么是UML系统建模

  UML系统建模是一种与面向对象软件开发密切相关的建模方法。通过建造模型可以验证建造事物的可行性。UML是一种统一建模语言,它的全称是(Unified Method Language)。它的官方网址是:www.uml.org,目前最新的版本是2.5。模型是用某种工具对某个系统的表达方式。模型从某一个建模观点出发,抓住事物最重要的方面而简化或忽略其它方面。软件系统的建模使用建模语言来表达(例如UML)。UML的目标是以面向对象各种相关图的方式来描述任何类型的系统。

  注:1.分布式系统:分布在一组机器上运行的系统,数据很容易从一台机器传送到另一台机器,需要同步通信机制来确保数据完整性。

    2.小型软件:一般5000行代码一下的软件是小型软件,5000行至5万行代码之间的是中型软件,5万行以上的是大型软件。

面向对象方法

  大型的、复杂的软件系统的开发是一项工程,必须按照工程学的方法组织软件的生产与管理,必须经过分析、设计、实现、测试、维护等一系列软件生命周期阶段。编程仍然是重要的,但是更具有决定性意义的是系统建模,只有在分析和设计阶段建立了良好的系统模型,才有可能保证工程的正确实施。OOPL:面向对象的编程语言,OOD:面向对象设计,面向对象分析:OOA。

  用计算机解决问题需要用程序设计语言开对问题进行求解加以描述(编程),实质上,软件是问题求解的一种表述形式。对象是要研究任何的事物,对象可以是一个物理实体也可以是无形的事物,对象(类)由数据(事物的属性)和作用于事物的操作(体现事物行为)构成一个独立的整体。从程序设计者的角度来看,对象是一个程序模块,从用户角度来看,对象为他们提供所希望的行为。对象的操作通常称为方法。

  类是对象的模板,即类是对一组有相同数据和相同操作的对象的抽象定义一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可以有子类,也可以有父类,形成类层次结构。

面向对象特征:

  封装性:封装是一种信息隐藏技术,它体现于类的说明,使数据更安全,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使用户只能看到对象的外部特性(对象能接收哪些消息,具有哪些处理能力),对对象的内部特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。疯长的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓行为的实现细节,只需用设计者提供的消息访问该对象。通过封装,可以把类作为软件中的基本复用单元,提高其内聚度,降低耦合度。

  继承性:继承性是子类自动共享父类数据和方法的机制,它由类的派生功能体现。一个类直接继承其父类的全部描述,同时可修改和扩充。继承具有传递性,也就是平时说的多继承。

  多态性:同一消息为不同的对象接收时可产生完全不同的行为,这种现象称为动态多态。在C++里动态多态是通过继承来支持的。利用继承层次,尽可能的吧具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低的层次。

  在面向对象方法中,对象和消息传递分别表现事物及事物间相互联系的概念。这种对象、类、消息和方法的程序设计范式的基本特点在于对象的封装性和继承性。通过封装能将对象的定义和调用分开,通过继承能体现类与类之间的关系。

  抽象:抽象是指强调实体的本质,内在的属性,使用抽象可以尽可能避免过早的考虑一些细节。在系统开发中,抽象指的是首相考虑对象的意义和行为,然后决定如何实现对象。类事先了对对象的数据(状态)和行为的抽象。类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式的分开。

面向对象的开发过程

  面向对象方法遵循一般的认知方法学的基本概念,建立面向对象方法基础。面向对象方法学认为客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象都数据某个“类”,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式而构成的。不同对象的组合以及相互作用就构成了所要研究、分析和构造的客观系统。面向对象方法主要是模拟了人类在认知进程中的有一般到特殊的演绎功能或有特殊到一般的归纳功能。遵照面向对象方法学的思想在进行开发时,有如下步骤:

  现实对象-----(归纳概括)----->现实类-------(抽象模拟)------>软件类--------(实例化)----->软件对象-------(活动交互)------->程序

  首先进行面向对象分析:了解问题域所涉及的对象,对象间的关系和作用(操作),然后构造问题的对象模型,争取该模型能真实的反应出所需要解决的实际问题。在这个过程中,抽象是最本质、最重要的方法,针对不同问题选择不同的抽象层次。接下来是面向对象设计:即设计软件的对象模型。根据应用的面向对象那个软件开发环境的功能强弱不等,在对问题的对象模型进行分析的基础上,可能要对它进行一定的改造,但应该以最少改变原问题域的对象模型为原则。然后在软件系统内设计各个对象、对象间的关系(如层次关系、继承关系等)、对象间的通信方式(如消息模式)等,总之是设计各个对象应该做些什么。最后是面向对象实现,即软件功能的编码实现:包括:每个对象的内部功能实现:确立对象哪些处理能力应在哪些类中进行描述,确定并实现系统的界面、输出形式及其他控制机理等。

UML系统建模学习的更多相关文章

  1. 想学设计模式、想搞架构设计,先学学UML系统建模吧您

    UML系统建模 1 概述 1.1 课程概述 汇集UML及其相关的一些话题 回顾UML相关的符号与概念 以电商订单相关业务为例,借助UML完成系统建模 将UML变成提升建模效率,表达架构思想的工具 1. ...

  2. UML系统建模的分析和应用

    一.基本信息 标题:UML系统建模的分析和应用 时间:2016 出版源:无线互联科技 领域分类:统一建模语言 二.研究背景 问题定义:统一建模语言的分析应用 难点:掌握和理解相关系统的业务环境,掌握良 ...

  3. uml 图学习记录

    UML类图与类的关系详解   2011-04-21 来源:网络   在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...

  4. UML图学习之二 类图

    类图(ClassDiagrams)是根据系统中的类以及各类之间的关系描述系统的静态视图.类图不仅显示系统内信息的结构,还描述系统内这些信息的行为.类图的一个重要目的是为其他图(如顺序图.交互图)定义一 ...

  5. UML建模学习1:UML统一建模语言简单介绍

    一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...

  6. 3 学习UML图 学习DDD的基本概念

    今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐  在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...

  7. UML精粹学习 - 订单类结构图

    Order Class Diagram of Martin Fowler's UML Distilled

  8. UML图学习之三 状态图

    状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action). ...

  9. UML入门学习

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

随机推荐

  1. mysql查询流程

    首先是连接器 连接器负责跟客户端来链接 链接成功后 mysql会先去查询缓存,之前是不是有查询的这条语句,之前执行过的话 就会以key-value的形式缓存到内存中,如果没有就会继续执行后面的,执行完 ...

  2. ROS学习笔记七:在ROS中使用USB摄像头

    下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...

  3. CF449D Jzzhu and Numbers

    题解 刚刚学习了高维前缀和 这道题就肥肠简单了 高维前缀和其实原理肥肠简单 就是每次只考虑一维,然后只做这一维的前缀和 最后求出的就是总前缀和了 那么对于这道题 也就很简单了 发现选择的所有数每一位都 ...

  4. 手把手教你玩微信小程序跳一跳

    最近微信小程序火的半边天都红了,虽然不会写,但是至少也可以仿照网上大神开发外挂吧!下面手把手教妹纸们(汉纸们请自觉的眼观耳听)怎么愉快的在微信小游戏中获得高分. 废话不多说,咱们这就发车了!呸!咱们这 ...

  5. 配置Ubuntu16.04第01步:U盘安装 Ubuntu 16.04系统

    Ubuntu 每年发布两个版本,Ubuntu 16.04 开发代号为“Xenial Xerus”,为第六个长期支持(LTS)版本. 1. 制作U盘系统安装盘 1.1下载最新的Universal USB ...

  6. 205 Isomorphic Strings 同构字符串

    给定两个字符串 s 和 t,判断它们是否是同构的.如果 s 中的字符可以被替换最终变成 t ,则两个字符串是同构的.所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字符不能映射到同一个字 ...

  7. 201 Bitwise AND of Numbers Range 数字范围按位与

    给定范围 [m,n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含m, n两端点).例如,给定范围 [5,7],您应该返回 4. 详见 ...

  8. [转]mysql事务处理用法与实例详解

    转自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于 ...

  9. jacaScript数组

    1.var arr=['1','2','3'] typeof arr (判断数组类型)    print(arr)打印数组内容 2.arr[100]='x',  数组中间自动添加,alert(arr. ...

  10. SQL Server Management Studio 手动导入Excel文件

    SQL Server Management Studio(企业管理器) 手动导入Excel文件,有时间还是非常方便的,省去了写代码的麻烦. 具体步骤如下: 下面附上 创建游标的方法(用于循环读取临时表 ...