UML建模

SunnyDusk Lv3

软件建模原理

一、面向对象设计与UML

1. 面向对象的基本概念

  1. 概念
    对象为基础;以事件或消息驱动对象执行处理的程序设计技术,是自上而下的程序设计方法;
  2. 对象(object)
  3. 类(class)
    具有相同属性和操作的对象组合;
  4. 消息(message)和事件
    消息:是指描述事件发生的信息,对象间相互联系和作用的方式;
    消息的构成:
    • 消息的发送对象
    • 消息的接收对象
    • 消息传递方式
    • 消息内容(参数)
    • 消息的返回
      事件:是一种系统预先定义而由用户或系统发出的动作,作用于对象,对象识别事件并做相应反映;

2. 面向对象的三大要素

  1. 封装(Encapsulation)
    把对象的状态和行为绑到一起,将对象形成独立的整体,尽可能隐藏对象的内部细节;
    封装的含义:
    (1). 将对象状态和行为结合形成整体,其中私有属性只能由对象的行为来修改和读取;
    (2). 尽可能隐藏内部细节,与外部联系由外部接口实现;
  2. 继承(Inheritance)
    连接类与类之间的层次模型,指特殊类的对象有一般类的属性和行为;
  3. 多态(Polymorphism)
    两个或多个属于不同类的同一函数名对应多个具有相似功能的不同函数,可使用相同的调用方式来调用具有不同功能的同名函数;

3. 面向对对象与项目设计

  1. 面向对象
  2. 用面向对象的方法设计系统
    设计准则
    • 模块化
    • 抽象
    • 信息隐藏
    • 低耦合和高内聚

4. 用面向对象思想建立系统模型

  1. 瀑布模型
    又称生存周期模型,核心思想将相应的工序问题简化,将系统功能的实现与设计工作分开,便于分工与协作;
    软件生命周期可分:
    • 软件计划
    • 需求分析和定义
    • 软件设计
    • 软件实现
    • 软件测试
    • 软件运行和维护
  2. 喷泉模型
    一种以对象为驱动,以用户需求为动力;用于描述面向对象的软件开发过程
    自下而上周期各阶段相互重叠和多次反复
    喷泉模型开发过程
    喷泉模型开发过程
  3. 基于组件的开发模型
    基于构件的开发模型利用模块化方法将整个系统模块化;
    组件开发过程
    组件开发过程
  4. XP开发模型
    敏捷方法强调适应性而非预测性,以人为中心,不以流程为中心;
    特点:
    • 轻载
    • 基于时间
    • 紧凑
    • 并行并基于构件
      规定了一组核心价值和方法,消除大多数重量型开发过程中不必要产物,建立渐进型开发过程
      XP方法的软件开发过程
      XP方法的软件开发过程

二、UML通用知识点

1. 常用UML元素分析

  1. 视图
    UML是用模型描述系统的结构或静态特征以及行为或动态特征的,它从不同的视角为系统的架构建模形成系统的不同视图;
    UML主要视图静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图
    • 静态视图
      类元关系有关联关系,泛化关系、依赖关系
    • 用例视图
      描述系统参与者与系统进行交互的功能;
      一个用例是系统的一个功能单元,是系统参与者与系统之间进行的一次交互作用;
    • 交互视图
      描述执行系统功能各角色之间互相传递消息的顺序关系;
      显示跨越多个对象的系统控制流程;
      交互视图可以使用序列图协作图表示;
    • 状态机视图
      通过对象的各种状态来建立模型用于描述对象随时间变化的动态行为;
      独立的对象为中心进行描述;
    • 活动视图
      特殊形式的状态机视图,用于描述执行算法的工作流程中涉及的活动;
    • 物理视图
      对应自身的实现结构建模;它提供将系统中的类映射成物理构件和节点的机制;
      其中包含实现视图和部署视图
    • 模型管理视图
      对模型自身组织进行的建模,由自身一系列模型元素构成的报组成的模型;
      整个系统的静态模型实际可看作系统最大的包,直接或间接包含模型所有元素内容;

  2. UML图包括用例图、类图、序列图、状态图、活动图、构件图和部署图
    • 用例图
      描述系统提供的功能单元;绘制某个用例方式用椭圆,用例名称放在椭圆中心或椭圆下面的中间位置
    • 类图
      显示系统的静态结构;可用于表示逻辑类(用户业务所谈及的事物)及实现类(程序员处理的实体);
    • 序列图
      显示具体用例或用例的一部分的详细流程;
      序列图包含:垂直维度(时间维度)、水平维度
    • 状态图
      表示某类所处的不同状态及该类在这些状态中的转换过程;
      符号集包括:初始起点、状态之间的转换、状态、判断点、一个或多个结束点
    • 活动图
      表示两个或更多的对象之间在处理某个活动时的过程控制流程;
    • 构件图
      提供系统的物理视图,根据系统代码构件显示系统代码的整个物理结构;
    • 部署图
      表示软件系统如何部署到硬件环境中,显示在系统中不同的构件在何处合理的运行,以及彼此之间的通信;
  3. 模型元素
    包含事物、关系
    • 事物
      描述一般的面向对象的概念;
      • 结构事物
        描述系统中结构成分;
        包含类、接口、协作、用例、主动类、构件、节点
      • 行为事物
        描述
        包含交互、状态机
      • 分组事物
        描述系统的组织机构;
      • 注释视图
        对模型元素进行意义解释,注释;
    • 关系
      • 依赖关系
        指两个事物之间语义关系(虚线箭头);
      • 关联关系
        是事物之间的结构方式,描述链(对象的连接);
      • 泛化关系
        是事物之间一种特殊/一般关系,(继承);
      • 实现关系
        是UML元素之间的语义关系;(实线箭头);

