[架构之路-114]-《软考-系统架构设计师》-软件架构设计-7-软件架构评估

news/2024/4/27 9:46:27/文章来源:https://blog.csdn.net/HiWangWenBing/article/details/129102235

前言

第7节 软件架构评估

7.1 什么是架构评估/为什么要软件架构评估

在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架构进行评估。

7.2 软件架构评估的主要内容

(1)对软件的架构评估

  对软件的架构评估,主要是根据具体的评估依据,对软件的质量进行评估。

  • 看软件设计是否符合体系化设计原则

  • 产品中所开发的软件是否易于升级

  • 是否满足可扩展性强等软件的质量要求

(2)对硬件的架构评估

  对硬件架构的评估,主要是根据具体的评估依据,

  • 看研发的系统是否尽量采用了低功率处理器和较少的功耗部件,

  • 是否满足低功耗的要求;

  • 系统是否具有较大的基础资源空间以及资源扩展空间(如程序指令空间,内部外部存储空间等);

  • 是否易于运维管理

  • 研发产品的硬件是否易于升级

  • 是否满足可扩展性的要求等。

(3)对系统总体的架构评估

  将以上软件架构和硬件架构综合起来进行评估,看研发的系统是否具备高可用性、高稳定性、高可靠性、高安全性、高性价比;是否具备良好的可扩展性等。

通过总体架构评估,达到增强各功能模块的集成度和联动性、提高总体性能的目的。

(4)架构评估主要侧重于以下几个方面:

  •   架构设计是否符合架构设计模板

  •   架构设计是否符合《设计文件检查表》的要求?

  •   通过架构设计,能否看到足够的系统表象以指引我们继续以后的设计活动?

  •   架构设计是否组织性良好,并提供了简明的系统概要,背景信息,约束条件,和一个清晰的组织结构给所有下游的设计?

  •   架构设计是否对可能的变化作了适应性设计?

  •   架构设计是否位于详细设计和用户界面设计之上?

  •   两个有相互依赖的架构设计图是否结合在一起?

  •   系统架构,包括数据流、控制流、高层要件和接口,是否清楚地表现了?

  •   是否忽略了细节的要件并将之遗留给以后的设计产物?

  •   架构设计是否干净地分解了系统的顶级要件?

  •   是否描述了系统的物理结构?

  •   架构设计是否重视了不可避免的技术或其它方面的约束,即,这个架构能为目标环境而实现?

  •   使用了反复设计,并选择了其中最好的尝试结果?对未选择的是否列出了理由?

  •   对于问题域、用户界面、任务管理、数据管理,架构设计是否作了区分?

  •   如果没有,那么缺少的部分有解释并通过验证了吗?

7.3 如何进行软架构评估

7.3.1 评估流程

评估工作按照时间的先后顺序可以分为五个阶段即:评估分析阶段、评估设计阶段、信息获取阶段、评估综合分析阶段、评估报告阶段。

架构评估的具体流程为:

(1)评估分析阶段

  1)确定评估活动的目标、边界和重点

  通过分析评估委托者的需求和主要用户关注的问题,确定评估活动的主要目标任务和服务对象,并明确评估重点回答的问题。

  2)搜集现有的资料和信息,初步描述评估对象

  收集现有的资料,包括:相关的评估报告和与评估对象相关的文献资料,形成对评估对象的初步印象。

  3)评估者与委托者达成共识

  就评估的目标、边界、重点、双方的责任等必要条件与委托者达成共识。

(2)评估设计阶段

  1)确认评估问题

  确认评估必须回答的问题和侧重回答的问题,并按重要性排序

  2)设计评估框架:结构化评估

  根据评估问题,设计评估的框架,主要包括评估的内容、重点、标准、指标等。

3)选择评估的方法和工具

  根据评估活动的特点,选择适当的方法和工具,并调查获得这些方法和工具的途径。如果由于问题的特殊性以至于找不到成熟的方法,则应考虑现有的方法进行改进。

  4)设计评估结果的表达方式

  设计评估报告的内容和格式。

  5)确定评估主持人及评估组的构成

  根据评估活动的特点,确定评估主持人和评估组的构成,保证其能力、经验和专业知识结构适应评估设计的要求,并符合评估规范的回避原则。

  6)制定评估活动的时间表

  评估活动的时间表取决于以下两方面的因素:

  委托者要求的完成评估的最后期限;

  根据规范要求,评估各阶段、各步骤所需要的最少时间。如果上述两方面的要求相差较大,则需要启用变通条例。

  7)确定评估设计方案

  通过介绍评估方案进一步与委托者沟通,使委托者理解方案的主要特点,明确委托者必须提供的条件,同时向委托者说明方案存在的问题和涉及的风险,在进入下一个阶段之前,确定评估设计方案。

