当前课程知识点:软件理论与工程 >  第2章 需求分析 >  2.5 面向对象建模 >  2.5 面向对象建模

返回《软件理论与工程》慕课在线视频课程列表

2.5 面向对象建模在线视频

下一节:3.1 设计概述

返回《软件理论与工程》慕课在线视频列表

2.5 面向对象建模课程教案、知识点、字幕

大家好

那我们今天开始

软件理论与工程

第二章第五节

面向对象建模

我是主讲老师高广宇

那我们前面呢

其实我们上一章讲的是

这个过程建模的一些相关内容

我们这一章呢

其实是对应到面向对象分析

里面一些内容 对吧

我们首先回顾一下

什么是面向对象分析

我们知道呢

任何一个系统

它都是能够呢

完成一系列相关目标和任务的对象

而对象呢

它完成一个任务时

会请求一系列其它的对象

来帮助完成一些子目标

所以呢

当我们以对象

作为一个基本的元素

或者实体来理解一个系统

或者一个问题的时候

那它所采用的方式

就所谓的

面向对象的一些分析

当然在面向对象分析里面的话呢

它的一个计算的实体是对象

它的一些层次关系呢

包括像聚合 继承 关联 对吧

当然还有一些组合的

一些接口 对吧

就是一个对象

所暴露的一些接口

这是关于面向对象分析

那我们在整个

需求分析的过程中

面向对象分析

我们前面提到

它主要是依赖于像UML语言

来开展一个面向对象的

一个需求建模

所以面向对象的建模呢

是一种用于辨识系统环境中的对象

以及对象之间关系的一个技术

UML的一些这个

各种各样的一些模型

概括起来是包括像对象模型

用例模型

行为模型

以及对象约束语言等等 对吧

重要的就是前面的几大类 对吧

我们后面会略带的

根据我们讲的内容做一些

这个具体的介绍

大概关于UML语言

它这十几类具体的

这个模型和图表

大家自己去

这个课下 去自己学习

那今天呢

我们主要从这个技术路线

领域模型建模

行为模型建模三个方面呢

进行一个探讨和介绍

首先呢

是面向对象建模的一个技术路线

那通常来说呢

我们可以从五个步骤

五个方面来进行一个

这个对象建模

首先呢

我们要从用例描述中

去识别出对象和类

因为我们前面提到了

我们在需求获取阶段

我们有时候会得到一些

用例的一些描述 对吧

那第二个呢

我们要分析用例的一些描述信息

去添加呢

第一步定义的这个类

它的一些属性

和不同类与类之间的一些关联

第三个呢

我们要从用例描述中

去识别一个系统

它的一些什么样的行为

因为我们知道呢

在面向对象的这个过程中

我们需要去定义对象和类

我们同时呢

对于这个类和对象呢

它通常是包括

属性和行为两大类的 对吧

所以第二个步骤

我们要去识别它的一些属性

还有类与类之间的关联

那第三个呢

我们需要去识别它的一些行为

这个当然是有助于我后面

我们在设计和实践阶段

去实现它相应的

一些函数和类接口了 对吧

那第四个呢

我们将系统行为

要分配给这个类

第五个呢

我们是要综合考虑

类的一些属性和行为

去细化类的职责

建立完整的一个对象模型 对吧

要包括向下面这个图里面

我们看到

因为整个需求工程

它接下来面临的就是说

需求设计和软件实现的一些内容

所以在需求工程阶段

我们采用面向对象

进行建模之后

得到的一些模型

其实是很容易在设计和实现阶段

很自然的对接到面向对象的

一些软件设计

和软件实现的

就是关于这一步的

那我们对于面向对象分析的

一个结果来说呢

它通常是要建立一个领域模型

和一个行为模型

那关于这个领域模型和行为模型呢

那我们接下来

分别进行一个介绍

领域模型建模呢

通常呢

就是说我们要发现对象和类

然后呢

要建立类与类之间的关联

要添加类的重要属性

这就是所谓的

建立这个领域模型 对吧

当然发现对象和类的话呢

也有各种各样一些方法

比如这里面提到的

像概念类分类列表

名词分析

行为分析等等 对吧

那领域模型建模的第一个步骤

通常是要去发现对象和类

从哪里去发现

当然是从前面我们提到的

需求获取得到的一些

这个需求获取的结果 对吧

或者是我们以及模型化

表示的一些图 表 文档

所以呢 如果候选对象

既维持一定的状态

又依据状态表现一定的行为

那么它就应该是

一个独立存在的对象 对吧

同时呢 如果候选对象

只有状态 没有行为

那么我们就要去分析它这个状态呢

是不是系统需要的这个数据 对吧

当然如果不是

那这个候选对象

就应该被摒弃 对吧

只有是

它才能够被继续

作为一个对象或者类来存在

同时 这里面我们也要需要注意

实体关系建模思想

有时候我们也有误区 对吧

所以说呢

大家需要这个借鉴

面向对象里面的一些方法

来做这个问题

那领域模型建模里面

发现对象和类

有各种各样的一些方式

第一种方法来说呢

是通过概念类分类列表对吧

这种方式呢

就是说 我们事先呢

给出一个概念类的

一个分类列表

然后呢 依据这个列表

到我们需求获取的这个材料

或者文档中去

找相应的这些对象

那第一类方法呢

就是这个概念类的分类列表

