西电软件体系结构核心考点汇总(期末真题+核心考点)

news2024/10/7 18:30:22

文章目录

  • 前言
  • 一、历年真题
  • 二、核心考点汇总
    • 2.1 什么是软件体系架构?(软件体系结构的定义)
    • 2.2 架构风格优缺点
    • 2.3 质量属性
    • 2.4 质量评估


前言

主要针对西安电子科技大学《软件体系结构》的核心考点进行汇总。
【期末期间总结资料如下】
在这里插入图片描述
针对西电计科院软件工程专业大三《软件体系结构》期末考试复习资料。大部分知识点来自于老师的PPT,放心使用。
题型包括:简答题,选择题,大题
(如需要软件体系结构全部笔记资料,可以联系邮箱oax_knud@163.com
其他资料参考:西电计算机专业课资料汇总


一、历年真题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Utility Tree (16 points)
    A software company plans to develop a data processing system. The development team analyzed the Quality Attributes, designed architecture and wanted to use Utility Tree to evaluate the architecture, followings are the scenarios.
    a) There are two roles in the system: administrator and user. An administrator can create one or more users, and grant them the permissions accordingly.
    b) Users are identified by their mobile phone numbers, and they can set a nickname having least 5 characters starting with letters.
    c) The cost for adding a new data processing algorithm to the system by a developer is less than 10-person days.
    d) The processing latency on main database need to be reduced to 100ms.
    e) Change Web user interface in < 3-person weeks.
    f) The application can display the processing results for an authentication user, and the authentication works 99.99% of the time.
    g) When power outrage happens at site 1, it takes at most 3s to redirect
    all traffic from site 1 to site 3.
    h) If a user forgets his password, he can reset his password by receiving a message from the system.
    i) The latency for processing a 1GB video data (1080p) must be less than 10s.
    j) The network failure can be detected automatically and recovered in < 2.5 min.
    k) The system must have a user authorization database to record the user permissions, and the authorization works 99.99% of the time.
    According the scenarios, please construct a Utility Tree.

  2. Architecture Evaluation (20 points)
    Identifying and recording risks and non-risks, sensitivity points and tradeoffs are important tasks in architecture evaluation. Please describe the definitions of risk, non-risk, sensitivity point and tradeoffs and then read the following descriptions and point out each description is a risk, non-risk, sensitivity point or tradeoff.
    a) The number of concurrent requests will affect the number of transactions a database can process per second.
    b) Changing the level of authentication could have a significant impact on both security and performance.
    c) Some business processing component is provided by a third-party
    company, there is no way of detecting the failure of them directly.
    d) Assuming the request arrival rate is twice per second, and the average processing time is less than 80ms; a 1 second response time seems reasonable for our system.
    e) Some of the legacy data processing components are implemented by the C++ programming language, which should be encapsulated ( 封装 ) first and are hard for a Java program to maintain and modify them.
    f) The selection of the encryption algorithm might be closely related to the number of bits of encryption

二、核心考点汇总

2.1 什么是软件体系架构?(软件体系结构的定义)

基于1993年D Garlan,Mshaw 的软件体系结构定义,可以认为软件体系结构由三大要素组成,分别为:组件,连接件,约束。其作用如下:

  • 组件:具有某种功能的可重用的软件模块单元,表示了系统中主要的计算单元和数据存储。
  • 连接件:表示了组件之间的交互。简单的连接件有:管道,过程调用、事件广播等。复杂的连接件有:客户-服务器通信协议,数据库和应用之间SQL连接等。
  • 约束:表示了组件和连接件的拓扑逻辑和约束。

2.2 架构风格优缺点

在这里插入图片描述
掌握所有架构风格优缺点和原理。
以数据流风格为例:
1、 总体描述:
【组件】数据流风格组件为计算模型,包括输入接口和输出接口,输入接口读取数据流的数
据,通过计算模型处理数据得到结构,将其写入输出接口。【连接件】连接件为数据流,前
一个组件的输出接口输出的数据通过数据流传输到下一个组件的输入接口,连接件主要起传
输数据的作用。
2、 批处理风格【大量整体数据传输时适用】
在这里插入图片描述
【组件】批处理风格的组件是独立计算的程序,【连接件】连接件为某种传输数据的媒介
【优点】

  • 无需考虑同步问题:数据是完整的,以整体的方式在组件之间进行传输,因此无需考虑
    同步数据问题;
  • 可以随机存取数据:由于数据是完整传输的,因此在获取数据时,可以完整的存取所有
    数据。

【缺点】

  • 计算效率低,系统性能差,无法并行计算:批处理的处理单元必须在前一个处理单元完
    全处理完毕后再进行计算,因此系统计算效率低。
  • 无法实时计算:每个组件之间的计算顺序是固定的,因此若实时计算,会存在计算延时
    现象
  • 交互性差:每个组件都对完整的数据进行计算,因此在处理数据过程中,用户不易交互。

