软件构架实践(第2版)学习笔记

合集下载

实用软件工程 第2版 第4章 结构化分析

实用软件工程 第2版 第4章 结构化分析

第4章结构化分析了解需求分析的任务和原则本章目标熟悉进行需求分析的步骤和方法了解需求管理熟悉需求分析的常用方法了解软件原型掌握结构化分析的几种常用建模方法掌握结构化分析的几种图形工具目录 需求分析4.1 需求分析4.14.2结构化分析概述4.3结构化分析方法4.4结构化分析图形工具4.1需求分析•4.1.1需求分析的任务为什么需要需求分析为了开发出真正满足用户需要的软件产品,明确地了解用户需求是关键。

虽然在可行性研究中,已经对用户需求有了初步的了解,但是很多细节还没有考虑到。

可行性研究的目的是评估系统是否值得去开发,问题是否能够解决,而不是对需求进行定义。

如果说可行性分析是要决定“做还是不做”,那么需求分析就是要回答“系统必须做什么”这个问题。

需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。

•1.确定系统的运行环境要求系统运行时的硬件环境要求,如对计算机的CPU、内存、存储器、输入/输出方式、通信接口和外围设备等的要求;软件环境要求,如操作系统、数据库管理系统和编程语言等的要求。

•2.确定系统的功能性需求和非功能性需求•需求可以分为两大类,功能性需求和非功能性需求,前者定义了系统做什么,后者定义了系统工作时的特性。

•功能需求是软件系统的最基本的需求表述,包括对系统应该提供的服务,如何对输入做出反应,以及系统在特定条件下的行为描述。

在某些情况下,功能需求还必须明确系统不应该做什么,这取决于开发的软件类型、软件未来的用户、以及开发的系统类型。

所以,功能性的系统需求,需要详细地描述系统功能特征、输入和输出接口、异常处理方法等。

•非功能性需求包括对系统提出的性能需求、可靠性和可用性需求、系统安全以及系统对开发过程、时间、资源等方面的约束和标准等。

性能需求指定系统必须满足的定时约束或容量约束,一般包括速度(响应时间)、信息量速率(吞吐量、处理时间)和存储容量等方面的需求。

•3.进行有效的需求分析•一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。

软件架构复习笔记5.doc

软件架构复习笔记5.doc

软件架构复习笔记(5)・・设计模式20 Jun 2012At NJU普通Programming to Interface有哪些手段?集合类型PTI有那些手段普通:・模块化.信息隐藏普通情况下的Programming to Interface最需要的是低耦合(即基于方法调用的耦合:控制耦合、印记耦合和数据耦合),进一步需要信息隐藏(通过方法表现外部行为,同时隐藏内部实现)集合类型:•Iterator Pattern•Proxy Pattern•Prototype Pattern?OCP有那些手段(提示:不只是继承)___________Be open for extension: module5s behavior can be extendedBe close for modification: source code for the module must not be changes •Aggregation•Dynamic Binding: Polymorphism•Runtime registration: Event Style•Startup binding: Configration files•Load Binding: Component replacement•Adherence to defined protocals无论是哪一种绑定,或者什么,都必须在设计或使用的时候遵循某一种接口或者是规范。

