期末复习-软件体系结构

news2024/9/22 21:34:07

软件体系结构

  • 一、软件重用与构件技术
    • 软件重用的定义
    • 重用驱动的软件的开发过程
    • 构件的三种描述模型
    • 三种构件分类方法的组织方式,检索方式,刻面分类法
  • 二、软件体系结构概述
    • 软件体系结构 = 构件 + 连接件 + 约束
    • 软件体系结构的四个发展阶段
  • 三、软件体系结构风格
    • B/S、C/S、MVC风格,层次系统风格
    • 正交软件体系结构风格、基于层次消息总线的风格
  • 四、软件体系结构描述
    • 软件体系结构描述方法有哪几种
    • ACME七种体系结构实体
    • XML的三个主要应用
    • 4+1视图模型
  • 五、软件体系结构设计
    • 软件体系结构的一般原理有哪些
    • 设计模式的基本成分
    • 体系结构设计的四种方法
    • 质量属性的需求有哪些
    • 对质量属性需求的场景进行描述
  • 六、基于软件体系结构的软件开发过程
    • 开发过程
  • 七、软件体系结构评估
    • 软件体系结构评估的三种方式
    • `SAAM`方法的场景优先级投票和`ATAM`方法的质量属性用树
  • 八、基于服务的体系结构
    • `Web Service`的四种核心技术
    • 单体架构和微服务架构的定义和特点
  • 九、特定领域的软件体系结构
    • DSSA的含义
    • DSSA的基本活动

一、软件重用与构件技术

软件重用的定义

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

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

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

在这里插入图片描述

应用者重用

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

生产者重用

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

构件的三种描述模型

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来开发和组织可重用信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

塔望3W消费战略全案丨牛小范低脂即食肉蛋白 行走的米其林牛排

牛小范 客户:山东如康集团 品牌:牛小范 服务:3W消费战略 品牌全案 项目背景 山东如康集团是一家集牛羊肉生产、加工与销售等为一体的大型综合性集团企业,是山东省级“专精特新”企业、农业产业化市级龙头企业和山东省"十三…

Linux命令:scp

目录 简介 一、语法 二、示例 2.1 将本地文件复制到远程主机目录 2.2 将本地目录复制到远程主机目录 2.3 将远程主机的文件复制到本机 2.4 复制远程主机目录到本机 简介 今天我们来介绍一个Linux命令:scp scp — secure copy (remote file copy program)&am…

Vue实现手机端界面的购物车案例

目录 前期准备 Header Goods Footer Counter 今天用Vue实现的一个手机端的购物车案例,着重阐述组件化思想的优势,将页面的内容分成各个模块进行书写,然后数据传输,父传子、子传父、兄弟数据共享等,这方面知识不牢…

[附源码]计算机毕业设计springboot游戏商城平台论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

PHP 经纬度坐标相关计算方法

1. 前言 2. 计算经纬度坐标间的距离 3. 根据经纬度坐标距离排序 4. 经纬度范围查询 1. 前言 想要测试本文提供的几个功能函数,可以使用下面这个数据表结构及其数据 CREATE TABLE user ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 用户id, name v…

html静态网站基于游戏网站设计与实现共计10个页面 (仿地下城与勇士游戏网页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

UDS(83服务-AccessTimingParameter)

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍诊断和通讯管理功能单元下的83服务AccessTimingParameter,该服务的目的是读取/修改有效通信的计时参数。 文章目录 诊断协议那些事儿一、83服务-AccessTimingParameter二、请求格式子功能参数定义-timingParameterA…

Java并发编程—死锁

文章目录死锁什么叫做加锁?死锁代码理解:如何避免死锁?资源限制的挑战什么是资源限制?资源限制引发的问题?如何解决资源限制的问题?在资源限制情况下进行并发编程————————————————————…

物联网 (IoT) 为何如此重要?哪些技术让物联网成为了可能?

随着社会的进步和科技的发展,定位技术在技术手段、定位精度、可用性等方面均取得质的飞越,并且逐步从航海、航天、航空、测绘、军事、自然灾害预防等“高大上”的领域逐步渗透社会生活的方方面面,成为人们日常中不可或缺的重要应用——比如人…

[附源码]计算机毕业设计基于SpringBoot的剧本杀管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

用Python画出圣诞树,瞧瞧我这简易版的吧

前言 嗨嗨,大家好,我是小圆 今天来实现一下 用python画出圣诞树 代码 模块 源码.点击领取即可 import turtle as t from turtle import * import random as r import time圣诞树细节以及画布大小 画布大小,背景颜色都可以改,…

数据结构——链表

目录 一、链表概述 二、模拟实现链表 1、结点 2、遍历链表 3、获取链表的长度 4、添加元素 (1)、头插法 (2)、尾插法 (3)、在指定位置插入元素 5、删除元素 (1)、删…

Springboot整合mybatis多数据源

Mybatis中如何配置多数据源 一 什么情况下会用到多数据库? 场景1: 一个商城网站,一个游戏网站,商城网站已经做好,游戏网站正在开发,游戏网站上的很多道具需要用到商城网站的产品数据,这种情况…

[附源码]Python计算机毕业设计Django基于JEE平台springboot技术的订餐系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

wy的leetcode刷题记录_Day57

wy的leetcode刷题记录_Day57 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2022-12-1 前言 leetcode 每日一题二叉树 1779. 找到最近的有相同 X 或 Y 坐标的点 701. 二叉搜索树中的插入操作 目录wy的leetcode刷题记录_Day57声明前言1…

多目标Jaya优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文目录如下:🎁🎁🎁 💥1 概述 多目标 Jaya 算…

CG-FX 风向传感器 聚碳 浅谈工作原理

产品概述 本产品外型小巧轻便,美观坚固,便于携带和组装,风向标形状设计合理,对自然界大气风向具有准确的定位作用。采用聚碳材质,具有防雨、防腐蚀、坚固实用等优点。 功能特点 ◆体积小,重量轻&#xf…

[附源码]Python计算机毕业设计Django绿色生鲜

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]JAVA毕业设计酒店管理系统(系统+LW)

[附源码]JAVA毕业设计酒店管理系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

anaconda使用系列教程--3)conda命令详解

管理conda 在任何时候你可以通过在命令后边跟上-help来获得该命令的完整文档。例如,你可以通过如下的命令来学习conda的update命令conda update --help Conda会返回你安装Anaconda软件的版本conda --version 升级当前版本conda update conda 查看当前conda信息cond…