C++之UML学习笔记

  1. 软件建模概述
    1.1 什么是建模
    任何事情都要想清楚了才能去做,软件开发更是如此。写代码过程中不可能一上来就盲写代码,必须搞清楚基本问题:要做什么?做成什么样?怎样去做?
    1.2建模规则
    选择建立什么样的模型对如何发现和解决问题具有重要的影响。
    每个模型可以有多种表达方式,使用者的身份和使用的原因是评判模型好坏的关键。
    最好的模型总是能切合实际,模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节。
    1.3软件建模的实现过程
    软件建模的作用是把现实世界的问题转化为计算机可以理解和实现的过程。
    软件建模的实现过程是从需求入手,用模型表达分析设计过程,最终将模型映射成软件实现。

  2. UML
    (1)UML(United Modeling Language,统一建模语言):是一种面向对象的可视化建模语言。
    (2)UML采用了一组形象化的图形(如类图)符号作为ui建模语言,使用这些符号可以形象的描述系统的各个方面。
    (3)UML通过建立图形之间的各种关系(如类与类之间的关系)来描述模型。
    2.1 UML一共有10种图。
    2.2 UML中的关系
    UML中的关系主要包括4种:关联关系,依赖关系,泛化关系,实现关系

  3. 用例图
    (1)用例图(Use Case Diagram):也称为用户模型图,是从软件需求分析到最终实现的第一步,它是从客户的角度来描述系统功能。
    参与者:与系统打交道的人或其他系统即使用该系统的人或事物。在UNL中用人形图表示
    用例:代表系统的某项完整的功能。在UML中使用一个椭圆来表示。
    关系:定义用例之间的关系—泛化关系,扩展关系,包含关系。
    3.1用例之间的关系------泛化关系
    泛化关系:表示同一业务目的(父用例)的不同技术实现(各个子用例)。在UML中,用泛化化用一个三角箭头从子用例指向父用例。
    3.2用例之间的关系----包含关系
    一个用例可以包含其他用例具有的行为,并把它包含的用例行为作为自身行为的一部分,在UML中包含关系用虚线箭头加""<<include>>"",箭头指向被包含的用例。
    3.3用例之间的关系-----扩展关系
    如果在完成某个功能的时候偶尔会执行另外一个功能,则用扩展关系表示。在UML中扩展关系用虚线箭头加 “”<<extend>>"",箭头指向被扩展的用例。

  4. 类图
    类图是面向对象系统建模中最常用的图,是定义其他图的基础。
    类图主要是用来显示系统中的类,接口以及它们之间的关系。
    类图包含的主要元素有类,接口和关系,其中关系有泛化关系,关联关系,依赖关系以及实现关系。在类图中也可以包含注释和约束。
    4.1类的表示法
    (1)类是类图的主要组件,由三部分组成:类名,属性和方法。在UML中,类用矩形来表示,顶端部分存放类的名称,中间部分存放类的属性、属性的类型及值,底部部分存放类的方法,方法的参数和返回类型。
    (2)在UML中可以根据实际情况有选择的隐藏属性部分或方法部分或两者都隐藏。
    (3)在UML中,共有类型有“+”表示,私有类型用“-”表示,保护类型用“#”表示。UML的工具开发商可以使用自己定义符号表示不同的可见性。
    在这里插入图片描述
    4.2类之间的关系-泛化关系
    1、在UML中,泛化关系用来表示类与类,接口与接口之间的继承关系。泛化关系有时候也称为“is a kind of”关系。
    2、在UML中泛化关系用一条实线空心箭头由子类指向父类。
    在这里插入图片描述
    4.3类之间的关系-实现关系
    在UML中,实现关系用来表示类与接口之间的实现关系
    在UML中实现关系用一条虚线空心箭头由子类指向父类。
    在这里插入图片描述
    4.4 类之间的关系-依赖关系
    对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系。
    例如:人依赖车去上班,人和车相互依赖,车又不属于人,car作为形参传入person
    在这里插入图片描述
    在这里插入图片描述
    4.5 类之间的关系-关联关系
    对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。
    在这里插入图片描述
    车作为人的一部分。
    在这里插入图片描述
    4.6关联关系的名称
    关联关系可以有一个名称,用于描述该关系的性质。此关联名称应该是动词短语,因为它表面源对象正在目标对象上执行操作。
    在这里插入图片描述
    4.7关联关系的角色
    当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色。具体来说,**角色就是关联关系中一个类对另一个类所便你先的职责。**角色名称是名词或名词短语。
    在这里插入图片描述
    4.8关联关系的多重性
    关联关系的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围,特定值,无限定的范围。
    在这里插入图片描述
    4.9类之间的关联关系-聚合
    1、聚合关系是关联关系的一种,是更强的关联关系。
    2、聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
    3、聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
    在这里插入图片描述
    4.10类之间的关联关系-组合
    (1)UML类图关系中合成关系是关联关系的一种,是比聚合关系还要强的关系。
    (2)代表整体的对象负责代表部分对象的生命周期。
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值