【应用】编译器,CASE 应用程序;基于 eclipse 的代码重复检测工具

3、 管道过滤器【流式数据传输并且知道流向时适用】
在这里插入图片描述
【组件】管道过滤器风格的组件是过滤器,过滤器将源数据转换为目标数据,功能包括增加,
删除,转换,合并,分解。【连接件】管道过滤器风格的连接件是管道,管道的主要作用在
于在过滤器之间传输数据。两个过滤器之间通过管道进行数据的传输。

【优点】

  • 可以并行计算:由于管道过滤器输入数据为流式数据,因此对于不同的数据流可以在不
    同的过滤器上进行并行计算。
  • 支持软件的复用:过滤器之间只要数据格式满足输入输出要求,任何两个过滤器均可以
    进行连接。
  • 组件具有良好的隐蔽性,高内聚,低耦合的特点:整个系统的输入输出可以看作内部多
    个过滤器行为的合成。
  • 系统易于维护和扩展:系统中仅需要通过增加过滤器便可以进行系统功能的扩展;同时
    也仅需要维护某一个过滤器便可以进行功能的维护。

【缺点】

  • 性能不高:过滤器之间数据的输入输出格式往往没有统一的标准,因此在过滤器之间数
    据进行传输的过程中,过滤器要对数据进行解析才能继续使用数据,系统大量事件用户
    数据格式的转换与解析,因此实际功能的效率较低。
  • 不适合用户交互处理:当系统需要增量改变时,管道过滤器往往无法进行很好的工作。

【应用】编译器,图像处理程序,语音处理,数据处

2.3 质量属性

了解定义,六要素,以及对应的策略
以可用性为例进行说明:

可用性 availability
1、 定义:在要求的外部资源得到保证的前提下,产品在规定条件下和规定时刻或时间区间
内处于可执行规定功能状态的能力。
2、 六要素
在这里插入图片描述
策略:
在这里插入图片描述
在这里插入图片描述

2.4 质量评估

背会风险,非风险,敏感点,权衡点定义,并会根据场景分析哪个是风险,非风险,敏感点,权衡点。

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

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

相关文章

【QT】使用QML构建一个简易的计算器界面(三)

前面两篇对计算器界面的布局和显示以及实现功能做了相关优化&#xff0c;但是对输入显示那一块还没有具体的处理步骤&#xff0c;包括对输入表达式的合法性检查&#xff0c;显示框的多行历史显示等功能还需要添加&#xff0c;接下来将从这几个方面对这些功能进行添加。 1、对输…

概率论 1.3 古典概型与几何概型

1.3.1 排列与组合排列从n个不同元素任取r(r<n)个元素排成一列(考虑元素出现的先后次序)&#xff0c;称此为一个排列&#xff0c;此种排列的总数为n(n-1)....(n-r1)n!/(n-r)&#xff01;&#xff0c;若rn,则称为全排列&#xff0c;2.重复排列从n个不同元素中每次取出一个,放回…

GPIO输入和输出以及八种工作模式

一.GPIO的简介 GPIO &#xff08;general purpose input output&#xff09;是通用输入输出端口的简称&#xff0c;简单来说就是软件可控制的引脚&#xff0c;STM32芯片的GPIO引脚与外部传感器连接起来&#xff0c;从而实现与外部通讯、控制以及数据采集的功能。 1.引脚全是GP…

[2.1.1]进程管理——进程的概念、组成、特征

文章目录第二章 进程管理进程的概念、组成、特征&#xff08;一&#xff09;进程的概念&#xff08;二&#xff09;进程的组成——PCB&#xff08;三&#xff09;进程的组成——程序段、数据段补充&#xff1a;程序是如何运行的&#xff1f;&#xff08;四&#xff09;进程的特…

vue3 插槽使用详解

目录1 前言2 插槽的使用2.1 基本使用2.2 具名插槽2.3 动态插槽名2.4 插槽传值3 总结1 前言 Vue 实现了一套内容分发的 API&#xff0c;将 <slot> 元素作为承载分发内容的出口&#xff0c;使用插槽使得vue组件的设计更加灵活。 在vue版本更迭中&#xff0c;尽管插槽的使…

常用的设计模式之一(创建型模式)

设计模式可分为三大类&#xff1a; 创建型模式 (Creational Patterns)结构性模式 (Structural Patterns)行为型模式 (Behavioral Patterns) 模式描述包括创建型模式工厂模式&#xff08;Factory Pattern&#xff09; 抽象工厂模式&#xff08;Abstract Factory Pattern&#…

并发编程——可见性与有序性

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;耶瞳空间 JMM即Java Memory Model&#xff0c;它定义了主存、工作内存抽象概念&#xff0c;底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等。JMM体现在以下几个方面&#xff1a; 原子性&…

Web API

