软件体系结构速成-期末收藏版

第一章:概论

软件危机表现(软件开发和维护过程中遇到的一系列严重问题)
1.成本日益增长。2.开发进度难控制。3.软件质量差。4.维护困难。
软件危机成因
1.需求不明确。
2.复杂度高。
3.缺乏理论指导
4.软件规模变大
软件工程三要素:方法,工具,过程。
构件:语义,语法完整,有可重用价值的软件(计算或数据存储单元)
构件分类方法:关键字分类,刻面分类,超文本组织方法
构件如何重用:1.检索与提取构件 2.理解与评价构件 3.修改构件 4.构件组装
领域的定义与特性:( 是一组具有相似或相近软件需求的应用系统所覆盖的功能区域。)
领域具有内聚性和稳定性
3. 软件重用的好处有哪些?
提高软件生产率,降低开发成本,缩短开发周期;
改善软件质量,提高软件的灵活性和标准化程度。减小软件开发的风险
软件体系结构定义: 是软件系统提供了一个结构,行为,属性的高级抽象。 由构成系统元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 =={元素,形式,准则}=={构件,连接件,约束}
软件体系结构的意义: 风险承担者交流手段,早期决策表现,是可重用和传递的模型,
体系结构作用 :提高生产率,解决软件维护问题
基于体系结构的开发方法:问题定义-软件需求-软件体系结构-软件设计-实现

第二章:体系结构建模

软件体系结构模型:
结构模型:核心是体系结构描述语言
框架模型:侧重整体的结构
动态模型:侧重系统大颗粒的行为性质
过程模型:侧重构造系统的步骤和过程
功能模型:下层-上层提供服务
视图
逻辑视图:侧重系统功能需求,提供给最终用户的服务
开发视图(静态):侧重软件模块的组织和管理-层次结构风格
进程视图(动态):侧重系统的运行特性,关注非功能需求
物理视图:侧重于如何把软件映射到硬件上,系统性能等
场景视图:系统活动的抽象,是最重要的需求抽象
软件体系结构的核心模型
组成:构件,连接件,配置,端口,角色
构件: 语义,语法完整,有可重用价值的软件模块(计算或数据存储单元)
连接件:用于构件之间的交互,不参与编译
配置:表示构件和连接件的逻辑和约束
端口,系统与其它系统或构件通信的接口,允许系统与其它部分数据交换。
角色,不同角色承担着不同任务,角色的定义和分配对于系统的正常运行至关重要。
软件体系结构生命周期模型定义:
跨越整个软件过程的全部工作和任务的结构框架;
四大阶段:需求分析-建立体系结构-设计-实现

第三章:软件体系结构风格

定义:体系结构风格定义了一个系统家族(词汇表,一组约束)用于 描述某一特定应用领域中系统组织方式的惯用模式。
关键四要素
1.提供一个词汇表  2.定义一套配置规则  3.定义一套语义解释原则 4.定义对基于这种风格的系统所进行的分析
什么是风格: 一些特定的元素,按照特定的方式组成一个有利于上下文环境里的特定问题解决的结构
体系结构风格是反复出现的组织模式和习惯用法是对一系列体系结构设计的抽象。
经典体系结构风格:
数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。 
独立构件风格:进程通讯;事件系统。 
虚拟机风格:解释器;基于规则的系统。 
仓库风格:数据库系统;超文本系统;黑板系统
管道和过滤器: 每个构件都有一组输入和输出。 构件读输入的数据流,经过内部处理后产生输出数据流。--这个构件就是过滤器
优点:
  • 使得软构件具有良好的隐蔽性和高内聚、低耦合;,支持并行,
  • 支持软件重用。
  • 允许将整个系统的输入/输出行为看成多个过滤器的行为的简单合成;
  • 系统维护和增强系统性能简单。
缺点:
  • 通常导致进程成为批处理的结构。
  • 不适合处理交互应用。
  • 导致了系统性能下降,增加了过滤器的复杂性。
