软件架构设计(三)——软件架构评估、软件产品线

软件架构评估 软件质量属性包括性能、可用性、安全性、可修改性、功能性、可变性、互操作性,重点把握性能、可用性、安全性、可修改性,可用性和可靠性同时出现时,优先选择可用性。 阅读详情

目录

一、软件架构评估质量属性

二、软件架构评估方法

三、基于场景的架构评估方式

(1)软件架构分析法

(2)架构权衡分析方法

四、软件产品线

(1) 软件产品线的双生命周期的模型

(2) 软件产品线建立方式 

(3) 软件产品线的组织结构


一、软件架构评估质量属性

        架构设计要满足功能需求,这是底线。除此之外还需要满足非功能需求。比如性能,可用性,安全性,可修改性,可靠性,功能性,可变性,互操作性等.

  • 性能:反映工作效率的指标
  • 可用性:反映整个系统不崩溃的运行时长。
  • 安全性:反映信息安全的指标
  • 可修改性:反映系统变更能力的指标
  • 可靠性:反映系统不产生异常的指标
  • 功能性:反映系统功能正确的指标
  • 可变性:反映架构变更能力的指标
  • 互操作性:反映与外部系统交互的能力

 二、软件架构评估方法

        架构评估有几个重要的方面:风险点,敏感点,权衡点:

  • 风险点:需要在评估架构设计中,分析出潜在的,存在架构决策所带来的隐患,这种问题可能会在未来的某个时间爆发。
  • 敏感点:需要在评估架构设计中,分析出能够给系统带来重大影响的质量属性。
  • 权衡点:权衡点属于敏感点。需要在评估架构设计中,分析出能够给系统带来重大影响的某些质量属性,但质量属性间可能会发生冲突,向跷跷板一样,加强了其中一个质量指标,可能会伴随着另外一个指标的下降。比如安全性和性能,有时候很难兼顾。因此需要找到一个折中的方案,这就是权衡点。

        评估方式主要有三种,有问卷调查的方式,也有基于度量的方式。所谓问卷调查,就是在设计出架构之后,通过问卷的形式,由一些人员来向问卷中填充系统哪些地方做的好,哪些地方做的不好,对系统提出意见。而度量的方式,就是打上一些量化的指标,提前制定好一个标准,在评估时分析系统是否达到指标的要求。这种方法太过理想,实现起来比较困难。而两者的折中就是基于场景的方式。

        场景就是指模拟用户使用系统,对系统进行操作,并得到期望结果的某个过程。基于场景的方式,就是提前制定好一些场景,分析架构是否能满足这些场景中的要求,并对架构进行评估。

​​​​​​​

 

 三、基于场景的架构评估方式

        用例获取功能需求,用场景来获取非功能需求。基于场景的架构评估方式首先需要确定应用邻域的功能和软件架构结构之间的映射;设计用于体现待评估质量属性的场景;分析软件架构对场景的支持程度。

        它主要由三种方法:软件架构分析法(SAAM),架构权衡分析方法(ATAM);成本效益分析法(CBAM);

(1)软件架构分析法

        此方法最初用于分析架构的可修改性强不强,后来扩展到安全性,性能等其他质量属性。

在SAAM评估之前,首先需要分析要哪些素材,要哪些信息输入。

  1. 问题描述:最初用户要解决的问题是什么
  2. 需求说明:根据用户需求,分析系统要做的工作由哪些
  3. 架构描述:设计的架构是什么样子的

首先要进行场景开发,来反映用户对系统有哪些非功能需求。与架构进行对照,评估架构对单个或多个场景的适应程度。之后进行总结。某些架构对于某个场景十分有优势,但是可能对于其他场景有劣势。

