软件工程---6.体系结构设计

体系结构模型是什么?

体系结构模型,该模型描述系统如何被组织为一组相互通信的构件

体系结构分类

  1. 小体系结构关注单个程序的体系结构。在这个层次上,我们关注单个的程序是如何补分解为构件的。
  2. 大体系结构关注包括其他系统、程序和程序构件的复杂企业系统体系结构。

非功能性需求影响最大

对体系结构有显著影响的需求”的研究中确认了这一点, 他们发现非功能性需求对于系统体系结构的影响最大

体系结构视图

在这里插入图片描述

  1. 逻辑视图。这个视图将系统中的关键抽象显示为对象或对象类。应该可以将系统需求与这个逻辑视图中的实体联系起来。
  2. 进程视图。这个视图显示系统在运行时如何通过相互交互的进程来构成。该视图对于做出关于非功能性系统特性(例如性能、可用性)的判断很有用。
  3. 开发视图。这个视图显示软件如何面向开发任务进行分解;也就是说,该视图显示了软件如何分解为由单个开发者或开发团队实现的构件。该视图对于软件开发管理者和程序员都很有用。
  4. 物理视图。这个视图显示系统硬件以及软件构件如何分布在系统中的处理器上。该视图对于规划系统部署方案的系统工程师很有用
  5. 概念视图。Hofmeister等人( Hofmeister,Nord, and Soni 2000 )提出使用相似的视图,但向其中增加了一个概念视图。这个视图是一种系统的抽象视图,可以作为将高层需求分解为更详细的规格说明的基础,帮助工程师确定可以复用的构件,以及表示一个产品线(在第15章中介绍)而不是单个系统。图6-1描述了一个打包机器人的体系结构,可以作为一个概念系统视图的例子。

体系结构模型

在这里插入图片描述

分层体系结构

分离和独立性的思想是体系结构设计的基础,因为这可以使变更被局部化。
在这里插入图片描述

  1. 层是指一组提供相关服务的子系统,多半是通过使用其它层的服务来实现本层的功能。
  2. 封闭体系结构:每一层只能访问其相邻的下一层(如OSI 7层模型)
  3. 开放体系结构:每一层可以访问比其低的层次(JavaSwing)

知识库体系结构

在这里插入图片描述

客户—服务器体系结构

在这里插入图片描述

管道—过滤器体系结构

在这里插入图片描述

子系统分解

分解原则

  1. 耦合与内聚
  2. 封闭性与开放性

耦合

耦合:两个子系统之间的依赖程度,如果是松耦合关系,那么对一个子系统进行改变则对另外一个子系统影响不大

内聚

内聚

  1. 描述子系统内部各实现类之间的依赖程度,如果一个子系统中含有许多相互关联的类并且执行类似的操作,那么就是高内聚,反之就是低内聚。
  2. 我们总是希望系统是高内聚,低耦合。

封闭性

如果一个子系统能独立的被其他子系统所使用,我们说这个子系统具有封闭性

开放性

如果一个子系统对外提供的服务能够被方便扩充,我们说这个子系统具有开放性

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

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

相关文章

【剑指offer】_07 矩形覆盖

题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路 依旧是斐波那契数列 2n的大矩形,和n个21的小矩形 其中target*2为大矩阵的大小 有以下几种情形…

软件工程---07.设计与实现

软件设计和软件实现 软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系。软件实现是将设计实现为一个程序的过程 为开发一个系统设计,你需要 理解并定义上下文模型以及系统的外部交互设计系统体系结构识别系统中的主要对象…

软件工程---15.软件复用

复用的图(牢记) 软件复用的好处 开发加速有效的专家利用提高可依赖性降低开发成本降低过程风险符合标准 软件复用的缺点 创建,维护以及使用一个构件库查找,理解以及适配可复用构件维护成本增加缺少工具支持“不是在这里发明的”综合症 应用框架 现在…

软件工程---16.基于构件的软件工程

CBSE CBSE是定义、实现、集成或组装松散耦合的独立构件成为系统的过程。 基于构件的软件工程的要素有: 完全由接口进行规格说明的独立构件。构件标准使构件集成变得更为容易。中间件为构件集成提供软件支持。开发过程适合基于构件的软件工程。 CBSE的设计原则 构件是独立的…

软件工程---17.分布式软件工程

分布式系统的5个优点 资源共享开放性并发性可伸缩性容错性 分布式计算中必须考虑的设计问题 透明性:隐藏底层分布 开放性 可伸缩性 三个维度 规模:又分为增强扩展(单挑),增加扩展(群殴)分布可靠性 信息安全性 主要防止以下类型的攻击 拦…

软件工程---18.面向服务的软件工程

什么是Web服务 一个松耦合、可复用的软件构件,封装了离散的功能,该功能是分布式的并且可以被程序访问。Web服务是通过标准互联网和基于XML的协议被访问的服务。 服务和软件构件之间的一个重要的区别是 服务应该总是独立的和松耦合的Web 服务没有“请求…

