2、什么是场景,质量属性的场景大江东包含哪几个镇部分?

作业习题;一、填空题;1.系统的质量属性有多种,请列举其中六种:___;2.构架战术就是________________;4.构架驱动因素包括______________;5.构架评审的六个优点是:___________;6.构架结构可以分为3组:___________;7.构架的商业属性包括:____________;8.构架样式有多种,其中四种是:___
作业习题 一、填空题
1. 系统的质量属性有多种,请列举其中六种:__________________、__________________、_______________、_______________、________________、________________。
2. 构架战术就是_______________________________________________________________。
3. ________________________________________________称为构架策略。
4. 构架驱动因素包括___________________、____________________、______________。
5. 构架评审的六个优点是:________________、________________、________________、________________、________________、________________。
6. 构架结构可以分为3组:___________________、___________________、______________。
7. 构架的商业属性包括:________________、________________、________________、________________、________________、________________。
8. 构架样式有多种,其中四种是:________________、________________、_______________、________________。
二、名词解释
1. 软件架构
2. 软件架构商业周期(用画图形式表示)
三、对错题
1. 软件构架可以由几名设计师共同完成。( )
2. 设计师对系统的质量属性应平等看待,在系统设计中全部予以解决。( )
3. 构架的文档应该完备,并使所有风险承担者都能看懂。( )
4. 构架通常可以依靠某一特定产品或工具。( )
5. 应将产生数据的模块和使用数据的模块分离开。( )
四、简答题
1. 为什么要分析软件架构?
2. 请说明模块结构和使用结构之间的联系与区别。
五、构架分析与设计
针对一个网上购物系统或学生选课系统,请完成下面4个问题:
1. 说明系统的若干质量属性,并以场景图的形式分别描述一个可用性场景和一个安全性场景。(10分)
2. 使用ADD方法说明系统的初步设计。(15分)
3. 描述ATAM方法的九个步骤。(9分)
4. 选取两个质量属性以表格形式生成质量属性效用树(6分)
习题答案 一、填空题
1. 系统的质量属性有多种,请列举其中六种:可用性、可修改性、性能、安全、可测试性、易用性、可移植、可重用、可集成(任选六个)。
2. 构架战术就是那些影响质量属性的设计决策。
3. 构架编档的基本原则是从读者的角度出发来编写。
4. 构架驱动因素包括功能、质量、商业属性。
5. 构架评审的六个优点是:财务上的收益、强制为评审做的准备、捕获构架设计的基本思想、在早期检测中发现问题、验证需求、改进构架。
6. 构架本身的质量属性包括:概念完整性、正确性与完整性、可构建性。
7. 构架的商业属性包括:上市时间、成本和收益、所希望的系统生命周期的长短、目标市场、推出计划、与老系统的集成。
8. 构架样式有多种,其中四种是:以数据为中心、数据流、虚拟机、调用返回、独立组件、异构(任选其中四个)。
二、名词解释
1. 软件架构
是系统的一个或多个结构,它们由软件组件(元素)、这些组件的外部可见属性以及组件之间的关系组成。组件的外部可见属性是指其它组件对该组件所做的假设。
2. 软件架构商业周期(用画图形式表示)
三、对错题
1. 软件构架可以由几名设计师共同完成。( 错 )
2. 设计师对系统的质量属性应平等看待,在系统设计中全部予以解决。( 错 )
3. 构架的文档应该完备,并使所有风险承担者都能看懂。( 对 )
4. 构架的设计应有助于增量式实现。( 对 )
5. 应将产生数据的模块和使用数据的模块分离开。( 对 )
四、简答题
1. 为什么要分析软件架构?
(1)因为构架非常重要,它是风险承担者交流的平台、是早期设计决策的体现,是可传递的系统抽象(构架级重用)。
(2)系统的质量属性不可能在系统实现的最后阶段追加上去,必须在设计之初就考虑到。
2. 请说明构架模式、参考模型 和参考构架之间的联系与区别。
构架模式是对组件和关系类型以及一组对其使用方式的限制的描述。参考模型是一种考虑数据流的功能划分。参考构架是映射到软件组件及组件之间数据据流上的参考模型。
参考模型实现了功能划分,而参考构架则将功能划分与系统分解对应起来,这种对应不一定是一一映射。参考模型、构架模式和参考构架都不是构架,但都是早期设计决策的产物,都对构架设计有帮助。它们的关系如图所示:
五、构架分析与设计
1. 请描述构架设计的ADD方法中对模块求精的5个步骤。(5分)
a. 从具体的质量场景和功能需求集合中选择构架驱动因素。
b. 选择满足构架驱动因素的构架模式。
c. 实例化模块并根据用例分配功能,使用多个视图进行表示。
d. 定义子模块的接口。
e. 验证用例和质量场景并对其进行求精,使它们成为子模块的限制。
2. 分别描述两个质量属性的场景图。(6分)
质量属性任选,场景图按如下画法。
3. 使用ADD方法说明一个关键模块的设计。(10分)
要求:设计过程遵循ADD设计的步骤,首先要选取构架驱动因素,即最重要的质量属性,然后依据质量属性,选取相应的构架模式和战术,对模块进行分解,再将功能附加到模块上。
按此思路进行设计的,可得8-10分;没有按ADD步骤设计直接给出结果的,可得5-7分;直接按功能进行模块设计的,可得3-4分。
4. 描述ATAM方法的九个步骤。(9分)
ATAM方法的表述
商业动机的表述
构架的表述
对构架方法进行分类
生成质量属性效用树
分析构架方法
集体讨论并确定场景优先级
再次分析构架方法
结果的表述
5. 选取两个质量属性以表格形式生成质量属性效用树。(5分)
效用树的表格形式如下表所示。
场景 场景用文字描述,并要标明场景的优先级和实现的难易。
6. 选取一个质量属性的场景,对实现该质量场景的战术进行分析。(5分)
分析时应指出所采用的设计决策、该决策是敏感点还是权衡点、是有风险决策还是无风险决策,并说明原因。
三亿文库包含各类专业文献、高等教育、生活休闲娱乐、外语学习资料、中学教育、各类资格考试、文学作品欣赏、应用写作文书、专业论文、软件体系结构_陈长清_作业习题 (1)75等内容。 
 软件工程习题及解答1_理学_高等教育_教育专区。软件工程习题及解答 软件工程第一章习题 一、选择题 1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( (...  1-云计算复习题_工学_高等教育_教育专区。一、...4. ___中间件___是一种独立的系统软件或服务程序..._来实现 Mapper 和 Reducer 接口, 二者组成作业的...  软件体系结构(考试习题集含答案)_工学_高等教育_教育专区。软件体系结构 1.面向对象的方法优势体现在( ABD ) A. 简化软件开发过程 B. 支持软件复用 C. 提高...  软件体系结构复习题0 3页 1财富值如要投诉违规内容,请到百度文库投诉中心;如要...以子程序或进程为调度单位 5 作业或程序级并行:并行执行两个或两个以上的作业...  软件工程复习题--1_工学_高等教育_教育专区。《软件工程》期末考试...32. 构件级设计将软件体系结构的结构元素变换为对软件构件的过程性描述。 33. ...  南通大学软件工程复习题(选择题)(1)_韩语学习_外语学习_教育专区。南通大学软件...答案: (4) 5、在结构化分析方法中,用实体D关系图表达系统中的对象及其关系...  数据库第一、二、三章课后习题答案_IT认证_资格考试...库系统是指在计算机系统中引入数据库后 的系统构成,...(2) 均由数据管理软件管理数据,程序与数据之间用...  中间件技术原理与应用课后习题参考答案 S1.中间件产生背景及分布式计算环境 1....它把 COM 组件软件提升到应用层而不再是底层的软件结构, 它通过操作系统的各种...【优质】全面质量管理试题2doc下载_爱问共享资料
【优质】全面质量管理试题2.doc
【优质】全面质量管理试题2.doc
【优质】全面质量管理试题2.doc
简介:本文档为《【优质】全面质量管理试题2doc》,可适用于综合领域,主题内容包含【优质】全面质量管理试题全面质量管理试题一、判断、质量是一组赋予的特性满足要求的程度也可以看作是产品和(或)服务满足顾客需求的能力。()、顾客是指接符等。
侵权或盗版
*若权利人发现爱问平台上用户上传内容侵犯了其作品的信息网络传播权等合法权益时,请按照平台要求书面通知爱问!
赌博犯罪类
添加成功至
资料评价:
所需积分:0667被浏览50987分享邀请回答2248 条评论分享收藏感谢收起/p/25445645
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
“场景(scenarios) ”一词常见应用于戏剧领域中,指在一定的时间、空间内发生的一定的任务行动或生活画面。【1】在交互设计领域,基于场景设计(scenario-based design) 的思想最早由Carroll提出,强调将设计工作的焦点从定义系统的操作转变到描述什么人将使用该系统去完成其任务。【2】交互设计改变了设计中以物为对象的传统,直接把人类的行为作为设计对【3】人使用产品必须有一定的行为,这种行为是在一定场景下进行的, 行为的完成需要一定技术的支持,因而人、行为、场景和技术4个要素构成了所谓的交互系统。【4】场景是交互系统中极其重要的要素,研究在一定场景下的用户行为,对用户行为逻辑针对相应的场景进行规划和设计,是交互设计的重要目标。1 交互设计各阶段中场景的种类及其应用场景描述了关于操作者、操作者及其环境的背景信息、操作者的目的或目标、一系列活动和事件等内容,【5】这里的操作者即指的是产品的使用用户。基于场景理论的交互设计,是指在交互设计整个过程中使用场景描述的方法来具体地描述用户对产品的使用情况。如图1,交互设计各阶段可分为不同的用户场景,包括早期用户需求分析阶段的客观场景,产品交互设计阶段的目标场景以及场景验证和评估阶段的实际应用场景。图1 用户场景种类及其设计流程Fig1 User scene type and its design process1.1 客观场景设计师在交互设计的开始阶段,需要对用户现状及其需求进行分析。客观场景便是通过对用户现状的调查研究,从中获取有效信息进行总结和归纳出来的。客观场景的构建,最常见的调研方法是:用户现场观察法。在观察的同时,设计师可以对观察中遇到的问题进行总结和分析,通过观察后结合用户访谈等方式来补充分析用户的需求。比如在“快的打车”等打车类APP未投入市场之前,用户的典型客观场景可以描述为:公司职员王先生晚上6:00下班(操作者及其背景信息),需要打车回家(操作者的目标),在公司门口招揽出租车,可是一直招揽不到出租车,最终走了两公里路到附近的商场才打到了车,而且发现商场附近待揽客的出租车非常多,王先生觉得非常郁闷,为什么资源不匹配呢(操作者的一些列活动、感受等)。上述对用户“打车”这一客观场景的描述,是建立在对一定量“打车”用户调研的基础之上描述出的典型场景。客观场景是为了描述目标用户和客观状况而总结的,强调的不仅仅是问题点,还包括产品的目标用户描述、用户客观行为流程、用户情感表现、问题点等。设计师可以通过客观场景中分析出用户的需求,包括行为流程上的体验问题及其对应的设计机会点等。1.2 目标场景在产品交互设计阶段,需要设计师构建目标场景。目标场景,是建立在客观场景之上,设计师所期望达成的能解决用户客观场景中相关需求的用户场景。在客观场景的基础之上,设计师可以结合相关交互理论和设计准则,以及通过可用性和场景实验等方法,对客观场景进行分析和研究,进而设计和规范出能够满足用户需求的目标场景。目标场景从表达形式上可以细分为行为场景和交互场景。行为场景,是指在客观场景研究的基础之上,对用户的行为流程进行分析和描述的场景,常用场景故事版等表现工具进行描述;如图2,设计师勾勒出的“快的打车”投入市场后的目标行为场景故事版。结合场景故事版,用户的典型目标场景可以被描述为:公司职员王先生晚上6:00下班,需要打车回家。王先生在5:50时,打开“快的打车”APP可以看到公司附近有很多出租车,王先生输入出发地和目的地确认打车。30秒后出租车司机李师傅接单,王先生可以在手机上清晰的看到李师傅的车辆位置,10分钟后王先生成功上车。到达目的地后,王先生用手机在线支付了打车费,开心的回到家陪女儿吃晚饭。图 2 “快的打车”目标场景故事版Fig2 Story version of “Quick taxi ”target scene 交互场景则是指产品在被用户使用过程中的场景,常用信息流程图、低保真页面流程图、使用流程故事版等工具进行描述。【6】以“快的打车”为例,用户在移动场景下不方便打字,所以设计了语音输入和快速搜索来确定家和公司的位置;移动场景下容易出错,所以设计了信息确认机制;在等待应答的过程中,可视化告知用户APP通知的车辆数和距离,并且在打车成功后告知车辆距离和时间,消除用户等待的焦虑,将信息可视化。图 3 “快的打车”交互场景Fig3 Interaction scene of “Quick taxi ” 所设计的目标场景需要针对用户在客观场景中反应的需求提出针对性的解决方案。通过目标场景设计,设计师可以勾画出未来用户和产品之间理想的行为交互模型。1.3 实际场景在实际产品交互设计阶段,目标场景会有很多,不同设计师设计出的目标场景也不同。如何验证和评估目标场景的优劣,就需要引入实际场景。实际场景是指在设计师不干预的情况下,提供目标场景中设计好的相关产品或模型给用户,由用户在实际的参与式体验过程中测试目标场景,进行产品的测试及适用性评价【7】。通过这个评价过程,设计师可以进一步观察用户和产品之间存在的其他关系,并为产品最终设计方案提供场景参考。【8】2 用户场景对交互设计的价值与意义在产品交互设计中,设计师设计的对象是用户的行为。用户行为是动态的,建立在一定场景上的用户行为才有意义。因此在对用户行为进行设计时,需要设计师意识到研究和应用基于场景设计的价值和意义。2.1 更准确地把握产品和用户之间的关系及其用户需求以用户为中心的产品设计,【9】强调需求来源于用户,需求转化出的设计方案最终服务于用户。设计师可以通过观察用户和产品的互动行为,通过客观场景描述,直观的展现出用户和产品之间的互动关系及其问题。这些关系和问题是用户需求的直观体现,客观场景描述了目标用户、用户客观行为流程、用户情感表现、问题点等信息,而且场景具有故事性,是通过一段段的故事片段描述构成的,因此场景描述相对于其他用户研究总结出来的客观数据、需求文档等更生动和直观。直观而且形象的客观场景描述,便于设计师和其他产品设计人员更准确和细致的把握客观用户需求。2.2 提升交互设计方向的合理性和产品满意度在产品交互设计阶段,通过对目标场景的设计和描绘,设计师可以基于场景进行交互设计,通过场景故事版、用户体验旅程图、信息流程图、低保真页面流程图等工具细化用户在客观场景中所反映出来的需求并给出解决方案。因此基于场景的交互设计,一方面更加全面的分析和解决用户的需求,避免单一分析用户行为或者产品功能造成的对用户需求的遗漏。同时,通过实际场景中对目标用户场景的验证和评估,提升了产品交互设计方向的合理性;另一方面,设计师设计的目标场景将用户的情感表现等需求直观化和故事化,使得设计师所设计的产品设计点更容易被用户感受,提升产品的满意度。3 基于用户场景的产品交互设计的设计思维3.1 动态思维:场景设计是一个循环设计流程图4 交互设计中场景设计的动态思维Fig4Dynamic thinking of scene design in interactive design用户场景不是固定不变的。【10】如图4,在交互设计各阶段中,客观场景是目标场景的设计基础,实际场景对目标场景进行验证和评估。同时,被验证的实际场景又是下一次交互设计的设计对象,上一次的实际场景会转化为下一次的客观场景。因为在实际场景验证和评估中,总会遇到不符合用户预期,目标场景中没有考虑到的用户需求的问题。需要指出的是,掌握交互设计中场景设计的动态思维,并不是指这个设计流程是无限循环的,场景设计是一个持续优化和快速迭代的过程,设计师及其相关产品负责人需要讨论出每个迭代阶段具有共识性的目标场景和实际场景的评估标准。面对既定的迭代阶段目标,在整个设计循环流程中,一旦满足相关目标场景及其实际场景评估标准,现有迭代阶段的交互设计便可终止。3.2 主次思维:抓主要场景,统筹次要场景在客观场景分析和目标场景设计过程中。分析场景时,需要区分主要场景和次要场景。在交互设计各阶段不同场景中,必有而且只有一种场景居于支配的地位,起着规定或影响其他场景的作用,这种场景就是主要场景,其他场景则是次要场景。在分析和解决、处理用户需求时,既要看到主要场景的重要性,善于抓住重点,又要看到次要场景的客观影响,学会全面地看待用户需求,做到抓主要场景,统筹次要场景的统一。主次思维,把握主要场景,同时兼顾次要场景,可以有效地保证基于场景分析的交互设计的产品设计的准确性。3.3 拆解思维:复杂的大场景由众多小场景组成用户场景有大有小,用户的客观大场景总是由众多可以层级细分的小场景组成。在客观场景分析过程中,大场景相对宏观,可以总览用户的宏观需求。而小场景更加聚焦,可以分析出用户更加具体需求,同时,小场景更加具象,能够落实到用户的具体行为流程和对产品的细节体验,便于设计师有针对性且具象的针对客观小场景进行目标场景设计。比如用户用“快的打车”叫出租车的场景就是大场景,这个大场景中包含用户叫车场景,司机接单场景,用户付款场景等等小场景。用户叫车场景还可以细分为用户当前位置定位场景、用户输入目的地地址场景、用户立即叫车或预约叫车场景等。越细分的客观场景,越有利于设计师针对性的设计出有效的目标场景,同时也更有利于在实际场景中进行交互模型评估和场景验证。所以,在交互设计各阶段应用场景理论进行设计时,需要具备拆解思维,将复杂的大场景拆分为众多可设计的小场景,再由众多的目标小场景,组成最终的目标大场景,进行实际场景验证,输出最终的交互设计成果。4 结语现在产品和用户体验日趋复杂,传统的物理逻辑层面的设计已经不能满足用户的需要,要关注“事”,【11】场景作为交互系统中极其重要的要素,研究交互设计中的场景理论,从产品交互设计各阶段入手,将场景理论深入到交互设计的各个阶段,是对现有的交互设计实践的一次深化。同时,掌握交互设计中运用场景理论时的循环思维、主次思维和拆解思维,可以有效地把握产品和用户之间的关系及其用户需求,提升交互设计方向的合理性和用户对产品的满意度。研究交互设计中的场景理论,具有非常重要的价值和意义。参考文献[1] 沈贻炜. 影视剧创作[M].浙江:浙江大学出版社, 2012.SHEN Yiwei. Film and television drama creation[M]. Zhejiang: Zhejiang University press,2012[2]Carroll J M. Five reasons for scenario-based design[J]. Interacting with Computers, 2000(13):43–60.[3]辛向阳. 交互设计:从物理逻辑到行为逻辑[J]. 装饰, 2015(01):58-62.XIN Xiangyang.Interaction Design: From Logic of Things to Logic of Behaviors [J].-62.[4]李世国, 费钎. 和谐视野中的产品交互设计[J]. 包装工程, 2009(01):137-140.LI Shiguo, FEI Qian. Product Interaction Design in the Perspetive of Harmony [J].Packaging Engineering, 2009(01):137-140[5]Go K. , Carroll J. M. , Imamiya A. . Surveying scenario based approaches in sys tem design[J] . IPSJSIG Notes, HI878, .[6]赵婉茹. 浅谈场景故事在用户体验设计中的应用[J]. 设计, 4-175.ZHAO Wanru.The Application of Scenario Stories in User Experience Design [J].Design, 4-175.[7] 诺曼·唐纳德 A.设计心理学[M].北京:中信出版社,2010. NORMAN D A.The Design of Everyday Things[M].Beijing:China CITIC Press,2010.[8]DDF·UXPA中国. 用户体验百家谈[M] .北京:电子工业出版社, 2014.DDF·UXPA China. User experience a hundred talk[M] .Beijing:Electronics Industry Press,2014[9]罗仕鉴, 胡一. 服务设计驱动下的模式创新[J]. 包装工程, -4.LUO Shijian,HU Yi.Model Innovation Driven by Service Design[J]. Packaging Engineering, -4.[10]COOPER A.软件观念革命——交互设计精髓[M].北京:电子工业出版社,2012.COOPER A. Software Concept Revolution: the Essence of Interaction Design[M]. Beijing: Publishing House of Electronics Industry,2012.[11] 安娃. 交互设计思维在服务体验中的应用[J]. 包装工程, 2015, 02期(02):5-8.AN Wa. Collaborative Design of Product Interaction Design System[J].Packaging Engineering,):5-8.174 条评论分享收藏感谢收起登录以解锁更多InfoQ新功能
获取更新并接收通知
给您喜爱的内容点赞
关注您喜爱的编辑与同行
966,690 十一月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
基于模式的架构评审
基于模式的架构评审
Neil B. Harrison
0&他的粉丝
Paris Avgeriou
0&他的粉丝
0&他的粉丝
日. 估计阅读时间:
:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!
亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的。
相关厂商内容
相关赞助商
架构评审将是一种可行的解决方案:它将能找出潜在的问题,[2], [3], [4] 特别是针对那些相关质量属性的问题。然而,尽管已经证实,这样做很有价值,但很多项目还是不会或不愿意去实施评审。这些项目具有以下特征:
时间表很短,还可能包括一系列短周期的迭代开发;
项目期限非常紧张,除了生产之外几乎没有空闲时间;
忽视文档,特别是像架构文档这样的内部文档;
频繁的更改技术或用户需求;
这些特征导致团队关注生产一个仅仅&可工作的&软件,或&只要做出产品&&&其他的活动的优先级都很低。由于没有更好的说法,我们用专注生产式来描述这些项目。很多这样的项目(尽管不是全部)遵循敏捷和精益软件开发方法论中的实践。[5], [6], [7]
我们创建了一种轻量级的适合专注生产式项目的架构评审过程。它可以确认架构模式并检查这些模式给质量属性带来的作用效果。我们曾使用它评审过九个项目;它并不仅仅可以用来发现重要的架构问题,同时也提高了开发团队对架构的理解。
架构评审和专注生产式项目
在很多软件架构评审实践中,我们都可以全面地检查架构中的质量属性。[8] 然而,它们在针对专注生产式项目进行架构评审时非常不协调,这体现在以下几个方面:
人力资源。 专注生产的项目通常仅有满足简单编写软件的人力资源。即使对小项目进行基于构架权衡分析方法(ATAM-based)的架构评估的近似成本也需要32个员工日(staff day)。[9] 在AT&T,一次架构评审的平均成本是70个员工日(staff day)。[10]
成本。已发布推行中的架构评审方法一般都很昂贵。
架构文档。 即使很多的架构评审方法都基于对文档的分析,[11] 专注生产式的项目却几乎没有架构文档&&这是一个被广泛意识到的问题。[12]
需求。 架构评审方法需要详细的需求说明书和相应需求的稳定性&&一个过程会需要2到6个星期。 [13] 需求变更带来的大量准备工作会阻碍评审的执行。
这些不协调情况致使项目经理们无法评审他们的架构,从而放弃了评审带来的应有的好处。然而,轻量级的评审过程将解决这些不协调情况,同时让这些项目重新受益于架构评审。
基于模式的架构评审
软件架构模式是指那些处理频繁出现的设计问题的通用解决方案。基于模式的架构评审(PBAR)是一种轻量级的基于软件架构模式的评估方法。这种评审方法提供了一种已被验证的使用模式解决方案的方式,以及如何适应解决方案的效果。[14] 虽然最著名的软件模式是面向对象的设计模式,但在这里我们更关心的是那些涉及系统架构的模式。[15]
架构模式关注整个软件系统的设计以及高层次的模块化拆分。[16], [17], [18] 应用现有的架构模式可能使实现某些质量属性更容易或更困难。举个例子,分层模式将系统划分为不同的层次,使得每一层都向它的上一层提供一系列的服务,同时又使用下一层提供的服务。[19]这种结构对故障容错提供了支持,你可以使用分层,从而在出现错误时方便地回滚以实现事务。可是,这种模式需要所有的请求都经历多个层次到达目的地,这使得性能受到了损失。
PBAR(基于模式的架构评审)平衡了模式与质量属性的关系,同时产生了一种适用于专注生产式项目的评审。它解决了这些项目与传统架构评审之间的不协调情况:
PBAR仅仅需要很少的时间和精力。这非常适合于让小项目专注于编写产品代码。
PBAR不需要架构文档。取而代之的是,它总结了正在使用中的架构模式与任何已存在的项目文档,从而推断在这样的情况下,质量属性将如何实现。
专注生产式项目允许需求变更。PBAR只需要简短的准备时间,一次简短的评审就可以在1到2天内给项目作出反馈。这使得它可以迅速对需求变更做出响应。
此类评审的基本元素与重量级的架构评审并无二致,但是显得更简单,并且更专注。
要素和计划
评审者需要具备架构,架构模式,质量属性等专业知识和一般的领域常识。评审者应该来自团队之外,这样才能在系统架构设计方面带来新颖的观点&&这项工作与其说是内部回顾,更大程度上不如说是一次审核。
在开发周期的早期,一旦确定了系统的基础结构,那么就应该准备规划架构评审了。所有开发人员以及对项目感兴趣的利益相关者都应该被邀请参加评审。参加者不需要做什么正式的准备,但是评审者需要提前掌握好所有相关的架构和需求文档,比如用户故事(user stories)和用例。
评审会议及跟踪
评审是一次面对面的会议,在其间以下几步将会迭代执行:
确定系统中最重要的质量属性并加以讨论。梳理用户故事(user stories)并浏览一遍相关质量属性对应的场景。
讨论系统架构(甚至将它画在白板上)。
确定出要使用的架构模式。(由评审者完成这个任务,但是其他懂架构模式的参与者可以帮忙)主要的技术是将系统结构与模式结构进行匹配。你希望找到一种成熟的模式,而不是一种新模式,因为我们已经了解这些成熟的模式将对质量属性有何影响,而后者则不然。
综合检查架构与质量属性,以确定每种模式对系统的质量属性的作用。评审过去的场景、实现方式以及在架构实现过程中发生的情况。用现有的模式文档去发现模式与质量属性之间的匹配之处(或不匹配的地方)。
找出并讨论质量属性的议题,包括哪些质量属性没有被处理,或哪些被充分满足了,哪些模式没有用到但是会带来帮助,以及在模式与质量属性之间存在的冲突。举个例子,分层的架构往往无法符合高性能的需求。
在评审结束后,评审者需要向整个团队做出总结。这应该可以进行的很快,因为多数问题已经在评审期间讨论或得到解决。(会议的全部过程可以在一个小时内结束)
评审和专注生产式实践
表格1展示了专注生产式项目的典型实践以及PBAR和传统重量级评审将如何适应它们。这些实践也可以在很多敏捷和精益方法论中看到。请注意,并不是所有的专注生产式项目都支持敏捷方法论,反之,也并不是所有的敏捷项目都是专注生产式的。
专注生产式项目的通用实践和架构评审
专注生产式实践
频繁发布 [5], [6], [7]
在早期的多次发布中进行规划,简短的评审反馈周期可以很好的适应较小的发布窗口
&&& 在多次发布间没有实际意义;较长的计划-评审-反馈时间会跨越多次发布
随用户需求而变 [5], [7]&&&
专注于质量属性(稳定更胜于功能性需求);允许功能发生改变
&&& 需要保持需求的稳定性,包括功能性需求
轻量级文档 [5], [6]
不需要特定的文档;可以平衡好模式对应的架构质量保证问题
&&& 鼓励编写大量的架构文档;有部分文档必须编写,以供评审使用
&可行走的骨架&(Walking skeleton)[6]
在&可行走的骨架&的实现的反馈中进行规划
&&& 对于总体计划,需要根据需求建立基于日历的时间表
为了提高灵活性,一般的项目都可能会有较频繁的内部或外部发布。架构评审应该满足这样的场景:计划和评审本身都应该很简短。因为参与者不需要做任何准备,PBAR可以灵活地规划。它精巧的规模对于非常小的发布周期来说也只有很小的影响。
随用户需求而变
大多数的架构评审都基于需求说明书(通常以书面的形式)。但是由于需求常常变更,所以评审的功能被削弱了。而PBAR则关注于质量属性,它比功能性需求更加稳定。
轻量级文档
传统的评审都趋向基于全面的架构文档,但是这很容易让项目为了产出这些文档而多做很多工作。对于这种情况,PBAR是一种轻量级的选择。
可行走的骨架(Walking Skeleton)
&可行走的骨架&是早期一种贯穿始终的架构实现,经常被作为原型来用于证明架构概念。架构评审的一个完美时间点就是&可行走的骨架&完成之时。因为不需要很多的准备和精力,所以你可以在&可行走的骨架&实现后马上举办PBAR;而不需要像传统的评审那样,必须进行非常慎重的计划和前置工作。
PBAR的经验
我们曾在9个项目中使用了PBAR。虽然差不多有一半是学生的软件工程课程项目,但都是拥有真实客户的真实项目。在这些评审中,六个非常成功,有一个部分成功,而另外两个是失败的。那个部分成功和两个失败的评审帮助我们改善了评审过程。表格2简要列举了这些项目和结果;&主要问题&这一列包含了架构与重要质量属性之间主要的不协调情况。
基于模式的架构评审
被找到的问题个数
主要问题个数
已被解决的主要问题个数
耗费的精力 (以员工小时计算[评审者/团队])
流媒体数据的处理与分析
计算机控制的过程控制
&&& 已发布
嵌入式GPS平台应用
基于Web的定期跟踪系统
8 (3.5/4.5)
分布式订阅管理系统
9.5 (3.5/6)
电子商务库存管理系统
8 (3.5/4.5)
安卓手机应用
7.5 (3.5/4)
基于Web的游戏平台
7.5 (3.5/4)
基于Web的业务流程支持系统
大多数项目都遵循前面描述的多数实践。大都需要开发人员之间的高度沟通,以及与客户之间高度的日常交流。大部分的项目罕有甚至没有架构文档,没有用文档记录甚至没有使用架构模式。大部分会有频繁的集成,少部分会有频繁的发布。大部分项目会更多地考虑用户的需求变更,并维护好一个灵活的排好优先级的功能列表,还有少部分会明确的创建&可行走的骨架&。
参与者对于评审本身及其结果都非常的积极与确信,个别人显示出极大的热情。他们的反馈展示了来自评审的四大好处:
基本质量属性问题。PBAR差不多可以平均在每个项目中找出四个问题,其中包括一个重大问题。在一个案例中,架构使用了分层模式,但是需要提升性能,可选的一种方案是规避分层&&一条独立的贯穿系统的路径。在另一个案例中,评审暴露出用户接口的设计(基于已存在的软件)相当晦涩,以至于很难扩展。
团队对架构的理解。有这样两种说法,&评审帮助每个人看到了全景图&,并且,&评审有助于澄清和统一系统的愿景&
团队对质量属性需求的理解。举个例子,团队知道系统是可靠的,但是需要更深入的说明。在评审中,我们会决定系统并不需要连续不间断的运行,但是它必须能够处理某些错误的情况。
团队成员需要深入了解软件架构本身。经过PBAR过程,团队了解了架构模式以及它们与质量属性之间的关系。
很明显,我们需要在这些利益与成本之间进行权衡,幸运的是,成本相当低廉&&总共需要所有参与者耗费的精力不会超过两个工作日。简短的准备时间可以让团队很好的利用评审来应对需求变更。虽然从来没有哪场评审是我们特别为应对需求变更而举办,但在某些情况下,会对它们在很短的时间内进行规划(一周甚至更少)。我们唯一听到的真正的抱怨是关于评审的时间点&&大多数都是在开发进行的差不多了才进行评审,个别参与者希望评审可以更早的进行。
如果参与者发现评审的有用之处,并能对那些列举的问题起到作用,我们就成功了。对于9个案例中的6个而言,已被证实是对的。而导致那三个失败案例的可能因素有以下几点:
那些列举出的问题都已经发生并产生了负面作用。
我们并没有收到评审结果的确认,可能是因为评审是离线(offline)进行的。
评审没有进行完,主要是因为评审者是一名架构新手。(在一个特别的案例中,连需求都还没有与用户确定,在这种情况下,也就无法在违反需求的情况下对架构进行评审)
从失败的评审我们获得了不少教训,评审必须全员参与并且在开发周期的早期完成,但是也不要过早的在需求都尚未被理解的情况下进行。最后,需要一位擅长架构和架构模式的人来引导大家进行。
详细的实例
为了说明PBAR过程和它的带来的好处,我们选取一次评审并对它进行详尽的描述。我们将要学习的项目是一个学生课程项目,而学生是没有时间去做冗长的项目评审的。只有三个开发人员的小团队并没有遵循什么方法论,他们只编写了少量的需求,并且没有架构文档。另一项挑战是,该项目开发的是一个安卓应用,而安卓的软件开发套件在当时非常新,并且在不断的变化中;这也影响了应用的开发和实现。
我们从讨论功能和质量属性需求开始进行评审。我们讨论了各种场景,帮助我们理解最重要的四个质量属性:易用性、安全性、可靠性(故障容错)和可扩展性。这对发现故障及容错尤其有帮助。然后我们讨论架构并将它画在白板上,利用方框和连线分别表示组件和连接器。其中一位团队成员做好笔记,这样一来,在评审结束后团队将会得到一些架构文档。我们列举了两种架构模式:点对点和共享资源库。[20]
我们列举了质量属性的三个问题,其中之一非常重要,然后我们讨论解决这些问题的方法,并总结了三种团队可以实现的措施去解决这些问题。伦恩&贝思(Len Bass)和他的同事则称之为策略。[21]我们在架构图表中进行标注哪些部分可以实施策略,这样可以给团队如何去实现这些策略的概览图。评审总共进行了不到两个小时。
团队记录了以下几点由评审带来的特别帮助:
产出了一些架构文档;
提高了大家对架构的理解;
提高了大家对项目质量属性需求的理解;
列举出一些问题及初步的解决方案。
以上经验证明,PBAR在即使完全没有架构文档和只有很少的需求文档时也非常有用。
通过这些使用PBAR的经验,我们学习了一些如何让PBAR更加成功的重要且全面的经验。架构评审者必须来自项目之外,这是所有类型的评审都适用的一种情况,并且与结对编程具有相似的原理&&从另一个视角来发现项目成员无法发现的问题。如果团队中有两位评审者会具有更好的效果。
此外,评审应该在架构已足够完备并产生评审意义后尽可能早的完成。非常重要的一点是,需要注意到PBAR本身的轻量级特性,这使得它应该尽早实施,甚至是在架构确定之前。然而,如果质量属性需求尚未确定的话,评审很可能会失败。
假使架构师并没有在他们的架构中显式使用模式,那又会怎样呢?这是我们指导过的大多数评审中出现过的情况。但是因为架构模式通常总是存在的,[22]评审可以正常地进行,而模式自然而然就会被识别出来。
遗憾的是,PBAR不能找出一些传统架构评审才能找到的问题。取而代之的是,它提供了一种取舍:一种只需要很少时间和精力,并且可以工作在只有少量架构文档的情况下,当然尤其是在无法使用重量级评审过程的敏捷项目中使用的评审过程。PBAR可以发现在已使用的架构模式和重要质量属性的不协调情况(例如,性能对应分层,又或者是容错对应管道和过滤器);但它无法发现类似由复杂的交互组件产生的性能缺陷等问题。
另一个限制是评审者们必须非常的精通架构,架构模式,质量属性以及策略。这与传统的评审很类似:评审者需要具备类似的专业知识,虽然架构模式知识并不是决定性的。关键的挑战是很多地组织需要物色到具有充分专业性的评审者。
差不多到目前为止所有使用了PBAR的项目都非常小,也许并不能很好解决像工业级别项目的大规模的需求。虽然用户会认为这方面经验的不足是一个限制,但是我们依然希望PBAR会继续更加成功地发展。
尼尔 & 哈里森(NEIL HARRISON) 是犹他谷大学的一名计算机科学副教授。他的研究兴趣包括软件模式,有效组织和软件测试。哈里森曾获得荷兰格罗宁根大学的软件工程博士学位。他是《敏捷软件开发的组织模式》(《Organizational Patterns of Agile Software Development》Prentice Hall, 2004)一书的联合作者。你可以通过联系到他。&
帕里斯& 艾维格聊(PARIS AVGERIOU )是荷兰格罗宁根大学的一名软件工程教授。他的研究兴趣涉及强调架构建模,认识,进化及模式的软件架构。艾维格聊曾获得希腊雅典国立科技大学的软件工程博士学位。你可以通过 联系到他。
[1] P. Clements, R. Kazman, and M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley, 2001
[2] G. Abowd et al., Recommended Best Industrial Practice for Software Architecture Evaluation, tech. report CMU/SEI-96-TR-025, Carnegie Mellon Univ., Software Eng. Inst., 1997
[3] J.F. Maranzano et al., &Architecture Reviews: Practice and Experience,& IEEE Software, vol. 22, no. 2, 2005, pp. 34&43.
[4] L. Bass et al., Risk Themes Discovered through Architecture Evaluations, tech. report CMU/SEI-2006-TR-012, Carnegie Mellon Univ., Software Eng. Inst., Sept. 2006.
[5] K. Beck and K. Andrus, Extreme Programming Explained: Embrace Change, 2nd ed., Addison-Wesley, 2004
[6] A. Cockburn, Crystal Clear: A Human-Powered Methodology for Small Teams, Addison-Wesley, 2004
[7] M. Poppendieck and T. Poppendieck, Implementing Lean Software Development: From Concept to Cash, Addison-Wesley, 2006.
[8] L. Dobrica and E. Niemel&, &A Survey on Software Architecture Analysis Methods,& IEEE Trans. Software Eng., vol. 28, no. 7, 2002, pp. 638&653.
[9] P. Clements, R. Kazman, and M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley, 2001.
[10] G. Abowd et al., Recommended Best Industrial Practice for Software Architecture Evaluation, tech. report CMU/SEI-96-TR-025, Carnegie Mellon Univ., Software Eng. Inst., 1997
[11] P. Clements, R. Kazman, and M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley, 2001
[12] R. Kazman and L. Bass, &Making Architecture Reviews Work in the Real World,& IEEE Software, vol. 19, no. 1, 2002, pp. 67&73
[13] J.F. Maranzano et al., &Architecture Reviews: Practice and Experience,& IEEE Software, vol. 22, no. 2, 2005, pp. 34&43
[14] E. Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994
[15] F. Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, vol. 1, Wiley, 1996.
[16] F. Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, vol. 1, Wiley, 1996.
[17] N. Harrison, P. Avgeriou, and U. Zdun, &Using Patterns to Capture Architectural Decisions,& IEEE Software, vol. 24, no. 4, 2007, pp. 38&45
[18] P. Avgeriou and U. Zdun, &Architectural Patterns Revisited: A Pattern Language,& Proc. 10th European Conf. Pattern Languages of Programs (EuroPLoP 05), Butterworth- Heinemann, 2005, pp. .
[19] F. Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, vol. 1, Wiley, 1996
[20] P. Avgeriou and U. Zdun, &Architectural Patterns Revisited: A Pattern Language,& Proc. 10th European Conf. Pattern Languages of Programs (EuroPLoP 05), Butterworth- Heinemann, 2005, pp. .
[21] L. Bass et al., Risk Themes Discovered through Architecture Evaluations, tech. report CMU/SEI-2006-TR-012, Carnegie Mellon Univ., Software Eng. Inst., Sept. 2006
[22] N. Harrison and P. Avgeriou, &Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation,& Proc. 7th Working IEEE/IFIP Conf. Software Architecture (WICSA 08), IEEE CS Press, 2008, pp.147&156
本文首次发表在 杂志.
的目标是建立一个引领未来软件开发的社区及实践者。该杂志通过传播可靠,有用,前沿的软件开发信息以保持工程师和管理者把握技术的迅速变化。
原文链接:
感谢对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流。
Author Contacted
架构 & 设计
351 他的粉丝
文化 & 方法
52 他的粉丝
26 他的粉丝
0 他的粉丝
0 他的粉丝
0 他的粉丝
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
最重要的四个质量属性:易用性、安全性、可靠性(故障容错)和可扩展性
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
InfoQ每周精要
订阅InfoQ每周精要,加入拥有25万多名资深开发者的庞大技术社区。
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。}

我要回帖

更多关于 软件质量属性场景 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信