当前课程知识点:软件工程与软件自动化 > 第四章 对象模型分析 > 4.1 案例简介 > 案例说明
大家好,本章讨论一个案例
这个案例是一个Pos的系统分析与设计
Pos系统我们都知道
在超市购物的时候
收银系统就是我们的Pos系统
这个系统非常有意思
它和我们生活结合得非常紧密
大家都比较熟悉
所以我们分析与设计起来更容易理解
这个例子来源于一本书
这本书大家下去之后可以看一看
在这本书当中它主要讨论的是用策略和模式
来提高你的面向对象分析和设计水平
这里解释一下,策略是什么
策略是可以用来实现特定目标的一些具体建议
后面我们讨论这案例的时候你会知道
告诉你怎么思考,比如说
谁在什么地方做了什么?
先怎么着,后怎么着
这是比较具体的。模式是什么呢
模式是关于相互作用的对象的模板
通过这种模板我们就可以反复来使用
这里面还提到了建立对象模型的四种活动
首先我们用UML建立这个系统
它的核心就是我们的对象模型
这里不讨论用例分析技术
因为用例分析它是单独的、自成体系的
对用户需求的分析
我们这里说分析之后
如何建立一个系统的对象模型
换句话说,如何确定类图、序列图
首先要确定系统的目标和特性
就是说我们做这个软件系统,它要干什么
它有什么特性
这一点必须要明确
因为后面的这种分析设计
都是为了这个目标和特性服务的
所以要牢牢记住我们设计的这个软件系统的目标
与特性
第二种活动叫做选择对象或者叫识别对象
这是一个非常基础的特性
比如说这个对象模型的建立
从无到有,它的基础是什么
就像一栋楼,它的基础就是沙子、水泥
对象就是我们对象模型的最基础的东西
对象识别出来,它可能只是一个名词
或者是一个动名词
我们要为这个对象确定它的职责
这个对象在软件系统当中干什么
它和其他对象有没有什么关联
这种关联是如何发生的
要确定这些对象之间的动态的交互场景
把这个故事说清楚
为了让大家对这个pos系统有个比较直观的理解
这里我给大家演示一个简单的原型系统
这是一个登录窗口,我们随意输入用户名和密码
登录进来之后显示主窗口
这个主窗口它模拟的是一个收银员的工作环境
也就是销售主窗口
当我们点击New Sale的时候,这些可以使用
然后点击Scan,模拟收银员扫描枪扫描商品发生的事情
多次扫描模拟了多个商品
当我们服务完一个顾客之后,点击Total
就可以计算出小计和总计
当用户付款的时候,比如说付50元
自动计算出找零
当我点击Payment的时候
这个现金抽屉就会自动打开
这个顾客完毕之后,点击New Sale进入下一个顾客
我们还是点击Scan模拟多次扫描条码的结果
最后计算总价,输入钱数
这是第二次销售
这里可以看到当前收银员销售的情况
收银员下班之后点击退出
回到了原始的登录窗口,迎接下一个收银员的登录
当然我们这里做的比较简陋
好,简单地看了一个原型系统
希望大家在后面的分析过程当中
对这个原型系统有一个感性的认识
-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 典型敏捷开发方法
--XP敏捷开发方法
-第二章 敏捷开发--2.3 典型敏捷开发方法
-2.4 敏捷不是万能药
--授课视频
-第二章 敏捷开发--2.4 敏捷不是万能药
-专家谈敏捷
-扩展阅读与话题讨论
--外部链接
--话题讨论
-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类图
-第三章 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 测试自动化
--测试自动化视频
-第五章 软件自动化技术--5.4 测试自动化
-专家访谈
-扩展阅读与话题讨论
--话题讨论
-6.1 持续集成
-第六章 CI/CD与DevOps--6.1 持续集成
-6.2 持续交付和部署
-第六章 CI/CD与DevOps--6.2 持续交付和部署
-6.3 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 过程改进标准框架
-扩展阅读与话题讨论
--话题讨论
-9.1软件复用综述
--授课视频
-第九章 软件复用--9.1软件复用综述
-9.2 软件构件技术
--授课视频
-第九章 软件复用--9.2 软件构件技术
-9.3 软件复用实施
--授课视频
-第九章 软件复用--9.3 软件复用实施
-9.4 微服务架构
--授课视频
-第九章 软件复用--9.4 微服务架构
-扩展阅读与话题讨论
--微服务扩展
--话题讨论
-文档提交处--文档提交