期末复习-软件体系结构

一、软件重用与构件技术

软件重用的定义

软件重用是按照预先构造好的,以重用复用为目的的软件构件进行组装软件系统的过程。

重用驱动的软件的开发过程

一个重用驱动的软件开发过程描述了如何组装可重用构件建立软件系统,以及如何建立和管理可重用构件。

在这里插入图片描述

应用者重用

  • 寻找候选的可重用构件,有他们产生软件生命周期的每一阶段的交付
  • 候选构件进行评价,选择合适本系统的构件
  • 更改可重用构件,可以满足本系统的需求
  • 为可重用构件进行改进,增强未来的可重用性

生产者重用

  • 准备重用的候选构件
  • 差异分析,确定构件能够满足需求
  • 建立可重用构件
  • 封装可重用构件
  • 将可重用构件加入到可重用库中

构件的三种描述模型

3C模型

3C代表的是概念Concept,内容Content,语境Context

构件概念是对构件做什么描述,构件内容是构件如何被实现,构件语境是可重用构件应用的领域,3C主要用于形式化的描述方法

REBOOT模型

在描述函数型或者过程型软件构件,采用三元组Function、Object、Medium描述

在面向对象的软件构件来说,采用四元组Abstraction、Operation、OperatesOn、Dependencies刻画分类的模型,只允许按照给定的刻面架构描述已有的软件构件,适合非形式化方法

青鸟构件模型

外部接口和内部结构组成对应3C的概念和语境

外部接口,构件为外部世界提供的一组服务

内部结构,内部成员与内部成员之间的关系

三种构件分类方法的组织方式,检索方式,刻面分类法

构件分类法

  • 关键字分类法

将应用领域的概念按照抽象到具体,分解为树型或者有向无环图结构

在这里插入图片描述

  • 刻面分类法

组成,多面分类机制,同义词库,概念距离图

在这里插入图片描述

  • 超文本组织法

全文检索技术,所有构件附加以详细的功能说明或者行为说明文档,是一种非线性的网状信息组织方法,以节点为单位,链作为联想式关联

二、软件体系结构概述

软件体系结构 = 构件 + 连接件 + 约束

构件Component

构件是一组类的组合进行封装,代表完成一个或者一组功能,定义多个接口,对外提供服务,构件之间是相互独立的,隐藏具体实现,对外暴露接口提供服务

连接件Connector

用来建立构件间交互的模块,连接件和所连接的构件之间的一组交互点构成角色

约束Constrains

描述体系结构的配置和具体要求,确定体系结构构件与连接件之间的连接关系,是基于规则和参数配置的

软件体系结构的四个发展阶段

在这里插入图片描述

三、软件体系结构风格

B/S、C/S、MVC风格,层次系统风格

B/S体系结构主要是利用不断成熟的WWW浏览器技术,是一种浏览器,服务器模型,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。

C/S是客户端与服务器模型产生的一种体系结构

背景:基于资源不对等,且为实现共享而提出来的

主要组成部分:数据库服务器、客户应用程序和网络。
在这里插入图片描述

MVC风格,模型-视图-控制器,三层架构,各个层次负责不同的部分

视图层View显示用户模型信息,视图从模型中获取数据,一个模型可以对应多个视图

控制层Controller给用户提供接口,每一个视图与控制器相关

模型层Model封装内核数据和状态,对模型的修改扩散到各个视图中

在这里插入图片描述

优点,简化系统设计,保证系统的可扩展性,隔离性好,可维护性好,易改变,良好的动态机制

层次系统风格

每一层为它的上一层提供服务,并作为下一层的客户,可以将一个复杂的问题分解成为一个增量序列的实现

在这里插入图片描述

正交软件体系结构风格、基于层次消息总线的风格

正交软件体系结构组成,组织层和线索层的构件构成,是一种垂直线索构件族为基础的层次化结构。

如果线索之间是相互独立的,即所有线索中的构件之间没有相互调用那么这个结构就是完全正交的。

特点

  • 完成不同功能的n个线索或者子系统构成
  • 系统具有m个不同的抽象级别的层
  • 线索之间是相互独立的
  • 具有一个公共驱动层[最高层]和公共数据层[最底层]

比如线索ABE

在这里插入图片描述

优点,结构清晰,方便理解,容易修改,可维护性强,可移植性强,重用粒度大

层次消息总线的风格

JB/HMB风格的消息总线是系统的连接件,构件向消息总线登记感兴趣的消息,构成构件-消息响应表

分为消息登记,消息分派和传递,消息过滤[转换和阻塞]

在这里插入图片描述

四、软件体系结构描述

软件体系结构描述方法有哪几种

  • 图形表达工具

  • 模块内连接语言MIL

  • 基于软构件的系统描述语言

  • 软件体系结构描述语言ADL

  • 软件体系结构描述框架标准IEEE

ACME七种体系结构实体

构件,连接件,系统,端口,角色,表述,表述映射
在这里插入图片描述

XML的三个主要应用

  • 设计置标语言

  • 数据交换

  • Web服务

4+1视图模型

组成,逻辑视图,开发视图,过程视图,物理视图+场景视图

在这里插入图片描述

  • 逻辑视图,对象模型

  • 过程视图,系统并发和同步的设计

  • 物理视图,软硬件分布关联关系

  • 开发视图,软件在开发环境下的静态组织结构

五、软件体系结构设计