客户服务器风格C/S:(三个组成部分:服务器,客户端,计算机网络)
三个组成部分各自的作用:
服务器:安全性,访问控制,接受请求,提供服务。
客户端:发送请求,接受处理结果、
优点:
  • 具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受
  • 客户端应用程序和服务器构件运行在不同的计算机上(易扩展,灵活性高)
  • 客户端应用和服务器端的访问组件相对独立, 节约应用成本
缺点:
  • 开发成本较高
  • 客户端程序设计复杂 
  • 信息内容和形式单一
  • 用户界面风格不一,使用繁杂,不利于推广使用 
  • 软件移植困难 
  • 软件维护和升级困难
浏览器/服务器风格与C/S风格的区别
一定程度上统一客户端风格,节约成本
优点:
  • 基于B/S体系结构的软件,系统安装、修改和维护都在服务器端解决。
  • B/S体系结构为以异构系统融合提供基础。
缺点:
  • 与传统C/S相比,客户端交互性相对较弱。
  • B/S体系结构的系统扩展能力差,安全性不容易控制。 
  • 采用B/S体系结构的应用系统,数据查询等响应速度上,低于C/S体系结构。
  • B/S体系结构的数据提交,一般以页面为单位,数据动态交互性不强,不利于在线事务处理(OLTP)应用。
正交软件体系结构:
定义: 正交软件是一种以垂直线索构件族为基础的层次化结构。
基本思想:
把应用系统的结构按功能的正交性,垂直分割为若干个线索(子系统)
线索分为多个层次,每个线索由若干具有不同层次功能和抽象级别的构件构成
优点: 结构清晰,易理解, 易修改,可维护性强。 可移植性强,重用粒度大。
缺点: 缺点: 设计复杂度较高 :模块间通信开销  模块的接口设计成本高。
异构结构风格:
定义: 多种体系结构共存和相互融合,形成更复杂的框架结构,即异构体系结构
为什么使用异构体系结构风格:
  • 不同的体系结构,有不同的处理能力的强项和弱点。
  • 一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。
  • 关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。
  • 残留代码 问题
  • 解释或表达上的差异 :

第四章:软件体系结构描述和设计

软件体系结构描述语言:ADL
  • ADL吸收了传统程序语言的语义严格、精确的特点;
  • 针对软件体系结构的整体性和抽象性,定义适合软件体系结构表达与描述的抽象元素; 
  • ADL 在底层语义模型的支持下,为概念体系结构建模提供了具体语法和概念框架
  • ADL的主要作用是为软件开发提供一种形式化的、结构化的方式来描述系统的架构,包括系统的组件、连接、配置和行为等方面。
与高级语言相比,ADL语言有什么不同之处?
  • ADL 具有传统程序设计语言的特点:精确性和严格性。
  • 构造能力
  • ADL 能够使用较小的独立体系结构元素,建造大型软件系统。
  • 抽象能力
  • ADL 使得构件和连接件描述,只关注抽象特性,而不管具体的实现细节。
  • 重用能力
  • ADL 使得构件、连接件,甚至软件体系结构都成为可重用部件。
  • 组合能力
  • ADL 描述的每元素都有自己的局部结构,这种特点使得 ADL 支持软件系统的动态组合;
  • 异构能力
  • ADL 允许多个不同的体系结构描述关联存在;
  • 分析和推理能力
  • ADL 允许对其描述的体系结构,进行多种不同的性能和功能上的多种推理分析。
XML语言(可扩展标记语言)--XML是用来描述数据的。
设计原则:
软件体系结构设计方法:
工件驱动(artifact-driven)的方法-- 从方法的工件描述中提取体系结构描述。
用例驱动(use-case-driven)的方法
目的: :作为系统预期功能及其环境的模型,并在客户和开发者之间起到合约的作用。
统一过程使用的是一种用例驱动的体系结构设计方法,它由核心工作流组成。( 商业模型、需求、分析、设计、实现和测试。)
缺点:
  • 难以适度把握领域模型和商业模型的细节。 
  • 对于如何选择与体系结构相关的用例没有提供系统的支持。 
  • 用例没有为体系结构抽象提供坚实的基础。 
  • 包的语义过于简单,难以作为体系结构构件。