这个概念类分类的列表

它通常的做法是说呢

我们首先呢

定义一个概念类的分类列表

然后呢

到我们需求获取的这个文档

或者说是模型中呢

依照这个概念类列表

去发现对象

比如这里面

图示里面

我们会有这么一个列表 对吧

然后有各种各样的一些

这个字段和字节

那第二类方法呢

是这个名词的分析

那从这个字面上

其实也很容易理解

就是我们

从文本描述中呢

去识别有关的名词和名词短语

为什么呀

因为我们知道对象

它其实就是一个

名词的一个实体

所以呢 通常来说

只有名词对应的

才有可能是对象

所以说呢

我们可以从名词分析的角度上去

从文本中去

发现一些这个对象 对吧

比如说我们这个图示中

有这么一个用例描述

大家可以去看一下

首先顾客

这个携带商品怎么样 怎么样

那我们就能知道

顾客是一个名词

而且呢 在这个里面

可能还多次出现

所以呢 我们知道顾客

其实就可以作为一个对象 对吧

当然了 并不是所有的名词

都可以去作为对象

所以这里面

当然还会有一些摒弃的对象

这个大家可以结合前面

提到了它的一些系统行为

是不是它的一些行为

是不是系统所需要的来判断 对吧

那我们再确定了

这个类和对象之后呢

我们接下来就是

建立类之间的一些关联

我们要保证类之间的协作

所必须的这个可见性 对吧

因为我们前面提到

面向对象的这个分析里面

我们通过定义对象

和类与类之间的交互

才能去对整个系统

它的一些逻辑关系结构进行描述

那其次呢

我们也不要在关联的识别上

花费太多的时间 对吧

因为识别概念类

比识别关联的更加的重要 对吧

就是关于这个

我们实现类协作

必要的一些信息

当然是包括像协作的

一些条件 输入 结果

或者说记录过程

我们要使用用户的描述方式

不进行类型和约束的

一个严格定义

如这里 这是一个图示

我们在定义这个类的一些

重要的一些属性 对吧

这个 就刚才说的

我们要用户的描述的方式

去寻找它的一些重要的

一些基本信息

和一些属性 对吧

那第三个来说呢

我们有了领域模型之后

我们要去进一步定义

它的一些行为模型

行为模型

大家能看到它的重点

在行为两个字

所以呢

它涉及到一个动态的一个变化

它的一个时间上的一些操作 等等

一些流程等等 对吧

所以呢 建立行为模型呢

通常是要建立系统的一些

比如说顺序图 对吧

在需要时呢

我们还需要建立详细的交互图

以及呢 用例的状态图

活动图等等 对吧

当然在有的时候

我们还需要为系统那些行为

去添加一些契约的说明 对吧

以及辅助说明的一些内容

那行为模型建模里面

这个比较重要的一个

就是要建立交互图 对吧

建立交互图的一个上下文环境

它通常指的就是说

它的一些前置或者后置条件

应该要被分配给交互图的

相应的一些行为

而且呢 既然是交互

那我们就要找出

参与交互的一些什么 对象

所以呢 交互图中的参与对象

应该和领域模型中的

这个知识要保持一致

也就是这个对象

来自于我们前面提到的

领域建模所得到的一些类和对象

第三个呢

我们还需要根据发现的对象

以及它们的关联来建立

我们整个完整的

一个交互图的一个框架

最后呢

我们去添加一些详细的信息

去描述不同的对象之间的一些

整个的一些交互行为 对吧

然后 最后我们要进行

消息的一些标识

包括呢 像转化图的

一些详细描述等等 对吧

将整个这交互图它的信息补全

使得它成为一个

比较完整的一个模型

那除了交互图以外

另外还有一类比较重要的

就是所谓的什么状态图

同样的话呢

状态图也需要去确定

它的一个上下文的环境

也就是说呢

我们要去搞清楚

状态的主体

它常见的一些状态主体有哪些

像类 用例对吧 等等

包括有时候像整个系统

那还有呢

我们要去识别状态

我们要去标记它的

初始状态和结束状态

也就是说呢

可能会不存在

确定的初始状态和结束状态

那这个时候

我们就需要去甄别 对吧

第三个呢

我们要建立状态的转换

也就是说呢

不同的状态之间随着时间

或者随着一些触发事件

它怎么去做一些

这个状态的一个变换 对吧

最后呢 我们要像前面一样

我们要去补充详细的信息来完善

我们整个的一个状态图

那同样的呢

我们这个行为模型里面

还有一类

就是所谓的活动图

活动图也是一样

首先确立它的上下文环境

也就是说呢

我们要界定业务流程的

一个处理界限

其次呢 我们需要去分析

业务流程中的主要处理步骤

然后呢 还包括它的一些

主要的数据流

最后我们要进行职责的一个分配

将业务流程的处理步骤呢

要划分到不同的泳道

和不同的这个流程上去 对吧

然后最后我们还要添加

活动图的一些详细信息

去完善活动图的一个描述

但这里面这个

提到的像泳道

等等这些名字

在UML里面

对于活动图定义的时候

一个专用词汇

跟咱们平时的这个还不一样

大家可以再去细化

自己再去看一下

好 那我们关于

面向对象建模这一节呢

我们今天就讲到这

那我们整个第二章呢

到这为止呢

也已经讲完了

好 谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

2.5 面向对象建模笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。