Modifiability TacticsLoclaize change:Semantic coherence•Anticipate expected change•Generalize module•Limit possible option•Abstract common servicePrevention of ripple effect•Hide information•Maintain existing interface•Restrict communication paths•Use an intermediaryDefer binding time:•Runtime registration•Configuration files•Polymorphism•Component replacement•Adherence to defined protocals一个模块的信息隐藏有哪两种基本类型,各自有哪些处理手段?___________________________________两种决策类型:・需求:即一个模块的接口功能与模块内部程序细节的分离O给出功能接口,隐藏功能实现程序的细节o basic secrete: external behavior VS internal implementationo hides the implementation of an important design decisiono Especially if there is a list of all possible design changes is made - hiding assumption listo all design decisions are independent of each othero 使用facadeo 使用controllero都是增加一个中间的东西来是接口和内部细节分离・变化:将要发生变化的程序部分需要进行一个决策O给出需要修改部分的接口,隐藏待修改部分的实现程序细节o additional secrets: changeso You then separate each design secret by assigning it to its own class, subroutine, or other design unit.o Next you isolate (encapsulate) each secret so that if it does change, the change doesn' t affect the rest of the program.o strategy pattern / state pattern / bridge pattern共性,可变性实现共性与可变性有哪些手段?对给定的场景,给出共性与可变性的设计方案,将继承和聚合搞好手段:聚合,继承(多态)在解决De-Coupling时,常常使用哪些Indirection的手段?_______________________________________ 提示:对给定场景给出Indirection的解决方案(从常见模式来考虑)•Avoiding Repetition: DO it Once•DIP defining a interface in a module that a separate module intends to implement is fundamental way to break dependencies and reduce coupling •Indirectionpatterns:•Facade•Proxy•Adapter•Bridge ?•Delegator•Mediator•ObserverMVC与分层方式的区别(要具体到实现)・分层的方式主要有两点:。

软件体系结构笔记

软件体系结构笔记
2.构件分类与组织
关键字分类法
刻面分类法
使用环境
应用领域
功能
层次
表示方法
超文本组织方法
3.人员及权限管理
一般来说,构件库系统可包括五类用户,即注册用户,公共用户,构件提交者,一般系统管理员和超级系统管理员
构架重用
1.检索与提取构件
基于关键字的检索
刻面检索法
超文本检索法
其他检索法
2.理解与评价构件
构件的功能与行为
5.David Garlan和Dewne Perry
软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间演化的指导方针。
6.Barry Boehm
软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。
3.面向对象的组装技术
构造法
在子类中引进基类的对象作为子类的成员变量,然后在子类中通过成员变量重用基类的属性和方法
子类法
将子类直接说明为库中基类的子类,通过继承和修改基类的属性与行为完成新子类的定义
体系结构的兴起和发展
背景资料
软件体系结构的定义
1.Dewayne Perry和A1exander Wo1f
软件体系结构级的重用意味着体系结构的决策能在具有相似需求的多个系统中发生影响,着比代码的重用有更大的好处
软件体系结构的应用现状
软件体系结构描述语言(ADL)
体系结构描述构造与表示
按照一定的描述方法,用体系结构描述语言对体系结构进行说明的结果则称为体系结构的表示,而将描述体系结构的过程称为体系结构构造
体系结构模式分为两大类:固定术语和参考模型

软件架构实践-

软件架构实践-
• 《操作系统原理》课程其实最主要得意义与价值 就就是介绍一个实际得软件系统构架得案例
大家学习辛苦了,还就是要坚持
继续保持安静
1、2.2 软件架构得作用
(2)除了描述系统得构成与结构关系外,软件 构架还表达了系统关键需求与系统构成之 间得对应关系,这为系统得设计,提供了分 析与评价得依据
• 因为
软件架构实践
软件架构实践
第1章 认识软件架构
第1章 认识软件架构
• 1.1 软件架构与软件工程 1.2 软件架构概述 1.3 感受身边得架构存在 1.4 两个简单程序得架构实现与分析 1.5 本章小结
ห้องสมุดไป่ตู้
1.2 软件架构概述
1、2.1 软件架构得定义
什么就是软件架构,网上有60多个定义 多数人认可得定义:
品对象、实现AbstractProduct接口 • Client:仅使用声明得接口
MVC构架得并发视图
软件系统得一个或多个结构,包括软件组 件、这些组件得外部可见特性,以及这些 组件之间得相互关系。
软件架构包含了 组件 组件得外部可见特性 组件之间得相互关系
1、2.1 软件架构定义
1、2.1 软件架构得定义
进一步理解软件架构定义 架构就是一个或多个系统得抽象 就是由抽象得组件来表示得 组件具有外部得可见特性 组件相互之间就是有联系得
系统抽象屏蔽了组件内部特有得细节 系统抽象:
组件与联系 用视图得方式表示
1、2.1 软件架构得定义
常见得软件架构: 由结构与功能各异、相互作用组件得 集合,按照层次构成。
软件架构包含了 系统得基础构成单元(组件) 它们之间得作用关系(连接/连接件) 在构成系统时,它们得集成方法以及对 集成约束得描述。

