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

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

授课视频在线视频

授课视频

下一节:图书推荐

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

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

下面我们继续往下看

开始一个新销售的时候,又发生了什么事情

当我开始卖东西的时候

当按下开始新销售的时候

销售窗口会创建一个销售对象

同时会创建一个收据对象

这个收据对象就直接送打印机

把这些收据的头部比如说某某商店欢迎你

这些表头的都打印出来

这样的话,卖完东西之后,收据也就打印完毕

这样可以提高售货效率

这个流程弄明白了,就开始卖东西

来了一个商品,扫描,扫描是从条码

返回一个商品的对象

我们返回的是价格和商品信息

根据upc返回商品,这是一个通用职责,放在商
店里

销售窗口给商店对象发消息,调用它的方法

得到的是商品信息和价格信息

商品信息和价格信息都是放到了销售单项里面

然后销售单项加入到销售里面

同时,收据添加了这项信息

打印机打印出刚才扫描的这些商品信息

比如说商品名称、数量和单价

合计的时候,通知收据计算,通知销售这个类计

当支付的时候,可能根据选择不同的支付方式

连接认证系统或者通知收据对象

打印出来应付金额、实付金额等等

当完成本次销售,比如说拿现金,回车

大家在实际生活当中都看得出来

平常这个现金抽屉是关闭的,它是打不开的

当销售一笔之后,应收80元,实收100元

找零20元的时候,通过一个按键

现金抽屉就执行一个操作open,打开了

打开之后,把100元放进去,20元拿出来

收银员顺手把抽屉给关上了

关上之后,抽屉就打不开了

只有下次找零的时候,这个抽屉才能打得开

在现金抽屉里面,会有一个up date Balance

来更新现金抽屉对象里面的余额

这次销售完成之后,因为这些销售信息要记录下

而记录销售信息这属于通用职责,一般放在商店
里面

所以调用商店对象的add Sale方法

把sale这个对象传进去

这次销售就结束了

如此这般反复之后,到了下班时间

就进行一个注销,注销的时候

肯定要通知session对象,调用end Session方法

也就是要记录下来什么时间、什么日期退出的

然后把session对象的信息通过数据访问层

存入数据库便于将来统计

这是整个的主要的几个场景

通过这样的分析,大家看得出来

要想分析好一个系统

弄清楚整个业务流程,不是一件容易的事情

需要开发、分析、设计,需求人员

都要弄清楚整个业务流程,精通业务流程

超越用户,发现问题背后的问题

有关Pos系统的一个简单示例

在之前的演示当中大家已经看过了

这个地方就不再给大家展示了

大家也可以自己编写一个简单的Pos系统

根据这本书和我们讨论的内容

来自己进行一个设计和编码实现

现在我们把业务逻辑层和用户界面层

这两个主要部分讨论清楚了

剩下的一点时间,简单地说一下另外两部分

一部分就是系统交互

这个系统可能会涉及到人力资源管理系统

库存系统,信用卡认证系统等等

这种系统的交互,我们往往需要提供一些接口

传送一些对方需要的数据格式

比如说,要和银行卡系统进行交互

需要给银行卡系统提供符合他们要求的数据格式

然后接收他们的返回结果

他们的返回结果可能就是扣款是否成功等等

数据管理这块的设计并不是特别的优秀

这里就不做进一步地说明

只是想说明,数据管理部分

现在有很多工具可以供我们使用

最典型的就是ORM这一类

如果不用ORM,我们也可以自己为每一个实体类

设计保存、装载以及搜索这样的服务

这种处理方式可能效率和复杂程度都会受到影响

在数据管理这块,我们还是建议大家不要自己写

目前类似Hibernate或Nhibernate

这样的ORM框架非常成熟,效率很高

可以极大地减轻程序员的开发工作量

最后这些所谓的暂不考虑

包括哪些内容呢

我们之前看到过了,就是服务器、顾客、主管等

就是前面在筛选过程当中拿掉的一些对象

这些对象我们认为暂时不适合在系统当中出现

到现在为止,我们整个pos对象模型基本上就说
完了

希望大家可以参照那本书

然后整理一下我们的分析过程

自己用一个UML工具比如说用大型的Rational
Rose

或者一些轻型的、简单的工具

甚至你可以在纸上用笔进行标识

所以我们强调UML它只是一套符号系统

你怎么用,是简陋还是强大

这个工具本身不是问题的关键

问题的关键是我们设计人员的大脑

我们的思考能不能满足用户的需求

能不能把用户的需求,把需要做什么变成怎么做

这是我们整个分析设计人员的价值所在

好了,这个案例就到这里结束了,谢谢大家

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

第一章 软件工程基础

-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 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

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

授课视频笔记与讨论

也许你还感兴趣的课程:

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