Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 31515
Strongly Adequate Software Architecture

Authors: Pradip Peter Dey


Components of a software system may be related in a wide variety of ways. These relationships need to be represented in software architecture in order develop quality software. In practice, software architecture is immensely challenging, strikingly multifaceted, extravagantly domain based, perpetually changing, rarely cost-effective, and deceptively ambiguous. This paper analyses relations among the major components of software systems and argues for using several broad categories for software architecture for assessment purposes: strongly adequate, weakly adequate and functionally adequate software architectures among other categories. These categories are intended for formative assessments of architectural designs.

Keywords: Components, Model Driven Architecture, Graphical User Interfaces.

Digital Object Identifier (DOI):

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1753


[1] R. S. Pressman, Software Engineering: A Practitioner-s Approach. (7th ed.), McGraw-Hill, 2010.
[2] Y. Wang, Software Engineering Foundations: A Software Science Perspective, Auerbach Publications, 2008.
[3] M. Shaw, and D. Garlan, "Formulations and Formalisms in Software Architectures", Computer Science Today: Recent Trends and Developments, Springer-Verlag LNCS, 1000, 307-323, 1995.
[4] E. Braude, and M. Bernstein, Software Engineering: Modern Approaches, (2nd Edition), John Wiley & Sons, 2011.
[5] J. Hong, "Why is Great Design so Hard?", Communications of the ACM, July 2010.
[6] J. L. Azevedo, B. Cunha, and L. Almeida, "Hierarchical Distributed Architectures for Autonomous Mobile Robots: A case study", in Proceedings of the IEEE Conference on Emerging Technologies and Factory Automation, 2007.
[7] D. E. Knuth, Seminumerical Algorithms: The Art of Computer Programming 2. Addison-Wesley, Reading, Mass., 1969.
[8] D. Gries, The Science of Programming. Springer, 1981.
[9] W. Humphrey, Managing the Software Process, Reading, MA. Addison-Wesley, 1989.
[10] I. Sommerville, Software Engineering, 9th Edition, Addison Wesley, 2010.
[11] S. Pfleeger, and J. Atlee, Software Engineering, Prentice-Hall, 2010.
[12] B. Agarwal, S. Tayal and M. Gupta, Software Engineering and Testing, Jones and Bartlet, 2010.
[13] F. Tsui, and O. Karam, Essentials of Software Engineering, 2nd Ed., Jones and Bartlet, 2011.
[14] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, 2nd Edition Addison-Wesley, 2003.
[15] J. Miller, and J. Mujerki, Editors, MDA Guide, Version 1, OMG Technical Report. Document OMG/200-05-01,, 2003.
[16] B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java (3rd Edition), Prentice Hall, 2009
[17] Capers Jones, Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies, McGraw-Hill, 2009.
[18] R. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language Reference Manual. (2nd Edition), Addison Wesley, 2005.
[19] B. Tekeinerdogan, and M. Aksit, "Classifying and Evaluating Architecture Design Methods", in M. Aksit (editor), Software Architectures and Component Technology, Kluwer Academic Publishers, 2002.
[20] P. Clements, R. Kazman, and M. Klein. Evaluating Software Architectures.Addison-Wesley, 2002.
[21] S. McConnel. Code Complete, Microsoft Press, 2004.
[22] M. Babar, T. Dingsoyr, P. Lago, and H. van Vliet, Editors, Software Architecture Knowledge Management, Springer, 2009.
[23] E. Bouwers, J. Correia, A. van Deursen, and J. Visser, "Quantifying the Analyzability of Software Architectures," Technical Report, Delft University of Technology, 2011.