UML基础——Thinking in UML读书笔记(一)

UML基础——Thinking in UML读书笔记(一)

UML的意义

什么是UML

统一建模语言(Unified Modeling Language)起始于面向对象的分析方法,由Booch, Jacobson, Rumbaugh三人将各自的方法统一起来,从而提出统一建模语言。UML作为一种建模用的语言,由基本词汇以及语法两部分组成。UML定义一些建立模型需要的,表达某种特定含义的基本元素,即元模型。UML也定义元模型之间相互关系的规则,用以建立模型来映射现实世界。这些规则和图形被称为表示法或视图(View),也就是语法。
统一语言:将需求,设计,代码分由不同的团队处理。为了不同团队的顺利沟通,使用统一的语言来覆盖整个软件过程,允许人与机器都能读懂。
可视化:由于人脑对图形的接受能力较强,采用可视化的方式呈现。UML通过其元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的,隐晦的潜台词使用简单直观的图形表达和暴露出来。
UML解释,以汽车为例

从现实世界到业务模型(通过UML)

数学建模:解决某个问题而建立的一个数学模型,通过数字计算来分析和预测,找到解决问题的方法。
广义上的建模:人们解决现实世界问题的一种常用手段。通过对客观事物建立一种抽象的方法,用来表征事物并获得对事物本身的理解,再把这种理解概念化,并将这些逻辑概念组织起来,形成对所观察的对象内部结构和工作原理的便于理解的表达。
因此,模型应该有:

  1. 有一个论述过程,使得建立过程是严谨的。
  2. 结果可追溯和验证的。
软件建模:严谨的+可追溯+验证的=描述清楚需求+容易转化为计算机。

UML采用参与者的元模型作为信息来源提供者(也就是客户),采用用例的一种元模型来表示驱动着的业务目标(参与者的目标)。用例的实现方式,通过业务场景(business scenario)以及用例场景(use case scenario)的UML视图描绘(也就是规则)。UML最后通过业务对象模型(Business Object Model)的视图说明达成目标的过程中涉及到的事物,采用逻辑概念来表示(也就是物)。UML由此将人事物规则模型化。

从业务模型到概念模型

原始需求信息(业务模型)到可执行代码还有一定的距离。必须将其转化为可以知道开发的表达方式。UML通过概念化的过程来建立适合计算机理解和实现的模型——分析模型(Analysis Model)。分析模型介于原始需求和计算机实现之间,是一种过渡模型,上可映射原始需求,下可为计算机实现规定一种高层次的抽象。
分析模型最主要的元模型有:边界类(Boundary,决定外部能对里面做什么),实体类(entity,映射参与者完成业务目标所涉及的事物,可重新归纳和组织信息,建立逻辑关联,添加那些实际业务中不会用到的,但是执行计算机逻辑时需要的控制信息),控制类(control,表述原始需求中的动态信息,也就是动作)。
在这个阶段,通过对这些分析类在不同的视角上进行归纳和正例,以表达软件所要求的的一些信息(包,组件以及节点),软件架构和框架也在这个阶段产生。

从概念模型到设计模型

概念模型让我们获得软件的蓝图,获得建设软件所需要的所有组成内容以及建设软件所需要的所有必要细节。
设计模型的工作:建造零部件,组成所需要的软件。在大多数情况下实现类可以简单地分析类映射而来。其中,概念模型中的边界类妆花为操作界面或系统接口;控制类转化为计算程序或控制程序(工作流);实体类转化为数据库表、xml文档或者其他带有持久化特征的类。转化过程一般可以遵循:软件架构和框架,编程语言,规范或中间件。

在这里插入图片描述

统一过程(RUP,Raioinal Unified Process)简介

统一过程:归纳和继承软件开发活动的最佳实践,定义软件开发过程中最重要的阶段和工作(四个阶段,九个核心工作流),定义了曾参与软件开发过程中的各种角色和他们的职责,且定义了软件开发过程中产生的工件(成果物或者制品,在软件生产过程中任何留下记录的事物),并且提供了模板。最后,采用演进式软件生命周期将工作、角色和成果串联起来,形成统一过程。
统一过程是一个庞大和复杂的知识体系,囊括了软件开发这一生产过程所需要知识的方方面面,是一种重量级的方法,主要适用于中大型软件开发。

