Evaluation model for software architecture

Yair G. Rajwan, Shmuel Rotenstreich · 2000

Software architecture is concerned with issues of designing and specifying the overall software system structure. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; quality factors such as performance, maintainability, scalability and portability; and selection among design alternatives. Software architecture evaluation analyzes the strengths and weakness of competing architectures, and points out trade-offs among design alternatives [Garlan and Shaw 93, McCall 77, Boehm 78]. Most of the work done in the evaluation of software addresses design complexity or source code complexity, and captures only limited aspects of software quality. Evaluation tends to take an ad hoc approach. It is often based on incomplete and inconsistent architecture descriptions. Architectures are often chosen based on their similarity to existing solutions of similar problems. Practitioners are beginning to use architecture patterns that encapsulate architectural guidance, yet they typically omit evaluation criteria such as efficiency, flexibility and maintainability. Most evaluation methods and notations are informal and lack rigor. Current work concentrates on qualitative, subjective evaluation. Without formal and complete evaluation procedures, informal models are impossible to validate, difficult to automate and inefficient. Even though previous research is significant, there is still no quantitative evaluation model for software architecture. The lack of tools for evaluation of software architecture work is acute. The objective of this work is to identify the current state of the art in architectural evaluation, and identify attributes that can be quantitatively characterized and measured. The study first identifies basic attributes and properties of software architecture that can be formally defined and objectively measured. Then it develops an evaluation model that computes quality factors, or measures, such as efficiency, maintainability, flexibility and portability. Also introduced is an analytical tool for quality factors asymptotic behaviors interpretation. The tool combines measure and presentation scheme that pinpoints the trade-offs among alternative software architectures.

Read the paper · More papers on PaperTik