【剑指offer】_09二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路 比如下面的这棵二叉搜索树 它的后序遍历为0214369875; 我们设当前根节点为root; 第一次…

【剑指offer】_12 数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 解题思路 剑指offer的解法 看到这个题目&#xff0…

详解Linux下通过yum安装Mariadb/MySQL数据库(腾讯云也适用)

1. 安装Mariadb 安装命令 yum -y install mariadb mariadb-server安装完成MariaDB,首先启动MariaDB systemctl start mariadb设置开机启动 systemctl enable mariadbMariaDB的相关简单配置 此命令进入到配置相关界面 mysql_secure_installation首先是设置密码…

海量数据处理(位图和布隆过滤器)

哈希切割 给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 与上题条件相同,如何找到top K的IP?如何直接用Linux系统命令实现 解决思路 找到出现次数最多的IP地址 要找到前TopK的IP地址,就…

C++中的lambda表达式和线程库

98中的一个例子 如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法 #include <algorithm> #include <functional> int main() {int array[] {4,1,8,5,3,7,0,9,2,6};// 默认按照小于比较&#xff0c;排出来结果是升序std::sort(array, a…

文件压缩(Huaffman树的概念及其实现)

什么是压缩 想办法让源文件变得更小并能还原。 为什么要进行文件压缩 文件太大&#xff0c;节省空间提高数据再网络上传输的效率对数据有保护作用—加密 文件压缩的分类 无损压缩 源文件被压缩后&#xff0c;通过解压缩能够还原成和源文件完全相同的格式 有损压缩 解压缩之…

详解STL中的空间配置器(SGI版本)

空间配置器 1.什么是空间配置器 为各个容器高效的管理空间(空间的申请与回收)的 2.为什么需要空间配置器 各种容器----->可以存放元素---->底层需要空间 new 申请空间 operator new ---->malloc调用构造函数------完成对象的构造 动态内存管理总结 前面的容器…

大四阶段的社会实践的主要目的是_疫情当前,大三大四的学生“很惨”?大一大二的学生也别松懈...

大四毕业生不容易这次疫情对于高校学生而言&#xff0c;可以说是各有各的难处&#xff0c;“这届毕业生很惨”更是屡上热搜。不可否认&#xff0c;大四毕业生确实很不容易&#xff0c;论文答辩、毕业、求职就业等都受到了影响&#xff0c;虽然有困难&#xff0c;但各方都在积极…

【剑指offer】_19 滑动窗口中的最大值

题目描述 给定一个数组和滑动窗口的大小&#xff0c;找出所有滑动窗口里数值的最大值。例如&#xff0c;如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3&#xff0c;那么一共存在6个滑动窗口&#xff0c;他们的最大值分别为{4,4,6,6,6,5}&#xff1b; 针对数组{2,3,4,2,6,2,…

android 文字反转_多文字共享信息系统

欧阳贵林 www.HeZi.net首发表于2016年03月23日“ 处在信息时代的开端&#xff0c;信息技术不应有特殊的文字性&#xff0c;需要创建多文字共享信息系统&#xff0c;给各国文字一个公平的参与信息与科技创新发展的平台。这是世界的事&#xff0c;更是中国事。”01人类语言语言文…

LeetCode【1--两数之和】 LeetCode【2--两数相加】

两数之和 题目描述 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;你不能重复利用这个数组中同样的元素。 解题思路 直接两…

input数字开头不能为0_李商隐为初恋写诗,每句以数字开头,最后10字一直被仿从未被超越...

上学时&#xff0c;每次写作文&#xff0c;老师总爱在耳边念叨&#xff1a;“你的作文得让阅卷老师看得懂&#xff0c;不然不可能给你高分的&#xff01;”每次听到话&#xff0c;笔者总是用李商隐的诗来和他斗嘴。是的&#xff0c;李商隐的诗作常常是让人读不懂的&#xff0c;…

lsass.exe 当试图更新密码时_“驱动人生”下载器木马再度更新-你应该注意什么?...

360安全大脑监测到通过"驱动人生"供应链攻击传播的挖矿木马在1月30日下午4时左右再次更新。此次更新中&#xff0c;木马在此前抓取系统帐户密码的基础上增加了抓取密码hash值的功能&#xff0c;并试图通过pass the hash攻击进行横向渗透&#xff0c;使得该木马的传播…

LeetCode【3--无重复的最长字串】 LeetCode【4--有序数组中的中位数】

无重复的最长字串 题目描述 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 解题思路 看到这道题&#xff0c;其实就两个步骤&#xff0c;遍历字符串&#xff0c;记录当前字符有没有重复。 重复一般解决就是哈希&#xff0c;这里用个数组表示…