Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Building maintainable software : ten guidelines for future-proof code (Java edition)
Visser J., O’Reilly Media, Inc., Sebastopol, CA, 2016. 168 pp.  Type: Book (978-1-491953-52-5)
Date Reviewed: Nov 18 2016

Building maintainable software starts by formulating some generic concepts of software architecture that can be applied to various software engineering, architecture, and programming language environments.

The introductory chapter provides an overview of the concepts that are related to maintainability, taking into account the standard 25010 (the actualized version of the ISO 9126) that discusses the quality features of a software system.

The book’s major thesis is that maintainability emerges from employing some design principles in a systematic and disciplined way, instead of pursuing a well-selected software development environment or technology, or programming language. The tricky question is why we need to maintain software when software is not a tangible thing and cannot show usage damage like general physical objects. The critical point of maintainability is the efficiency and effectiveness of related activities.

The book defines guidelines for writing program code that can be maintained in a reasonable way. Each chapter discusses one principle. Chapter 2 discusses the guideline of “writing short units,” and the pros and cons of applying this rule. Chapter 3 advises us to “Write Simple Units of Code.” that is translated to a rule of thumb, that is, branch points per unit. Chapter 4, “Write Code Once,” deals with the copying of legacy code results, probably those that are error-prone versus error-free. Chapter 5, “Keep Unit Interfaces Small,” proposes decreasing the complexity of interfaces through limiting parameters. Chapter 6, “Separate Concerns in Modules,” analyzes the concept of loosely coupling applied modules for easier maintenance. Chapter 7, “Couple Architecture Components Loosely,” suggests that the rule of thumb for loose coupling should be enforced for top-level components of the software architecture. Chapter 8, “Keep Architecture Components Balanced,” motivates the use of constraints for elements that can be kept in short-term memory. Chapter 9, “Keep Your Codebase Small,” argues that the size of the code of the system--whatever that means--should be kept small in the sense of one of the size metrics. Chapter 10, “Automate Tests,” supports the idea of using automated test procedures. Chapter 11 encourages programmers to “Write Clean Code.”

Chapter 12 summarizes and emphasizes the applications of the ideas presented in the previous chapters to achieve the objective of maintainability.

The book will be interesting to program designers, supervisors, reviewers, software development auditors, and those involved in maintenance activities in the operation domain as it provides some practical guidelines as well as further ideas for standardization and regulation.

More reviews about this item: Amazon, Goodreads

Reviewer:  Bálint Molnár Review #: CR144933 (1702-0122)
Bookmark and Share
Software Maintenance (K.6.3 ... )
Java (D.3.2 ... )
Distribution, Maintenance, and Enhancement (D.2.7 )
Would you recommend this review?
Other reviews under "Software Maintenance": Date
Retrospectives antipatterns
Corry A.,  Addison-Wesley, Boston, MA, 2021. 234 pp. Type: Book (978-0-136823-36-0)
Sep 13 2021
Quantifying the effect of code smells on maintenance effort
Sjoberg D., Yamashita A., Anda B., Mockus A., Dyba T.  IEEE Transactions on Software Engineering 39(8): 1144-1156, 2013. Type: Article
Jul 7 2014
Software in MRI scanners
Hofland L., van der Linden J.  IEEE Software 27(4): 87-89, 2010. Type: Article
Oct 14 2010

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2021 ThinkLoud, Inc.
Terms of Use
| Privacy Policy