软件架构实践(Software-Architecture-in-Practics)学习笔记

软件架构实践(Software-Architecture-in-Practics)学习笔记

软件架构实践(Software Architecture in Practics)学习笔记1 多个开源产品可以拿来分析其架构,如eclipse,万维网,2 需求并不能决定架构,架构是一种高层设计,最重要的是,架构的设计受到很多方面的影响,这些带来影响的因素(技术,商业,社会,涉众的需求,开发组织的结构或者本质—例如开发组织的商业目标和技术特点等,设计师的经验水平,等)也是我们进行架构设计时需要考虑的,同时也可以帮助我们很好的分析一个(商业产品的)架构。

要注意到,完成一个架构的设计会带给前面所提到的因素一定的反馈,得到一定的收获。

3 架构商业周期Architecture Business Cycle:软件架构是技术,商业和社会等诸多因素作用的结果,而软件架构的存在又反过来会影响技术,商业和社会环境,从而影响到未来的架构,这种互相影响的周期—从环境到架构又返回到环境—就叫做架构商业周期4 架构活动:1)为系统构建一个商业案例(商业目标)2)理解系统需求(最重要的是涉众的需求,可以使用面向对象的方法-即用例分析来获取,也可以通过捕获质量属性需求,再者,参考相似系统也可以获得需求)3)创建或选择架构4)将架构编成文档,并与有关各方进行交流(编档要面向不同的涉众给予不同文档,便于交流)5)对此架构进行分析和评价(ATAM或CBAM,注意一点是评估过程不能脱离实际环境)6)根据此架构实现系统7)保证系统实现符合架构的要求5 分析或者设计架构时可以考虑下面的一些建议:1)模块化,意味着要基于信息隐藏和独立的原则来设计或者分析架构2)避免完全依赖于第三方组件3)数据的生产者和消费者要分开!---key point6 软件架构的定义:某个软件或计算机系统的软件架构是该系统的一个或多个结构,它们由软件元素,这些元素的外部可见属性和这些元素之间的关系组成。

架构模式:架构模式是对元素和关系类型以及一组对其使用方式的限制的描述。

软考系统架构师每章知识点总结

软考系统架构师每章知识点总结

软考系统架构师每章知识点总结嘿呀!软考系统架构师的知识可真是又多又复杂呢!下面就来给大家好好总结一下每章的知识点哇!第一章计算机系统知识哎呀呀!这一章可得好好掌握计算机组成与体系结构的相关内容呀!像是各种处理器、存储系统、输入输出系统等等。

哇!还有指令系统和流水线技术呢,这可都是重点中的重点!你说是不是?知道不同类型的指令和流水线的工作原理吗?第二章操作系统知识嘿!这一章要搞清楚操作系统的基本原理和功能呀!进程管理、存储管理、文件管理、设备管理,一个都不能少呢!哎呀呀,进程的同步与互斥、死锁问题,可难倒了不少人呢!还有虚拟存储技术,你搞明白了吗?第三章数据库系统哇哦!数据库设计、数据模型、关系数据库、分布式数据库,都是这一章的重点呀!怎么进行规范化设计?关系代数和SQL 语言又该怎么运用?哎呀,想想就觉得不简单!第四章中间件技术嘿呀!中间件的分类和应用场景可得搞清楚。

像消息中间件、交易中间件、应用服务器中间件等等,它们各自都有独特的作用呢!知道在什么情况下该选择哪种中间件吗?第五章应用系统集成哎呀呀!这一章要了解系统集成的概念、方法和技术。

