案例分析: THE NEXTGEN POS SYSTEM Chapter 3 案例分析: THE NEXTGEN POS SYSTEM
需求概述 POS系统是一个信息系统应用,用于(部分地)记录销售信息,处理支付过程。 范围 : 硬件 软件系统 外部系统接口 计算机 扫描器 第三方税金计算器 库存控制系统
软件系统目标 顾客能够快速支付货款 快速精确的销售分析 自动库存控制
非功能需求 容错(Fault-tolerant) 支持不同类型的客户端 可扩展 Thin client web browser Rich client application 可扩展 能够灵活地添加新的业务规则。
分层体系结构
分层 为什么要分层 企业级应用中的层次 三个主要层次 如何部署各层
为什么要分层 分层是处理复杂性的有效手段 每一层都可以被单独理解,无需对其他部分做深入研究。 每一层都可以被实现了同样功能的其他实现所替代。 复杂性和分布性是目前应用系统的特征 每一层都可以被单独理解,无需对其他部分做深入研究。 每一层都可以被实现了同样功能的其他实现所替代。 建立在标准化机制上 层次之间具有单向的依赖关系,高层使用底层的资源,高层的改动不影响底层的改动。 在我们人类没有进化出能够处理网状结构的大脑前,我们最好还是将问题搞得简单些。
分层的缺点 分层可以封装部分信息,但并不是所有的信息 分层过多的一个广为人知的缺点是:可能会影响性能。 分层和体系结构的关系 例如:在业务层增加一个信息字段 分层过多的一个广为人知的缺点是:可能会影响性能。 分层和体系结构的关系 分层是体系结构的一种,并不是所有的系统都是以分层的方式构造的。
企业信息系统中层次的演化 早期的系统没有分层的概念 分层始于90年代的client-server系统 为对于数据密集型的应用(Data-intensive applications)设计一套UI控件,这些控件通过诸如SQL文之类的参数与数据绑定。 问题:业务逻辑和UI直接绑定。随着领域逻辑复杂程度的提高,代码将变得越来越难以演化。 在client-server广为流行的同时,面向对象技术也开始进入主流。面向对象对如何处理业务逻辑给出了自己的方法:引入了第三层:业务逻辑层。
分层的体系结构 一个典型的面向对象信息系统通常设计成以下几个层或子系统 用户界面(User Interface) 应用逻辑或领域对象(Application Logic and Domain Objects) 数据/技术服务(Technical Services) 应用逻辑或领域对象层是本课程主要关心的内容,技术服务层其次,而很少涉及用户界面。 为什么要分层 业务层最重要
三个主要的层次 业务逻辑层 表示层 数据/技术服务层 用于处理用户和软件系统之间的交互。 处理那些需要持久化的数据和操作这些数据的事务。 随着对分层理解的深入,一些诸如日志、审计和安全的处理也归入了这一层。 业务逻辑层 表示领域中的基本概念和他们之间的关系 业务逻辑相对而言是最重要的,也是比较稳定的。 不要将业务逻辑和表示层、数据/技术服务层混杂在一起!!!!
分层的体系结构 为什么本课程只关注应用逻辑层 界面和技术服务层涉及到太多的技术内容,这些内容随着技术的快速发展会不断发生变化 在应用逻辑层学习到的面向对象的技巧在其他的层中也能够应用
作业 掷骰子游戏的实现(1) 掷骰子游戏的实现(2) 实现语言:Java 以命令方式运行,运行后在命令行上给出结果 考虑在这个程序中是否需要分层,如果需要,有哪些层。 掷骰子游戏的实现(2) 使用Swing作为界面实现上述游戏,要求有一个按钮和一个信息显示区域。每次按下按钮后在信息区域给出游戏结果。 尽可能共享(1)中的代码,观察在试图共享的过程中,(1)中的代码需要如何调整。