Software Design Articles and Essays
Interface Oriented Design Book Excerpt: Inheritance and Interfaces (Chapter 5)
Finding commonality among classes makes for effective object-oriented programming. Often, programmers express that commonality using an inheritance hierarchy, since that is one of the first concepts taught in object-oriented programming. We're going to go to the other extreme in this chapter to explore the difference between using inheritance and using interfaces. An excerpt from Interface Oriented Design.
Object Oriented CASE Tools: Lost Opportunities and Future Directions
In this article the author explores the past and future of Computer Aided Software Engineering (CASE) tools, from the "traditional" structured tools of years long past to today's "third generation" Object Oriented modeling and CASE tools--and beyond into possible futures. Ironically, the author finds that the future lies in the past.
Best Practices for Object/Relational Mapping and Persistence APIs
In this article I will begin with a discussion of home-grown vs. off-the-shelf persistence solutions, including areas to consider when deciding between the two, and advice for choosing the best off-the-shelf solution to meet your needs. I will also share suggestions and advice from my own experiences with O/R mapping and persistence APIs, with a focus on "best practices."
Places to Intervene in a System
Here we continue the developer.* Systems and Software series, in which we explore the topics of general systems thinking and cybernetics to discover how "systems" concepts can help software professionals in the day-to-day work of creating, deploying, and improving software.
Code as Design: Three Essays by Jack W. Reeves
These essays by Jack W. Reeves offer three perspectives on a single theme, namely that programming is fundamentally a design activity and that the only final and true representation of "the design" is the source code itself.
Software Design and Programmers
How important are software design skills to a programmer? The traditional view is that programmers merely implement the designs of other people.
Code Comprehension
Quality code does not happen by accident. It really takes true desire in the heart of the developer.
Click here for the full list of developer.* software development article categories.