UML(学习笔记)

UML:统一建模语言(Unfied Modeling Language)是描述、构造和文档化系统制品的可视化语言。
建模:给现实世界的事物建立被人所理解的模型。
UML是一个庞大的图形化表示法体系。(UML仅仅是一种图形表示法。)
应用UML的三种形式:草图、蓝图、编程语言
UML的要素:表示法(图形)、过程(UML与过程无关,但最好用于RUP)、工具(如StarUML、Ratinal Rose)
RUP:统一软件开发过程

1.面向对象分析与设计(OOA/D)

分析------对问题和需求的调查研究
设计------满足需求的概念上的解决方案(设计是对分析的一种细化)
面向对象分析-----在问题域内发现和描述对象
面向对象设计-----如何定义软件对象以及它们之间如何协作以实现需求
软件建模----动态模型(如何交互)与静态建模(都有哪些东西(对象))
分析与设计过程:定义用例->定义领域模型->定义交互图->定义设计类图
—>1.定义用例(用例是需求分析的一种工具,它是一些情节的描述)
—>2.定义领域模型(OOA)(识别问题中的概念,它是对真实世界领域中的概念和想象可视化,与具体实现的软件技术无关)
—>3.分配对象职责并绘制交互图(动态建模)。OOD关注的是软件对象的定义(职责与协作)
—>4.定义设计类图(静态建模)。 从领域模型以及交互图中获得启示,定义软件类,包括属性、方法等等

例子在这里插入图片描述

分析与设计过程:定义用例->定义领域模型->定义交互图->定义设计类图
1.定义用例(用例是需求分析的一种工具,它是一些情节的描述)
------1)游戏者请求骰子
------2)系统展示结果:如果投资总点数是7,则赢,否则游戏者输
2.定义领域模型(OOA)(识别问题中的概念,它是对真实世界领域中的概念和想象可视化,与具体实现的软件技术无关)
-----1)游戏者
-----2)骰子
-----3)骰子游戏
在这里插入图片描述
3分配对象职责并绘制交互图(动态建模)
OOD关注的是软件对象的定义(职责与协作)
在这里插入图片描述
4.定义设计类图(静态建模)
从领域模型以及交互图中获得启示,定义软件类,包括属性、方法等等
在这里插入图片描述

2.UP(统一软件开发过程)与瀑布模型

软件开发过程描述了构造、部署以及维护软件的方式。
统一过程是一种流行的面向对象系统的迭代软件开发过程。特别是RUP(Rational统一过程)是对统一过程的详细精华。
瀑布生命周期试图在编程之前(详细)定义所有或大部分需求、创建出完整的设计、定义“可靠的”计划或时间表。

3.UML概述

UML包括:事物、关系、图、扩展机制
1.事物
–>结构:类、接口、构建、节点等等
–>行为:交互(消息)、状态等等
–>分组:包、子系统等等
–>注释
2.关系:依赖、关联(聚合、组合)、泛化(继承)、实现(实现接口)
3.图:用例图、交互图(顺序图、协作图)、类图、活动图、状态图等等
4.扩展机制(在特定环境下起作用):约束等
图的分类:静态建模与动态建模
1.静态建模:类图
2.动态建模:顺序图(协作图)、用例图、活动图、状态图

类图实例

在这里插入图片描述

用例图实例

在这里插入图片描述

状态图实例

在这里插入图片描述

活动图实例

在这里插入图片描述
用例试图:需求分析阶段
逻辑视图:设计姐u但,用例的实现
组件(构建)视图:构建表示封装了起内容的系统模块:构建是相对独立的模块
部署视图:表示软件元素在物理架构上的部署,以及屋里元素之间的通信

4.类图

类图允许我们去标记静态内容及类之间的关系
1.类的基本表示法:名称、属性(类型,可见性)、方法(参数,返回值)
2.接口的基本表示法:圆形表示法、构造性表示法
3.包:用来表示层次结构(子系统)、组织各种内容
4.关系:依赖、关联、泛化、实现
–>依赖:一个事物的变化影响另外一个事物(依赖其实就是耦合)
低耦合:表示要降低跟不稳定的其他对象之间的依赖关系
在这里插入图片描述
–>关联:关联名、导航、角色、多重性、聚合、组合
–>泛化:extends(继承)
–>实现:implements
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章