企业应用集成、Web 服务集成,这里面的门道可多啦!第六章软件架构设计哇!软件架构风格、架构评估、软件产品线,这些都是重点中的重点!如何选择合适的架构风格?怎么进行有效的架构评估?第七章设计模式嘿!设计模式的分类和应用可不能马虎。

创建型模式、结构型模式、行为型模式,每一种都有独特的用处呢!第八章软件测试哎呀呀!测试的方法、策略、用例设计,都要掌握得牢牢的!功能测试、性能测试、兼容性测试,一个都不能落下呀!第九章项目管理哇哦!项目计划、进度管理、成本管理、风险管理,这都是项目经理要操心的事儿!怎么制定合理的计划?如何控制成本和风险?第十章安全技术嘿呀!网络安全、系统安全、应用安全,每一个方面都至关重要!加密技术、认证技术、访问控制,你都了解吗?哎呀呀,软考系统架构师的知识点真是太多太复杂啦!不过只要我们认真学习,多多总结,一定能够掌握的呀!加油哇!。

软件架构学习笔记分析

软件架构学习笔记分析

调查确认
顶层包::调查人员
领导审批 调整销号
顶层包::单位领导
主流、成功流: 所有步骤都执行 成功的情况下执 行的流程。
可以不走的流程; 应当有进入条件。
异常流: 异常情况的处理 流程,应当有异 常情况定义。
详细设计及软件开发
详细设计
逻辑架构分析 开发架构 数据架构
逻辑架构
+输入年月 +选择过错
代码越多 BUG越多
单元测试和整体测试
网络接入点
MVC BUS DAO
Web应用
压力测试 Js Js
J
• 数据库性能 • 数据库服务器
• 网络带宽与路由 • 网络部署结构
• 与后台交互次数 • 传输数据量
Js Js
发现瓶颈点
应用服务器
重要瓶颈点
被管服务器
管理服务器
被管服务器
数据库服务器
数据量太大
Struts
Spring
JFINAL
Hibernate
缓存服务器
OMraYclSe Q11Lg ORACLE
数据架构 新平台架构带来的优势
前前端端界界面面 MMVVCC层层
BBUUSS层层
VO
PO
数数据据库库
基基础础平平台台
各从种界转面换到耗数费据了库大统量一代起码来 实现自动化的值对象转换
查询机
• OLAP库 • 保留完整数据 • 建立数据仓库 • 往月查询 • BI数据分析
数据库灾备与恢复方案
客户
主从机
从主机
大数据与云服务未来发展趋势
越来越集中地进行管理 由市集中向省集中、全国集中发展 建立面向全国的应用接口 建立大型的数据中心集中式管理 面临着大并发、大数据量的技术压力

云计算架构技术与实践(第2版)

云计算架构技术与实践(第2版)

7.4软件化L4~ L7网络功能
7.5网络虚拟化 端到端解决方 案
8.2典型的混合云 架构模式
8.1混合云的驱动 力与背景
8.3基于OpenStack 级联的开放异构混
合云
9.2基于Docker的 新型PaaS
9.1 PaaS简介
9.3消息中间件服 务
9.4数据库和缓 存服务
9.5大数据服务
精彩摘录
这是《云计算架构技术与实践(第2版)》的读书笔记模板,可以替换为自己的精彩内容摘录。
谢谢观看
05
11.5面向 多租户的企 业桌面公有 云服务
12.1基于开放 1
云平台的云生 态系统构建
12.2
2
Marketplace
系统架构
3 12.3面向电信
网络和业务云 化的CT编排自 动化——MANO
4 12.4面向IT应
用的IT编排自 动化——Heat & TOSCA
5 12.5 TOSCA
(云应用的拓 扑编排标准)
5
14.5云数据安 全
01
14.6公有 云、私有云 的安全组
02
14.7云安 全管理
03
14.8安全 即服务
04
14.9云安 全应用实施 案例
Hale Waihona Puke 0614.11云计 算服务法律 风险及其应 对
05
14.10云计 算安全的其 他考虑
作者介绍
这是《云计算架构技术与实践(第2版)》的读书笔记模板,暂无该书作者的介绍。
目录分析
第2版序言
1.2云计算的商业 动力:企业ICT转

