UML系统建模学习
什么是UML系统建模
UML系统建模是一种与面向对象软件开发密切相关的建模方法。通过建造模型可以验证建造事物的可行性。UML是一种统一建模语言,它的全称是(Unified Method Language)。它的官方网址是:www.uml.org,目前最新的版本是2.5。模型是用某种工具对某个系统的表达方式。模型从某一个建模观点出发,抓住事物最重要的方面而简化或忽略其它方面。软件系统的建模使用建模语言来表达(例如UML)。UML的目标是以面向对象各种相关图的方式来描述任何类型的系统。
注:1.分布式系统:分布在一组机器上运行的系统,数据很容易从一台机器传送到另一台机器,需要同步通信机制来确保数据完整性。
2.小型软件:一般5000行代码一下的软件是小型软件,5000行至5万行代码之间的是中型软件,5万行以上的是大型软件。
面向对象方法
大型的、复杂的软件系统的开发是一项工程,必须按照工程学的方法组织软件的生产与管理,必须经过分析、设计、实现、测试、维护等一系列软件生命周期阶段。编程仍然是重要的,但是更具有决定性意义的是系统建模,只有在分析和设计阶段建立了良好的系统模型,才有可能保证工程的正确实施。OOPL:面向对象的编程语言,OOD:面向对象设计,面向对象分析:OOA。
用计算机解决问题需要用程序设计语言开对问题进行求解加以描述(编程),实质上,软件是问题求解的一种表述形式。对象是要研究任何的事物,对象可以是一个物理实体也可以是无形的事物,对象(类)由数据(事物的属性)和作用于事物的操作(体现事物行为)构成一个独立的整体。从程序设计者的角度来看,对象是一个程序模块,从用户角度来看,对象为他们提供所希望的行为。对象的操作通常称为方法。
类是对象的模板,即类是对一组有相同数据和相同操作的对象的抽象定义一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可以有子类,也可以有父类,形成类层次结构。
面向对象特征:
封装性:封装是一种信息隐藏技术,它体现于类的说明,使数据更安全,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使用户只能看到对象的外部特性(对象能接收哪些消息,具有哪些处理能力),对对象的内部特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。疯长的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓行为的实现细节,只需用设计者提供的消息访问该对象。通过封装,可以把类作为软件中的基本复用单元,提高其内聚度,降低耦合度。
继承性:继承性是子类自动共享父类数据和方法的机制,它由类的派生功能体现。一个类直接继承其父类的全部描述,同时可修改和扩充。继承具有传递性,也就是平时说的多继承。
多态性:同一消息为不同的对象接收时可产生完全不同的行为,这种现象称为动态多态。在C++里动态多态是通过继承来支持的。利用继承层次,尽可能的吧具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低的层次。
在面向对象方法中,对象和消息传递分别表现事物及事物间相互联系的概念。这种对象、类、消息和方法的程序设计范式的基本特点在于对象的封装性和继承性。通过封装能将对象的定义和调用分开,通过继承能体现类与类之间的关系。
抽象:抽象是指强调实体的本质,内在的属性,使用抽象可以尽可能避免过早的考虑一些细节。在系统开发中,抽象指的是首相考虑对象的意义和行为,然后决定如何实现对象。类事先了对对象的数据(状态)和行为的抽象。类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式的分开。
面向对象的开发过程
面向对象方法遵循一般的认知方法学的基本概念,建立面向对象方法基础。面向对象方法学认为客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象都数据某个“类”,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式而构成的。不同对象的组合以及相互作用就构成了所要研究、分析和构造的客观系统。面向对象方法主要是模拟了人类在认知进程中的有一般到特殊的演绎功能或有特殊到一般的归纳功能。遵照面向对象方法学的思想在进行开发时,有如下步骤:
现实对象-----(归纳概括)----->现实类-------(抽象模拟)------>软件类--------(实例化)----->软件对象-------(活动交互)------->程序
首先进行面向对象分析:了解问题域所涉及的对象,对象间的关系和作用(操作),然后构造问题的对象模型,争取该模型能真实的反应出所需要解决的实际问题。在这个过程中,抽象是最本质、最重要的方法,针对不同问题选择不同的抽象层次。接下来是面向对象设计:即设计软件的对象模型。根据应用的面向对象那个软件开发环境的功能强弱不等,在对问题的对象模型进行分析的基础上,可能要对它进行一定的改造,但应该以最少改变原问题域的对象模型为原则。然后在软件系统内设计各个对象、对象间的关系(如层次关系、继承关系等)、对象间的通信方式(如消息模式)等,总之是设计各个对象应该做些什么。最后是面向对象实现,即软件功能的编码实现:包括:每个对象的内部功能实现:确立对象哪些处理能力应在哪些类中进行描述,确定并实现系统的界面、输出形式及其他控制机理等。
UML系统建模学习的更多相关文章
- 想学设计模式、想搞架构设计,先学学UML系统建模吧您
UML系统建模 1 概述 1.1 课程概述 汇集UML及其相关的一些话题 回顾UML相关的符号与概念 以电商订单相关业务为例,借助UML完成系统建模 将UML变成提升建模效率,表达架构思想的工具 1. ...
- UML系统建模的分析和应用
一.基本信息 标题:UML系统建模的分析和应用 时间:2016 出版源:无线互联科技 领域分类:统一建模语言 二.研究背景 问题定义:统一建模语言的分析应用 难点:掌握和理解相关系统的业务环境,掌握良 ...
- uml 图学习记录
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- UML图学习之二 类图
类图(ClassDiagrams)是根据系统中的类以及各类之间的关系描述系统的静态视图.类图不仅显示系统内信息的结构,还描述系统内这些信息的行为.类图的一个重要目的是为其他图(如顺序图.交互图)定义一 ...
- UML建模学习1:UML统一建模语言简单介绍
一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...
- 3 学习UML图 学习DDD的基本概念
今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐 在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...
- UML精粹学习 - 订单类结构图
Order Class Diagram of Martin Fowler's UML Distilled
- UML图学习之三 状态图
状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action). ...
- UML入门学习
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
随机推荐
- RTSP协议简介(转载)
转自:http://ilinux.iteye.com/blog/505753 Real Time Streaming Protocol 或 者RTSP(实时流媒体协议),是由Real network ...
- Linux 系统管理命令 - free - 查看系统内存信息
命令详解 重要星级: ★★★★★ 功能说明: free 命令用于显示系统内存状态,具体包括系统物理内存.虚拟内存.共享内存和系统缓存等. 语法格式: free [option] free [选项] 说 ...
- js点赞浮动特效
js自己封装的库: (function($) { $.extend({ tipsBox: function(options) { options = $.extend({ obj: null, //j ...
- [App Store Connect帮助]八、维护您的 App(6)使某个先前版本不可下载
如果您 App 的某个先前版本出现了法律或可用性问题,您可以避免该版本可供顾客下载. 如果该版本状态为“可供销售”且存在法律或可用性问题,您必须提交一个 App 更新,并在提交新版本时指明先前版本中存 ...
- [App Store Connect帮助]七、在 App Store 上发行(3.1)提交至“App 审核”:提交 App 以供审核
将您的 App 提交至“App 审核”,从而开始审核流程,以便使您的 App 在 App Store 上可用. 但是,在您能够上传 App 至“App 审核”前,您必须提供所有必填的元数据并为该版本选 ...
- Luogu P1462 通往奥格瑞玛的道路【二分/最短路】
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...
- [SRM625 Div1 Hard] Seatfriends
题目链接:Portal Vjudge Solution 一开始拿到这一题Sb了,把空放到dp中一起考虑了,这样计数就变得很麻烦. 其实我们可以把空位拿出来,假设它是存在的,最后再放回去. 那么就可以钦 ...
- 关于python深度学习网站
大数据文摘作品,转载要求见文末 编译团队|姚佳灵 裴迅 简介 ▼ 深度学习,是人工智能领域的一个突出的话题,被众人关注已经有相当长的一段时间了.它备受关注是因为在计算机视觉(Computer Vi ...
- Normal equations 正规方程组
前面我们通过Gradient Descent的方法进行了线性回归,但是梯度下降有如下特点: (1)需要预先选定Learning rate: (2)需要多次iteration: (3)需要Feature ...
- sed简单脚本练习
sed脚本的执行顺序可以简记为:Read,Execute,Print,Repeat(读取,执行,打印,重复)简称REPR 分析脚本的执行顺序: l 读取一行到模式空间(sed内部的一个临时缓存,用于存 ...