uml概述

uml(UNIFIED MODELING LANGUAGE)

uml是一种工具,隐藏在其后面的是面向对象的想法

url非常适合面向对象分析和设计,在软件开发中想法很重要,而uml是用来表达我们想法的工具

统一建模语言

建模:给现实世界里面的这些事物,建立一种能够被人理解的模型

UP:统一过程的缩写,是一种以用例驱动、以体系结构为核心、迭代及增量的软件过程模型,由UML方法和工具支持,广泛应用于各类面向对象项目。

RUP(Rational Unified Process),统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论,描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。

软件开发过程(software development process)描述了构造、部署以及维护软件的方式。

  1. 统一过程( The Unified Software DevelopmentProcess,UP) 是一种流行的构造面向对象系统的迭代软件开发过程。
    UP其主要概念是:以构架(各种模型)为中心、用例(开发软件的目标)驱动、迭代和增量式开发
  2. 特别是,Rational统一过程( Rational Unified Process,RUP)是对统过程的详细精化,并且已经被广泛采纳。

OOA/D:全称面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。

面向对象分析与设计

UML不是OOA/D,也不是方法,它仅仅只是一种图形表示法。表示的是OOA/D的想法

分析(analysis)

对问题和需求的调查研究

设计(design) :

满足需求的概念上的解决方案,也就是对设计的细化,比如使用java进行开发,进行分析是有一些功能java不能实现,必须换另一种方法去实现该功能

面向对象分析:

在问题域内发现和描述对象

面向对象设计:

如何定义软件对象以及它们之间如何协作以实现需求

