Abstract
Current techniques for modeling software architecture do not provide sufficient support for modeling architectural design rules. This is a problem in the context of model-driven development in which it is assumed that major design artifacts are represented as formal or semi-formal models. This article addresses this problem by presenting an approach to modeling architectural design rules in UML at the abstraction level of the meaning of the rules. The high abstraction level and the use of UML makes the rules both amenable to automation and easy to understand for both architects and developers, which is crucial to deployment in an organization. To provide a proof-of-concept, a tool was developed that validates a system model against the architectural rules in a separate UML model. To demonstrate the feasibility of the approach, the architectural design rules of an existing live industrial-strength system were modeled according to the approach.
Supplemental Material
Available for Download
The proof is given in an electronic appendix, available online in the ACM Digital Library.
- America, P., Rommes, E., and Obbink, H. 2004. Multi-view variation modeling for scenario analysis. In Software Product-Family Engineering. F. Vanderlinden Ed., Springer, Berlin, 44--65.Google Scholar
- Bass, L., Clements, P., and Kazman, R. 2003. Software Architecture in Practice. Addison-Wesley, Reading, MA. Google ScholarDigital Library
- Bayley, I. 2007. Formalising design patterns in predicate logic. In Proceedings of the 5th IEEE International Conference on Software Engineering and Formal Methods. IEEE, Los Alamitos, CA, 25--36. Google ScholarDigital Library
- Bengtsson, P. and Bosch, J. 1998. Scenario-based software architecture reengineering. In Proceedings of the 5th International Conference on Software Engineering. 308--317. Google ScholarDigital Library
- Bosch, J. 2000. Design and Use of Software Architectures : Adopting and evolving a Product Line Approach. Addison-Wesley, Reading, MA. Google ScholarDigital Library
- Bosch, J. and Molin, P. 1999. Software architecture design: Evaluation and transformation. In Proceedings of the IEEE Conference and Workshop on Engineering of Computer-Based Systems (ECBS’99). IEEE, Los Alamitos, CA, 4--10. Google ScholarDigital Library
- Buschmann, F. 1996. Pattern-Oriented Software Architecture: A System of Patterns. Wiley, New York. Google ScholarDigital Library
- Conboy, K. and Fitzgerald, B. 2010. Method and developer characteristics for effective agile method tailoring: A study of expert opinion. ACM Trans. Softw. Eng. Methodol. 20, 1. Google ScholarDigital Library
- Eden, A. H. 2002. A theory of object-oriented design. Inf. Syst. Frontiers 4, 4, 379--391. Google ScholarDigital Library
- France, R. B., Kim, D. K., Sudipto, G., and Song, E. 2004. A UML-based pattern specification technique. IEEE Trans. Softw. Eng. 30, 3, 193--206. Google ScholarDigital Library
- Fuentes-Fernández, L. and Vallecillo-Moreno, M. 2004. An introduction to UML profiles. Euro. J. Inform. Profess. V, 2.Google Scholar
- Gamma, E. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA. Google ScholarDigital Library
- Greenfield, J. and Short, K. 2004. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, New York. Google ScholarDigital Library
- Hofmeister, C., Nord, R. and Soni, D. 2000. Applied Software Architecture. Addison-Wesley, Reading, MA. Google ScholarDigital Library
- Jansen, A. and Bosch, J. 2005. Software architecture as a set of architectural design decisions. In Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05). 109--120. Google ScholarDigital Library
- Jansen, A., Van Der Ven, J., Avgeriou, P., and Hammer, D. K. 2007. Tool support for architectural decisions. In Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture (WICSA’07). 44--53. Google ScholarDigital Library
- Karsai, G., Sztipanovits, J., Ledeczi, A., and Bapty, T. 2003. Model-integrated development of embedded software. Proc. IEEE 91, 1, 145--164.Google ScholarCross Ref
- Kruchten, P. 2004a. An ontology of architectural design decisions in software intensive systems. In Proceedings of the 2nd Groningen Workshop on Software Variability. 54--61.Google Scholar
- Kruchten, P. 2004b. The Rational Unified Process: An Introduction. Addison-Wesley, Reading, MA. Google ScholarDigital Library
- Kruchten, P., Lago, P., and Van Vliet, H. 2006. Building up and reasoning about architectural knowledge. In Quality of Software Architectures. Springer, Berlin, 43--58. Google ScholarDigital Library
- Kruchten, P. B. 1995. The 4+1 view model of architecture. IEEE Softw. 12, 6, 42--50. Google ScholarDigital Library
- Lauder, A. and Kent, S. 1998. Precise visual specification of design patterns. In Proceedings of the 12th European Conference on Object-Oriented Programming. Springer, Berlin. Google ScholarDigital Library
- Levy, Y. and Ellis, T. J. 2006. A systems approach to conduct an effective literature review in support of information systems research. Inf. Sci. J. 9, 181--212.Google ScholarCross Ref
- Mak, J. K. H., Choy, C. S. T. and Lun, D. P. K. 2004. Precise modeling of design patterns in UML. In Proceedings of the 26th International Conference on Software Engineering. 252--261. Google ScholarDigital Library
- Mattsson, A., Lundell, B., Lings, B., and Fitzgerald, B. 2009. Linking model-driven development and software architecture: A case study. IEEE Trans. Softw. Eng. 35, 1, 83--93. Google ScholarDigital Library
- Medvidovic, N., Dashofy, E. M., and Taylor, R. N. 2007. Moving architectural description from under the technology lamppost. Inf. Softw. Technol. 49, 1, 12--31. Google ScholarDigital Library
- Medvidovic, N., Rosenblum, D. S., Redmiles, D. F., and Robbins Jason, E. 2002. Modeling software architectures in the Unified Modeling Language. ACM Trans. Softw. Eng. Methodol. 11, 1, 2--57. Google ScholarDigital Library
- Medvidovic, N. and Taylor, R. N. 2000. A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26, 1, 70--93. Google ScholarDigital Library
- Mikkonen, T. 1998. Formalizing design patterns. In Proceedings of the International Conference on Software Engineering Forging New Links. 115--124. Google ScholarDigital Library
- OMG. 2003. MDA Guide version 1.0.1 OMG.Google Scholar
- OMG. 2003. UML 2.0 OCL specification.Google Scholar
- OMG. 2006. Meta Object Facility (MOF) core specification.Google Scholar
- OMG. 2009. Unified modeling language: Superstructure.Google Scholar
- Pahl, C., Giesecke, S., and Hasselbring, W. 2007. An ontology-based approach for modeling architectural styles. In Software Architecture. 60--75. Google ScholarDigital Library
- Perry, D. E. and Wolf, A. L. 1992. Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17, 4, 40--52. Google ScholarDigital Library
- Ran, A. 2000. ARES conceptual framework for software architecture. In Software Architecture for Product Families Principles and Practice, M. Jazayeri, et al. Eds. Addison-Wesley, Reading, MA, 1--29.Google Scholar
- Schmidt, D. C. 2006. Model-driven engineering. IEEE Computer 39, 2, 25--31. Google ScholarDigital Library
- Shaw, M., Deline, R., Klein, D. V., Ross, T. L., Young, D. M., and Zelesnik, G. 1995. Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21, 4, 314--335. Google ScholarDigital Library
- Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Upper Saddle River, NJ. Google ScholarDigital Library
- Soni, D., Nord, R. L., and Hofmeister, C. 1995. Software architecture in industrial applications. In Proceedings of the IEEE 17th International Conference on Software Engineering. IEEE, Los Alamitos, CA, 196--207. Google ScholarDigital Library
- Telelogic Rhapsody modeling. http://www.telelogic.com/products/rhapsody/.Google Scholar
- Tolvanen, J. P. and Kelly, S. 2005. Defining domain-specific modeling languages to automate product derivation: Collected experiences. In Proceedings of the 9th International Conference on Software Product Lines (SPLC’05). Lecture Notes in Computer Science, Springer, Berlin, 198--209. Google ScholarDigital Library
- Tyree, J. and Akerman, A. 2005. Architecture decisions: Demystifying architecture. IEEE Softw. 22, 2, 19--27. Google ScholarDigital Library
- van Der Linden, F., Bosch, J., Kamsties, E., Kansala, K., and Obbink, H. 2004. Software product family evaluation. In Proceedings of the 3rd International Conference on Software Product Lines (SPLC’04). Lecture Notes in Computer Science, vol. 3154, Springer, Berlin, 110--129.Google Scholar
- Wojcik, R., Bachmann, F., Bass, L., Clements, P., Merson, P., Nord, R. L., and Wood, B. 2006. Attribute-driven design (ADD), Version 2.0., Software Engineering Institute, Carnegie Mellon University.Google Scholar
- Zdun, U. and Avgeriou, P. 2005. Modeling architectural patterns using architectural primitives. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications. ACM, New York. Google ScholarDigital Library
Index Terms
- An Approach for Modeling Architectural Design Rules in UML and its Application to Embedded Software
Recommendations
Automatic enforcement of architectural design rules
ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2Current techniques for modeling software architecture lacks support for the modeling of architectural design rules, i.e. rules defined by the architect that have to be followed in the detailed design. This is a problem in the context of Model-Driven ...
Ontological Rules for UML-Based Conceptual Modeling: Design Considerations and a Prototype Implementation
UML is used as a language for object-oriented software design, and as a language for conceptual modeling of applications domains. Given the differences between these purposes, UML's origins in software engineering might limit its appropriateness for ...
Using the SPEM 2.0 kind-based extension mechanism to define the SPEM4MDE metamodel
ICCES '17: Proceedings of the International Conference on Computing for Engineering and SciencesThe objective 1 of the OMG's standard SPEM is to propose shared concepts for describing software and even systems processes. The SPEM 2.0 metamodel proposes concepts that are quite generic to describe model-driven development processes. Indeed, the ...
Comments