2.UML通用机制

  1. 修饰
    在UML的图形表示中,每一种模型元素有一个就基本符号,基本符合可视化地表达了模型元素最重要的信息;
  2. 通用划分
    保证不同抽象概念层次的机制,通常采用对类和对象的划分对接口和实现的分离
    • 类和对象的划分
      指类是一个抽象而对象是这种抽象的实例化;
    • 接口和实现的分离
      指接口表明了一个操作接口,但是却不实现其内容,而实现表示了对该操作接口的具体实现,负责如实地实现接口的完整语义;

3.UML的扩展机制

  1. 标记值
    由一对字符串构成,其中包含一个标记字符串和一个值字符串,用于存储有关模型元素或表达元素的相关信息;
    通过标记值可将各种类型的信息都附属到某个模型元素上;
  2. 约束
    用于扩展UML构造块的语义,允许建模者和设计人员增加新规则和修改现有规则;
    可表示UML规范表示中不能表示的语义关系;
    使用大括号和大括号内的字符串表达式表示,约束可以附加在表元素、依赖关系或注释上;

三、Rational统一过程

1. 统一过程的含义

2. 统一过程的结构

  1. 统一过程的静态元素
    通过对其模型元素定义进行描述;
    4个主要建模元素:
    • 角色
      定义个人或由若干人组成小组的行为和责任,是统一过程的中心概念;
    • 活动
      角色所执行的行为;
    • 产物
      被过程产生的、修改,或为过程所使用的一段信息;
    • 工作流
  2. 统一过程动态结构
    统一过程采用五种视图描述架构
    • 逻辑视图
    • 过程视图
    • 物理视图
    • 开发视图
    • 用例视图

3. 配置实现Rational统一过程

  1. 实现Rational统一过程
    • 评估当前状态
    • 建立明确目标
    • 识别过程风险
    • 计划过程实现
    • 执行过程实现
    • 评价过程实现

用例图

1. 用例图

  1. 含义:由参与者、用例及他们之间的关系构成用于描述系统功能的动态视图称为用例图;
  2. 作用:描述参与者和用例之间的关系;

2. 构成要素

  1. 参与者:存在系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象;
  2. 参与者之间的关系:
  3. 系统边界:系统与系统之间的边界;

3. 重要元素

  1. 识别用例
  2. 用例的粒度:用例的粒度越大,用例包含的功能越多,反之包含的功能越少;
  3. 用例规约
    • 简要说明
    • 事件流
    • 用例场景
    • 特殊需求
    • 前置条件
    • 后置条件

4. 重要关系

  1. 包含
  2. 扩展
  3. 泛化

类图与对象图

#

  • 标题: UML建模
  • 作者: SunnyDusk
  • 创建于 : 2024-08-28 06:31:48
  • 更新于 : 2024-09-25 07:07:10
  • 链接: https://www.030706.xyz,https//www.sunnydusk.cn/2024/08/28/UML建模/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论