声明:本文总结于软件体系结构课程
第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软件体系结构设计的基本原则
在大量的软件开发实践中,对于软件结构的设计有被普遍性采用的原则,这些原则和策略多年来一直被广泛地运用着。它们独立于具体的软件开发方法。
基本原则包括:
•抽象
•分而治之
•信息隐蔽
•模块化
•高内聚和低耦合
•关注点分离
•策略和实现分离
•接口和实现分离
Ø抽象的原则
•抽象:
人们认识复杂事物的基本方法。抽象的实质是突出表现事物的主要特征和属性,忽略细节部分;并且,运用这些特征和属性,提取具有普遍意义的事物行为。
•软件设计中的抽象:
数据抽象:描述特定数据对象的属性集合
过程抽象:特定操作过程命名的操作序列
控制抽象:隐含内部细节的控制逻辑
Ø分而治之原则
将大的问题分解,分别处理分解的局部问题,会降低问题的复杂性和难度。
软件设计中运用的分解包括:
•纵向分解:
按照事务的过程方式分解,将整体问题分解成为多层,每层完成同一过程的各项处理,并提取规范统一形式的接口,以提供对下层(下一过程)的支持。
•横向分解:
在每一层面,将问题分成多项独立的处理部分,它们原则上不要直接的联系,而是通过集中的控制。
Ø信息隐蔽的原则
•局部化设计:
处理中的所有信息和操作被限制在局部过程中,尽量减少外部的直接接触与共享,提高独立性,减小相互的耦合性。
•封装设计:
将处理过程尽量隐蔽,使外界只了解其简单、统一的可访问形式。以减少外界可能的错误干扰和破坏。
Ø模块化的原则
模块:可被独立命名、具有独立作用的软件成分
•模块可分解:整体问题可被分解成多个模块来解决
•模块可组装:现有的模块可被组装用以解决问题
•模块可理解:模块可作为独立作用的成分被理解
•模块连续性好:对系统的修改只作用于单个的模块
•模块保护性好:模块出现异常的影响,仅在模块内部
Ø高内聚和低耦合原则
•内聚性:
指软件成份内部各处理单元的关系程度。能做到每个成分都有必然关系,缺一不可的紧密程度是最好的内聚形式。
•耦合性:
指软件成份之间的关系特性。软件成份之间应尽量做到没有直接关系,使其保持相对独立、松散耦合的关系会使未来的修改、复用简单,出错带来的影响小。
内容耦合:一个软件成份直接修改另一个软件成份的内容
公共耦合:多个软件成份需要处理同一个外部的公共数据
控制耦合:软件成份的动作依赖于接收的控制信号
标记耦合:软件成份的接口参数具有一个复杂的内部结构
数据耦合:软件成份之间仅通过简单类型的形式参数传递
常见的内聚形式
偶然内聚:将没有直接关系,只是分散在多处的成分合起来
逻辑内聚:将仅是逻辑相关的处理成分合起来
时间内聚:将需在同一时间执行并无直接关系的处理成分合起来
过程内聚:将过程顺序相关的处理成分合起来
通讯内聚:将需要对同一个外部数据操作的处理成分合起来
顺序内聚:将两个具有输入输出顺序关系的软件成份合起来
功能内聚:保证每个成分只完成单一的功能
Ø关注点分离原则
•关注点:
关注点是软件系统中特别需要考虑的多变部分。例如,软件成分的执行会受到运行环境、设备条件,以及通信设施等的制约和限制,为了适应不同的运行环境和条件,需要进行必要的参数调整和驱动配置。为此进行的这部分设计和开发,即是所谓的关注点。
•关注点分离设计:
软件系统中涉及关注点的成分应该与非关注点的成分分为相互独立的部分,这样的设计会使未来的系统容易配置,实现机器无关性。
•策略:
策略是指软件中用于处理选择控制的决策成分。通过上下文相关的决策分析、信息语义解释分析、参数选择等进行判断,以决定怎样地具体数据加工和功能实现。
•实现:
实现是指软件系统中有规范步骤及完整执行算法的成分
•策略和实现分离的设计:
通常,决策部分是异变的成分,而实现部分相对稳定,并可多次复用。将策略成分和实现成分分别设计成独立的部分,使系统维护的范围减小,以提高系统的维护性和复用性。
•接口
接口是软件成分对外规范形式的、可访问的操作集合,提供软件成分的功能及使用方式。一个软件成分可以不只一个接口,每个接口提供不同的一组相关的操作。
•实现
实现是软件成分外部不可见的操作执行部分
•接口和实现分离的设计
为了达到软件成分的高复用,为适应多种形式的访问,可采用分设多种接口来实现。这就需要采用接口和实现独立设计的方式,以提高系统的可移植性和复用性。
分享到:
相关推荐
本书系统介绍了软件体系结构的基本原理、方法和实践,全面反映了软件体系结构研究和应用的最新进展。既讨论了软件体系结构的基本理论知识,又介绍了软件体系结构的设计和工业界应用实例,强调理论与实践相结合。 ...
第1章简单介绍了软件重用和构件技术的一些基本概念,它们是学习软件体系结构有关知识的基础;第2章介绍了软件体系结构的概念;发展和研究现状;第3章对软件体系结构的风格进行了较为详细的介绍,并给出了一些应用...
软件体系结构Chap02基本概念.pptx
软件体系结构课程ppt,包括基本概念,软件体系结构景点风格,软件体系结构应用框架,设计模式,还有软甲体系结构的描述语言和发展
系统地介绍了模式的概念并讨论了模式描述的原则;给出了来自不同应用领域的8个软件体系结构模式;还给出了8个设计模式,这些模式分别...讨论了模式如何嵌入到软件体系结构中,特别是对软件体系结构及其基本原则的理解。
分层软件体系结构是信息系统开发通常采用的模型,因为它有利于系统的模块化和可扩展性。 另一方面,模型工程的出现旨在提高抽象水平,以使开发人员可以对模型进行推理,而无需编写代码。 研究的问题是将两种方法结合...
这是自己课程汇报时看了不少资料整理的ppt,里面包括 1包图的基本概念, 2 在Rose里面绘制包图。
讨论了模式如何嵌入到软件体系结构中,特别是对软件体系结构及其基本原则的理解。此外,本书还介绍了模式历史、相关工作和整个模式团体,并对模式的未来发展作了展望。 本书力图做到既是教材又是参考指南,帮助软件...
摘 要:软件定义网络(SDN)是现代备受关注的新型网络体系结构之一,正逐步革新现存的传统网络体系结构。数据平面 和控制平面的解耦和、网络控制的逻辑集中、用于数据转发策略的流抽象以及网络的编程能力是 SDN 的 4 个...
摘要:随着计算机软件的快速发展,软件的复杂性也越来越高,软件体系结构就显得非常重要。文章介绍了软件体系结构的基本概念、常见结构及其分析评测方法, 最后给出了软件
面向服务的体系结构(SOA)是一种新兴的软件体系结构,详细分析了SOA的基本结构和特点,比较了SOA同面向对象体系结构的不同之处,并结合一个实例给出了架构SOA系统的方法,描述了从基于组件设计方法过渡到面向服务设计...
Diameter协议是IETF开发的下一代AAA框架协议,它包括基本协议和应用扩展协议。本文介绍了AAA的基本概念和...文中对OpenDiameter的软件体系结构和应用开发API作了介绍,最后描述了在Linux下编译安装OpenDiameter的过程。
内容概括:提供了一份针对软件设计与体系结构课程中的实验1的文档,用于帮助学生深入理解和掌握软件设计的基本概念、原理和方法。 适用人群:适用于正在学习软件设计与体系结构的同学,特别是在进行实验1时需要进行...
内容概括:提供了一份针对软件设计与体系结构课程中的实验1的文档,用于帮助学生深入理解和掌握软件设计的基本概念、原理和方法。 适用人群:适用于正在学习软件设计与体系结构的同学,特别是在进行实验1时需要进行...
第 1 章 软件体系结构基本概念作 业1.简要说明为什么软件工程领域要引入软件体系结构?随着软件系统规模和复杂性的成长,传统意义上数据结构+算法的程序已经无法设
北京科技大学计算机体系结构第一章ppt ...所谓外特性,就是计算机的概念性结构和功能特性,主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念
从抽象到具体分三个层次介绍相关知识,第一层次为体系结构及其相关概念,第二层次为流行的体系结构(模型)及其构件(协议),第三层次为具体的中间件技术以及基于上述技术的系统开发方法。 内容丰富,详略得当。从...
主要是基本概念,这是我们第一节课的讲义。分享出来和大家一起看看
第1章 计算机系统结构的基本概念1.1 解释下列术语层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特
SaaS是Software-as-a-service(软件即...他基本概念就是,微软的每一个软件产品,除了采用传统的许可证方式销售给用户之外,他还会有以互联网服务方式提供给用户,用户无需本地安装,只要通过互联网就能访问该服务。