模式驱动(pattern-driven)的方法-- 关心体系结构级别的元素及其交互
缺点:
  • 在处理范围广泛的体系结构问题时,模式库可能不够充分。
  • 对模式的选择仅依靠通用知识和软件工程师的经验。 
  • 模式的应用并不是一个简单直接的过程,它需要对问题进行全面的分析。 
  • 对于模式的组合没有提供很好的支持。
域驱动(domain-driven)的方法。 --主要用于产品线体系结构设计和特定领域的软件体系结构设计。
缺点:
  • 问题领域分析在导出体系结构抽象方面效果较差。
  • 解决方案领域分析不够充分。

第五章-动态软件体系结构

体系结构动态性: 交互式动态性、结构化动态性、体系结构动态性
动态体系结构定义: 支持软件运行时更新软件体系结构
动态体系结构特征: 可构造性动态、适应性动态、智能型动态

第六章--Web服务体系结构

定义: Web服务作为一种新兴的Web应用模式, Web服务就像Web上的构件编程, Web Service是基于可编程的web的应用模式、
特征:
Web服务模型
服务提供者:提供服务并进行注册,以使服务可用。
服务代理:起中介作用,它是服务的注册场所,充当服务提供者和服务请求者之间的媒介。
服务请求:在应用过程中通过向服务代理请求服务,调用所需服务。
Web服务生命周期阶段
(1) 构建阶段:包括开发和测试Web服务的实现、定义服务接口描述和定义服务实现描述。可以通过创建新的Web服务来提供Web服务的实现。
(2)部署阶段:向服务请求者或服务注册中心分布服务接口和服务实现的定义,以及把Web服务的可执行文件部署到执行环境( Web应用程序服务器)中。
(3)运行阶段:该阶段可以调用Web应用程序。此时服务请求者就可以进行查找和绑定操作。
(4)管理阶段:此阶段包括持续的管理和经营Web服务应用程序。该阶段应解决:安全性、可用性、性能、服务质量和业务流程等问题。
Web服务体系结构的优势
Web服务是近年来提出的一种新的面向服务的体系结构,它与传统的分布式体系结构相比,其优势有如下4点:
(1)高度的通用性和易用性Web服务利用标准的Internet协议(HTTP、SMTP),提高系统的开放性、通用性、扩展性。
(2)完全的平台、语言独立性Web服务进行了高程度的抽象,只要遵循Web服务的接口,即可进行服务的请求和调用。
(3)高度的集成性:Web服务实质上是通过服务的组合来完成业务逻辑的。因此,表现出高度的组装性和集成性。
(4)容易部署和发布:通过UDDI、WSDL 和S0AP等协议,很容易实现系统的部署。
SOA定义:
SOA是一种应用程序体系结构; SOA是一种软件开发方法,也是一种系统集成方法
基本原理: SOA的基本原理是通过松散耦合的、标准化的服务来实现软件系统的模块化设计,服务可以跨平台、跨技术栈进行复用和集成。
优势:缩短上市时间,改善可维护性,增强适应性
SOA与Web服务关系
Web服务可以实现SOA; 
SOA是一种设计模式,具有很多种实现方式。

第七章--基于体系结构的软件开发

设计模式是什么?
◇ 本质是对软件设计中反复出现的问题的通用解决方案
◇ 经过多次验证的指导原则,帮助开发人员解决特定类型问题
◇ 提高代码可维护性,可拓展性和重用性
设计模式不是完整的代码,不是一成不变的法则
设计模式的分类
◇ 创建型模式:关注实例化过程,解决对象的创建
◇ 结构型模式:关注对象之间的组合方式,帮助定义对象之间的关系
◇ 行为型模式:关注对象之间的通信方式
设计模式和体系结构的关系
设计模式中的“设计”与概要设计、详细设计中的“设计”有什么关系?
设计模式为详细设计 和概要设计 提供了方法和工具,而概要设计、详细设计则为整个系统的实现提供结构和细节,它们共同构成了软件设计的完整过程。
ABSD: 是一种架构驱动的软件方法,由 业务、质量和功能需求 的组合驱动软件过程
ABSDM过程:
什么是软件演化?
◇ 针对有限问题,不明确的需求,不断地开发软件
◇ 从实验运行系统出发,在新问题、新需求的驱动型,不断地开发软件
为什么要演化开发?
◇ 在构建开发过程中,用户的需求可能还有变动
◇ 软件部署后,环境变化等,将会产生新的需求