(3)信息获取阶段

  1)评估数据信息的采集

  按照评估设计的要求,进行各种数据信息的调查,包括案例调查、专题面访,实地调查及网上采集信息等,必要时需要选择咨询专家并进行相应的咨询。

  2)数据信息的整理和检验

  对采集的各类数据信息进行分类和整理、初步分析,为综合评估做准备。

  3)必要的补充调查

  在完成数据检验和初步分析之后,如果某些关键数据信息缺乏,不符合要求或难以确定其置信度,则需要采取补救措施,进行必要的补充调查。

(4)评估综合分析阶段

  1)按评估问题组合信息,形成评估问题单元

  根据评估设计中要回答问题和评估框架,对数据信息进行分组,形成评估问题单元。

  2)问题判断

  运用相应的评估方法,从回答问题的角度,对数据信息进行分析,分别形成对评估问题的判断。

  3)综合分析评价

  个体评估:在对评估问题判断的基础上,运用综合评估方法对个体进行分析评价。

  群体评估:除了对个体进行综合分析评价以外,还要运用适当的方法,对群体进行分类、分级或排序。

  4)形成评估初步结论

  个体评估:评估初步结论一般包括关于评估对象各方面的评估意见和整体评估结论。

  群体评估:评估初步结论首先是关于被评估对象的分类、等级划分或排序表,根据评估合同的要求,有时也要提供全部或部分个体的评估结论。

  5)形成正式评估结论

  个体评估:针对评估要回答的重点问题,对评估初步结论进行确认或修正,形成正式评估结论。

  群体评估:重点对被评估的对象的分类、等级划分或排序表进行核查、验证和必要的调整。

(5)评估报告阶段

  1)撰写评估报告初稿

  根据评估规范的规定和评估设计中关于评估报告的内容及格式的具体要求,撰写评估报告初稿。

  2)讨论并修改评估报告初稿

  在评估组内对评估报告初稿中的主要结论进行讨论,确定修改的方案。在制定评估活动的时间表时,安排适当的时间用于修改评估报告初稿。

  3)评估组确认提交的正式评估报告版本

  根据质量控制标准对拟提交的评估报告进行检查,确定正式评估报告版本。

  4)提交正式评估报告

  确认后的正式评估报告版本,由评估机构负责人和该评估项目主持人签字并盖章后提交给委托者。

  5)回答有关评估报告的提问

  在提交评估报告后,在一段时间内,准备回答有关评估报告的提问。

  6)整理和保存评估档案

7.3.2 质量保证

  评估质量保证以质量控制为核心,以本单位的全面质量控制为基础,以外部的监督检查为补充。

  评估内部质量控制系统由评估规范、实施程序、奖励处罚制度和其他保证措施组成。评估质量控制既涉及严格的技术层面(数据采集和方法的选取、对相关事实的分析、评估报告的撰写等),又涵盖职业道德、行为规范等非技术层面。

  评估的质量控制覆盖从评估准备到提交评估报告的全过程,重点控制以下环节:

  (1)合同中关于评估的内容

  评估合同/协议是评估活动的基础,也是评估项目质量控制的重要依据,必须保证合同或协议内容全面,委托方和受托方双方约定的表达清楚,无疑义。

  (2)委派项目主持人

  项目主持人是否称职对于保证项目的质量十分重要,评估机构在委派项目主持人时,要认真考察其职业道德和业务能力,并确认是否符合问题原则?

  (3)评估方案执行

  评估主持人负责对参加评估人员进行关于评估方案的培训,监督每个环节,每个评估人员的执行情况,并对执行过程中的薄弱环境进行分析和采取补救措施,负责修正评估方案。

  (4)评估结论的检查与复核

  在正式提交评估报告之前,评估机构应对评估的主要结论进行检查和复核。对评估结论的检查与复核的重点内容主要包括:

  (5)是否符合评估标准

  检查评估结论及依据是否符合评估方案中设定的标准,尤其要检查不同评估人员掌握的评估标准能否保持一致,评估质量能否达到要求,尽可能减小人为误差。

  (6)评估依据是否充分

  目前还没有公认的办法用来直接检测评估依据的充分性,但在正式提交评估报告之前,评估者必须做出判断,所提供的依据能否支撑评估结论。一般来说,如果采用多渠道、多角度采集和分析信息,评估依据的充分性可以得到改善?

  (7)评估结论是否可靠

  检查评估结论是否可靠的重要途径是检查评估活动的可重复性,即产生同样结论的过程是否重复。例如:采用同样的问卷,用同样的标准选择另一批咨询专家,采用同样的问卷征询专家的意见,采用同样的方法对专家的意见进行分析综合,是否可获得基本一致的评估结论。如果上述两次评估活动的结论差异很大,说明评估结论是否可靠较差,须谨慎使用。

