当前课程知识点:软件工程 >  第8章 用例建模 >  8.3 用例建模精讲 >  讲课视频

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

讲课视频在线视频

下一节:讲课视频

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

讲课视频课程教案、知识点、字幕

在这一小节中 我们将针对

用例建模过程的默认规范

和需要注意的细节进行介绍

用例建模的一个重要环节

就是要明确系统的边界

系统边界是指一个系统所包含的

所有系统成分

与系统以外各种事物的分界线

系统边界的选择

会影响用例和参与者的定义

以一个零售店销售管理系统为例

这个系统需要记录销售

及付款情况

包含了硬件设备以及运行的软件

系统的重要功能是自动收款

快速准确地销售情况统计及分析

还有自动化的库存管理

第一种设计方式是将收银员

和顾客同时设置为

系统外部的参与者

在这种方式中

他们共同拥有的用例是购买物品

登录以及退货等三个用例

在第二种设计方案中

将整个零售店作为系统内部结构

在这种情况下

只有客户作为外部参与者

与这个系统进行交互

进行购物或退货两种操作

在第三种方式中

涵盖了系统后台管理部分的描述

因此添加了管理员和经理的角色

通过这三个例子可以看到

不同系统边界定义决定了

与系统交互的对象

参与者与系统的交互方式

进而影响了用例模型的设计

在确定了系统边界之后

我们需要寻找参与者与用例

在定义用例时

大家往往会犯这样的错误

就是将用例定义

与功能分解相混淆

人们在解决复杂问题时

往往习惯将问题分解为

粒度较细 更为独立的部分

不同部分组合之后

形成原始问题的

一个完整解决方案

在计算机领域里

我们称之为功能分解

这样的方式

使得需求的每一个分解部分

丧失了其上下文语境

划分的越详细

每一个部分就越细小

那么就需要更多的接口

连接这些分解的部分

这样的定义方式

是存在很大的隐患的

在需求的定义中

非常需要上下文语境信息

因此用例绝对不是

功能分解的过程

我们通过用例描述需求

在详细程度上

与功能分解的效果是一致的

但是干系人的需求

是基于一定语境下才有意义

所以用例是综合了所有功能

一起来描述系统是如何使用的

包含了丰富的语境信息

我们通过一个例子

来区分这两者之间的区别

这张图给出的是ATM机的

一个功能分解

它将每一个步骤都详细地划分

然而在正确的用例建模中

我们应该将这些概念

抽象为取款 转账和存钱

这三个用例进行描述

接下来让我们来看一下

这两者之间到底有什么区别

通过功能划分的方式

我们会得到很多细小的用例

这些用例往往没有实际的价值

而且在命名时

往往是通过“操作”+“对象”
“功能”+“数据”的

方式进行定义

例如“插入卡片”这个用例描述

通过这样的用例

我们很难理解整体的模型

那我们该如何避免呢

首先我们要寻找更大的应用场景

就是要思考

我们为什么要构建这个系统

同时我们应该

从一个用户的角度出发

用户希望通过这个系统

达到什么样的目的

满足哪个用户的目标

这个用例的意义到底是什么

可以为参与者提供哪些价值

以及这个用例背后

代表的用户故事是什么

通过不断询问自己这几个问题

来帮助我们寻找正确的用例定义

在定义复杂的系统时

我们往往还需要考虑

用例与用例之间的关系

这些关系有包含关系

以及扩展关系

那我们在什么情况下

会使用包含关系呢

当多个用例有共享行为时

我们则需要考虑

使用包含关系

我们将为共享行为单独创建用例

为相关的用例进行包含

例如权限检查

这是一个非常普遍的操作

例如说在ATM机中

我们无论进行什么操作之前

都要对用户的身份进行验证

这就是一个包含关系的样例

与之相对的就是扩展关系

那么何时使用扩展关系呢

如何我们发现两个用例

非常地相似

只有少许额外的部分不同时

则可考虑扩展关系

我们将代表普遍

或基本行为的情况

定义为一个用例

将特殊的 例外的部分

定义为扩展用例

例如图中所示 在ATM机中

当用户选择了帮助时

我们会进行联机帮助

这个扩展用例

所以在定义扩展用例关系时

我们需要说明扩展条件

以及扩展点

以上就是用例建模过程中

需要主要的几个重要方面

这张图给出了用例建模中

可能会使用的图标

对于用例建模而言

没有绝对正确的答案

我们要做的

只是满足用例建模的相关约束

符合一定的建模风格

将用户的需求表达清楚

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

讲课视频笔记与讨论

也许你还感兴趣的课程:

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