1.1云计算基础概 念与架构
1.3企业云计算的 发展趋势
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、软件架构、架构模式、参考模型、参考架构1、对于软件架构定义有很多种,通用的定义是:某个软件或计算机系统的软件架构是该系统的一个或多个结构,他们由软件元素,这些元素的外部可见属性以及这些元素之间的关系组成。

这里所说的某个元素的“外部可见属性”是指其他元素对该元素所做的假设,如它所提供的服务、性能特征、错误处理、共享资源的使用,等等。

其他的定义包括:架构是一种高层设计。

架构是系统的总体结构。

架构是一个软件或系统的组件、组件之间的相互关系以及管理其设计和演变的原理和方针的结构。

架构是组件和连接器。

2、架构模式是对元素和关系类型以及一组对其使用方式的限制的描述。

3、参考模型是一种考虑数据流的功能划分。

4、参考架构是映射到软件元素(它们相互协作,共同实现在参考模型中定义的功能)及元素之间数据流上的参考模型。

5、软件架构、架构模式、参考模型、参考架构之间的关系:6、软件架构的重要性(1)、架构是涉众进行交流的手段。

(2)、架构是早期设计决策的体现。

(3)、架构是可传递、可重用的模型。

7、架构定义中指出系统由多种结构构成的,下面列出一些常见的结构。

软件结构关系适用环境分解是一个子模块;与之共享秘密资源分配、项目结构化和规划;信息隐藏、封装;配置控制使用要求正确出现设计子集;设计扩展分层要求正确的出现、使用服增量式开发;在“虚拟机”可移植性之二、质量属性系统从设计、实现到部署的整个过程中考虑质量属性的实现。

质量属性包括下列三类:(1)、系统的质量属性。

(可用性、可修改性、性能、安全性、可测试性和易用性)(2)、受架构影响的商业属性。

(上市时间、成本和收益、所希望的系统生命期的长短、目标市场、推出计划、与老系统的集成)(3)、与架构本身相关的一些质量属性。

(概念完整性、正确性与完整性、可构建性)六个质量属性的战术列表:战术与架构模式的关系Active Objcet设计模式将方法执行从方法调用中分离出来,以增强并发,并简化对驻留在其自身控制线程中的对象的同步访问。

该模式由6个元素组成:代理,它提供了允许客户对主动对象调用公共访问方法的接口;方法请求,它定义了用于执行主动对象的方法的一个接口;激活接口,它维持了挂起方法请求的一个缓冲器;调度程序,它决定接下来执行什么方法请求;附属,他定义可建模为主动对象的行为和状态;将来,它允许客户获得方法调用的结果。

该模式的动机就是增强并发性——这是一个性能目标。

因此其主要目的就是实现“引入并发“性能战术。

然而,还要注意该模式包含的其他战术。

●信息隐藏(可修改性)。

每个元素都选择了它将实现的责任,并将其实现隐藏在接口后面。

●仲裁者(可修改性)。

该代理充当着把变化缓冲到方法调用中的仲裁者。

●绑定时间(可修改性)。

主动对象模式假定对该对象的请求在运行时到达该对象。

然而,并没有确定客户机与代理的绑定时间。

●调度策略(性能)。

调度程序实现一些调度策略。

对设计师来说,分析过程包括理解嵌入在实现中的所有战术;设计过程包括在关于哪些战术最和将实现系统期望的目标方面,做出一个明智的选择。

架构模式和样式软件中架构模式与建筑物中的架构样式类似,它由几个将他们组合起来以维持架构完整性的关键特性和规则组成。

架构模式由以下几个因素确定:●一组元素类型(如数据存储库或计算数学函数的组件)●指出其相互关系的元素的拓扑布局。

●一组语义限制(如管道——过滤器样式中的过滤器是纯数据转化器——他们以增量形式将其输入流转换为输出流,但并不控制上游流或下游元素)。

