《基于设计模式的软件体系结构研究与应用》由会员分享,可在线阅读,更多相关《基于设计模式的软件体系结构研究与应用(58页珍藏版)》请在金锄头文库上搜索。
1、华东 理工大学硕 士 学 位 论 文第 1 页基于设计模式的软件体系结构研究与应用摘要近 年 来 软 件 体 系 结 构 是 创契的 一 个 重 要 研 究 领 域 , 并 且 是 开 发 大 型 软 件 系 统 和 产 品生产线的关键技术,它己 经成为大型软件系统开发成功与否的关键因素之一二而设计模 式技术也是近十年来发展起来的一门新兴软件技术。 在系统设计阶段采用设计模式技术来 设 计软件系统的体系结 构实际能 够保证大型软件系统的结构清晰、 可理解性强、可维护性 好、 可复 用性高。 论 文讨论了 传统软件开发方法的 不足, 提倡基于软件体系结构的软件开 发; 针对现有的 软 件体系结构
2、研究的不足,和软 件体系结构构 造的困难,同时为了 开发 成 熟的、可复用的软件框架和组件,我们提出在软件设计中 应尽量组入设计模式来构造软件 系统, 并且从理论和实践两个方面着重论述了多层软件体系结构以 及如何组入设计模式来设计和构造软件体系结构。 关 键词: 软 件体 系结 构 、 软 件 复甩 设计檬式 组 件、2、勺 厂、 尹荞第 1 1 页华东 理工大学硕 士 学 位 论 文R e s e a r c h a n d A p p l i c a t i o n o f S o f t w a r e A r c h i t e c t u r e B a s e d o n D e
3、s i g n P a tt e r nAb s t r a c tS o f t w a r e A r c h i te c t u r e i s e m e r g i n g a s o n e o f t h e p ri m a r y r e s e a r c h a r e a s i n s o ft w a r e e n g i n e e ri n g r e c e n t l y a n d o n e o f t h e k e y t e c h n o l o g i e s t o t h e d e v e l o p m e n t o f l a
4、r g e - s c a l e s o f t w a r e - i n t e n s i v e s y s t e m a n d s o ft w a r e p r o d u c t l i n e s y s t e m . S o ft w a r e A r c h i t e c t u r e i s o n e o f t h e k e y s u c c e s s f u l e l e m e n t s o f s o ft w a r e s y s t e m . D e s i g n p a tt e rn i s a n e w s o ft
5、w a r e d e v e l o p m e n t t e c h n o l o g y i n t h e r e c e n t t e n y e a r s . A p p ly in g d e s i g n p a tt e rn t e c h n o l o g y t o d e s i g n s o f tw a r e a r c h i t e c t u r e d u r i n g s y s t e m d e s i g n i s t o f a c i l i t a t e t h e s o f t w a r e d e v e l o
6、 p m e n t , s o ft w a r e m a i n t e n a n c e a n d s o ft w a r e r e u s e . T h i s p a p e r d i s c u s s e s s o m e d i s a d v a n t a g e s o f t r a d it i o n a l s o f tw a r e d e s i g n m e t h o d , a n d a d v o c a t e a r c h i t e c t u r e - o ri e n t e d d e v e l o p m e
7、n t m e t h o d . W e a l s o d i s c u s s t h e d i s a d v a n t a g e s o f s t u d y o n s o f t w a r e a r c h i t e c t u re a n d t h e d i ff ic u l t ie s i n t h e d e s i g n m e n t o f s o f t w a r e a r c h i t e c t u r e . A t t h e s a m e t i m e . f o r d e v e l o p i n g m a
8、t u re s o ft w a r e f r a m e w o r k s a n d c o m p o n e n t s , i t i s n e c e s s a ry t o e l i c i t a n d in c o r p o r a t e s o ft w a r e d e s i g n p a tt e rn s i n t h e p r o c e s s o f s o f t w a r e d e v e l o p m e n t . I n t h i s p a p e r w e d i s c u s s h o w t o d o
9、 t h i s f r o m t h e o r y a n d p r a c t i c e a s p e c t s i n d e t a i l . K e y w o r d s : S o f t w a r e A r c h i t e c t u r e S o ft w a r e R e u s e D e s i g n P a tt e rn C o m p o n e n t作者声明我郑重声明:本人烙守学术道德,崇尚严谨学风。 所呈交的学位论文, 是本人在导师的指导下, 独立进行研究工作所取得的结果。 除文中明确注明和引用的内容外, 本论文不包含任何他人已
10、经发表或撰写过的内容。论文为本人亲自 撰写,并对所写内容负责。论 文 作 者 签 名 : 飞 , 平2 0 0 2 年 1 2 月3 0日华东 理工大学硕 士 学 位 论 文第 1 页第 1 章 绪论1 . 1软件体系结构研究的 必要性和重要性信息时 代的到来,计算机在国民 经济和社会生活中获得了广泛深入的应用,并且软件 系统的规模和复杂性也在不断的增长。自 从 1 9 6 8年提出软件工程概念以来,软件工程界已 经提出了一系列的理论、 方法、 语言和工具, 解决了软件开发过程中的若干问题。 但是, 软件固有的复杂性、易变性和不可见性,使得软件开发周期长、维护代价高和软件质量低 的问 题依然存
11、在。 大量实践统计表明: 大系统软件开发中7 0 % 的错误是由 需求和软件设计 阶段引入的: 而且错误在系统中存在的时间愈长则愈 难发现, 解决这些错误的代价也愈高。出 现这种状况的主要原因可从以下几个方面进行理解,并寻找方法加以解决。传统方法存在着不足。为了提高软件需 求和软件设计的 质量,软件工程界提出了需 求分析工程技术和各种软件建模技术, 提出 和发展了 包括结构分析和设计、面向 对象分析 和设计等多种设计和实践方法,在一定程度上缓解了 软件设计和管理的困难局面。但是, 随着软件复杂度的提高, 暴露出这些方法在处理实际设计问 题中局限性。软件的实践已 经 说明, 现今多数设计方法只能
12、处理部分设计问 题, 如结构设计方法缺乏对系统部件间复杂 关系的描述, 面向 对象方法缺乏对用户界面构成和关系以 及实时设计的支持等。 但是在需 求与设计之间仍存在一条很难逾越的 鸿沟,即 缺乏能 够反映做决策的中间过程,从而很难 有效地将需求转换为相应的设计。 为此,软件体系结构概念应运而生,并试图 在软件需求 与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现的平坦地过渡问题。系统整体结构方面。 如同 建筑一样, 每个软件系 统都具有一定的 体系结构。 但在过 去大多数的软件工程实践中, 体系结构设计是非形式化的、 随意的, 从而难以分析和维护。 因 此带来的直接后果是:体系结
13、构设计只是开 发人员含糊地理解; 体系结构的选择建立在 直觉和经验、 而非坚实的工程原则之上; 难以 对体系结 构设计作出 一致或完整的分 析: 随 着系统的 演化, 体系结构难以 保持和维护; 缺乏有效的工具辅助人们进行体系结构的设计。 因 而软 件系 统规模和复杂性的不断增长, 系统 整体结构的设计和规范定义变得比 算法和 数 据结构的选择更为重要。良 好的体系结构对保证系统的 成功至关重要。 描述系统高 层次设计的手段,已 经成为软件工程领域的一个热点。软件复用方面。软件复用技术是当 今软 件 工程领域的 一个热点, 复用可以 极大地提高软件生产效率,降 低软 件成 太. t o 4 S
14、 * 4 tk ;t c m 6 6 r软件体系结构作为这是因为利用软件件危机的 行之有效的办法。 但是, 在用传统的 方法 对软 件体系结构或一个待完成的 任务 进 行分 解时, 常常是面向 软件的功能特性的。 因 此 近年来 关于复 用的 研究中, 人们集中 功能 部件的复用, 这也是源代码的复用。然而,随着用户需求的提高和软件技术的快速发展, 在软件的设计开发过程中, 特别是对大型、复 杂的软件系统而言,开发者不仅要考虑到体第2 页华东 理工大学 硕 士 学 位 论 文系结构的功能方面的需求, 而且要花费很多精力考虑其非功能 方面的需求。 所谓非功能方 面,是指软件的可复用性、可维护性、
15、可测试性、可靠性和执行效率等。 其中可复用性是 最重要的方面。只有能够达到较理想的非功能特性的软件才称得上是好的软件。 这也就必 须需要从软件体系结构出发,考虑软件设计的复用。可见, 在软件工程领域中, 软件体系结构己 经成 为 越来越重要的课题: 它是设计的技 术基础, 可以 作为 满足需求的 框架, 它促使软件工程的 重点从功能向 结构转移,以 支持复 杂的大型软件系统的开发和维护。鉴于 软 件体 系结 构的 重 要性, D . E .P e r ry将软件体系结 构 视为 软 件开 发中 第一 类重要的 设计对象, 而B a r r y B o e h , n 明确指出: “ 在没有设计
16、出体系结 构及其 规则时, 那么整个项具 不能继续下去, 而且体系结构应该看作是软件开发中可交付的中间 产品” 12 1 ,由 此可见, 体系结构在软件开 发中为不同的人员提供了 共同交流的语言, 体现并尝试了 系统早期的设 计决 策,并作为 系统设计的抽象,为实现框架和组件的共享与 复用、 基于体系结构的软件 开发提供了 有力的 支持。1 , 2软 件体系结构的 研究 现状 及存在的 不足软件体系结构 ( S o f t w a r e A r c h i t e c t u r e ,简称S A ) ,又称为 软件构架或者架构, 它的 概 念 是由E d s g e r D ij k s t o n 于1 9 6 8 年首 先提出 的, 当 时 他 正在 描 述一 个 操作 系 统, 并 第一 次 提 出 层次结 构, 他指出, 人们更 应该关 注软 件系统 是如 何划分 与 组 合的, 而 不 是仅 仅限 制 在 编 程 上, 这 样 会 使 软件 开 发 和 维 护 更加 容易 52 1P e r r y 和W o l f 首次 把软 件体系 结构 定义为“ 元素、