7.3.3 重点关注方向

  • 关注风险点:对关键质量有较大风险的因素

  • 关注敏感点:对关键质量影响权重较大的因素

  • 关注权衡点:对关键质量有影响的相互制约因素的权衡

评估方法:

  • 问卷调查、检查表评估

  • 结构化度量式评估

  • 场景式的评估

7.3.4 场景式的评估方法

(1)SAAM

SAAM (Software Architecture Analysis Method)是卡耐基梅隆大学软件工程研究所(SEI at CMU)的Kazman等人于1993年提出的一种非功能质量属性的体系结构分析方法,是最早形成文档并得到广泛使用的软件体系结构分析方法。

最初它用于比较不同的软件体系的体系结构,以分析SA的可修改性,后来实践证明也可用于其他的质量属性如可移植性、可扩充性等,发展成了评估一个系统的体系结构。

SAAM的目标是对描述应用程序属性的文档,验证基本的体系结构假设和原则。此外,该分析方法有利于评估体系结构固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突,或仅从某一参与者的观点出发的不全面的系统设计。SAAM不仅能够评估体系结构对于特定系统需求的使用能力,也能用来比较不同的体系结构。

SAAM用于体系结构的最后版本,但早于详细设计。体系结构的描述形式应当被所有参与者理解。功能、结构和分配被定义为描述体系结构的三个主要方面。

SAAM的主要输入问题是问题描述、需求声明和体系结构描述。如下图所示描绘了SAAM分析活动的相关输入及评估过程。

(2)ATAM

ATAM是评价软件构架的一种综合全面的方法。这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系——即如何权衡诸多质量目标

备注:性能指标是在功能性需求基础之上,增加了一些量化的约束指标,就得到了性能性需求。

质量属性本身是没有优先级的,质量属性的优先级是在场景下产生的。

不同的场景,对不同的质量属性有不同的要求,比如,有些场景对延时的要求比较高,有些场景对安全性要求比较好,而有些场景对吞吐量或吞吐率的要求比较高,有些场景对可可靠性的要求比较高。

没有场景,空谈软件质量属性,是空中楼阁,没有基础和支撑。

因此,不同的场景,其软件质量指标可能是冲突的,这就需要进行综合与折中。因此,软件质量的属性最终取决于场景的优先级。

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

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

相关文章

rk3568网口CAN串口通信速率性能

通信接口性能参数外设接口性能参数测试结果为实验室实测值,可作为设计参考,但因测试环境和器件批次差异,可能会存在一定的误差,且测试结果依赖评估板性能,核心板搭配不同底板性能也可能存在差异,请结合实际…

OpenEuler安装软件方法

在树莓派上烧录好OpenEuler后上面是什么软件都没有的,像一些gcc的环境都需要自己进行配置。官方提供的安装命令是yum,但是执行yum是找不到命令的:   这个其实是因为OpenEuler中默认的安装软件使用了dnf而不是yum,所以软件的安装…

《Python机器学习》安装anaconda + numpy使用示例

👂 小宇(治愈版) - 刘大拿 - 单曲 - 网易云音乐 目录 一,安装 二,Numpy使用示例 (一)Numpy数组的创建和访问 1,创建和访问Numpy的一维数组和二维数组 2,Numpy数组…

可调恒流驱动LED电路分析

https://www.icxbk.com/article/detail?aid884 常规使用的pwm调亮度不仅会导致频闪,而且在长时间使用的时候,有损坏led的风险,所以这次设计了一个恒流调亮度电路,其电路图如下所示 电路原理的解读: 左侧的电位计起着…

Eclipse各版本安装Tomcat插件全攻略

Eclipse Tomcat 插件的作用 Eclipse Tomcat 插件可以将Tomcat 集成到Eclipse中,插件安装之后在Eclipse中可以看到类似下面的几个图标: Eclipse Tomcat 插件的主要作用有: 在Eclipse 中可以直接启动,关闭和重启本机的Tomcat可以…

电容的参数-详细描述

贴片电容 如同如所示,MLCC(Multi-layer Ceramic Capacitors),外形很好区分。 实际内部结构 使用的还是平行板电容器原理,只是这个是叠层结构;电解电容是卷起来的圆柱状; 容值: …

