背景:对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了分析现有架构存在的潜在风险,检验设计中提出的质量需求,在系统被构建之前分析现有系统架构对于系统质量的影响,提出系统架构的改进方案。架构评估是软件开发过程中的重要环节。
问题:请围绕"论软件系统架构评估"论题,依次从以下三个方面进行论述。
1.概要叙述你所参与架构评估的软件系统,以及在评估过程中所担任的主要工作。
2.分析软件系统架构评估中所普遍关注的质量属性有哪些?详细阐述每种质量属性的具体含义。
3.详细说明你所参与的软件系统架构评估中,采用了哪种评估方法,具体实施过程和效果如何。
解答例1
评估系统,一定要结合场景、方法和关注的属性进行评估,评估完成后要对产生的结论有保存,要根据结论反向调整系统。
因此首先要表述具体使用的评估方法,介绍当前的架构,介绍系统的目标。
其次根据约束来描述当前的具体架构,分析具体的关注属性,拆解属性到不同的场景下。
再次结合测试和对场景的分析,进行决策和讨论,得到属性、场景等关注的优先级顺序,反应到评估的权重上。
最后,产出评估报告,应该包含系统的能力分析(上下限)、风险点、不同场景下的表现等对系统的描述性质的结论,产出系统的改进建议,产出使用建议,比如在什么场景下使用系统更合适。
一、 参与评估的电商系统及个人角色
参与的某B2C电商平台日均订单量突破50万单后,系统频繁出现响应延迟、支付超时等问题,高峰期API超时率高达15%。作为核心架构组成员,本人主导了本次架构评估工作:
1. 组织跨部门需求调研,
2. 建立性能指标体系,
3. 运用ATAM方法进行风险评估,
最终提出水平扩展与异步解耦的优化方案,推动系统吞吐量提升3倍。
二、架构评估核心质量属性解析
性能维度
吞吐量:支付系统峰值处理能力从800TPS提升至2500TPS
响应时