建模基础

建模(Modeling)

建模:通过对客观事物建立一种抽象的方法用以表征事物兵获得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察的对象的内部结构和工作原理的便于理解的表达。
两个问题:(1)怎么建?(2)模是什么?
怎么建取决于你选择的抽象角度,即建立这个模型的目的是什么。“模是什么”依赖于确定了抽象角度下的场景模拟,基于场景模拟,找出抽象的对象。模=静态的事物(物)+特定的条件(规则)+特定的动作(参与者的驱动)=特定的场景(事件)
公式如下:
建模相关公式

用例驱动(统一过程)

用例驱动是统一过程的重要概念,整个软件生产过程就是用例驱动的。解决问题领域的方式就是归纳出所有的抽象角度(用例),为这些用例描述出可能的特定场景,并且找到实现这些场景的事物规则以及行为。一旦用例实现,问题领域就解决了(用例驱动的原理)。
用例驱动视图如下。表明用例可以驱动的内容包括逻辑视图,进程视图,部署视图,以及实施视图。

  1. 逻辑视图:(系统中只有一个)以图形方式说明关键的用例实现、子系统、包和类,它们包含在构架方面具有重要含义的行为,即建模公式化中的那些人、事、物、规则是如何分类组织的
  2. 进程视图(系统中只有一个)用于理解系统的进程组织,以图形方式说明了系统中进程的详细组织结构,其中包括类和子系统到进程和线程的映射,即建模公式中的人、事、物、规则是如何交互的及其关系
  3. 部署视图以图形方式说明过处理活动在系统中各节点的分布,包括进程和线程的物理分布,即建模公式中的人、事、物。规则是如何**部署在物理节点(主机、网络环境)**上的。
  4. 实施视图:用于获取为实施制定的架构决策。内容包括模型中的子系统,子系统如何组织为层次和分层结构的构件图,描述子系统见导入依赖关系的图解。用于分配工作,估算代码量,阐明大规模复用理由,考虑发布策略。
    用例视图

抽象层次(面向对象)

抽象层次的特征: 抽象层次越高,具体信息越少,概括能力越强;反之,具体信息越丰富,结果越确定,但相应的概括能力越弱。
抽象有两种方法:一是自顶向下(便于理解),另一种是自底向上(用于在实践中改进和提高认识)。

视图(UML建模)

视图用于组织UML元素,表达出模型某一方面的含义。视图的准确应用是建立好模型的一个重要组成部分。对于视图所呈现的信息,选择视角(观察事物的角度)很关键。建模的核心在针对不同的人员展示他们所关心的那一部分视角。

对象分析方法

对象分析方法的特点:

  1. 一切都是对象。

  2. 对象都是独立的。对象与对象之间天然独立,只是在某个特定的场景下,他们的某一个特定的实例才互相联系在一起。因此,如果要深入了解对象,就是分析多个该对象的实例所参与的场景,以获得对象的多个侧面,再通过归纳整理该对象的多个实例抽象出对象的一般特性。这就是对象的分析方法,也是UML为对象建模的方法。

  3. 对象具有原子性。对象是不可分割的原子,在与其他对象交互时就是一个整体。对于对象的认识分析应该仅仅基于对象的边界,在实现这个对象之前不理会内部的细节。以上就是面向接口编程思想。

  4. 对象是可抽象的。对象在参与一个场景时会展现出某一个方面,将该方面抽象出来,让其作为对象的一个代表来参与场景的交互。对象所具有的方面,越多,对象越有抽象的价值。

  5. 对象都有层次性。层次越高,描述越是粗略但适应能力越广;层次月底则描述越精准,但适应能力越下降。在分析过程中,设定适合的抽象层次,在每个层次上适合的抽象成都的对象描述,可有效地减少分析的难度和工作量。
    对象分析方法

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值