Maintainability and Development

  • Ervin Varga


During development and maintenance, software engineers spend most of their time reasoning about the system. To speed up this activity, we need to employ a proper architecture and a straightforward implementation. This chapter shows how maintainability as a quality attribute directly supports safety and demonstrates the following concepts: Single Level of Abstraction, Layered Design, Cyclomatic Complexity, Safety Argument, and Programming in Intentions.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


Further Reading

  1. 1.
    McConnell S (2004) Code complete, 2nd edn. Microsoft Press, Redmond, WA. This book is a must read for every software engineer to gain insight into the software construction process. The book has a very detailed treatment of the Single Level of Abstraction principleGoogle Scholar
  2. 2.
    Martin RC (2009) Clean code: a handbook of agile software craftsmanship. Prentice Hall, Upper Saddle River, NJ. This book covers all aspects of agile software development, and has a thorough treatment of a construction process, although it is biased toward JavaGoogle Scholar
  3. 3.
    Martin RC (2011) The clean coder: a code of conduct for professional programmers. Prentice Hall, Upper Saddle River, NJ. This book gives the necessary background for programmers to become better team members, and accept the holistic approach of software development. Programmers will understand that development and maintenance/evolution are tightly coupled and interdependent, i.e., a shortsighted, selfish development decision may have serious negative consequences on software evolutionGoogle Scholar

Regular Bibliographic References

  1. 4.
    Sommerville I (2016) Software engineering, 10th edn. Pearson, Upper Saddle River, NJzbMATHGoogle Scholar
  2. 5.
    Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MAzbMATHGoogle Scholar
  3. 6.
    Kamp PH (2012) My compiler does not understand me. Commun ACM 55(7):51–53CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Ervin Varga
    • 1
  1. 1.Expro I.T. ConsultingKikindaSerbia

Personalised recommendations