示例:
开发一个软件,模拟游戏者投掷两个骰子,如果总点数是7则赢得游戏,否则输
开发过程如下:

  1. 定义用例:用例是需求分析的一种工具,它是一些情节的描述

    1、游戏者请求骰子
    2、系统展示结果:如果骰子的总点数是7,则游戏者赢;否则游戏者输

  2. 定义领域模型(OOA):识别问题中的概念,它是对真实世界领域中的概念和想像可视化,与具体实现的软件技术无关(比如java或C# )

    骰子游戏的领域模型
    游戏者、骰子、骰子游戏之间的关系:游戏者投掷两个骰子,一个游戏者可以玩一次骰子游戏

  3. 定义交互图:00D关注的是:软件对象的定义-职责与协作

    分配对象职责并绘制交互图(动态建模)

  4. 定义设计类图:静态建模,从领域模型以及交互图中获得启示,定义软件类,包括属性、方法等等

    骰子游戏的局部设计类图示例如下:

UML概述

标准定义:统一- 建模语言(Unified Modeling Language,UML)是描述、构造和文档化系统制品的可视化语言。

UML是一个庞大的图形化表示法体系

应用UML的三种方式

  • 草图
  • 蓝图
  • 编程语言

学习UML的要素

  • 表示法:图形
  • 过程:(UML与过程无关,但最好用于RUP)
  • 工具: (比如: Ratinal Rose )

UML包括:事物、关系、图、扩展机制

事物

结构:类、接口、构件、节点等等

类:表示一个实体,描述概念、执行功能等
接口:功能性的描述
构件:软件的一个模块,比如一个dao文件、java文件、jar包…
节点:部署里面的概念,比如数据库节点、一个服务器节点等,描述整体系统的部署结构

行为:交互(消息)、状态等等

交互(消息):描述调用方法
状态:状态的变化,一个功能的变化,可以通过状态图活动图去描述

分组:包、子系统等等

包:用于组织其他事物的一种功能
子系统:从大的方面描述各系统之前的关联关系

注释:注释

注释:使用注释去面试

关系

关系:事物之前的关系,有依赖、关联(聚合、组合)、泛化、实现。

依赖

比如功能管理系统与权限管理系统之前的依赖关系

关联(聚合、组合)

表示对象之前的结构关系,比如在一个组织机构里面,部门里面有一些人,建立部门之间与人之间的关联关系

聚合:关联双方,整体与部分之间的关系
组合:是一种强聚合,整体与部分之间的生命周期是一致的

泛化

映射为java中的继承,是一种什么东西,比如猪是一种动物,猪是对动物的一种泛化

实现

在java当中就是implements(实现),对某一种规范的实现,定义具体的细节

图:相当于一种角度,从不同的角度观察系统,然后会产生不同的概念,比如用例图、交互图(顺序图、协作图)、类图、活动图、状态图等等

用例图:从功能需求进行分析,描述功能
交互图(顺序图、协作图):用于如何实现功能的过程

比如添加用户时,首先需要打开界面,然后输入用户信息,提交…

类图:描述部门和人之前的关系是多对一的关系

活动图:表示一种流程,整个系统都描述清楚

比如在登录时,需要各种各样的判断…

状态图:描述状态的变化,

比如校园卡状态的变化,比如格式化、消费、关联学生、挂失、注销等状态变化

扩展机制

Stereotype、Tagged Value、Constraint
只有在特定的环境下才有作用

统一建模语言UML(1)概述相关推荐

  1. 统一建模语言UML轻松入门系列

    第五讲:统一建模语言UML轻松入门之综合实例 第四讲:统一建模语言UML轻松入门之动态建模 第三讲:统一建模语言UML轻松入门之静态建模:类和对象 第二讲:统一建模语言UML轻松入门之静态建模:用例 ...

  2. 统一建模语言UML整理之开篇

    引言: 这段时间将致力于写UML方面的博客,由于个人能力的有限,如果博客中出现错误的地方还请广大博友批评指正.为了更好地了解一个过程或者事物,人们通常根据所研究对象的某些特征(形状.结构.或行为等)建 ...

  3. 统一建模语言UML轻松入门(3)――静态建模:类和对象

    统一建模语言UML轻松入门(3)――静态建模:类和对象 --------------------------------------------------------------------- 宋宝 ...

  4. 『软件工程13』浅谈面向对象方法,统一建模语言UML

    浅谈面向对象方法UML 一.UML的含义 二.UML的主要内容 1.UML的概念模型 2.UML概念模型图例 三.UML的基本构造块 1.UML中的事物 (1)UML中的四种事物 (2)UML中各种事 ...

  5. 统一建模语言UML轻松入门(1)――基本概念

    统一建模语言UML轻松入门(1)――基本概念 --------------------------------------------------------------------- 宋宝华 ema ...

  6. 统一建模语言UML(四):领域模型和类图

    统一建模语言UML(四):领域模型和类图 领域模型 领域模型是对领域内概念类或现实世界中对象的可视化表示,也称为概念模型.是更为完整的业务模型的一个特例.从UML的表示法角度,领域模型被描述为一组没有 ...

  7. 软件工程—统一建模语言UML

    一.ULM概述 统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件系统制品的文档.它记录了对必须构造的系统的决定和理解,可用于对系统的理解.设计.浏览.配 ...

  8. 统一建模语言UML要点全面简析

    前言 uml就是一些图,一些由框框和线条构成的图,框框称为事物,线条表示4种关系,加点这些框框和线条的说明注释. 一.uml概述 统一建模语言(UML)是面向对象软件的标准化建模语言. UML由3个要 ...

  9. 软件工程导论 统一建模语言UML概述

    1.UML模型由事物.关系和图组成 2.事物是 对模型中最具代表性成分的抽象,UML中分为结构事物.行为事物.分组事物和注释事物四类. 3.结构事物是UML模型的静态部分,主要用来描述概念的或物理的元 ...

最新文章

  1. oracle ebs fah,EBS常用表
  2. python语言怎么用-Python语言应用解析,如何入门学Python?
  3. 嵌入式系统 Boot Loader 技术内幕-目前看到介绍Boot loader最通俗明了的文章
  4. 微软正式释出基于 Chromium 的 Edge 预览版本
  5. 受 SQLite 多年青睐,C 语言到底好在哪儿?
  6. win7锁定计算机会断网吗,win7系统如何设置电脑定时断网
  7. js List 对象封装【原创】
  8. android split工具,合并APKS为APK工具 Apktool M – AntiSplit on Android v2.4.0|张小北
  9. 【刘晓燕语法长难句】 并列句
  10. 优酷 米兔机器人_米兔机器人如何发豆芽?
  11. idea中maven下载依赖包出错
  12. 局部变量与全局变量同名时如何在局部变量的作用范围内访问全局变量?
  13. DoubleArrayTrie详解
  14. SQLSERVER 2000清除挂起
  15. 微信小程序生成海报图片导出相册
  16. 阿里数据仓库-数据模型建设方法总结(全)
  17. canvas基本使用,以及七巧板绘制
  18. 11gRAC权限问题导致的集群及数据库无法启动
  19. 2018_Csrnet: Dilated convolutional neural networks for understanding the highly congested scenes
  20. 拓展模块使用教程和心得(四):PWM脉冲宽度调制及普通有刷马达和空心杯电机(测试平台:STC8A8K,STM32F103)

热门文章

  1. Python实现 IOT(物联网) 自动化测试
  2. 基于人工蜂群优化的BP神经网络(分类应用) - 附代码
  3. GIS开发进阶之路(十四) ArcEngine打开cad文件的五种方法、ArcGIS Engine错误码
  4. QT实现局域网聊天工具(带UDP文件传输)
  5. 深度学习算法和机器学习算法_63种机器学习算法介绍
  6. 基于C#的可编程仪器标准命令(SCPI)实践 (附源代码)
  7. Qt简易计算器的代码实现
  8. 算法设计与分析----马的周游路线
  9. Python插值法(3)————hermite插值多项式(拉格朗日型)
  10. GBT22239-2019信息安全技术网络安全等级保护基本要求第三级安全要求管理部分表格版