读《Software Architecture in Practice》--001.关于架构

看andengine准备裁减以下改进一下自己的小游戏,觉得直接抄的话没意思,就想自己参照着写一个。可是参照参照就又变成抄了。印象中andengine有一个BaseGameActivity,所有抄的时候就以它为基础。一点点往下搭的时候,越搭越不爽,因为里面的东西都是相关的,接口加在这里,实现加在那里,另一个地方也有关联,总是要改改这里修修那里,憋屈。感觉流程不对,就翻出一本架构的书来补补。
刚看完了《Software Architecture in Practice》的第一部分就发现了一个问题。
问:架构的目的是什么了?
答:是为了能够独立开发。
包括一个游戏,要单独的引擎,单独的内容,单独美工,单独的音效等等。再细点就是一个引擎里要有单独的驱动模块、单独的描绘模块、单独的内容管理、单独的控件模块等等。而为了能够单独的开发各个子模块,就必须对整个系统进行分割、设计、然后才是一个个子模块的开发、测试。我憋屈的原因就是因为没有分割、设计这一步,要做一个功能就要垮各个模块,修改一堆文件,搞的是晕的一塌糊涂。看看例子的一层层的分割。。。。

一、架构描述
通常通过视图(View)和结构(Structure)来讨论架构(Architecture)
・视图(View):一系列架构组件的描述
・结构(Structure):架构中的组件

架构通过各组件的性质,大体上可以分为以下三类:
★模块体系(Module Structures):内容为按功能分类后的架构组件。它负责描述组件的功能以及与其它组件的关系。
 模块体系包含:
 ・分解(Decoposition):将模块进行分解,直至小到非常容易理解。子模块通常作为设计和开发的单位。
 ・应用(Uses):能够将一个系统划分为不同的子集,以适应增量开发。
 ・层(Layered):通常被设计用来隐藏低一层的实现细节,以带来可移植性。
 ・类(Class or Generalization):类结构通过抽象和子类化,实现重用和功能的增强。

★运行体系(Component-and-Connector Structures):内容为运行时的架构组件以及与其它组件的交互组件。它负责描述运行时的主组件,公用的数据,处理中的数据流可并行的处理等等。
 执行体系包含:
 ・处理与通信(Process or Communicating processes):描述处理或线程如何与通信处理整合。
 ・并行(Concurrency):确定系统中的并行,定位可能出现的资源竞合。
 ・数据共享(Shared data or Repository):适合用来描述针对共享数据的系统。显示在运行系统中数据如何被处理和消耗,能够被用来确保性能和数据完整性。
 ・客户服务器(Client-server):适合用来描述一组项目交合的客户、服务器系统。

★部署体系(Allocation Structures):内容为开发或运行时的部署。
 部署体系包含:
 ・部署(Deployment):
 ・执行(Implementatioin):
 ・任务分配(Work assignment):

二、一个例子(A-7E航空系统)
A-7E架构分为以下三块:
・分解(Decomposition)
・应用(Uses)
・处理(Process)

★分解(Decomposition)
一次分解
・硬件模块(Hardware-Hiding Module)
・行为模块(Behavior-Hiding Module)
・决策模块(Software Decision Module)
二次分解
◆硬件模块(Hardware-Hiding Module)
・扩展电子模块(Extended Computer Module)
・设备接口模块(Device Interface Module)
◆行为模块(Behavior-Hiding Module)
・功能驱动模块(Function Driving Module)
・共享服务模块(Shared Services Module)
◆决策模块(Software Decision Module)
・数据类型模块(Application Data Type Module)
・数据仓库模块(Data Banker Module)
・行为过滤模块(Filter Behavior Module)
・物理模型模块(Physical Models Module)
・软件工具模块(Software Utility Module)
・??(System Generation Module)
三次分解
太多了

★应用(Uses)
按应用将分解后的自模块进行分类整理。

★处理(Process)
按处理种类将分解后的子模块进行分类
・定时处理(Periodic process)
・Demand process

你可能感兴趣的:(读《Software Architecture in Practice》--001.关于架构)