Ubuntu22.04设置独显用于深度学习运算,核显用于屏幕显示

目录摘要主板bios设置第一步:切换prime-select第二步:关机重启,并将显示器接口插到主板上第三步:设置PRIME Profiles为NVIDIA On-Demand模式注意事项参考文献摘要 目前有需求配置台式机win11Ubuntu的双系统,安装双系统…

linux线程的基本知识

这里用的是Linux的pthread线程库,需要加pthread线程库。 线程的创建 第一个参数是线程id的地址。第二个参数是线程属性,一般为NULL。第三个是要执行的函数。第四个是函数的参数,一般也为NULL 线程的等待,第一个参数是线程的id,第…

SpringBoot之DEBUG远程调试黑科技?

所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地 的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道 远程服务端的此时的内部状态。 简单的…

10.现代循环神经网络

10.现代循环神经网络 目录 门控循环单元(GRU)门控隐状态 重置门和更新门候选隐状态 隐状态从零开始实现 初始化模型参数定义模型训练与预测 简洁实现总结 长短期记忆网络(LSTM) 门控记忆元 输入门、忘记门和输出门候选记忆元记忆…

论文复现:模拟风电不确定性——拉丁超立方抽样生成及缩减场景(Matlab)

风电出力的不确定性主要源于预测误差,而研究表明预测误差(e)服从正态分布且大概为预测出力的10%。本代码采用拉丁超立方抽样实现场景生成[1,2]、基于概率距离的快速前代消除法实现场景缩减[3],以此模拟了风电出力的不确定性。 1 …

蓝桥杯刷题025——推导部分和(加权并查集)

2022省赛 问题描述 对于一个长度为 N 的整数数列 ​, 小蓝想知道下标 l 到 r 的部 分和是多少? 然而, 小蓝并不知道数列中每个数的值是多少, 他只知道它的 M 个部分和 的值。其中第 i 个部分和是下标 ​ 到 的部分和 , 值是 。 输入格式 第一行包含 3 个整数 N、M 和 Q 。分…

基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发

机载雷达是以飞机为载体的各种雷达天线的总称,主要用于空中侦察、警戒、保 证航行准确与安全[1]。随着航空航天技术的飞速发展,以及微电子、计算机和高速集 成电路等新型技术在军事领域的广泛应用[2],各国都研制出了许多新型战机和导弹,机 载…

企业微信的聊天机器人来了,免费下载(Python版)

大家好,这里是程序员晚枫,个人网址:python-office.com 上次分享了微信机器人的视频以后,视频下面有一个热门评论: 什么时候开发企业版微信机器人?自动回复、自动群发等等~ 在经历了一段时间的查找和开发以…

【基础算法】之 冒泡排序优化

冒泡排序思想基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来(假设从小到大),即为较大的数慢慢往后排,较小的数慢慢往前排。直观表达,每一趟遍历,…

Docker----------day3

常规安装大体步骤 1.安装tomcat 1.查找tomcat docker search tomcat2.拉取tomcat docker pull tomcat3.docker images查看是否有拉取到的tomcat 4.使用tomcat镜像创建容器实例(也叫运行镜像) docker run -it -p 8080:8080 tomcat5.新版tomcat把webapps.dist目录换成webapp…

【大数据离线开发】7.4 HBase数据保存和过滤器

7.4 数据保存的过程 注意:数据的存储,都需要注意Region的分裂 HDFS:数据的平衡 ——> 数据的移动(拷贝)HBase:数据越来越多 ——> Region的分裂 ——> 数据的移动(拷贝) …

清理bib文件(删除重复项,仅保留tex中引用的条目)

在写latex文件的过程中,经常会遇到添加了一堆文献的bibtex到bib文件中,有时候文章一长同一篇文献用不同的cite-key引用了多次,同时也会有一些文献最后并没被正文引用,这就需要对bib文件进行清理。 删除重复项 可以用JabRef 在J…

经理与员工工资关系-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

【案例4-6】经理与员工工资案例(利用多态实现) 欢迎点赞关注收藏 【案例介绍】 案例描述 某公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工…

不同投票需要的不同上传方式outlook 投票功能怎么设置投票 html5

“艺空间手造坊”网络评选投_投票方式的选择_免费图文教学投票教学关于微信投票,我们现在用的最多的就是小程序投票,今天的网络投票,在这里会教大家如何用“活动星投票”小程序来进行投票。我们现在要以“艺空间手造坊”为主题进行一次投票活…