软件工程复习笔记 类图

类图

  • 前言
  • 1 类图的概念
    • 1、类图
    • 2、类图的作用
    • 3、类图的组成元素
  • 2 UML中的类
    • (1)类的定义
    • (2)类的表示
    • (3)类的命名
    • (4)类的属性
    • (5)类的操作
    • (6)类的职责
    • (7)类的约束
  • 3 类图中的关系
    • 关联(association)
      • (1)关联名
      • (2)角色
      • (3)多重性
      • (4)导航性
    • 包含
      • 聚合
      • 组合
    • 泛化
    • 实现
    • 依赖
      • 关于依赖
      • 神州飞船
      • 运算类
      • 简易画图软件
      • 小李打妖怪
      • 老张开车去东北
  • 4 阅读类图
      • 电子商务 站的静态模型
    • 读图过程
      • 增强的辅助建模元素
  • 5 如何建立类图
    • 1、类图的抽象层次
    • 2、建立类图的步骤
    • 3、寻找类的方法
      • *使用名词/动词寻找类:*
      • *使用CRC分析法寻找类:*
      • *根据边界类、控制类、实体类帮助分析系统中的类:*
      • 需求描述
      • 发现类
      • 筛选备选类
      • 得到候选类
      • 职责分析
      • 限定与修改
  • 补充
    • 递归关系
    • 三角关系
    • 识别关联类
    • 关于画类图

前言

       copy自老师的PPT,不只有知识点,还有一些相关内容的介绍顺便复制进来了。 如有问题请多指教

1 类图的概念

1、类图

类图是描述类、协作(类或对象间的协作)、接口及其关系的图。
类图是逻辑视图的重要组成部分,用于对系统的静态结构建模,涉及到具体的实现细节。

  • 在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;
  • 在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;
  • 在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。

2、类图的作用

类图常用来描述业务或软件系统的组成、结构和关系。

3、类图的组成元素

  • 接口
  • 协作
  • 关系
  • 注释
  • 约束

2 UML中的类

类的表示

(1)类的定义

类是具有相似结构、行为和关系的一组对象的抽象。

(2)类的表示

(7)类的约束

约束指定了类所要满足的一个或多个规则。 在UML中,约束是用花括 括起来的自由文本。

  • 关联两端的类可以某种角色参与关联;
  • (4)导航性

    • 用箭头显示导航性;
    • 描述源对象通过链接访问目标对象;

    组合

    • 是一种特殊形式的聚合(强聚合),聚合中的每个部分只能属于一个整体;
    • 表示类之间整体和部分的关系。
      • “弱”包含表示如果部门没有了,员工也可以继续存在;
        “强”包含表示如果部门没有了,员工也不再存在。

      实现

      • 表达一种说明元素与实现元素之间的关系;
      • 类和接口之间的关系是实现关系,表示类实现接口提供的操作

      关于依赖

      假设你正在设计一个能显示公司全体成员的制表系统,公司的员工可以填写这个系统中的电子表格。员工要选择菜单来填写表格。在你的设计中,有一个Syetem(系统)类和一个Form(表格)类。System类的众多操作中有一个displayForm(f:Form),系统所要显示的表格取决于用户选择的表格。
      这种设计的UML表示法可以画成如下

    运算类

    4 阅读类图

    阅读顺序应遵循的原则

    • 先看清有哪些类;
    • 然后看看类之间存在的关系;
    • 读图过程

      • 读出类:
      • 读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。
        1. OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。
        2. Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。

      多重性:用来说明关联的两个类之间的数量关系

    增强的辅助建模元素

    • 导航箭头:类的实例之间只能沿着导航箭头的方向传递 ,在Order中可以获取其相应的Consignee,而从Consignee中是无法了解与其相关的Order的

    2、建立类图的步骤

    1. 分析问题域,确定需求;
    2. 寻找类,确定类的含义和职责;
    3. 定义类的属性和操作;
    4. 确定类之间的关系;
    5. 精化类和类间的关系;
    6. 绘制类图。

    3、寻找类的方法

    使用名词/动词寻找类:

    1. 收集相关信息
    • 补充的需求规格说明
    • 用例
    • 项目说明文档
    • 其他文档
    1. 分析信息
    • 名词、名词短语       类或属性
    • 动词、动词短语       操作

    使用CRC分析法寻找类:

    C-class(类)
    R-responsibility(职责)
    C-collaboration(协作)
    CRC分析法是根据类所要扮演的职责来确定类。

    根据边界类、控制类、实体类帮助分析系统中的类:

    UML中类有三种主要的版型:边界类、控制类和实体类。

    • 边界类:位于系统与外界的交界处。如:窗体、对话框、 表、以及表示通讯协议的类、直接与外部设备交互的类。
    • 实体类:保存要放进持久存储体的信息。持久存储体就是数据库、文件等可以永久存储数据的介质。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。
    • 控制类:是控制其他类工作的类。

    需求描述

    发现类

    筛选备选类

    • “李小平”、“人”、“家里”很明显是系统外的概念,无须对其建模;
    • 而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;
    • “功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;
    • “计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义;
    • “外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”—借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”;
    • “购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类—书籍列表,也就是执行统计的主体。

    得到候选类

    在使用“名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字 。

    限定与修改

    • 导航性分析:Book与BookList之间、BorrowRecord和BorrowList之间是组合关系均无需添加方向描述,而Book与BorrowRecord之间则是双方关联,也无需添加。
    • 约束:Book对象创建后就不能够被删除只能被修改,因此在Book类边上加上用自由文本写的约束 ;一本书要么属于计算机类,要么属于非计算机类,因此在ItBook和OtherBook间加了 “{Xor}”约束。
    • 限定符:一本书只有一册,因此只能够被借一次,因此对于一本Book而言只能有一个RecordId与其对应。

    • 文件夹里也可以有文件夹呀,这个怎样表示/li>
    • 关于画类图

      • 直线、几对几的关系、角色、箭头可以搭配使用,只要能准确反映出业务关系就可以了。
      • 做软件需求分析时,如果觉得两个业务概念之间有联系,但暂时不能确定具体是怎样的,那么就先画一条线将两者连起来再说,随着你对业务的理解,这条线会进一步具体化,你可以为这条线添加更多的元素。

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月18日
下一篇 2020年11月18日

相关推荐