超详细UML学习笔记,看完期末考不过来打我

复习UML做下的笔记

一. UML简介

1.UML概述

什么是UML

  • UML(Unified Modeling Language)即"统一建模语言"是一种采用图表表达信息系统,或软件程序的方法,一般被用于面向对象的软件工程项目里,包含需求分析与系统设计等阶段所使用到的工具

为什么要建模?

  • 模型提供了系统的蓝图。能够更好地理解正在开发的系统。

UML结构图

  1. Class diagram:类图,描述系统的静态结构,类、接口、协作以及之间的关系
  2. Object diagram:对象图,对象及对象间的关系
  3. Package diagram:包图,包以及包之间的依赖关系
  4. Component diagram:构件图,构件及其互相依赖关系
  5. Composite structure diagram:组合结构图,系统某一部分的内部结构
  6. Deployment diagram:部署图,构件在各节点上的部署
  7. Profile diagram:外廓图,不同应用领域对UML2进行扩展或裁剪的机制

UML行为图

  1. Activity diagram:活动图,描述事物执行的控制流或数据流
  2. Sequence diagram:顺序图,对象之间的消息交互,强调消息执行的顺序的交互图
  3. Communication diagram:通信图,对象之间的消息交互,强调对象协作的交互图
  4. Timing diagram:时序图,对象之间的消息交互,强调真实时间信息的交互图
  5. Interaction overview diagram:交互概览图,展示交互图之间的执行顺序
  6. State diagram:状态机图,描述对象所经历的状态转移
  7. Use case diagram:用例图,描述一组用例、参与者以及它们之间的关系

1.3 安装UML工具

下载地址https://staruml.io/download

2.软件开发

软件工程的开发流程

OO:Object-oriented面向对象

image-20210910142153727

软件开发的 7个阶段

可行性分析与计划阶段

目的: 不是要去解决问题,而是确定问题是否值得去解决。

  • 确定软件开发的总体目标
  • 估计软件开发所需要的各种资源,效益,成本,开发进度
  • 提交可行性分析报告,开发计划文档,至少从下面3个方面研究每种解法的可行性
    1. 经济可行性:利润比成本高?
    2. 技术可行性:使用现有的或比较成熟的技术,能实现这个系统吗?
    3. 组织可行性:设计合理组织机构,选择经验丰富的管理人,保证项目的顺利执行
    4. 操作可行性:系统的操作方式在这个用户组织内行得通吗?

需求分析

分析用户提出的要求,给出需求详细定义,确定软件系统的各项功能,性能需求和设计约束,确定对文档编制的要求。

需求分类:

  1. 功能性需求(function requirement):用户登陆
  2. 非功能性需求,或称性能需求(quality requirement):性能、可靠性、可维护性、可扩充性

需求分析关联紧密的是用例图活动图

系统分析(总体设计)

  • 关键任务:怎样实现目标系统?
  • 各项需求 ==>> 软件体系结构(明确模块)
  • 做出最佳方案

系统设计,详细设计(OOD)

  • 关键任务:怎样具体实现目标系统?设计每个模块的算法和数据结构,然后用相应的工具(UML)表达
  • (分析模式):将需求模式中系统表达成一个物件,包括物件图类别图
  • (设计模式):施展情景,包括循序图、合作图、状态图、活动图

编码Coding(含单元测试)

  • 关键任务:选择语言,将详细设计阶段的结果(算法,数据机构)翻译成程序,然后再进行单元模块测试

二. UML各类图

UML的特点:

  • 统一的标准,OMG标准的建模语言
  • 支持面向对象的建模语言
  • 可视化、表达能力强
  • 独立于软件开发过程
  • 概念明确,建模表示方法简洁、图形结构清晰,容易掌握和使用

UML各图的关系

image-20211125112130852

UML九种图:用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图

UML 语法描述

image-20211124172311840

image-20211124172412936

1. 用例图

  • 用例图(use case diagram)依照需求,描述了系统提供的各项功能单元
  • 用例图是需求分析中的产物,帮助开发人员可视化的了解系统的功能。
事物名称解释UML表示
参与者(Actor)参与者是角色(role)而不是具体的人image-20210918094739774
用例(Use Case)系统功能单元image-20210918094832231
关系解释
关联有时候也用箭头image-20210918094915893
包含箭头指向被包含用例image-20210918094924297
扩展箭头指向扩展用例image-20210918094931349
泛化is aimage-20210918094938586
image-20211124173617558

2. 活动图

  • 活动图是一种**用于描述系统行为**的模型视图。
  • 通常,活动图记录单个操作或方法的逻辑、单个用例或商业过程的逻辑流程
  • 活动图的起点,用黑的实心圆表示。
  • 活动图的重点,用实心圆的空心圆表示。
  • 活动图的任务,用圆角矩形表示。

活动图的组成

活动活动的执行image-20211125231552716
起点活动图的开始image-20211125231632896
终点活动图的终点image-20211125231621499
对象流活动之间的交换信息image-20211125231641838
发送信息发送事件image-20211125231654262
接收信号接收事件image-20211125231704049
泳道活动的负责者image-20211125231712974

活动图的关系

迁移活动的完成与新活动的开始image-20211125231900181
分支根据条件,控制执行方向image-20211125231911002
分叉以下活动可以并发执行image-20211125231920827
结合以上并发执行活动在此结合image-20211125231927677

3. 类图

含义

  • 类图(Class diagram)以反映类的结构(属性、方法或操作),以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。

组成

  • 类的名字(Name)
  • 类的属性(Attribute,Property)
  • 类的操作(Method,Operation)

参数列表

-private
+public
#protected
~package包

关系表示

image-20211124193912491

需求表+用例图

订房系统

1.实体类

  • 顾客
  • 房间
  • 房型
  • 购物车

2.边界类

  • 订房界面类
  • 购物车界面类

3.控制类(逻辑)

  • 订房控制类
  • 购物车控制类

4. 顺序图(循序图、时序图)

  • 循序图表示系统要做某件事情的那段时间内,运作的样子
  • 循序图的重点是在描述一件事情,以及系统要完成这件事情的一连串动作
  • 建立循序图主要基础在[时间顺序]和[合作对象]的概念上

组成元素

image-20211125233218887

面向对象

对象(Object)

  • 对象是一件事、一个实体、一个名词…
  • 对象有属性、行为

类(Class)

  • 类是对象的抽象描述

设计模式

什么是设计模式

  • 设计模式讲的是别人千锤百炼出来的精华(也就是被反复使用的一种代码设计经验),它传授的是一种思想,是一种脱离语言的编程习惯
  • 对于没有太多经验的程序员,如何写出简洁优雅,可复用性搞,可扩展性强,高内聚低耦合的代码至关重要。

image-20211114141020603

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值