(2)架构权衡分析方法

        ATAM在SAAM基础上发展而来。主要针对性能、可用性、安全性、可修改性的性能指标。找出一个平衡点,对这些质量属性进行评价和折中。

        与SAAM差不多,首先要进行场景和需求的收集,之后用架构设计过程中的架构描述来解决场景中的要求。第三阶段就是分析架构中的每个单一质量属性的支持程度;第四阶段进行分析哪些质量属性之间存在冲突,需要进行折中。通常情况会根据需求来定义场景的优先级,就是当发生冲突时分析哪一个场景的实现对系统更为重要。

 

 

 

四、软件产品线

        一个公司的业务集聚在某个邻域,通常有经验的积累。那么就希望得到一个通用的方法论。不需要每次开发类似的产品都要重零开始,而是将系统进行产品化,只要小修小改就可以满足新系统的需求。而软件产品线就是由软件架构、邻域工程、特定领域架构(DSSA)相结合得到的行业解决方案。

(1) 软件产品线的双生命周期的模型

        和DSSA一样。首先现有系统的需求进行分析,哪些需求是整个行业都可能需要涉及的。将此类需求输入邻域工程。得到了邻域工程的模型。在开发新系统时,分析哪些需求时邻域工程中包含的,将已存在的需求、涉及、实现直接从邻域工程获取。对于有差异的,再进行单独的开发。因此,邻域工程做行业间的共性的东西,应用系统负责实现用户的特有需求。

(2) 软件产品线建立方式 

 软件产品线的建立方式主要用两种:一个是演化方式,在迭代中不断完善;另一种是革命式,直接将目标一步到位地实现。除此之外,可以基于现有产品,在现有产品中进行改进。而全新产品线指的是,不在旧产品中做修改,直接开发新的产品,当然可以参考旧产品的经验教训。

(3) 软件产品线的组织结构

        软件产品线的组织结构有三种类型:

  • 设立独立的核心资源小组
  • 不设立独立的核心资源小组
  • 动态的组织结构

        大多数公司的组织结构都是设立独立的核心资源小组,比如分为模型组、应用组、架构组等。而想要将一个系统进行产品化,主要取决于以下因素

  • 对邻域具备长期和深厚的经验
  • 一个用于构件产品的好的核心资源库
  • 好的产品架构
  • 能够对软件资源、人员组织,过程文档很好的管理。​​​​​​​

 

软考系统架构师-软件架构评估 软件架构评估 质量数量 性能:性能是指系统的响应能力,既要经过多场时间才能对摸一个时间做出响应或者在某段时间内系统所能处理的时间的个数,经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量的标识,性能测试经常要使用基准测试程序(用以测试性能指标的特定事务集或工作量环境) 可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力,珂... 阅读详情

相关推荐

软件架构设计

总述:软件架构设计以系统整体为基本点,然后考虑系统的需求,最后根据系统的特点进行系统技术选型和确定基本系统的基本结构。软件架构设计的立足点是从软件整体为基准,所以必须跳出模块、子系统等视角,这也决定了必须有系统整体性的观点才能降低这部分的认知难度,否则跟天书一样,觉得跟系统设计没什么区别,好像还重复了。 1.构件和软件复用 答:软件架构是解决系统结构和需求向实现平坦过度的问题而提出的概念。构件也称为组件,是一个功能相对独立的具有可复用价值的软件单元。软件复用的形式分为垂直式复用和水平式复用。水平式.

seacean2000的专栏 897

架构评估方法相关知识总结

架构评估方法相关知识总结

weixin_43837869的博客 4102

【软考系统架构设计师】软件架构知识总结

【软考系统架构设计师】软件架构知识总结

千月星跡 1429

系统架构设计高级技能 · 软件产品线

软件产品线主要由两部分组成,分别是核心资源和产品集合。核心资源是领域工程的所有结果的集合,是产品线中产品构造的基础。核心资源必定包含产品线中所有产集共享的产品线架构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个品线中系统化重用的软件构件。与软件构件相关的测试计划、测试实例以及所有设计文档, 需求说明书、领域模型、领域范围的定义, 以及采用COTS的构件也属于核心资源。产品线架构和构件是用于软件产品线中的产品构建的最重要的核心资源。软件产品线开发有4个基本技术特点。

