Abstract
Six characteristics of good software design—simplicity, coupling, cohesion, information hiding, performance, and security—are described. This is followed by a description of abstraction as the art of software design. Two common approaches to describing software abstractions—software design models and software design patterns—are introduced.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Wiktionary.org: simplicity, coupling, cohesion, information hiding, performance, and security (2019) In: Wiktionary the free dictionary. Wikimedia Foundation. https://en.wiktionary.org/wiki/Wiktionary:Main_Page. Accessed 09 2019
Wikipedia.org: Coupling (computer programming) (2017) In: Wikipedia the free encyclopedia. Wikimedia Foundation. https://en.wikipedia.org/wiki/Coupling_(computer_programming). Accessed 19 2017
Pressman RS (2005) Software engineering: a practitioner’s approach, 6th edn. McGraw-Hill, New York
Dhama H (1995) Quantitative models of cohesion and coupling in software. J Syst Softw 29
Wikipedia.org: Cohesion (computer science) (2017) In: Wikipedia the free encyclopedia. Wikimedia Foundation. https://en.wikipedia.org/wiki/Cohesion_(computer_science). Accessed 19 2017
Bieman JM, Ott LM (1994) Measuring functional cohesion. IEEE Trans Softw Eng 20(8)
Pfleeger SL (2001) Software engineering: theory and practice, 2nd edn. Prentice-Hall, Upper Saddle River
The Joint Task Force on Computing Curricula, ACM, IEEE Computer Society (2013) Computer science curricula 2013: curriculum guidelines for undergraduate degree programs in computer science
Larman C (2002) Applying UML and patterns: an introduction to object-oriented analysis and design and the unified process, 2nd edn. Prentice Hall, Upper Saddle River
Software Engineering Institute (2019) Top 10 secure coding practices. Carnegie Mellon University. https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices. Accessed 11 2019
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison Wesley, Boston
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Voorhees, D.P. (2020). Characteristics of Good Software Design. In: Guide to Efficient Software Design. Texts in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-030-28501-2_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-28501-2_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-28500-5
Online ISBN: 978-3-030-28501-2
eBook Packages: Computer ScienceComputer Science (R0)