系统分析师-案例分析-UML

系统分析师-案例分析-UML

文章目录

结构

  1. 构造块:事务、关系、图。事务是UML的重要组成部分,关系是把事务紧密的联系在一起,图是多个相互关联的事务的集合。
  2. 公共机制: 达到特定目的的特定目标的公共UML方法,包括规格说明、修饰、公共分类、扩展机制4种
  3. 规则:构造快如何放在一起的规定。范围、可见性、完整性、执行。

4+1视图

  1. 逻辑视图:设计视图,表示了设计模型在结构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
  2. 进程视图: 可执行的线程或进程作为活动类的建模,是逻辑视图的一次执行实力,描述了并发与同步结构。
  3. 实现视图:对组成系统的物理代码的文件和结构进行建模。
  4. 部署视图:把构建部署到一组物理节点上,表示软件到硬件的映射和分布结构。
  5. 用例视图:需求分析模型。

用例图

  • 从现有的用例中抽取公共信息的那部分,作为一个单独的用例,然后采用不同的方法来重用这个公共的用例。

1.《include》表示包含关系,含义为:当可以从两个或两个以上用例中提取公共行为的时候,应该使用包含关系来表示它们。其中这个提取出来的公共用例称之为抽象用例,而把原始用例称为基本用例。

2.《extend》表示扩展关系,含义为:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能会发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,关系图示指向为扩展用例指向基本用例。

3.《generalization》表示泛化关系,是一种继承关系。子用例将继承基用例的所有行为关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用实线空心箭头表示,箭头方向从子用例指向基用例
< include> < include> < extend> 管理员 查询所有用户 基础用例 创建新用户 基础用例 修改用户密码 基础用例 登录 抽象用例 导出用户列表 扩展用例

  • 箭头的必须被执行。 泛化也是子类指向父类,可以考虑构造函数,子类构造一定要先构造父类。include 解决复用的问题,extend 解决多分支场景的问题。

类图

关系

  1. 泛化, 一般与特殊的关系,A继承B,A是B的子类,B是A的父类也叫泛化,A同时继承C,A为多重继承。 实线空心箭头。 子类 ------▷ 父类
  2. 聚合,部分和整体之间的关系,好聚好散不实诚。即部分可以脱离整体独立存在,如轮子和汽车。实线空心菱形。 部分 ---◇ 整体。
  3. 组合,整体和部分的关系,部分依赖整体,比如公司和部分,公司倒闭了,部门也不存在了。部分无法独立存活。部分 ---◆ 整体。
  4. 实现,就是虚集成、接口类。实现类 ----▷ 接口类
  5. 依赖,使用的关系,即一个类使用的实现需要另一个类的协助,B类的修改会引起A的修改。 A类 ----▶ B类
  6. 关联,拥有的关系,两个类之间存在可以相互作用的联系,即一个类知道另外一个类的属性和方法 A类 ------ B类

对比

性质 组合 继承
封装性 优点:不破坏封装,整体类与局部类之间松耦合,彼此相对独立整体类可以对局部类进行包装,封装局部类的接口,提供新的接口 缺点:整体类不能自动获得和局部类同样的接口 缺点:破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性,子类不能改变父类的接口。 优点:子类能自动继承父类的接口
动态性 优点:具有较好的可扩展性。支持动态组合。在运行时,整体对象可以选择不同类型的局部对象 缺点:支持扩展,以增加系统结构的复杂度为代价不支持动态继承。在运行时,子类无法选择不同的父类
易用性 缺点:创建整体类的对象时,需要创建所有局部类的对象 优点:创建子类的对象时,无须创建父类的对象

类图 VS 对象图

  • 对象图是被实例化的类的对象。

类图:用于描述系统中所包含的类以及它们之间的相互关系。

对象图:用于描述某一时刻的一组对象及它们之间的关系。

状态图 VS 活动图

状态图: 描述的是一个状态机,描述一个对象所有可能得状态,以及由于各种时间的发生而引起的状态之间的转移和变化。主要描述行为的结果,用于动态建模。

活动图: 将进程或其他计算解构展示位计算内部一步步的控制流和数据流。主要描述行为的动作,用于动态建模。 带泳道的流程图。

顺序图 VS 通信图

顺序图: 时序图,序列图,强调时序,重点是以时间为参照,各个对象发送

、接收消息、处理消息、返回消息的时间流程顺序。

通信图: 协作图,强调对象之间的组织关系。强调空间解构。

流程图 VS 活动图

流程图:面相过程、不能表示并发,主要控制结构是顺序、分支、循环。处理关系有严格的顺序和时间关系。

活动图:面相对象,可表示并发,描述的是对象活动的顺序以及遵循的规则,着重表现的是系统的行为,而非系统的处理过程。

相关推荐
惟长堤一痕14 分钟前
LeetCode 高频SQL50题(基础版)day01
算法·leetcode·职场和发展
尸僵打怪兽28 分钟前
软考(中级-软件设计师)数据库篇(1101)
数据库·oracle·性能优化·软考
五条凪13 小时前
从零开始的LeetCode刷题日记:70. 爬楼梯
数据结构·算法·leetcode·职场和发展·1024程序员节
我码玄黄14 小时前
软考系统分析师知识点三二:案例知识点三
软考高级·软考·系统分析师·软考复习
陈序缘19 小时前
Rust 力扣 - 1493. 删掉一个元素以后全为 1 的最长子数组
开发语言·后端·算法·leetcode·职场和发展·rust
Ch_ty1 天前
leetcode解题思路分析(一百六十二)1401 - 1408 题
算法·leetcode·职场和发展
竹竹零1 天前
优选算法精品——双指针
算法·leetcode·职场和发展
L_cl1 天前
数据结构与算法——Java实现 52.力扣98题——验证二叉搜索树
算法·leetcode·职场和发展
互联网杂货铺1 天前
软件测试八股文个人总结
自动化测试·软件测试·功能测试·测试工具·面试·职场和发展·测试用例