weixin_30197685的博客 2295

软件架构设计(十一) 软件产品线

软件产品线是从DSSA(特定领域架构)扩展而来的,我们从事软件开发,当您有了多年的经验之后,往往会沉淀到某一个特定领域,然后做这个领域的行业软件。此时,您会把一些共性的东西开发出来,稳定下来。如果以后再开发同类型的系统时,做一些小修小改或者应用层面上的补充的个性化开发,就能够解决问题。在这个理论基础之上,由于DSSA的关注点还是架构这个层级,所以后面进一步演化出了软件产品线技术。软件产品线技术将DSSA,领域工程,软件架构,软件工程这一系列的技术把它给联通起来。变成一个比较可行的方法论。

qq_35267557的博客 763

【系统架构】-如何评估软件架构

【系统架构】-如何评估软件架构

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 3218

软件架构设计-软件架构评估、 产品线、架构复用

一、软件架构评估 软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它也可以灵活地运用于对软件架构进行评审等工作中。 二、软件架构评估的方法 业界已开发出多种软件架构评估的方法,按基于的技术手段来看,可以分为三类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。以属性作为架构评估的核心概念。 基于调查问卷或检查表的方式:该方式的关键是要设计好问卷或检查表,它充分利用系统相关人员的经验和知识,获得对架构的评估。其缺点是在很大程度上依赖于评估人员的主观推断。 基于场景的方式:基于

小毕超博客 4354

Win10+Anaconda环境下PaddleOCR保姆级安装指南(附常见报错解决方案)

本文提供Win10+Anaconda环境下PaddleOCR的保姆级安装指南,涵盖从环境配置到模型部署的全流程,特别针对常见报错提供解决方案。通过详细的步骤说明和实用技巧,帮助开发者快速完成PaddleOCR安装与测试,避免常见陷阱,提升OCR开发效率。

weixin_29096377的博客 375

软考高级:系统架构设计师——软件架构设计 Chapter 笔记

软考高级:系统架构设计师——软件架构设计章节知识点笔记

阿昌 1904

静态时序分析(Static Timing Analysis, STA):简介及内容导航

静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。

Starry__的博客 1986

从放弃到再入门之拉格朗日对偶问题推导

普通同学的解法 无约束条件:求导就可以了 等式约束:代入消元,再求导 不等式约束:分情况讨论(在边界上和不在边界上),分别对应1,2的情况 然而发现,有些情况消元特别复杂,甚至不能求解 聪明同学的解法 发现:在最优点的情况下,约束曲面的法向量和目标函数的梯度反向必相同或相反 拉格朗日乘子法如何理解? (在2维里可以形象的解释为z=f(x,y)在约束条件g(x,y)=c中,极值...

qq_34564612的博客 1万+

软件架构设计之七:软件架构设计

一、本章要点 1)信息系统综合知识。包括软件架构的概念、软件架构的风格、特定领域软件架构、基于架构的软件开发方法、软件架构评估、软件产品线;设计模式的概念、设计模式的组成、模式和软件架构、设计模式分类、设计模式的实现。 2)系统架构设计案例分析。包括软件架构技术、XML技术、基于架构的软件开发过程、架构模型(风格)、特定领域软件架构、基于架构的软件开发方法、架构评估、软件产品线、系统演化、设计

波粒二象性的专栏 5377

高通平台Camera sensor bring up!

Qualcomm Camera sensor bring up!0. 准确1. Kernel 底层驱动配置1.1 dtsi1.2 pinctrl2. Chi-Cdk XML 配置2.1 sensormodule2.2 sensor3. CHECK 本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】 —only for sensor probe sucess. 0....

Understand-image 9239

详谈软件架构设计(三)之软件开发方法、质量属性以及软件架构评估

题外话:本篇文章主要讲的是软件架构体系中的软件开发方法、质量属性以及软件架构评估等方面的内容。 一:基于架构的软件开发方法 1、开发过程 基于架构的软件开发主要分为架构需求、架构设计、架构文档化、架构复审、架构实现、架构演化等六个阶段。 (1)架构需求:架构需求受架构师的经验以及技术环境的影响。主要分为需求获取、标识构件、需求评审三个阶段。 (2)架构设计:......

