软件体系结构的质量属性
软件体系结构5_软件体系结构的质量属性

软件体系结构5_软件体系结构的质量属性
1. 性能(Performance):性能是衡量软件体系结构完成特定任务所需的时间和资源的能力。
在性能方面,主要关注的指标包括响应时间、吞吐量和资源利用率。
一个好的体系结构应能够支持大规模并发用户使用,而不会因为系统负载增加而导致性能下降。
2. 可用性(Availability):可用性是指软件体系结构在特定时间内处于可操作状态的能力。
可用性主要与系统的可靠性、容错性和可恢复性相关。
一个可靠的软件体系结构应能够及时响应用户需求,并尽量减少停机时间和故障恢复时间,提供稳定、可靠的服务。
3. 可靠性(Reliability):可靠性是指软件体系结构在给定的时间内正确执行其功能的能力。
可靠性与系统的错误率和故障率相关。
一个可靠的软件体系结构应能够预防和容忍异常情况,以确保正确的运行,保证数据的完整性和准确性。
4. 安全性(Security):安全性是指软件体系结构在防止未经授权的访问和保护用户数据等方面的能力。
软件体系结构应能够识别和阻止潜在的安全威胁,如恶意攻击、非法访问和数据泄露等。
安全性要求通常包括认证、授权、加密和审计等功能。
5. 可扩展性(Scalability):可扩展性是指软件体系结构能够在不同规模和负载下进行水平或垂直扩展的能力。
一个可扩展的软件体系结构应能够动态调整资源,并能够在需要时自动增加或减少处理能力,以适应不断变化的用户需求。
总之,软件体系结构的质量属性是衡量软件体系结构能力和性能的关键指标。
在设计软件体系结构时,需要充分考虑这些质量属性,以确保软件能够满足用户的需求,并具有高性能、可靠性、安全性和可扩展性。
软件体系结构5 第5章 软件质量属性

外部质量
易用性
易用性是指用户使用软件的容易程度。 现代人的生活节奏快,做什么事都想图个方便。所以把易用性作为 重要的质量属性对待无可非议。导致软件易用性差的根本原因 : 理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这 些必修课,大部分开发人员不知道如何设计易用的软件产品。开发 人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就 会满意。软件的易用性要让用户来评价。当用户真的感到软件很好 用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便 易用”等词来评价软件产品。
外部质量
兼容性
兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如 两个字处理软件的文件格式兼容,那么它们都可以操作对方的文件, 这种能力对用户很有好处。兼容性又称为互操作性。 兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者 应当避免被兼容,否则市场将被瓜分。金山软件公司的WPS与微 软的Word之争。WPS一定要与Word兼容,否则活不下去。但是 Word绝对不会与WPS兼容,除非WPS又在中国占有绝对优势。 中国联通和中国移动的手机互联互通问题。(互联网的价值与用户 数量的平方成正比)
质量目标与商业目标
质量定义
古时候人们ห้องสมุดไป่ตู้为长得结实、饭量大就是健康,这显然是不科 学的。现代人总是通过考察多方面的生理因素来判断是否健 康,如测量身高、体重、心跳、血压、血液、体温等。如果 上述因素都合格,那么表明这人是健康的。如果某个因素不 合格,则表明此人在某个方面不健康,医生会对症下药。 软件质量是许多质量属性的综合体现,各种质量属性反映了 软件质量的方方面面。人们通过改善软件的各种质量属性, 从而提高软件的整体质量。
响应度量(Response Measure):以某种方式对其进行度量,对 需求进行测试。
软件体系结构知识点

构件:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
构件管理:1构件描述2构件分类与构件库组织:关键字分类法刻面分类法(青鸟)超文本组织方法(基本单位是结点)3人员及权限管理构件重用步骤:检索与提取构件(检索方法同上3种加其他)理解与评价构件修改构件(实参)构件组装(功能数据面向对象)软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的意义:体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型软件体系结构建模的种类:结构模型框架模型动态模型过程模型功能模型4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图也称模块视图,主要侧重于软件模块的组织和管理。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格反映了领域中众多系统所共有的结构和语义特性经典的体系结构风格数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。
独立构件风格:进程通讯;事件系统。
虚拟机风格:解释器;基于规则的系统。
仓库风格:数据库系统;超文本系统;黑板系统。
软件体系结构评估ppt

