软件系统架构评估方法(软件体系结构分析方法),它利用各种数学或逻辑的分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。常见的软件系统架构评估方法如下:
- SAAM(Software Architecture Analysis Method),软件架构分析方法,它是卡耐基梅隆大学软件工程研究所(SEI at CMU)的Kazman等人于1983年提出的一种非功能质量属性的体系结构分析方法,是最早形成文档并得到广泛使用的软件体系结构分析方法。( 注意:SAAM是Software Architecture Analysis Method的缩写,不是Scenarios-based Architecture Analysis Method的缩写,当然,SAAM是Scenarios-based Architecture Analysis Method的其中一种架构评估方法。目前中文网络中,存在英文全称的错误。)
Software architecture analysis method (SAAM) is a method used in software architecture to evaluate a system architecture. It was the first documented software architecture analysis method, and was developed in the mid 1990s to analyze a system for modifiability, but it is useful for testing any non-functional aspect.SAAM: A Method for Analyzing the Properties of Software Architecturesresources.sei.cmu.edu
- ATAM(Architecture Tradeoff Analysis Method),构架权衡分析方法,是得到应用的常见架构评估方法。ATAM(Architecture Tradeoff Analysis Method)是在SAAM的基础上发展起来的,SEI于2000年提出ATAM方法,针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。SAAM考察的是软件体系结构单独的质量属性,而ATAM提供从多个竞争的质量属性方面来理解软件体系结构的方法。使用ATAM不仅能看到体系结构对于特定质量目标的满足情况,还能认识到在多个质量目标间权衡的必要性。
- CBAM(Cost Benefit Analysis Method),成本收益分析方法,它构建在ATAM之上。
CBAM begins where ATAM leaves off; being an architecture-centric method for analyzing the costs, benefits and schedule implications of architectural decisions. CBAM also assess the level of uncertainty associated with these judgments, so as to provide a basis for an informed decision process with regards to architecture.
Different form the former methods CBAM is bridging two domains in software development the architecting process and the economics of the organization. CBAM is adding the costs (and implicit budgets or money) as quality attributes, which need to be considered among the tradeoffs when a software system is going to be planned. SAAM and ATAM primarily considered the design decisions with respect to architectural quality attributes like modifiability, performance, availability, usability, and so on. CBAM is claiming that costs, benefits and risks are as important as the other quality attributes and they are relevant to be considered when the architectural decisions are being made.
- ALPSM (Architecture-Level Prediction of Software Maintenance),体系结构层次的软件可维护性预测,ALPSM通过在体系结构层次考察场景的影响来分析软件体系得可维护性。
- ALMA(Architecture Level Modifiability Analysis)
- FAAM (Family-Architecture Assessment Method)
- SALUTA (Scenario-based Architecture Level Usability Analysis)
- SAAMCS (SAAM for Complex Scenarios)
- ESAAMI (Extending SAAM by Integration in the Domain)
- ASAAM (Aspectual Software Architecture Analysis Method)
- SBAR (Scenario-Based Architecture Reengineering)
- SACAM (Software Architecture Comparison Analysis Method)
- DoSAM (Domain Specific Software Architecture Comparison Model)
Architecture evaluations can be performed in one or more stages of the software development process. They can be used to compare and identify strengths and weaknesses in different architecture alternatives during the early design stages. They can also be used for evaluation of existing systems before future maintenance or enhancement of the system as well as for identifying architectural drift and erosion. Software architecture evaluation methods can be divided into four main categories, ie. experience-based,simulation-based, mathematical modelling based. Methods in the categories can be used independently but also be combined to evaluate different aspects of a software architecture, if needed. Experience-based evaluations are based on the previous experience and domain knowledge of developers or consultants. People who have encountered the requirements and domain of the software system before can based on the previous experience say if a software architecture will be good enough. Simulation-based evaluations rely on a high level implementation of some or all of the components in the software architecture. The simulation can then be used to evaluate quality requirements such as performance and correctness of the architecture. Simulation can also be combined with prototyping, thus prototypes of an architecture can be executed in the intended context of the completed system. Examples of methods in this group are Layered Queuing Network approaches and event-based methods such as RAPIDE. Mathematical modelling uses mathematical proofs and methods for evaluating mainly operational quality requirements such as performance and reliability of the components in the architecture. Mathematical modelling can be combined with simulation to more accurately estimate performance of components in a system. Scenario-based architecture evaluation tries to evaluate a particular quality attribute by creating a scenario profile that forces a very concrete description of the quality requirement. The scenarios from the profile are then used to step through the software architecture and the consequences of the scenario are documented. Several scenario-based evaluation methods have been developed, e.g., Software Architecture Analysis Method (SAAM), Architecture Trade-off Analysis Method (ATAM), and Architecture Level Modifiability Analysis (ALMA) .
相关链接:
软件体系结构分析方法_百度百科baike.baidu.com