软件结构体系与设计模式–1.软件设计模式概述

软件体系结构与设计模式
第一章 软件设计模式概述

目录:
  • 1. 模式的诞生
  • 2. 什么是模式
  • 3. 软件模式
  • 4. 设计模式与体系结构模式
  • 5. 软件体系结构

1. 模式的诞生

模式起源于建筑领域,公认的建筑学领域模式之父,著名建筑学家克里斯托弗 · 亚历山大将模式描述为:

每个模式都描述了一个在我们的环境中不断出现的的问题,然后描述了该问题的解决方案的核心,通过这种方式,你可以无数次使用那些已有的解决方案,无需再重复相同的工作

将模式引入软件工程领域的是GoF(Gang of Four),由此诞生了软件模式。
GoF并不是一种具体的“技术”,它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来语言基础上跃进一步。更重要的是,GoF的设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用
这其实在向一个极限挑战:软件需求变幻无穷,计划没有变化快,但是我们还是要寻找出不变的东西,并将它和变化的东西分离开来,这需要非常的智慧和经验。 而GoF的设计模式是在这方面开始探索的一块里程碑。


2. 什么是模式
  • 一个围棋下的好的人知道, 好的对于围棋非常重要,就是棋子在棋盘上的几何形状的抽象化

  • 就是模式(Pattern),也是人脑把握和认识外界的关键

  • 我们在处理大量问题时,发现在很多不同的问题中重复出现的一种性质,它使得我们可以使用一种方法来描述问题实质并用本质上相同,但细节永不重复的方法去解决,这种性质就叫模式

  • 模式是由特定环境、问题、解决方案组成的规则,其核心思想就是对设计的复用


3. 软件模式
  • 软件模式是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路参照样板

  • 软件模式并非仅限于设计模式,还包括架构模式分析模式过程模式等。实际上,在软件生命周期的每一个阶段都存在着一些被认同的模式。

  • 软件模式可以认为是对软件开发这一特定 “ 问题 ” 的 “ 解法 ” 的某种统一表示,即软件模式等于一定条件下出现的问题以及解法

    软件模式 = 环境 + 问题 + 解决方案

  • 软件模式的基础结构由4个部分构成:问题描述、前提条件(环境或约束条件)、解法效果/优缺点/已知应用

问题描述 前提条件 问题解法 关联解法 效果/优缺点/已知应用 其它关联模式


4. 设计模式与体系结构模式

4.1 设计模式

设计模式:描述了定制化的相互通信的对象与类,以解决特定环境中的通用设计问题。

设计模式同样是用来解决某个特定环境中的一系列问问题,主要面向对象与类,用于解决某一个具体的问题点

4.2 体系结构模式

体系结构模式:是对系统的高层设计,从一个较高的层次来考虑组成系统的构件和它们之间的连接关系,以及系统需满足的约束等,用以实现结构体系级的设计复用。

  • 体系结构模式通常又被称为架构模式、体系结构风格。
  • 体系结构模式的层次高于设计模式,它主要面向系统设计
  • 一个体系结构模式可能会包含一个或多个设计模式

设计模式与体系结构模式的关系:

pic
5. 软件体系结构

5.1 软件结构

  • 在诸如建筑和计算机硬件设计中,体系结构是指整个系统构成的基本和主体形态,在一个发展成熟的领域中,这种结构称为建立和考察系统的总体指导和基本出发点。
  • 软件体系结构是软件在设计构成上的基本,可供选择的形态和总体结构。具体说,就是人们现今已经熟悉的软件概念看,软件设计中可选的结构形态有:

    过程(procedure)、包(package)、对象(object)、客户/服务器(client/server)、分布式(distributed)、可视控件(visual controls)、部件(component)、解释器(interpreter)、浏览器(browser) 等

5.2 软件的局部和整体

  • 随着计算机硬件技术的飞速发展,软件的复杂性也逐渐增加,在软件设计中,软件的局部和整体系统结构越来越重要,甚至超过了软件算法和数据结构这些常规软件设计的概念
  • 软件体系结构定义了软件的局部和总计算机部件的构成,以及这些部件的相互作用关系。
    • 部件包括诸如客户端、服务器、数据库、过滤器、程序包、子程序等一切软件的组成部分。
    • 相互作用关系包括诸如过程调用、共享变量访问、消息传递等,相互作用也包括具有十分复杂的语义和构成的构成的关系,例如客户/服务器的访问协议。

5.3 软件的功能和性能

  • 除了描述系统的构成和结构关系外,在系统功能需求方面,体系结构还表达了系统需求和构成之间的关系,这为系统的设计提供了分析和评价的依据。
  • 在系统宏观层面,人们所关心的是系统的非功能性需求方面的内容,例如容量、数据吞吐量、一致性、兼容性、安全性、可靠性等,这些也都在体系结构中表达了出来。

5.4 软件结构的复合关系

  • 一般来说,体系结构清楚地表达了系统的构成部件以及它们之间的作用关系和语义,这些部件又可以用来构成更大的、更复杂的部件或系统。
  • 在理想的情况下,体系结构描述的各个组成成分都是被独立定义的,因此可以在不同的场合中得到重用
  • 由于系统的每一层次和每一部分的组成结构都是明确规范了的,因此为整个系统的功能和非功能特性的分析提供可全面和具体的依据。

5.5 软件体系结构的进一步认识

  • 总的来看,软件体系结构是由结构和功能各异,相互作用的部件集合,按照层次构成的。
  • 它包含了系统基础构成单元、它们之间的作用关系、在构成系统时它们的合成方法以及对合成约束的描述。

来源:「已注销」

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月18日
下一篇 2020年1月18日

相关推荐