体系结构得方法定义了系统得关键结构,描 述了系统得成长方式、应对变化得方式、 抵制攻击得方式、与其它系统集成得方式 等等。
生成质量属性效用树
❖ 评估小组、设计小组、管理人员与客户 代表一起来确定系统最重要得质量属性 目标,并对它们进行优先级划分与细化。
质量属性(3)
3、可用性
定义:可用性就是系统有效工作得时间比例。
可用性得度量:两次故障之间得时间长度, 或者就是出现故障后系统能够恢复正常运 行得速度。
质量属性(3)
4、安全性
定义:安全性就是指系统在为合法用户提供 服务得同时能够抵制未授权得使用请求与拒 绝服务得能力。
安全性得类型分类:
❖ 基于度量得评估方式
优点: 能够提供更为 客观与量化得 质量评估
缺点: 要在体系结构得设 计基础完成后才能 评估,而且要求评估 人员对系统结构较 熟悉
❖ 三种评估方式得比较
内容
❖ 9、1 体系结构评估概述 ❖ 9、2 软件体系结构评估方式 ❖ 9、3 ATAM方法 ❖ 9、4 SAMM方法
ATAM评估方法
在开发过程得早期,通过分析系统得质量需求就是 否在软件体系结构中得到体现,来识别软件体系结 构设计中得潜在风险,预测系统质量属性,并辅助 软件体系结构制定决策。
质量属性(1)
❖ 在体系结构评估过程中,评估人员所关注得就是系 统得质量属性。所有评估方法所关注得质量属性有 以下9个:
1. 性能 2. 可靠性 3. 可用性 4. 安全性 5. 可修改性
按字母顺序排序索引 数据流 控制流
输入
主控程序
输出
set getNext setup getNext setup i-th
架构评估方法

架构评估方法
架构评估方法是用于评估软件或系统架构的方法,帮助确认架构的质量、合理性和可靠性。
以下是几种常见的架构评估方法:
1. 体系结构评审(Architecture Review Board,ARB):由一群专家审查和评估整体系统架构,检查是否满足需求、可扩展性、性能、安全性等方面的要求。
2. 基于质量属性的架构评估方法:首先确定系统的关键质量属性(如可靠性、可维护性、性能等),然后根据这些属性定义衡量标准,并在架构设计中评估系统是否满足这些标准。
3. 模型驱动的架构评估方法:使用建模语言来描述系统架构,然后使用模型检测、仿真等技术来分析架构的性质和行为。
4. 依赖图分析法:过程中根据系统的需求及功能提供者、功能消费者的关系建立一个依赖图,然后通过分析依赖图来评估架构的可行性和可靠性。
5. 性能建模与评估:通过建立性能模型、进行性能测试和分析等方法来评估架构的性能表现,包括响应时间、吞吐量、并发性等性能指标。
这些方法可以单独或结合使用,根据项目的需求和实际情况选择适合的方法进行架构评估。
软件体系结构试题与解答

模拟试题(一)第一题: 名词解释(每题5分, 共20分)1.软件体系构造(Software Architecture)2.软件体系构造风格(Software Architecture Style)3.软件质量属性4.质量属性驱动旳设计措施(ADD)第二题: 单项选择(每题4分, 共20分)1. 下面哪种方略可以用来满足可测试性(Testability)旳质量属性?A) 心跳(Heartbeat) B) 模块旳抽象化(Generalize the module)C) 记录/重放 D) 授权顾客2. “系统在提供服务给合法顾客旳同步抵制未授权使用旳能力”这是哪种质量属性关怀旳问题?A) 性能 B) 可测试性C) 可移植性 D) 安全性3. 下面哪种视图不属于软件体系构造中定义旳“4+1”视图?A) 物理视图 B) 设计视图C) 场景视图 D) 开发视图4. 下面旳图是什么图?A) 序列图 B) 组件图C) 对象图 D) 用例图5. 下面旳图形描述了何种体系构造风格?A) C/S B) 有序批处理 C) 主程序/子程序 D) 面向对象第三题:简答(每题5分, 共20分)1.请描述管道-过滤器体系构造风格旳特点并给出适合使用这种风格旳一种应用场景。
2.请简要阐明黑板风格旳定义。
3.请简要阐明体系构造权衡分析措施和该措施旳特点。
4. 什么是“4+1视图”, 分别给出每个视图旳名称和重要关注点。
软件体系构造分析: 效用树(20分)某企业要开发一种在线交易系统, 该系统重要关注性能、可更改性、可用性和安全这五个质量属性。
负责开发旳团体分析了各个质量属性, 设计了一种参照旳体系构造。
该团体欲采用效用树技术对体系构造进行评估, 下面是有关旳场景: ☎∙∙站点 断电后 可以在 秒内完毕流量到站点 旳迁移;●信用卡交易需要有99.999% 旳安全性;●顾客旳授权数据库需要在 99.999% 旳状况下保证可用;●视频必须实时传播;●可以在4人-周内完毕对Web顾客界面旳变化网络失效和恢复必须在1.5分钟内完毕;●减少对客户数据库访问旳时间至200毫秒以内;请根据以上描述, 构建对应旳效用树2. 软件体系构造构建(20分)Travelling 是一家新兴旳旅游服务提供商, 可以在线为顾客提供在线旳实时旅游信息服务, 包括路线信息, 景点简介, 公交线路查询等, 其系统旳基本旳功能如下所示:☎∙∙顾客可以在网站上注册帐号和密码 成为该站点旳客户;☎∙∙客户可以使用浏览器访问网上旳站点 搜索并返回感爱好旳景点信息;☎∙∙该企业需要集成来自旅游线路提供商旳数据库 提供旅游线路支持;需要集成来自景点旳信息提供商旳数据库提供景点信息;需要集成公交企业旳应用系统提供公交信息查询能力。
软件质量属性与评估