第八章--软件体系结构的分析与测试

风险评估
体系结构测试与传统测试异同

第九章--软件体系结构评估

评估的几个方面:
性能,可靠性,可用性,功能性,安全性,可修改性,可变性,集成性,互操作性
评估涉及到的几个概念:
敏感点: 敏感点,构件和构件之间的特性。- 是影响某个质量属性的决策点。
权衡点,影响多个质量属性特征。- 是多个质量属性的权衡点(敏感点);
风险承担者体系结构涉及很多人的利益。
场景场景是对风险承担者与软件交互的简短描述;
主要评估方式
◇ 基于调查问卷或检查表
特点:
- 自由灵活,能评估多种质量属性
- 比较主观,相关人员的经验和知识是评估的重要信息来源
◇ 基于场景
特点:
- 关注利益攸关方的相关质量要求
- 实施者不但要有丰富的领域知识,也应该了解软件体系结构
◇ 基于度量
特点: - 更为客观的评估方式
- 评估人员比较了解体系结构
- 自动化工具的支持
 为什么说基于度量的方式是客观的,度量评估方式有哪些具体活动?
答: “基于度量的方式是客观的” 是因为它通过使用具体的数据、数值和定量分析来进行评估和判断,而不是依赖于主观的感受、经验或者偏见。度量(或者说量化的方式)通常能够提供一种标准化的方法来描述某个现象或过程,使得不同的人在不同的时间或场景下可以得到一致的结论。
度量评估的具体活动包括指标定义、数据收集、数据分析、目标设定与比较、持续监测、改进措施,以及报告与沟通
基于调查表等主观的评估方式,其评估结果是否具有客观性?
答: 基于调查表等主观评估方式,其评估结果的客观性相对有限,因为它依赖于受访者的个人感受、经验和主观看法,这可能导致偏见或不一致性。不过,通过精心设计问卷、 增加样本量以及采用统计分析,可以在一定程度上提升其结果的可靠性和趋于客观,但完全消除主观性仍然困难。
SAAM概述:SAAM方法是最早形成文档,并广泛使用的方法
步骤:

第十章--软件产品线体系结构

软件产品线(Software Product Line,SPL)
定义: SPL是一个产品集,这些产品共享一个公共的、可管理的特征集;该特征集能满足选定的市- 场或任务领域的特定需求。 具有共性或相似个性的软件产品族。)
SPL双生命周期模型
SEI模型
三生命周期模型
SPL建立与演化
演化方式
革命方式
基于现有产品集
基于现有产品体系结构开发 SPL 体系结构,经演化现有构件,一次开发一个产品线构件。
SPL 核心资源开发,基于现有产品集的需求和可预测的、将来需求的超集。
全新产品线
SPL 核心资源随产品新产品的需求而演化。
开发满足所有预期 SPL 产品需求的核心资源。
SPL基本活动包括- 核心资源的开发和产品的开发;
 - 这二者都需要技术和管理,二者可以同时进行,也可以交叉进行。
框架与应用
定义: 软件重用的一种形式--( 应用框架为特定应用领域软件,提供可重用体系结构,包括结构中一组相互协作的类。
SPL中框架主要指应用框架,解决的是一个领域或产品族的问题。)
框架的特征:
  • - 反向控制,给出了调用客户代码的方法;
  • - 可重用性,
  • - 扩展性,
  •  - 模块化和构件化,框架提供统一的访问接口。
SPL与传统软件开发的区别:
- 传统软件开发由特定项目发起, 基于代码或框架,采用代码重用
- SPL由特定业务领域发起, 基于业务平台,高达90%核心资源重用

第十一章--云计算

定义:云”,可以简单看作一组通过因特网公开访问的计算机和服务器。(资源池)
云计算: 资源池基于网络平台为用户提供的数据存储和网络计算服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry-Walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值