DOM API 1、选中页面元素 let elem document.querySelector(CSS选择器); console.log(elem); console.dir(elem); 2、事件 鼠标点击事件 onclick 鼠标移动事件 onmousemove 等等 事件源 .box&#xff0c;事件类型 onlick&#xff0c;事件处理方式 alert(hello) let d…

[Mybatis1]介绍与快速入门

文章目录 Mybatis概述 持久层 框架 Mybatis与JDBC对比 JDBC代码的缺陷 Mybatis简化JDBC Mybatis快速入门案例 整体案例项目结构 1.创建user表&#xff0c;添加数据 2.创建Maven项目&#xff0c;导入坐标 3.编写Mybatis核心配置文件 4.编写数据库返回对象的实体类 5. 编写S…

QML Button详解

1.Button简介 Button表示用户可以按下或单击的按钮控件。按钮通常用于执行一个动作&#xff0c;或回答一个问题。典型的按钮有确定、应用、取消、关闭、是、否和帮助。 Button继承自AbstractButton&#xff0c;提供了以下几种信号。 void canceled() //当按…

Python笔记 -- 列表

文章目录1、列表简介2、修改、添加、删除元素2.1、添加2.2、删除3、排序、倒序4、遍历列表5、创建数值列表6、列表切片7、列表复制8、元组1、列表简介 在Python中用方括号[]表示列表&#xff0c;用逗号隔开表示其元素 通过索引访问列表 names [aa,bb,cc,dd]print(names[0]) …

游戏项目中的程序化生成(PCG):算法之外的问题与问题

本篇讨论的是什么 从概念上讲&#xff0c;PCG&#xff08;程序化生成&#xff09;的含义很广&#xff1a;任何通过规则计算得到的内容&#xff0c;都可算作是PCG。但在很多游戏项目的资料&#xff0c;包括本篇&#xff0c;讨论PCG时特指是&#xff1a;用一些算法/工具(特别是H…

C语言-基础了解-13-C enum枚举

C enum枚举 一、C枚举 枚举是 C 语言中的一种基本数据类型&#xff0c;用于定义一组具有离散值的常量。&#xff0c;它可以让数据更简洁&#xff0c;更易读。 枚举类型通常用于为程序中的一组相关的常量取名字&#xff0c;以便于程序的可读性和维护性。 定义一个枚举类型&a…

3.2 LED闪烁流水灯蜂鸣器

LED闪烁1.1 电路连接示意图LED采用低电平点亮的方式&#xff0c;利用ST-Link的3.3V进行供电。1.2程序设计1.21知识储备GPIO配置步骤步骤&#xff1a;1. 第⼀步&#xff0c;使⽤RCC开启GPIO的时钟2. 第⼆步&#xff0c;使⽤GPIO_Init()函数初始化GPIO3. 第三步&#xff0c;使⽤输…

JavaWeb--会话技术

会话技术1 会话跟踪技术的概述2 Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3 Session3.1 Session的基本使用3.2 Session的原理分析3.3 Session的使用细节3.3.1 Session钝化与活化3.3.2 Session销毁目标 理…

java坦克大战(1.0)

坦克大战 后面开始学习怎么使用java制造一个坦克大战游戏 但是不是直接开始做&#xff0c;而是随着这个游戏程序的制造&#xff0c;一边学习新知识融入到游戏中。包括多线程&#xff0c;反射&#xff0c;IO流… Java坐标体系 在几乎所有的坐标中都有一个x轴和y轴&#xff0c…

大数据项目实战之数据仓库:用户行为采集平台——第1章 数据仓库概念

第1章 数据仓库概念 数据仓库&#xff08;Data Warehouse&#xff09;&#xff0c;是为企业制定决策&#xff0c;提供数据支持的。可以帮助企业改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等 业务数据&#xf…

Java - 对象的比较

一、问题提出 前面讲了优先级队列&#xff0c;优先级队列在插入元素时有个要求&#xff1a;插入的元素不能是null或者元素之间必须要能够进行比较&#xff0c;为了简单起见&#xff0c;我们只是插入了Integer类型&#xff0c; 那优先级队列中能否插入自定义类型对象呢&#xf…

深入理解JDK动态代理原理,使用javassist动手写一个动态代理框架

文章目录一、动手实现一个动态代理框架1、初识javassist2、使用javassist实现一个动态代理框架二、JDK动态代理1、编码实现2、基本原理&#xff08;1&#xff09;getProxyClass0方法&#xff08;2&#xff09;总结写在后面一、动手实现一个动态代理框架 1、初识javassist Jav…

Dijkstra算法的入门与应用

目录 一、前言 二、Dijkstra算法 1、Dijkstra 算法简介 2、算法思想&#xff1a;多米诺骨牌 3、算法实现 4、例子 三、例题 1、蓝桥王国&#xff08;lanqiaoOJ题号1122&#xff09; 一、前言 本文主要讲了Dijkstra算法的概念、实现与一道模板例题。 二、Dijkstra算法…