3
质量属性之间的关系: 质量属性之间的关系: • 一个质量属性的获取对其他质量属性可能产生正面或负面 的影响。 的影响。 • 任何质量属性都不可能在不考虑其他属性情况下单独获取。 任何质量属性都不可能在不考虑其他属性情况下单独获取。 例如:最开始银行没有为网上银行的客户提供从客户端到网 例如: 站之间的加密手段,银行获得了性能和成本上的好处,但牺牲了 站之间的加密手段,银行获得了性能和成本上的好处, 客户的安全性,导致假网站频出,很多人不敢使用网银业务。 客户的安全性,导致假网站频出,很多人不敢使用网银业务。后 银行给客户提供了各种加密手段,如支付宝、 来,银行给客户提供了各种加密手段,如支付宝、UKey等,花 等 费了一定的成本和牺牲了部分性能,但客户获得了安全。 费了一定的成本和牺牲了部分性能,但客户获得了安全。现在网 银用户和网上交易额逐年递增。 银用户和网上交易额逐年递增。
7
制品 刺激 刺激源 环境 反应度量 反应
质量属性不是处于隔离状态, 质量属性不是处于隔离状态,只有在一定的上下文环境中 才能做出有意义的评判。生成质量属性场景的目的和意义: 才能做出有意义的评判。生成质量属性场景的目的和意义: • 帮助构架师生成有意义的质量属性需求。 帮助构架师生成有意义的质量属性需求。 • 使质量属性需求的描述规范化。 使质量属性需求的描述规范化。 • 某一场景是一类场景的代表,系统将以完全相同的方式 某一场景是一类场景的代表, 对这些场景做出反应。 对这些场景做出反应。
4
质量属性可以分为两类: 质量属性可以分为两类: • 运行时可见属性 包括:可用性、性能、安全性、 包括:可用性、性能、安全性、易用性 • 维护时可见属性 包括:可修改性、可扩展性、可移植性、 包括:可修改性、可扩展性、可移植性、可集成性 质量属性的场景描述法 传统关于质量属性的讨论中存在问题: 传统关于质量属性的讨论中存在问题: • 定义不具可操作性 • 可能会关注同一问题 可用性、 可用性、易用性和安全性都可能关心一个系统故障
软件质量属性