华星详谈的博客 3993

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 220

Ubuntu20.04/Debian10安装向日葵远程控制踩坑实录(附依赖问题解决方案)

本文详细介绍了在Ubuntu 20.04/Debian 10系统上安装向日葵远程控制软件的全过程,重点解决了常见的依赖问题,特别是libwebkitgtk相关错误。通过自动修复、手动修改.deb包依赖和使用兼容层三种解决方案,帮助用户顺利完成安装并优化远程控制体验。

silver的专栏 749

【系统架构设计师】软件架构设计 02

国家软考 《系统架构设计师》第二版(即最新版本) 学习笔记提示:以下是本篇文章正文内容,下面案例可供参考。

拥有必珍惜 1281

AIGC 算法工程师面试八股文全解析:Diffusion Models 原理、推导与实战要点

特性 | 重参数化技巧 (Reparameterization Trick) |本质| 将随机变量的采样过程从不可导的随机操作转换为可导的确定性函数与一个已知分布的随机噪声的组合。目的。

m0_71589036的博客 402

【软考---系统架构设计师】软件架构

本文主要是针对软考软件架构章节自己所做的大概笔记

gaoqiandr的博客 3367

开源机器人库orocos KDL 学习笔记(二):Geometric

开源机器人库orocos KDL 学习笔记二:Geometric 如果按照上一篇搭建的VS2015 orocos KDL环境,会出现3个例程:geometry, chainiksolverpos_lma_demo, trajectory_example. 这一篇看一下geometry的例程。 在frames.hpp中,定义了这些class: - class Vector - class R

行者无疆的博客 6703

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

13.软件架构评估

软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。业界已开发出多种软件架构评估的方法,按基于的技术手段来看,可以分为三类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。显示分辨率达到4K。易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。ATAM:在SAAM的基础上发展起来的,主要针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。

pccai的博客 1124

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

三、软件架构设计-5.特定领域软件架构(DSSA)

DSSA通过对特定领域的深入分析、设计和实现,提高了软件开发效率和质量。它包括领域分析、设计、实现三个阶段,产出领域模型、参考架构和可复用组件库,促进了组件复用,减少了重复劳动,并支持快速定制高质量软件产品。

qq_41019389的博客 1088

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

软件架构设计学习笔记

软件架构设计笔记

jixietianshi的博客 966

系统架构设计师 - 软件架构设计(2)

大家好呀!我是小笙,本章我主要分享系统架构设计师 - 软件架构设计(2)知识,希望内容对你有所帮助!!

Al_tair的博客 1365

软考分类精讲-软件架构设计(五)

软件架构评估—ATAM 软件架构评估—质量效用树 软件架构评估—CBAM 整理场景 对场景进行求精 确定场景的优先级 分配效用 形成“策略-场景-响应级别”的对应关系 确定期望的质量属性响应级别的效用 计算各架构策略的总收益 根据受成本限制影响的投资报酬率选择架构策略 软件架构评估—SAAM 软件产品线—过程模型—双生命周期模型 软件产品线—过程模型—SEI模型 软ESIG件NER产...

逍遥云恋 1670

【新版】系统架构设计师 - 软件架构设计<新版>

软件架构的概念(★★★)基于架构的软件开发(★★★★)软件架构风格(★★★★★)特定领域软件架构(★★★)软件质量属性(★★★★★)软件架构评估(★★★★★)软件产品线(★★★)构件与中间件技术(★★★★)MDA数据驱动模型(★★★)架构描述语言ADL(★★★)Web架构设计(★★★★)

初八 3032
上一篇: 软件架构设计(二)——领域架构、基于架构的软件开发方法
下一篇: 软件架构设计(四)——构件与中间件
superSmart_Dong
博客等级 码龄10年 678粉丝 167原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值