现在的位置: 首页 > 综合 > 正文

软件体系结构基本概念

2013年10月04日 ⁄ 综合 ⁄ 共 2826字 ⁄ 字号 评论关闭

声明:本文总结于软件体系结构课程

 

1 
软件体系结构基本概念

1.1软件体系结构基本概念

1.2软件体系结构风格、模式和框架

1.3软件结构的基本元素和连接

1.4软件体系结构设计的基本原则

 

1.1 软件体系结构的基本概念

软件体系结构是软件工程的重要研究领域,软件体系结构并没有统一的定义。

90年代开始,很多专家学者对软件体系结构引起广泛关注,综合软件体系结构的定义,比较权威性的论述是:

总体组织

全局控制

通讯、同步、协议

设计元素的功能

物理分布和集成

 

 

软件体系结构要点:

软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
强调设计过程,而非分析的过程。分析的目标是理解和表示,设计的目标是实现。
非用户的观点及非功能的观点。对于用户,结构是软件系统功能的组合。对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。

 

1.2 软件体系结构风格、模式和框架

软件体系结构风格(Architecture Styles)

 风格是表达特定系统元素和组织方式的通用范例(idiomaticparadigm)。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通常用法。

软件设计模式DesignPattern)

 设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。

软件应用框架(Application Framework)

 框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。

 

1.3软件结构的基本元素和连接

软件结构的表示从低层到高层,高层软件结构是建立在基础结构之上的。

软件构成的基础结构包括:

 

数据类型结构

数据类型是最基本的软件结构元素,是描述复杂算法和软件结构的基础,即数据结构。

数据类型包括:

基本数据类型

抽象数据类型

②控制流连接结构

Ø控制流结构直接对应程序结构

 包括:

条件连接

循环连接

控制转向连接

Ø控制流连接方式

进程中的控制连接(内部调用)进程之间的连接

同一机器空间  链询调用方式分 析调用方式

不同机器空间(远程过程调用)

④软件的层次结构

层次结构是分析和解决问题普遍适用的方法

单项依赖层次结构:

下层仅向相邻的上层提供支持,上层依赖相邻的下层被建造

开放式层次结构:

使用及支持关系不仅限制在相邻的层次之间

 

1.4软件体系结构设计的基本原则

在大量的软件开发实践中,对于软件结构的设计有被普遍性采用的原则,这些原则和策略多年来一直被广泛地运用着。它们独立于具体的软件开发方法。

基本原则包括:

 抽象

 分而治之

 信息隐蔽    

 模块化

高内聚和低耦合

关注点分离

策略和实现分离

接口和实现分离

 

Ø抽象的原则
抽象:

人们认识复杂事物的基本方法。抽象的实质是突出表现事物的主要特征和属性,忽略细节部分;并且,运用这些特征和属性,提取具有普遍意义的事物行为。

软件设计中的抽象:

数据抽象:描述特定数据对象的属性集合

过程抽象:特定操作过程命名的操作序列

控制抽象:隐含内部细节的控制逻辑        

 

 

Ø分而治之原则

将大的问题分解,分别处理分解的局部问题,会降低问题的复杂性和难度。

软件设计中运用的分解包括:

纵向分解:

按照事务的过程方式分解,将整体问题分解成为多层,每层完成同一过程的各项处理,提取规范统一形式的接口,提供对(下一过程)的支持。

横向分解:

在每一层面,将问题分成多项独立的处理部分,它们原则上不要直接的联系,而是通过集中的控制。

 

Ø信息隐蔽的原则
局部化设计:

处理中的所有信息和操作被限制在局部过程中,尽量减少外部的直接接触与共享,提高独立性,减小相互的耦合性。

封装设计:

将处理过程尽量隐蔽,使外界只了解其简单、统一的可访问形式。以减少外界可能的错误干扰和破坏。

 

Ø模块化的原则

模块:可被独立命名、具有独立作用的软件成分

模块可分解:整体问题可被分解成多个模块来解决
模块可组装:现有的模块可被组装用以解决问题
模块可理解:模块可作为独立作用的成分被理解
模块连续性好:对系统的修改只作用于单个的模块
模块保护性好:模块出现异常的影响,仅在模块内部
 
Ø高内聚和低耦合原则
内聚性:

软件成份内部各处理单元的关系程度。能做到每个成分都有必然关系,缺一不可的紧密程度是最好的内聚形式。

耦合性:

软件成份之间的关系特性。软件成份之间应尽量做到没有直接关系,使其保持相对独立松散耦合关系会使未来的修改、复用简单,出错带来的影响小。

 

常见的耦合形式

内容耦合:一个软件成份直接修改另一个软件成份的内容

公共耦合:多个软件成份需要处理同一个外部的公共数据

控制耦合:软件成份的动作依赖于接收的控制信号

标记耦合:软件成份的接口参数具有一个复杂的内部结构

数据耦合:软件成份之间通过简单类型的形式参数传递

 

常见的内聚形式

偶然内聚:将没有直接关系,只是分散在多处的成分合起来

逻辑内聚:将仅是逻辑相关的处理成分合起来

时间内聚:将需在同一时间执行并无直接关系的处理成分合起来

过程内聚:将过程顺序相关的处理成分合起来

通讯内聚:将需要对同一个外部数据操作的处理成分合起来

顺序内聚:将两个具有输入输出顺序关系的软件成份合起来

功能内聚:保证每个成分只完成单一的功能

 

Ø关注点分离原则
关注点:

关注点是软件系统中特别需要考虑的多变部分。例如,软件成分的执行会受到运行环境、设备条件,以及通信设施等的制约和限制,为了适应不同的运行环境和条件,需要进行必要的参数调整和驱动配置。为此进行的这部分设计和开发,即是所谓的关注点。

关注点分离设计:

软件系统中涉及关注点的成分应该与非关注点的成分分为相互独立的部分,这样的设计会使未来的系统容易配置,实现机器无关性。

 
Ø策略和实现分离原则
策略

策略是指软件中用于处理选择控制的决策成分。通过上下文相关的决策分析、信息语义解释分析、参数选择等进行判断,以决定怎样具体数据加工和功能实现。

实现

实现是指软件系统中有规范步骤及完整执行算法的成分

策略和实现分离的设计

通常,决策部分是异变的成分,而实现部分相对稳定,并可多次复用。将策略成分和实现成分分别设计成独立的部分,使系统维护的范围减小,以提高系统的维护性和复用性。

 
Ø接口和实现分离原则
接口

接口是软件成分对外规范形式的、可访问的操作集合,提供软件成分的功能及使用方式。一个软件成分可以不只一个接口,每个接口提供不同的一组相关的操作。

实现

实现是软件成分外部不可见的操作执行部分

接口和实现分离的设计

为了达到软件成分的高复用,为适应多种形式的访问,可采用分设多种接口来实现。这就需要采用接口和实现独立设计的方式提高系统的可移植性和复用性。

 
 
 
 

 

抱歉!评论已关闭.