1、软件架构案例分析票务系统架构案例分析10.1 ATAM方法表述10.2 商业动机的表述10.3 构架的表述10.4 质量属性效用树10.5 质量场景的构架分析10.6 对系统构架的再分析10.7 评审结论10.1 ATAM方法表述(1)概述ATAMArchitecture Tradeoff Analysis Method:SEI提出的一种软件构架评估方法。ATAM评估方法的主要目的:1)提炼出软件质量属性需求的准确描述;2)提炼出构架设计决策的准确描述;3)评估这些构架设计决策,并判定其是否令人满意的实现了这些质量需求。ATAM评估方法:并非把每个可以量化的质量属性都进展详尽的分析,而是使众多
2、的风险承担者包括经理、开发人员、测试人员、用户、客户等等都参与进来,由此而到达上述目标的。ATAM是一种挖掘潜在风险,降低或者缓和现有风险的软件构架评估方法。因此,以下三点是评估中要特别注重的:风险、敏感点和权衡点。(2)构架涉众普通用户用户管理员票务管理员开发人员测试人员(3)评估步骤ATAM主要分以下几个步骤:1)ATAM描述;2)商业动机表述;3)软件构架表述;4) 确定构架方式;5)生成效用树;6)分析构架方式;7)确定场景及其优先级;8)进一步分析构架方式;9)得出结论。10.2 商业动机的描述工程经理从开发组织和客户角度,来表述票务系统的商业目标,综合如下:从开发组织角度:开发一个
3、模块性强、实时高效、界面良好、与外部其他系统兼容良好的系统,这使得开发组织能够把整个产品或某个模块卖给其他客户,同时由于良好的界面和业务处理效率而受市场欢迎。从客户角度:系统容易操作,可维护性好、系统稳定、可以及时准确的处理用户的在线订票或查询业务。根据上述目标,质量属性可以划分为两类:高优先级质量属性:1)性能2)平安性3)易用性4)可用性重要但优先级较低的属性:1)模块性2)可维护性3)可修改性4)可测试性10.3 架构表述(1) 与构架商业周期的关系(2) 系统的整体构造(3)质量属性及采用的战术10.4 质量属性效用树10.5 质量场景的构架分析在质量属性效用树中,我们对场景的优先级进
4、展了划分,而同时由于分析时间珍贵,所以我们应该把珍贵的分析时间最先用于最重要且最难实现的场景上,即标注为(H,H)的场景。在质量属性效用树的表格中,仅在性能和可用性这2个质量属性下发现标注有(H,H)的场景,下面根据系统的体系构造和实现质量属性所采用的战术分别给出这些重要场景的构架方法分析表格。性能可用性10.6 对系统构架的再分析(1) 风险决策和敏感点2问题分析在前面对系统构造的描述中,系统采用基于B/S的分层构造,系统部署在一台应用效劳器上,这种构造有它独特的优点。但经过构架方法的分析,特别是对系统的关键质量属性和优先级最高的质量属性场景的分析,发现系统在上述场景下会出现如下的问题:(1
5、)性能方面:在非常多的用户并发操作的情况下,单效劳器系统将不能对用户的请求做出及时的响应,严重情况下效劳器还会崩溃。(2)可用性方面:在仅有的一台应用效劳器出现故障或者崩溃的情况下,用户将不能访问系统,故障恢复需要花费较长时间。(3)改进系统的构架考虑到使用票务系统的用户数目非常庞大,这样造成用户对系统的访问请求数目和对系统进展业务操作的请求数目也非常庞大,改进后的系统采用多层分布式构造,使用Web效劳器集群和应用效劳器集群来实现,这种集群机制支持动态负载平衡Load Balance和容错机制,可以将用户的请求以及对用户请求的处理分发到负载低的效劳器中,非常适合具有并发用户数多,效劳地点分散等
6、这些特点,有较高的稳定性,能有效防止访问流量过多导致效劳器瘫痪以及整个系统因为某台效劳器崩溃而彻底瘫痪。为了使系统到达集群分布式的目的,在第一套方案的根底上,我们采用Spring介入E容器的方式,使用E 的无状态会话Bean来封装业务逻辑,即调用POJO中的业务逻辑操作(POJO中包含了业务逻辑处理,在原来的SSH 框架中它是指业务层的JavaBean,通过持久层与数据库交互,这些POJO通过IOC容器来管理)。这相当于在Struts和业务逻辑层之间增加了E,重用原SSH框架的业务逻辑,即系统框架变Struts+E+Hibernate+Spring,这种组合可以将视图和业务逻辑以及对数据库的操作很好的别离。4新的框架如下:10.7 评审结论总体而言,通过对质量属性场景的分析,我们发现了最先提出的构架方案的缺乏,由此得出改进后的构架方案。采用改进后的构架方案可以获得了良好的性能、易用性、平安性、可用性等等,到达了设计目的符合质量属性需求分析的要求!