软件体系结构的一般原理有哪些

  • 抽象原理

过程抽象+数据抽象

  • 封装原理

  • 信息隐藏原理

  • 模块化原理

  • 注意点分离原理

  • 耦合和内聚原理

  • 接口和实现分离原理

  • 分而治之原理

  • 层次化原理

设计模式的基本成分

组成,模式名称+问题+解决方案+后果

体系结构设计的四种方法

  • 制品驱动的方法

  • 用例驱动的方法

  • 领域驱动的方法

  • 模式驱动的方法

质量属性的需求有哪些

可用性、可修改性、性能、安全性、可靠性、可测试性、易用性、可重用性、可集成性

对质量属性需求的场景进行描述

在这里插入图片描述

六、基于软件体系结构的软件开发过程

开发过程

开发环境决定适当的软件开发过程

七、软件体系结构评估

软件体系结构评估的三种方式

  • 基于调查问卷和检查表方式

  • 基于场景的方式

  • 基于度量的方式

SAAM方法的场景优先级投票和ATAM方法的质量属性用树

SAAM是精心设计形成文档的分析方法,主要是以评估报告的形式输出

场景分为直接场景 和 间接场景

直接场景是当前的体系结构不经过修改就支持的场景

间接场景是不能直接被当前的体系结构支持的场景

因为资源和时间有限,采取优先级的方法选取最关键的场景。CMU SEI建议在涉众范围内进行投票的方式决定哪些是关键的。

每个人拿到固定的选票,大概是场景的0.30,投票策略是每个人的投票总数不得超过手中的选票总数,可以为任何场景投任何数目的票。

ATAM方法是SAAM的增强版

ATAM的基础来自三个领域,体系结构风格,质量属性分析组,SAAM

生成质量属性效用树,QAUT,以树的形式表现质量属性的细化

在这里插入图片描述

  • 敏感点、权衡点、直接场景、间接场景

八、基于服务的体系结构

Web Service 的四种核心技术

  • XML

XML可扩展标记语言EXtensible Markup Language,被设计用来传输和存储数据。

  • SOAP

SOAP简单对象访问协议Simple Object Access Protocol,提供标准的RPC远程访问控制的方法调用Web Service

  • WSDL

WSDL Web 服务描述语言Web Service Description Language,基于XML的,用于描述Web Service 及其操作,参数,返回值的语言

  • UDDI

UDDI 统一描述,发现和集成协议Universal Description Discovery and Integration,用于网上自动查找Web Service

UDDI 包含白页[地址和联系人],黄页[行业分类],绿页[服务描述]

单体架构和微服务架构的定义和特点

单体架构,所有的业务模块编写在一个项目中,最终打成一个jar包,进行部署

优点,部署简单,技术单一,用人成本低

微服务架构,将单一的应用程序划分为一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值

特点,小的服务,独立进程,轻量级的通信机制,松耦合的交付

微服务架构的本质,以缩短交付周期为核心,基于DevOps的理念和实践,持续构建演进式构架

九、特定领域的软件体系结构

DSSA的含义

domain-specific software architecture,特定域软件体系结构,就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构

DSSA的基本活动

  • 领域分析,主要目的是获取领域模型,领域模型描述的需求就是领域需求。
  • 领域设计,获取DSSADSSA是描述领域模型中表示需求的解决方案,不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。
  • 领域实现,依据领域模型和DSSA来开发和组织可重用信息。
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 构件:是指语义完整,语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述通信接口和实现代码的复合体。2. 构件模型:是对构件本质特征的抽象描述。3. 构件组装:是指将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。4. 软件体系结构:Hayes Roth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。5. 面向服务体系结构(SOA):本质上是服务的集合,服务间彼此通信,这种通信可能是简单地数据传送,也可能是两个或更多的服务协调进行某些活动。6. 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统特性的基本能力。7. 可修改性:是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包括:可维护性、可扩展性、结构重组、可移植性。8. 敏感点:是一个或多个构件(和/或构件之间的关系)的特性。9. 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。10. 软件产品线:就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。11. 框架:是封装了特定应用族抽象设计的抽象类的集合,框架又是一个模板,关键的方法和其他细节在框架实例中实现。
软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系、功能和行为。在软件体系结构的设计过程中,可以使用多种复用技术来提高开发效率和软件质量。 一种常见的软件体系结构复用技术是使用框架。框架是一个可重用的软件结构,它提供了一个通用的解决方案,可以用于开发特定类型的应用程序。框架通常包含了一些基本的组件和模块,开发人员可以在此基础上进行扩展和定制,以满足具体的需求。 另一种常见的软件体系结构复用技术是使用设计模式。设计模式是一种被广泛接受的解决特定问题的方法。它提供了一套经过验证的解决方案,可以在不同的软件系统中重复使用。常见的设计模式包括单例模式、工厂模式、观察者模式等。 此外,还有其他一些软件体系结构复用技术,如组件化和面向服务架构(SOA)。组件化将软件系统划分为独立的组件,每个组件都具有特定的功能和接口,可以在不同的系统中重复使用。而SOA则是一种基于服务的架构,将软件系统划分为一系列相互独立的服务,这些服务可以通过网络进行通信和交互。 总结起来,软件体系结构复用可以通过使用框架、设计模式、组件化和面向服务架构等技术来实现。这些技术可以提高软件开发的效率和质量,同时也可以促进软件系统的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值