面向对象体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构件级的数据设计
构件级的数据设计关注于那些被一个或者多个 软件构件直接访问的数据结构的表示。[WAS80] 提出了以下数据规格说明原则: 1.应用于功能和行为的系统分析原则也可应用于 数据。同样应该开发和评审数据流和数据内容的 表示,标识数据对象,还应该考虑其他可选的数 据组织结构,评估数据模型对软件设计的影响。 2.标识所有数据结构及其完成的操作。设计一个 高效的数据结构,必须考虑其上的操作。把属性 和操作封装在一个类中满足这个原则。
为什么体系结构如此重要
[BAS03]给出了软件体系结构之所以重要的三个关键原 因: 软件体系结构的表示有助于对计算机系统开发感兴趣的 各方开展交流。 体系结构突出了早期设计决策,这些决策对随后的所有 软件工程工作有深远的影响,同时对系统作为一个可运 行实体的最后成功有重要作用。 体系结构“构建了一个相对小的,易于理解的模型,该 模型描述了系统如何构成以及其构件如何一起工作”。 体系结构设计模型和包含在其中的体系结构模式都是可 以传递的,即体系结构的风格和模式可以被应用于其他 系统的设计中,并且表示了一组使软件工程师能以可预 见的方式描述体系结构的抽象。
什么ቤተ መጻሕፍቲ ባይዱ体系结构
一个程序和计算系统软件体系结构是指系 统的一个或者多个结构。结构中包括软件 的构件,构件的外部可见属性以及它们之 间的相互关系。
体系结构并非可运行软件。它是一种表达, 使软件工程师能够:(1)分析设计在满足 规定需求方面的有效性;(2)在设计变更 相对容易的阶段,考虑体系结构可能的选 择方案;(3)降低与软件构造相关联的风 险。
体系结构风格和模式
建筑师使用体系结构(建筑风格)作为描 述机制,将该房子和其他风格的房子区分 开来。但更重要的是,体系结构风格也是 建筑的样板。必须进一步规定房子的细节, 具体说明它的最终尺寸,进一步给出定制 的特征,确定建筑材料等。实际上是建筑 风格指导了建筑师的工作。
第8章 进行体系结构设计
主要内容
软件体系结构 数据设计 体系结构风格和模式 体系结构设计 评估可选的体系结构设计 映射数据流到软件体系结构 小结
进行体系结构设计
体系结构设计描述了建立计算机系统所需 的数据结构和程序构件。它需要考虑系统 采取的体系结构风格,系统组成构件的结 构、性质,以及所有体系结构构件之间的 相互关系。
构件级的数据设计
5.只有那些直接使用数据结构内部数据的模块
才能够看到该数据结构的表示。信息隐蔽概念以 及相关的耦合概念为软件设计质量的评估提供了 依据。 6.应该开发一个由有用的数据结构及其操作组 成的库。类库即可实现这个目标。 7.软件设计和程序设计语言应该支持抽象数据 类型的规格说明和实现。如果没有办法对所选用 于实现的编程语言中的结构进行直接说明,那么 复杂数据结构的实现将变得非常困难。
数据设计
数据设计是把在分析模型中定义的数据对 象转化成软件构件级的数据结构,并且在 必要时转化为应用程序级的数据库体系结 构。在某些情况下,必须为一个新系统专 门设计和建立数据库。
体系结构级的数据设计
当今,大大小小的业务均充斥着数据,甚至一 个中型规模企业拥有为多个应用系统提供服务的 几十个数据库。问题在于如何从这样庞大的数据 环境中提取有用的信息,特别当需要的信息是功 能交叉时。 IT界开发出了数据挖掘技术,也称为数据库中 的知识发现,该技术遍历现有的数据库以试图抽 取出合适的业务级信息。另一种可选的解决方案 称为数据仓库,它是一个独立的数据环境,但包 含了某业务使用的所有数据。
进行体系结构设计
体系结构设计始于数据设计,然后导出系 统体系结构的一个或者多个表示。对可选 的体系结构风格或模式进行分析,以导出 最适合于客户需求和质量属性的结构。一 旦选定,使用体系结构设计方法对体系结 构进行精化。 在体系结构设计过程中,将创建一个包括 数据架构和程序结构的体系结构模型。此 外,还需描述构件的性质以及交互关系。
进行体系结构设计
尽管软件工程师能够设计数据和体系结构, 但是在建造大型复杂系统的时候,数据和 体系结构的设计往往由专家来完成。数据 库或者数据仓库设计者为系统创建数据体 系结构。”系统体系结构设计师“为系统 工程和软件需求分析中导出的需求选择合 适的体系结构风格。
进行体系结构设计
人们不能在没有图纸的情况下建房子, 同样也不能通过勾画出房子的管道布局而 开始绘制房屋的蓝图。在开始考虑细节之 前,需要关注整体视图——房子本身。这 就是体系结构设计需要做的事情——它为 你提供整体的视图并保证得到正确的理解。
进行体系结构设计
设计通常被描述为一个多步过程,其主要 任务是从需求信息中综合出数据的表示、 程序结构、接口特征和过程细节。 设计是由信息驱动的。软件设计方法都是 通过仔细考虑分析模型的三个域而得到的。 因此,信息、功能和行为三个域是创建软 件设计的指南。 体系结构设计是构建软件的初始蓝图。
软件体系结构
从第一个程序被划分成模块开始,软件系 统就有了体系结构。同时,程序员已经开 始负责模块间的交互和模块装配的全局属 性。从历史的观点看,体系结构隐含了很 多内容——实现的偶然事件或先前遗留系 统。好的软件开发人员经常采用一个或者 多个体系结构模式作为系统组织策略,但 是他们只是非正式地使用这些模式,并且 在最终系统中没有将这些模式清楚地体现 出来。
什么是体系结构
在体系结构设计的环境中,软件构件可以简 单到程序模块或者面向对象的类,也可以扩 充到包含数据库和能够完成客户与服务器网 络配置的“中间件”。 本教材中,软件体系结构的设计考虑了设计 金字塔中的两个层次——数据设计和体系结 构设计。数据设计使我们表示出传统系统中 体系结构的数据构件和面向对象系统中类的 定义,体系结构设计则主要关注软件构件的 结构、属性和交互作用。
构件级的数据设计
3.应该建立定义数据对象内容的机制,并 且用于定义数据及其操作。类图定义包含 在类中的数据项和应用到这些数据项上的 方法。
4.低层的数据设计决策应该延迟到设计过 程的后期。数据设计可以采用逐步求精的 过程,所有的数据组织可以在需求分析阶 段定义,在数据设计工作中精化,在构件 级设计阶段刻画细节。