Program evolution: processes of software change
Program evolution: processes of software change
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Monitoring compliance of a software system with its high-level design models
Proceedings of the 18th international conference on Software engineering
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
A Methodology for Architecture-Level Reliability Risk Analysis
IEEE Transactions on Software Engineering
Experiences with ALMA: architecture-level modifiability analysis
Journal of Systems and Software
Scenario-Based Analysis of Software Architecture
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Information Theoretic Metrics for Software Architectures
COMPSAC '01 Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development
Architecture Level Prediction of Software Maintenance
CSMR '99 Proceedings of the Third European Conference on Software Maintenance and Reengineering
Using Metrics to Identify Design Patterns in Object-Oriented Software
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Investigating Metrics for Architectural Assessment
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Identifying Design-Code Inconsistencies in Object-Oriented Software: a Case Study
ICSM '98 Proceedings of the International Conference on Software Maintenance
Empirical Software Engineering
Towards a measuring framework for security properties of software
Proceedings of the 2nd ACM workshop on Quality of protection
Six years of evaluating software architectures in student projects
Journal of Systems and Software
Technologies for enabling the sharing of Learning Objects
International Journal of Advanced Media and Communication
Resolving least privilege violations in software architectures
IWSESS '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Secure Systems
Measuring the interplay of security principles in software architectures
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Hybrid assessment method for software engineering decisions
Decision Support Systems
Refactoring legacy AJAX applications to improve the efficiency of the data exchange component
Journal of Systems and Software
Hi-index | 0.00 |
Software systems undergo constant change causing the architecture of the system to degenerate over time. Reversing system degeneration takes extra effort and delays the release of the next version. Improved architecture is intangible and does not translate into visible user features that can be marketed. Due to a lack of representative metrics, technical staff has problems arguing that stopping degeneration is indeed necessary and that the effort will result in an improved architecture that will pay off. We believe that architectural metrics would give technical staff better tools to demonstrate that the architecture has improved. This paper defines and uses a set of architectural metrics and outlines a process for analyzing architecture to support such an argument. The paper reports on a case study from a project where we restructured the architecture of an existing client-server system written in Java while adding new functionality. The modules of the existing version of the system were “library-oriented” and had a disorganized communication structure. The new architecture is based on components and utilizes the mediator design pattern. The goal of the study is to evaluate the new architecture from a maintainability perspective. The paper describes our evaluation process, the metrics used, and provides some preliminary results. The architectural evaluation shows that the components of the system are only loosely coupled to each other and that an architectural improvement has occurred from a maintenance perspective. The process used to evaluate the architecture is general and can be reused in other contexts.