Tool support for systematic class identification in object-oriented software architectures

Software architectures have received considerable attention in both research and practice for representing system stakeholder concerns, and many researchers have leveraged object oriented models and methods for software architecture representation and evaluation. While the benefits associated with object oriented approaches are closely aligned with desirable qualities for software architectures (e.g., reusability, extensibility, comprehensibility, performance), these benefits are only realized through rational decision making by the analyst when identifying object oriented classes from a requirements specification. Traditionally, the class identification process has been somewhat subjective, with different analysts often arriving at completely different class models from the same requirements specification. Since this subjectivity does not lend itself to automation, little tool support is available for identifying object oriented classes and their relationships. The paper describes a tool under development, Reference Architecture Representation Environment (RARE), designed to systematically guide the analyst through class identification by applying heuristics associated with quality attributes and evaluating the resulting architecture based on relevant static metrics. RARE helps address a number of challenges typically faced during the class identification process, including: (1) developing an architecture that reflects the quality attributes prioritized by the analyst, (2) managing inherent conflicts between selected attributes, and (3) capturing analyst expertise and rationale for use by others.

[1]  Hans van Vliet,et al.  Towards a broader view on software architecture analysis of flexibility , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[2]  K. Ponnambalam,et al.  Metrics for software architecture: a case study in the telecommunication domain , 1998, Conference Proceedings. IEEE Canadian Conference on Electrical and Computer Engineering (Cat. No.98TH8341).

[3]  Ian M. Graham,et al.  Migrating to object technology , 1994 .

[4]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[5]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[6]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[7]  Jason E. Robbins,et al.  Software architecture critics in Argo , 1998, IUI '98.

[8]  Rick Kazman,et al.  An approach to software architecture analysis for evolution and reusability , 1997, CASCON.

[9]  Rick Kazman Tool support for architecture analysis and design , 1996, ISAW '96.

[10]  Jan Bosch,et al.  Specifying frameworks and design patterns as architectural fragments , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224).

[11]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[12]  Scott A. Whitmire,et al.  Object-Oriented Design Measurement , 1997 .

[13]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[14]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[15]  An Outline for a Domain Speci c Software Architecture Engineering Process Will , 1991 .

[16]  S. R. Jernigan,et al.  Requirements Evolution and Reuse Using the Systems Engineering Process Activities (SEPA) , 1999, Australas. J. Inf. Syst..

[17]  Will Tracz,et al.  A domain-specific software architecture engineering process outline , 1993, SOEN.

[18]  Prasanta K. Bose,et al.  Automated translation of UML models of architectures for verification and simulation using SPIN , 1999, 14th IEEE International Conference on Automated Software Engineering.

[19]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[20]  Chao Liu,et al.  An algorithm for describing object-oriented software architecture using graph , 1999, Proceedings Technology of Object-Oriented Languages and Systems (Cat. No.PR00393).

[21]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[22]  Jan Bosch,et al.  Architecture level prediction of software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[23]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[24]  John Silva,et al.  Application of the SEPA methodology and tool suite to the National Cancer Institute , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[25]  Jessie Kennedy,et al.  Mechanisms for interpretation of OO systems design metrics , 1997, Proceedings. Technology of Object-Oriented Languages. TOOLS 24 (Cat. No.97TB100240).

[26]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[27]  Kenneth L. Morris,et al.  Metrics for object-oriented software development environments , 1989 .