统一建模语言UML(1)概述

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
只有在特定的环境下才有作用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值