面向对象的软件体系架构

面向对象的软件体系架构
--复杂业务系统的解决思路

一、业务系统的关键特征

[list]数据持久化
海量数据
数据的并发访问
大量的用户界面
与其他业务系统的集成[/list]

二、问题:复杂业务系统

在诸如ERP或HIS等业务系统中,我们面对的问题都是相同的。
[list]业务流程长,涉及的部门多,单据多。
业务发展变化快。
关键业务对系统的稳定性、健壮性有很高的要求。[/list]

三 解决思路:软件体系架构

面对复杂问题,最好的办法是先将问题分解成不同的部分,各个击破,然后再考虑把这些不同方面的思路整合起来,构造一个完整的解决方案。
所以软件的体系架构从整体上来说就是软件系统各个部分的分工与协作的关系。
好的软件体系架构可以理解为分工明确、协作顺畅、系统稳定健壮、能适应业务系统的发展。

四、软件体系架构的关键手法

[list]软件分层
面向对象
面向方面[/list]


五、业务系统软件分层的演化

在关系数据库系统成熟之前的业务软件系统是不分层的。
上个世纪九十年代之后,关系数据库系统发展成熟,业务系统以关系数据库系统为中心,发展成C/S两层。
随着网络和软件技术的发展、出现了应用服务器,软件体系逐渐演化成三层体系架构。

六、主要的分层体系架构

展示层
业务层
数据持久层

七、 面向对象

面向对象是现代软件最重要的发展。
面向对象的第一个层面是OOP,就是面向对象的实现,包括数据、方法的集成、继承、多态等的理解。
第二个层面是OOD,面向对象的设计,就是对象之间的职责的划分和组合,这部分的关键发展就是设计模式的提出和应用。
第三个层面是OOA,面向对象的分析,这部分的关键发展是分析模式的提出和应用。

八、分析模式:Thinking in Object

软件系统是对现实系统的映射。
业务系统的关键:人、财、物,进、销、存。
所以业务系统的分析和建模基本上是围绕这些要素进行的。
使用分析模式,能够总结这些事物的关系,有效的进行业务建模,适应业务发展的需要。

九、主要的分析模式

Accountability
Observations and Measurements
Observations for Corporate Finance
Referring to Objects
Inventory and Accounting
Using the Accounting
Planning
Trading
Derivative Contracts
Trading Packages

十、面向对象的设计

面向对象的设计主要解决的问题的是对象的职责划分和协作。
面向对象的设计,经过大家的经验总结成设计模式。
设计模式可以按层组织。

10.1 业务逻辑模式

Transaction Script
Domain Model
Table Module
Service Layer

10.2 数据源架构模式

Table Data Gateway
Row Data Gateway
Active Record
Data Mapper

10.3 对象关系行为模式

Unit Of Work
Identity Map
Lazy Load

10.4 对象关系结构模式

Identity Field
Foreign Key Mapping
Association Table Mapping
Dependent Mapping
Embedded Value
Serialized LOB
Single Table Inheritance
Class Table Inheritance
Concrete Table Inheritance
Inheritance Mappers

10.5 对象关系元数据映射模式

Metadata Mapping
Query Object
Repository

10.6 Web 展示层模式

Model View Controller
Page Controller
Front Controller
Template View
Transform View
Two Step View
Application Controller

10.7 分布式模式

Remote Façade
Data Transfer Object

10.8 离线同步模式

Optimistic Offline Lock
Pessimistic Offline Lock
Coarse-Grained Lock
Implicit Lock

10.9 会话状态模式

Client Session State
Server Session State
Database Session State

10.10 基本模式

Gateway
Mapper
Layer Supertype
Separated Interface
Registry
Value Object
Money
Special Case
Service Stub
Record Set

十一、关于面向对象的编程

编程是思想的实现,要真正应用面向对象的特性,要先用对象的方法来思考。
多参考别人的实现,利用Google,其实有很多问题别人已经有很好的实现。
面向方面
面向方面其实是代码的另一种组织方式,就是将安全控制、事务控制等通用程序,通过注入的方式,嵌入到业务程序中。

十二、软件和团队的进化

软件系统是一个不断发展变化的过程。
软件开发团队要 不断的学习和进步。
进步有两个来源,从过去的错误中总结,学习他人的成功经验。
要有发展目标。
要有系统的理论支持。

十三、参考资料

Martin Fowler 企业应用架构模式
Martin Fowler 分析模式
Martin Fowler 软件重构
Craig Larman UML 和模式应用
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值