(1)正确性➢正确性是指软件按照需求正确执行任务的能力。
“正确性”的语义涵盖了“精确性”.➢正确性无疑是第一重要的软件质量属性.➢技术评审和测试的第一关都是检查工作成果的正确性。
(2)健壮性➢健壮性是指在异常情况下,软件能够正常运行的能力。
➢正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为.➢开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。
➢健壮性有两层含义:一是容错能力,二是恢复能力。
从语义上理解,恢复不及容错那么健壮.Unix容错能力很强,可惜不好用.Windows容错能力较差,但是恢复能力很好,而且很好用。
占了90%的操作系统市场。
(3)可靠性➢可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。
➢平时软件运行得好好的,说不准哪一天就不正常了,如(千年等一回的“千年虫”问题)等。
➢软件可靠性分析通常采用统计方法➢时隐时现的错误一般都属于可靠性问题,纠错的代价很高。
例如当维护人员十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。
…➢软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡规范化程序设计,预防可靠性祸害。
(4)性能➢性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。
既要马儿跑得快,又要马儿吃的少。
➢性能优化的关键工作是找出限制性能的“瓶颈”,不要在无关痛痒的地方瞎忙乎。
➢性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。
(5)易用性➢易用性是指用户使用软件的容易程度➢导致软件易用性差的根本原因:理工科大学教育存在缺陷开发人员犯了“错位”的毛病软件的易用性要让用户来评价。
(6)清晰性➢清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价.➢开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档.➢可理解的东西通常是简洁的。
(7)安全性➢这里安全性是指信息安全,英文是Security而不是Safety.➢安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件体系结构的质量属性 2012/9/23
8
2 概念与方法
解决问题的途径
建立一种清晰的,可重用的框架来评估体系结 构的质量,提炼出属性层和测量项,应用于评 估当中。
采用分解的方法评估
软件体系结构的质量属性 2012/9/23
9
2 概念与方法
体系结构的权衡分析方法
Architecture Tradeoff Analysis Method(ATAM) 收集场景 引出需求、约束和环境描述 列出所有的候选体系结构风格/模式 单独考虑每个属性来评估质量属性 针对特定的体系结构风格确定质量属性对各个候选项的敏感性 使用第5步中的鉴定结果
SuitabilityMaurityUnderstandability
Time behavior
Analysability
Adaptability
Accuracy
Fault tolerance
Learn ability
Resource behavior
Changeability
Installability
软件体系结构的质量属性 2012/9/23
21
2 概念与方法
1 功能性
安全性(Security) 防止未经授权访问程序或者数据的能力。
从软件体系结构的层次上说明: 1. 应有一种机制或者设备(软件或硬件)来明显地完成这个任务。可以是组件 (如中间件提供的一项服务)或集成在组件里的功能。 2. 根据机制或者设备的存在与否决定属性值为1或者0。
•软件产品可以从一个环境迁移到另一个环境的能力。
ISO9126-1质量模型的特性
软件体系结构的质量属性 2012/9/23
15
2 概念与方法
ISO9126-1质量模型框架
Functionality Reliablity Usablity Efficiency Maintianablity Portablility
Installability
Interoperability
Recoverability
Operablility
Compliance
Stability
Co-exsitence
Security
Compliance
Compliance
Testability
Replaceability
Compliance
软件体系结构的质量属性 2012/9/23
17
2 概念与方法
ISO9126-1质量模型框架应用于体系结构
质量的度量按直觉评价,一般方法是列出产品的特性, 然后用一个属性组来描述它。
只要达到预期的值,则认为是一个达标的产品,至于达 标的值的界定,一般包含在需求当中。
下面进一步解释如何细化属性并将其用于体系结构
软件体系结构的质量属性 2012/9/23
26
2 概念与方法
3 易用性
易理解性(Understandability) 是指软件产品使用户能理解软件产品是否合适以及如何能将软件用于特定的任务和 使用环境的能力。 易学习性(Learnability) 软件产品使用户能学习它的能力。 易操作性(Operability) 软件产品使用户能操控和控制它的能力。
还有其他改进的方法吗?
软件体系结构的质量属性 2012/9/23
11
2 概念与方法
基于ISO9126-1建立体系结构质量模型
模型结构和ATAM类似,基于ISO9126-1构建。
什么是ISO9126-1标准? Software Quality Characteristics 更多资料可参阅: ISO/IEC 9126 in practice: What do
软件体系结构的质量属性 2012/9/23
23
2 概念与方法
软件体系结构的质量属性 2012/9/23
24
2 概念与方法
2 可靠性
容错性(Tolerance) 在软件发生故障或违反指定接口的情况下,软件产品维持规定的性能水平的能力。
从软件体系结构的层次上说明: 1. 它意味着拥有某种机制或软件设备。它可以是一个构件或被集成到构件中,如 异常处理以及冗余。 2. 3. 根据这种机制或设备的出现与否定义其值为1或者0。 它可以被精确为一种属性,这种属性的值与机制或者设备相关。
Compliance
Compliance
2
内容
• • • •
即将探讨的问题 概念与方法 案例 个人体会
软件体系结构的质量属性 2012/9/23
3
1 即将探讨的问题
软件体系结构究竟如何定义?
虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止 还没有一个被大家所公认的定义。
为何不可照搬建筑工程的Architecture来解决软件工程里的Architecture? 软件工程的确在朝着工程学科发展的一般模式靠拢,但是大规模的复用 才刚刚开始尝试。
Analysability
Portablility
Suitability
Maturity
Understandability
Time behavior
Adaptability
Accuracy
Fault tolerance
Learn ability
Resource behavior
Changeability
注意 我们假定这些特性都是彼此独立的,否则就太过复杂,无法讨论下去了。
软件体系结构的质量属性 2012/9/23
18
2 概念与方法
1 功能性
适合性(Suitability) 拥有符合特定任务需求的足够的功能。 • • 存在:任务已被详细说明 正确:正确的解释任务的详细说明。
从软件体系结构的层次上说明: 1. 2. 系统的功能性必须被识别出来。在此种情况下,根据确定与否取值为1或0。 由功能需求所获得的时序图必须被详细精化。在拥有一个体系结构说明书的情 况下,特定的功能被分解成与构件有关的子功能,并且这些子功能合起来应满 足系统的功能性需求。
软件体系结构的质量属性 2012/9/23
25
2 概念与方法
2 可靠性
可恢复性(Recoverability) 1、重建规定的性能水平的能力。2、恢复受影响的数据的能力。3、恢复所需的时间。 从软件体系结构的层次上说明: 1. 软件中存在一种机制或者软件设备,其独自成为构件或被集成在构件中,其功能 是重建或恢复数据(冗余就是一个典型的例子)。 2. 如果这种机制存在,那么可恢复性就可被细化为一种和时间、代价相关的性能属 性,每个支持此机制的组件都需计算出这样的属性。
注意 工程中的构件的复用是因为工程师只想集中精力做设计中真正创新的部分
软件体系结构的质量属性 2012/9/23
4
1 即将探讨的问题
更直观的表象:失效曲线
来自于设计或生产的缺陷与时间的函数关系。
硬件失效曲线图
软件失效曲线图
变更副作用
初期 失 效 率
后期磨损
失 效 率
实际曲线 理想曲线
0
注意
2
时间(年)
we need to know?
软件体系结构的质量属性 2012/9/23
12
2 概念与方法
关于ISO9126-1质量模型
根据ISO9126-1,质量被描述为一组特性,用于评估其满 足需求(显性和隐性)的能力。
从用户角度:最终产品的质量 从开发人员角度:不同开发人员提供的中间产品的质量 从客户角度:市场的需求
4
6
0
2
时间(年)
4
6
实际上更变的副作用从设计阶段就初现端倪。
软件体系结构的质量属性 2012/9/23
5
1 即将探讨的问题
启发
软件的质量问题暗示了设计缺陷或者从设计 转化到机器代码的过程中产生的错误。
关注前者(即软件体系结构),是否可以用高 质量的设计来提高最终产品的质量?
工具 方法 过程 质量关注点
功能性 可靠性 易用性 效率 可维护性 可移植性
•软件产品所能提供功能的能力。
•在特定的环境下和一段特定的时期内,软件产品可以维持其自身性能水平的能力。
•在特定的环境下,软件产品可被理解,学习,使用及对用户吸引力的能力。
•在特定环境下,软件产品提供和使用资源总数相关的特定的性能的能力。
•软件产品可被修改的能力。修改可能包括软件的修正,改进或软件适应环境,需求和变化。
软件体系结构的质量属性 2012/9/23
19
2 概念与方法
软件体系结构的质量属性 2012/9/23
20
2 概念与方法
1 功能性
互操作性(Interoperability) 在一个系统内或多个系统间相互作用的能力。 可替代性replaceability 兼容性compatibility
从软件体系结构的层次上说明: 1. 识别与外部特定系统进行交互的中间件。 2. 根据中间件的存在与否决定属性值为1或者0。
注意 作为开发人员通常只考虑前两项
软件体系结构的质量属性 2012/9/23
13
2 概念与方法
关于ISO9126-1质量模型
ISO9126-1广泛用于产品质量评估当中,作为评估质量的 一个State-of-art标准。
ISO9126-1包含六个高度独立的质量特性,质量特性在开 发的各个阶段作为外部确认和内部审查的目标,一旦获 得可测量的实体,就按照图中所示的过程精化。
Interoperability
Recoverability
Operablility
Compliance
Stability
Co-exsitence
Security
Compliance