当前课程知识点:软件工程与软件自动化 >  第四章 对象模型分析 >  4.2 对象模型之一 >  授课视频2/2

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

授课视频2/2在线视频

授课视频2/2

下一节:授课视频1/2

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

授课视频2/2课程教案、知识点、字幕

下面我们来看事物

谁在什么地方干了什么事

这个事物我们来看

事物最简单的就是实际的事物

就是看得见的,名词

看这个场景

顾客拿着商品给收银员

收银员他有一个pos机

这是一个看得见的东西

他把钱放在现金抽屉里面

现金抽屉里面存在着现金,这也是看得见的

从目前来理解,这三种事物我们都有必要

在系统当中给它设计一个对象

这是实际事物

那描述性事物有哪些呢?

那描述性事物有哪些呢?

交税算是一个描述性事物

最后一个事务,注意汉语这个字词的差异

事务表示我们的动作、过程

这里面有个销售

这是一个非常重要的动作

就是一件事,不是一个物

销售卖东西,卖完东西要付款

销售付款的时候这里实际上有个session

有的书上叫会话,有的书上叫对话

这个session记录了每次收银员登录系统工作的整
个过程

销售,我们进一步地考虑

卖东西,我卖当然有退

考虑到退货的问题

退货和销售之间能不能表示成一个类

或者它们俩之间有没有什么特点

你是分成两个类,销售类和退货类

还有没有可能合在一起,比如销售的金额

是负值,表示是退货

有一点大家必须要明确

在商品销售里面

不允许删除记录

比如卖了一瓶酒,不能

让售货员就是我们的收银员把它删掉

系统里不存在

这是不允许的

只可以在退票的时候,我来退货了

我买了瓶酒10元

我再卖一瓶酒,这瓶酒是负10元

就相当于我把这个货给退了

通过这种方式,把退货和销售归成一个销售对象

支付对象比较明确,有现金、支票、记账、信用

支持这四种方式

这是一个很典型的泛化关系

我是一个支付类,派生出四个子类

session,和平常web开发中的session很相似

它记录了收银员登录、销售、支付

最后注销整个过程

我们列出候选的这些类

这些类目前只有名字

还没有属性,也没有方法

也没有补充它们之间的关系

下一步工作就是要组织PD对象

怎么组织PD对象呢?

我们来看,这里也有一些策略和模式供大家参考

大家要把这些模式策略要变成自己的

当要确定对象之间关系的时候

要考虑的顺序是:谁干了什么事?

这个地点发生了什么事?

这件事发生之后又发生了什么事?

这样的话,这两件事,这两个类就有这样一个关

还要考虑地点类

地点类都可以作为容器

这个容器里面有没有其他的容器

然后就是执行者与参与者

下面我们来看一看,在这个系统当中

收银员,参与者是收银员

事务,干什么了

刚才说了有三个事务

销售、支付和session就是对话

收银员开启一个对话

地点与事务,就是在商店里面销售

并且是一个商店对应多个销售

注意这种表达方式

是在UML之前的表达方式

大家要对应起来

事务之后,后续事务

很典型的就是系统登录之后

session里面,销售,销售之后就是支付

这是连续的

内容物,就是商店里面有什么?

有商品,多个商品,有多个收银员,多个pos机

具体展开的话

还要考虑这个容器本身作为内容物

就是我们前面提到的连锁的问题

这里面需要强调的就是事务与事务单项

大家考虑一下,比如说我们的销售

销售这个类记录的是卖了多少商品

每个商品的单价

很明显,在这个销售当中

我是没有办法详细地记录

所以需要再有一个销售单项这个类

这个类可以理解为一个一对多的关系

一个销售里面有多个销售单项

一个销售里面一次销售

每个顾客对应一次销售

这个销售,我买两瓶啤酒,三个面包,两瓶水

每个形成一个单项,这是

内容物与容器,执行者与参与者

收银员这个角色可以由一个人或多个人来使用

这里面大家考虑一种应用的场景

或者是所谓的用户的需求

如果一个收银员可以由多个人来代替

就是来使用这个账号,可以这么来理解

这个账号是多人使用的

我需要记录哪些人可以使用这个账号

是一对多的关系

如果只允许一个账号只能一个人使用

个人信息与收银员的角色或者这个岗位

是一对一的关系

这是根据这样的一种思考的顺序

我们把刚才识别出来的这些对象

简单的给它连线,并指明了它的角色重复度

这里面列出来的话

就大致是这个样子

这些主要的类和类之间的关系就列出来了

注意一点,这里面我们不要着急

去写某个类的属性和方法

大家注意这样的一个工作顺序

就是先识别出一个名词,是类的名字

然后确定类和类之间的关系

我们后面第三步才是确定对象的职责

好,下面我们来看第三类工作

就是确定对象的职责

软件工程与软件自动化课程列表:

第一章 软件工程基础

-1.1 软件工程的前生今世

--开篇阅读

--授课视频

-第一章 软件工程基础--1.1 软件工程的前生今世

-1.2 万变不离其宗

--授课视频1/3

--授课视频2/3

--授课视频3/3

-第一章 软件工程基础--1.2 万变不离其宗

-1.3 唯一不变的是变化

--授课视频1/3

--授课视频2/3

--授课视频3/3

--外部链接

