Skip to main content

Characteristics of Good Software Design

  • Chapter
  • First Online:
Guide to Efficient Software Design

Part of the book series: Texts in Computer Science ((TCS))

  • 2541 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 84.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. 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

  2. Wikipedia.org: Coupling (computer programming) (2017) In: Wikipedia the free encyclopedia. Wikimedia Foundation. https://en.wikipedia.org/wiki/Coupling_(computer_programming). Accessed 19 2017

  3. Pressman RS (2005) Software engineering: a practitioner’s approach, 6th edn. McGraw-Hill, New York

    MATH  Google Scholar 

  4. Dhama H (1995) Quantitative models of cohesion and coupling in software. J Syst Softw 29

    Google Scholar 

  5. Wikipedia.org: Cohesion (computer science) (2017) In: Wikipedia the free encyclopedia. Wikimedia Foundation. https://en.wikipedia.org/wiki/Cohesion_(computer_science). Accessed 19 2017

  6. Bieman JM, Ott LM (1994) Measuring functional cohesion. IEEE Trans Softw Eng 20(8)

    Google Scholar 

  7. Pfleeger SL (2001) Software engineering: theory and practice, 2nd edn. Prentice-Hall, Upper Saddle River

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. 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

  11. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison Wesley, Boston

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to David P. Voorhees .

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics