UML软件设计(日更)-1

软件建模

目的:uml9种图描述出你要实现的软件系统功能、架构、关联关系

UML9种图

1.用例图-不同角色与用例之间的关联关系-静态图

2.类图-面向对象设计中常用的图,描述的是各个类之间的关系-静态图

3.对象图-对象和对象之间的联系-静态图

4.状态图(State Diagram)- 动态图

作用:描述对象所有的可能状态,和他们之间状态切换的联系

UML软件设计(日更)-1_第1张图片

5. 活动图 (Actitivity Diagram) - 动态图

作用:按照用例图的方式描述用例之间的关系

UML软件设计(日更)-1_第2张图片

6. 时序图(Sequence Diagram) - 动态图

作用:参与者(角色)与系统对象之间有序交互的过程描述,强调消息如何在对象之间发送和接受过程

UML软件设计(日更)-1_第3张图片

7. 协作图(Communication Diagram) - 动态图

作用: 与时序图相似,用于描述对象间动态协作关系,类图和时序图的集合,重点描述对象和对象之间的通信过程

UML软件设计(日更)-1_第4张图片

8. 组件图(Component Diagram) - 静态模型

构件图

作用: 描述代码结构的图,描述各个代码构件之间的联系

UML软件设计(日更)-1_第5张图片

9.部署图(Deployment Diagram) - 静态模型

作用:描述系统的物理部署过程,比如计算机设备以及他们是如何进行连接的

UML软件设计(日更)-1_第6张图片

软件开发流程

软件工程导论概述-软件开发流程

1. 软件过程

为了获取高质量软件所需要完成的一系列任务框架,它规定的是如何更好的完成各项工作的步骤

1. 瀑布模型(线性模型)- 主流

特点:

​ 阶段间具有顺序性和依赖性

优点:

​ 可以强迫开发人员使用规范化的方法进行实现;严格规定每个阶段需要产出的文档

需求分析—》概要设计—》详细设计—》编码阶段—》测试阶段

1.需求分析:(产出结果:需求分析说明书)

​ 理解客户需求,能够拆除具体要实现的功能和内容有些什么

2.概要设计:(产出结果:技术设计方案、概要设计实现方案—用什么技术完成什么功能)

​ 结合已有的技术去分析业务的需求应该怎么实现

  1. 详细设计:(产出结果:用户操作界面设计图(UI)、UML工程文档、数据库设计sql代码)

    ​ 原型设计图(用户操作界面)、用户操作的流程(UML设计-时序图)、面向对象设计(UML-类图、对象图、协作图)、数据库设计(PowerDesigner)

  2. 编码阶段:(代码、打包的软件)

    分工、分模块、定计划

  3. 测试(入网安全证明、测试用例输出文档)

    黑盒测试、白盒测试 (压力、网络安全…)

2. 快速原型模型

以原型界面驱动软件开发

适用一些功能简单、开发量小的软件系统就可以适用

3. 增量模型 - 企业开发主流

每个项目都是一个增量,不需要从新设计推翻之前的流程

4. 螺旋设计、喷泉模型(XXXXX)

UML设计使用的工具

MS visio

UML软件设计(日更)-1_第7张图片

在线工具(免费)

​ https://boardmix.cn/

https://app.diagrams.net

1.用例图

作用:

​ 表示一个系统中用例与参与者关系之间的图

​ 它描述了系统中相关的用户和系统对不同用户提供的功能和服务

1.元素

1.角色(参与者)

​ 是与系统主题交互的外部实体单元,描述一个或一组与系统产生外部交互的用户或事物

UML软件设计(日更)-1_第8张图片

2.用例:(功能、模块)

​ 描述的被角色或者事物能够访问的功能内容(一些列操作的集合)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UalZ58zR-1678712787636)(../笔记图片/image-20230313202423054.png)]

2. 联系方法

1.角色与角色之间的泛化关系:

​ 泛化代表的是抽象的概念,指向的方法:具象的事物指向—>泛化抽象的事物,更具系统的设计进行泛化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1cyDTCA-1678712787636)(../笔记图片/image-20230313202707766.png)]

依赖关系—包含

​ 是用例间设计时应该含有的功能使用incloude描述,指向方法A功能包含— << incloude >> --> B功能

UML软件设计(日更)-1_第9张图片

依赖关系—拓展

​ 是对用例的扩张对功能行为的增强,除必要功能之外添加的功能就要使用扩张

UML软件设计(日更)-1_第10张图片

用例泛化

​ 和角色相似,将具象化的用例和抽象的用例连接,有继承的概念实现,具象化的用例是在父类用例的基础上做修改

UML软件设计(日更)-1_第11张图片

3.案例

描述一个企业管理系统功能,

​ 所有的员工都有打卡、查看计划功能,

​ 但是经理拥有管理员工信息、定制计划功能;

​ 老板拥有所有员工和经理的功能

提升题目:

​ 基于上一个题目,员工对于计划功能只有查看计划的权限,

​ 但是经理有计划新增、修改、删除功能;

​ 老板提出要求说计划可以从别的系统导入

按照该需求设计
UML软件设计(日更)-1_第12张图片

4.用例图描述

当我们绘制完成一个用例图后,需要进行用例描述,让阅读用例的开发者更清楚事件过程描述

用例图需要描述的内容:
1.用例名称:描述用例图的寓意或者实现的目标,一般为动词或宾语短语
2.用例编号:实现多个用例图的快速索引查找
3.参与者:参与的角色有哪些
4.用例描述:简单一句话概括什么人在什么系统能做什么事情
5.触发器:触发用例的时机节点描述
6.前置条件:用例执行前的系统状态过程描述
7.基本事件流:将常规的用例活动以时间过程的方式描述清楚
8.扩展事件流:一般描述基本事件流中错误或业务异常的流程
9.结论:在什么时候用例结束
10.数据需求:用例过程中会有些什么数据交互
11.业务约束:描述业务中的约束条件

在案例中的用例描述

关键词 描述值
用例名称 企业员工操作管理系统
用例编号 CXK001
参与者 员工、经理、老板
用例描述 描述三个参与者对于系统功能权限的描述
触发器 参与者登录后使用管理系统
前置条件 参与者需要登陆系统
基本事件流 1.员工登录系统可以进行打卡,同时可以查看现在指定的计划内容
2.经理登录系统对员工的信息、计划可以进行管理分发
3.老板可以查看员工的所有信息且进行管理,能够对所有人的计划进行定制或查看
扩展事件流 1.员工登录系统,权限不足无法对对应的业务功能进行操作,返回到登录页面
结论 员工登录系统后对计划或者打卡功能操作以及管理员工信息操作结束,用例完结
数据需求 1.员工信息 2.打卡记录 3.计划信息
业务约束 不同的角色所操作的功能内容不同

2.时序图(序列图)

1.什么是时序图

时序图(Sequence Diagram)又名序列图
它描述的是对象与对象之间发送信息的时间顺序显示多个对象之间的动态协作关系

2.元素

5种元素内容:

  1. 角色(参与者-Actor)
  2. 对象(Object)
  3. 生命线(LifeLine)
  4. 控制焦点(Activation)
  5. 消息(Message)

1.角色

角色:用小人图标表示,可以描述人或系统等事务,一般作为时序图触发的起点

UML软件设计(日更)-1_第13张图片

2.对象

对象图在时序图的上方顶部,以一个矩形框的方法描述

UML软件设计(日更)-1_第14张图片
对象描述的内容在UML设计中有三种:

1.对象和类名

写法: 对象名:类名
能够通过描述具体对象间调用关系体现除类与类之间的关联,后续可以关联类图

UML软件设计(日更)-1_第15张图片

2.类名

写法: 类名
只突出类与类之间调用过程关系,描述了一类事物之间包含的调用协调过程

UML软件设计(日更)-1_第16张图片

3.对象名

写法: 对象名
突出具体对象之间的调用协调关系

在这里插入图片描述

3. 生命线

每个对象矩形框下方都会有一条虚线,虚线描述的就是该对象的时间生命线,线从上至下描述的是时间的从过去到未。

UML软件设计(日更)-1_第17张图片

4.控制焦点

每个对象交互时在时间线上发生的事情或某段时间执行的操作,用长条矩形描述

UML软件设计(日更)-1_第18张图片

5.消息

对象之间发送的信息

消息有三种类型:

1.同步消息

画法:实线+实心箭头
发送对象发送消息给接受者,接收者必须给发送者一个响应(回复),否则发送者将一直等待
注意:同步过程将会出现对象必须要等待另一个对象返回结果才能继续操作

UML软件设计(日更)-1_第19张图片

2. 异步消息

画法:实现+大于符号箭头
消息的发送者将消息发送之后,然后继续执行自己的活动

UML软件设计(日更)-1_第20张图片

3.返回消息

画法:虚线+小于符号箭头
返回消息表示从过程调用返回

UML软件设计(日更)-1_第21张图片

4.自关联消息

画法:分同步异步的方式来画,消息发送和接受都是自己
当调用过程中出现消息是发送给自己对象的功能完成的话就可以使用自关联描述

UML软件设计(日更)-1_第22张图片

3.组合片段

组合片段用来解决交互执行的条件和方式,允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
组合片段有13种:

类型 名称 描述
(必学)Opt 选项 包含一个可能发生或不可能发生的序列
(必学)Alt 抉择 包含一个片段列表,这些列表包含备选信息序列,在任何场景下只能发生其中的一个序列 ,第一个片段Alt和else片段配合,临界点需要描述一个表达式,当表达式的结果发生变化时选择对应的序列进行操作
(必学)Loop 循环 片段重复一定次数,可以在临界点描述重复的条件,Loop片段要有Min和Max属性,如果不描述这两个属性就是无限循环
(必学)Par 并行 并行处理,多个事件片段可以交错执行

抉择
UML软件设计(日更)-1_第23张图片
并行
UML软件设计(日更)-1_第24张图片

3. 类图(面向对象设计)

作用:表示各个类之间的静态关系视图,类图是一种编程模型图