●一组交互机制(如子例程调用、事件——调阅者、黑板)、他们确定元素将如何通过允许的拓扑进行协调。

架构模式和战术之间是什么关系呢?正如已经说明的那样,我们把战术看作是设计的基本“构建块”,并根据该战术创建架构模式和策略。

三、设计架构几乎在我们遇到的所有成功的面向对象系统中都具有但失败的系统中缺少的两个特性是:存在一个强大的构架构想,应用管理良好的迭代式增量开发周期。

功能、质量和商业需求的某个集合“塑造”了构架。

我们把这些塑造需求称为“构架驱动因素”。

构架设计必须按需求分析进行,但不需要在需求分析完成后在开始构架设计。

实际上,在确定了关键的构架驱动因素后,就可以开始构架设计了。

当设计了构架的足够多的部分后,就可以开始开发骨架系统了。

该骨架系统在上面进行迭代开发(以及其在任何一个点交付的能力)的框架。

组织结构对构架产生影响。

属性驱动的设计(ADD)是一个用于设计构架以满足质量需求和功能需求的方法。

A DD把一组质量属性场景作为输入,并使用对质量属性实现和构架之间的关系的了解,对构架进行设计。

ADD步骤:(1)选择要分解的模块。

(2)根据这些步骤对模块进行求精。

(3)对需要进一步分解的每个模块重复上述步骤。

四、构架编档构架编档是创建构架的最有价值的一步。

即使构架非常完美,但如果没有人理解它,或主要的涉众误解了它,它也没有什么用处。

如果您创建了一个非常强大的构架,那么,就必须用足够的细节明确地描述它,并以一种其他人可以快速找到所需要信息的方式对其进行组织。

否则,构架不会有什么用处,您所付出努力就白费了。

捕获构架信息的描述方式采用UML表示法。

五、软件构架重构构架重构是一种解释、交互和迭代的过程,涉及许多活动;它不是自动进行的。

它需要反向工程专家和设计师具备相关技能并投入精力,这在很大程度上是因为没有在源代码中清楚地表示构架构件。

软件构架重构由以下活动组成,这些活动以迭代的方式进行:(1)信息提取。

(2)数据库构造。

(3)视图融合。

(4)重构。

六、分析构架构架评估的一些基本问题——原因、时间、成本、收益、技巧、计划内、计划外、前置条件以及结构。

每个基于构架的开发方法中都应该进行构架评估。

在生命周期中尽可能早的评估软件质量几乎总是经济高效的。

评估成本就是需要参与评估的人员所付出的时间。

成功评估应该具有如下属性:(1)、表述清楚的构架目标和需求。

(2)、可控制的范围。

(3)、经济高效。

(4)、关键人员的可用性。

(5)、称职的评估小组。

(6)、可管理的期望。

ATAM一种进行构架评估的综合方法,ATAM是评估软件构架的一个健壮的方法。

在该方法中,项目决策者和涉众要清晰地阐述一个准确的质量属性需求列表(以场景的方式),并说明与实现每个高优先场景相关的构架决策。

然后,把这些决策确定为有风险决策或无风险决策,以找到构架中任何存在问题的地方。

ATAM不是需求评估。

ATAM不是代码评估。

ATAM不包括实际的系统测试。

ATAM不是一个准确的手段,但它识别了构架中可能存在风险的区域。

这些风险包含在敏感点和权衡中。

ATAM活动的4个阶段:在第0阶段(合作关系和准备)确定细节:人员名单,时间,地点;评估小组获取资料并进行初步了解分析。

第1阶段,评估阶段,决策者参与,小组开始信息收集与分析;耗时约1周。

1~2周中断期,评估小组进一步以非正式方式了解构架。

第2阶段,评估阶段,涉众参与,分析继续;约2天。

第3阶段,后续阶段,生成最终报告,进行评估活动总结;1周。

评估阶段的步骤:第1步:ATAM方法的表述。