-第一章 软件工程基础--1.3 唯一不变的是变化

-1.4 亡羊补牢为时不晚

--授课视频1/2

--授课视频2/2

-第一章 软件工程基础--1.4 亡羊补牢为时不晚

-扩展阅读与话题讨论

--扩展阅读

--话题讨论

第二章 敏捷开发

-2.1 方法论来源于恐惧

--授课视频

-第二章 敏捷开发--2.1 方法论来源于恐惧

-2.2 敏捷是什么

--授课视频

-第二章 敏捷开发--2.2 敏捷是什么

-2.3 典型敏捷开发方法

--SCRUM敏捷开发方法

--XP敏捷开发方法

-第二章 敏捷开发--2.3 典型敏捷开发方法

-2.4 敏捷不是万能药

--授课视频

-第二章 敏捷开发--2.4 敏捷不是万能药

-专家谈敏捷

--专家谈敏捷开发方法

-扩展阅读与话题讨论

--外部链接

--话题讨论

第三章 OO与UML

-3.1 面向对象核心概念和基本特性

--核心概念与基本特性

-第三章 OO与UML--3.1 面向对象核心概念和基本特性

-3.2 面向对象设计基本原则

--面向对象设计基本原则

-第三章 OO与UML--3.2 面向对象设计基本原则

-3.3 通用职责分配模式(GRASP)

--通用职责分配模式

-3.3 通用职责分配模式(GRASP)--作业

-3.4 从重构到模式

--模式和设计模式

-第三章 OO与UML--3.4 从重构到模式

-3.5 使用UML设计面向对象系统

--UML综述

-第三章 OO与UML--3.5 使用UML设计面向对象系统

-3.6 主要UML模型图绘制技巧

--UML用例图

--UML类图

--UML序列图绘制技巧

-第三章 OO与UML--3.6 主要UML模型图绘制技巧

-扩展阅读与话题讨论

--设计模式有毒么?

--话题讨论

第四章 对象模型分析

-4.1 案例简介

--书籍参考

--案例说明

-4.2 对象模型之一

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.2 对象模型之一

-4.3 对象模型之二

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.3 对象模型之二

-4.4 对象模型之交互

--授课视频

-第四章 对象模型分析--4.4 对象模型之交互

-扩展阅读与话题讨论

--图书推荐

--话题讨论

第五章 软件自动化技术

-5.1 软件自动化概述

--软件自动化概述

-第五章 软件自动化技术--5.1 软件自动化概述

-5.2 典型自动化方法和工具

--典型自动化工具视频

-第五章 软件自动化技术--5.2 典型自动化方法和工具

-5.3 文档自动化

--文档自动化视频

-第五章 软件自动化技术--5.3 文档自动化

-5.4 测试自动化

--测试自动化视频

--白盒测试工具VU的示例演示片段(版权属原作者)

--功能和性能自动化测试工具及简单应用演示

-第五章 软件自动化技术--5.4 测试自动化

-专家访谈

--北京理工大学刘辉教授谈软件自动化新进展

-扩展阅读与话题讨论

--各个开发阶段最流行的Java工具汇总

--话题讨论

第六章 CI/CD与DevOps

-6.1 持续集成

--持续集成视频1/2

--持续集成视频2/2

-第六章 CI/CD与DevOps--6.1 持续集成

-6.2 持续交付和部署

--持续交付和持续部署

-第六章 CI/CD与DevOps--6.2 持续交付和部署

-6.3 DevOps

--DevOps授课视频

-第六章 CI/CD与DevOps--6.3 DevOps

-专家访谈

--卓睿科技总架构师带来的精彩访谈

-扩展阅读与话题讨论

--DevOps专题

--话题讨论

第七章 软件质量保证

-7.1 质量和质量保证

--授课视频

-第七章 软件质量保证--7.1 质量和质量保证

-7.2 软件质量模型

--授课视频

-第七章 软件质量保证--7.2 软件质量模型

-7.3 SQA组织与职责

--授课视频

-第七章 软件质量保证--7.3 SQA组织与职责

-7.4 全面软件质量管理

--授课视频

-第七章 软件质量保证--7.4 全面软件质量管理

-专家访谈

--专家访谈

-扩展阅读与话题讨论

--外部链接

--话题讨论

第八章 软件过程改进

-8.1 软件过程综述

--授课视频

-第八章 软件过程改进--8.1 软件过程综述

-8.2 软件过程改进

--授课视频

-第八章 软件过程改进--8.2 软件过程改进

-8.3 能力成熟度模型

--授课视频

-第八章 软件过程改进--8.3 能力成熟度模型

-8.4 过程改进标准框架

--授课视频

-第八章 软件过程改进--8.4 过程改进标准框架

-扩展阅读与话题讨论

--敏捷和CMM矛盾么?

--话题讨论

第九章 软件复用

-9.1软件复用综述

--授课视频

-第九章 软件复用--9.1软件复用综述

-9.2 软件构件技术

--授课视频

-第九章 软件复用--9.2 软件构件技术

-9.3 软件复用实施

--授课视频

-第九章 软件复用--9.3 软件复用实施

-9.4 微服务架构

--授课视频

-第九章 软件复用--9.4 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

-文档提交处--文档提交

授课视频2/2笔记与讨论

也许你还感兴趣的课程:

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