类的组成

类名、属性(字段)和行为(方法)

类图中的修饰符

四种访问修饰符

public (公共的) 所有人都可见: 类图中用“+”
private (私有的)只有自己可见: 在类图中用“-”
protected(受保护的)自己以及子类:在类图中用“#”
default(默认的)不使用访问修饰符:在类图中用“~”或者不写

属性字段类型

文字类型:
(1)String:字符串
(2)char:字符
数值类型:
(1)int:整数类型
(2)double:浮点类型(小数类型)
其他:
(1)日期:Date
(2)布尔值:boolean
(3)对象类型:Object
(4)数组集合:Array

UML软件设计(日更)-1_第25张图片

方法描述

有参方法

如:吃东西的描述:给某个人食物就能吃这个行为可以使用
+eat(food)

无参方法

如:跑步是不需要外部条件就可以完成的行为
+run()

有返回值方法

如:计算两个数之和会得到一个结果,结果就是通过计算过程返回的数据

  • sum(num1:int,num2:int) : int
    修饰符 方法名(参数列表):返回值类型

无返回值方法

无返回值方法,描述的行为注重的过程并没有结果
如:描述走路这个行为
+run():void
修饰符 方法名(参数列表):void

类之间的关系

有6中关系:

  1. 关联:实线
  2. 聚合:菱形空心实线箭头
  3. 组合:菱形实心实线箭头
  4. 继承:三角空心实线箭头
  5. 实现:三角空心虚线箭头
  6. 依赖:虚线小箭头

UML软件设计(日更)-1_第26张图片

1.关联关系(Association)

单向关联:如只有A关联B,B不关联A
双向关联:AB两者相互关联

双向关联案例:司机可以租车和车子等待被人租赁,两个类是双向关联的,实线上两侧写上1.
UML软件设计(日更)-1_第27张图片
单向关联案例:企鹅会受到气候的影响改变生活的方式,但是气候不会因为有企鹅而发生改变,这就是单向关联

在这里插入图片描述

2.依赖(Dependency)

描述:如果一个类的改动会影响到另一个类,则两个类之间存在依赖关系,一般而言,依赖关系是单向的,如果依赖是双向的考虑使用关联关系描述

案例:车子依赖汽油,而汽油不依赖与车子出现
UML软件设计(日更)-1_第28张图片

3.聚合(aggregate)

描述的是:多变群
描述是整体与部分的关系,当某个实体聚合为另一个实体时,该实体还可以是另一个实体的一部分。
空心菱形+实线箭头
UML软件设计(日更)-1_第29张图片

4.组合(Combination)

描述的是:多组一
也是描述整体与部分的关系,组合要比聚合更加严格,当某个实体组合成另一个实体时,二者具有相同的生命周期

UML软件设计(日更)-1_第30张图片

5.继承泛化(Generalization)

描述的是一个抽象的东西被不断具象化的描述过程,与继承是同一个概念
UML软件设计(日更)-1_第31张图片

6.接口实现(Realization)

什么是接口:
只描述特有的行为,让类来实现
UML软件设计(日更)-1_第32张图片
类会去实现公共的接口方法行为,在每个类中出现不同的行为效果
UML软件设计(日更)-1_第33张图片

3-27-电子1班题目

  1. 描述用户使用微信扫码支付功能流程
    UML软件设计(日更)-1_第34张图片

  2. 学生登录教务管理系统,在成绩录入界面进行成绩的录入,如果录入的成绩大于120分则系统返回信息成绩必须在0~120之间,不满足规则无法保存数据
    UML软件设计(日更)-1_第35张图片

  3. 登录进入外卖点餐app,如果没有账号需要注册之后才能登录,登录进入后浏览商品信息,选择餐品进行下单,下单成后等待送达然后给予评分。
    UML软件设计(日更)-1_第36张图片

3-28-电子2班题目

以下题目均用类图描述:

  1. 描述一个狗子具有的属性和行为
    UML软件设计(日更)-1_第37张图片

  2. 描述人和蔡徐坤之间的联系
    UML软件设计(日更)-1_第38张图片

  3. 描述以下场景:我有工作我的工作是程序员,我的父亲也有工作但是他是一个花匠,我的爷爷、老祖都是花匠。
    UML软件设计(日更)-1_第39张图片

  4. 描述以下场景:手机都有摄像头能拍照且都会描述像素,但是iphone13可以拍希区柯克,华为mate可以拍近景,小米可以拍月亮他们的像素都不同

UML软件设计(日更)-1_第40张图片

  1. 描述以下场景(地狱难度):在铁岭的大山里有人和动物共同居住着,这里有伐木工、野生动物饲养员、非法猎人和森林管理员,动物有东北虎、小兔子,伐木工伐木但是看见森林管理员就要遭殃,猎人可以猎杀动物但是看到野生动物饲养员就要遭殃,饲养员喂养动物但是也怕动物,老虎吃小兔子,小兔子既怕人也怕虎。用类图描述
    UML软件设计(日更)-1_第41张图片

你可能感兴趣的:(学生笔记-日更,uml,软件工程)