评估负责人向决策者表述ATAM方法,使大家理解其过程,了解角色布局。

第2步:商业动机的表述。

决策者介绍系统商业动机、重要功能、各种限制(任何相关的技术、管理、经济和政治限制)、商业目标和上下文、主要的涉众、驱动因素等。

第3步:构架的表述。

首席设计师或架构小组介绍构架,技术限制、所用模式等。

第4步:对构架方法进行分类。

评估小组利用所有已知信息对构架方法进行分类。

第5步:生成质量属性效用树。

生成质量属性效用树,捕获详细的需求信息,为每个场景分配一个级别,如(高,中),前者为重要度,后者为实现难易度,重点放在(高,高)的场景;此处场景具备刺激、环境、响应三要素就可以了。

第6步:分析构架方法。

评估小组分析所有重要场景,设计师解释如何支持该场景,检查所用构架方法,分析风险点、权衡点、敏感点。

经过一段中断期,第2阶段开始,此时涉众开始参与;首先仍然需要一个对ATA M方法的介绍,并使涉众了解已有的成果。

第7步:集体讨论并确定场景的优先级。

集体讨论并分析场景的优先级,以了解更广泛的涉众的想法;该过程可能产生新的场景;使用“有限票数法”投票确定每个场景的优先级——此处不考虑实现难度。

第8步:分析构架方法。

分析新的高优先级的场景,构架师解释构架是怎么满足各场景的。

第9步:结果表述。

总结评估结果,评估负责人展示该结果。

CBAM构架设计决策制定的定量方法为了经济地制定决策,我们开发了一个对软件系统进行经济建模的方法,主要是对其构架进行分析。

该方法即成本收益分析方法(CBAM),它在ATAM上构建,用来对构架设计决策的成本和收益进行建模,是优化此类决策的一种手段。

CBAM 提供了对技术和经济问题以及构架决策的评估。

CBAM的思想就是构架策略(构架战术的集合)影响系统的质量属性,反过来这些质量属性又会为系统的涉众带来一些收益,我们把该收益称为“效用”。

每个构架策略都为涉众提供了某一特定级别的效用。

此外,每个构架策略都有成本,并需要花时间去部署。

从此,CBAM可以协助涉众根据其投资回报(ROI)选择构架策略,投资回报是收益和成本的比。

CBAM是一种迭代式获取过程,它与决策分析框架结合在一起。

它采用场景来表示各种质量属性。

涉众通过获取效用—响应曲线来理解系统的效用如何随着质量属性的变化而变化,从而对决策进行分析。

在达成一致的基础上,该方法允许涉众进行讨论,以在涉众之间进行澄清。

设计决策的可跟踪性允许设计过程随着时间的推移而不断得到更新和改进。

1、场景的变体CBAM使用场景来表示和表达具体的质量属性。

把场景结构分成3个部分:刺激(与系统交互)、环境(系统此时的状态)、响应(所导致的可度量的质量属性)。

2、效用—响应曲线最好情况的质量属性级别,最好指继续提高质量属性也不能带来效用的提升,此时效用值取100(如1秒);最坏情况的质量属性级别,最坏指如果质量属性低于该值,系统将毫无价值(如10秒);本场景(曲线表现的是某个场景)当前的响应与效用级别(当前是5秒,用户愿意付钱50);期望的效用级别(如果能达到3秒,用户愿意支付80)确定每个属性的权重,构架师选择策略,考虑策略对每个属性的影响,计算获得的总收益与成本;3、场景的优先级4、构架策略CBAM实现步骤:步骤1、整理场景:根据商业目标确定优先级,选择优先级别最高的前1/3的场景。

步骤2、对场景进行求精:确定每个场景的最好、最坏、当前、期望情况的质量响应级别——此步仅处理响应级别,期望值有可能等于最好值。

步骤3、确定场景优先级:去掉优先级低的一半场景。

步骤4、为每个场景的当前级别和期望级别分配效用。

步骤5、为场景开发构架策略,并确定质量属性响应级别。

相关文档
最新文档