Truly Aligning Software Design to the Essence of Business
Business people have been poor. When they use their equipment, their accountants speak like this: “debit depreciation expense account should be updated and credit accumulated depreciation is increased. Deferred tax asset is reduced.” When they want a software for running business, IT consultants speak like this: “We offer a cloud solution with highly decoupled business engine and UI view implementations that target any platform that you can ever imagine. Our standardized components bring power to you by leveraging SOA, Message Queueing, a Rete-Based Rule Engine and Ajax at their best.”
Accounting and IT are supposed to serve business, they should try to understand the essential structure and the dynamics of the business in interest, but not try to twist and pack the data structure and dynamics in their own way of view.
Software application development in real world could become very complex. Part of the complexity comes from the business logic itself. Part of the complexity comes from the building of application using certain software technology. There have been many Software Architecture/Design Pattern books addressing the latter part of complexity. For example the classic GoF pattern book. But these pattern or modeling books have very little try on sorting out the complexity in the business logic. This book, “Model-Driven Design Using Business Patterns” appears revolutionary to me in the way that it takes a close investigation at what and how various kinds of businesses are in common, and then align the software design to the essence of business.
This book describes the REA (Resource, Event, Agent) modeling technology. Structurally, the REA technology has well mapped the most basic patterns of business economics at operational level(exchange process, conversion process, value chain) to application models. The structural backbone of business software developed with this technology is thus stable. REA technology abstracts the behaviours of a business to resource flow (incremental or decremental) initiated by economic agents via economic events. This abstraction, dramatically reduces the complexity when it has to be mapped into software application models. And it is flexible. There are unlimited ways how these three metamodels can be weaved together to map some unique business behaviours effectively and expressively. Part III of this book, “Modeling Handbook” lists some common business patterns and their mapping to software models bridged by REA metamodels. Chapter 3 and chapter 6 offer example code, one using REA-Based approach and the other using Aspect-Based approach.
The text in this book is concise and articulate. There are 230 UML diagrams visualizing and further clarifying the ideas and approaches. I enjoy reading it from page to page. And it solves some of my design problems elegantly. I consider it one of the most important software modeling books in the last 30 years. Finally the business logic/patterns come to the centre stage.
A five star book. But Springer is to blame. There are countless wired characters in the printed book (I bought the hardcover edition), from page one on. I think the printing studio used a character set in their system that is different from the character set in the author’s LaTeX source files. For such an expensive book, Springer should have done at least one test printing. The errors do not prevent readers from understanding the book, but they are annoying.
I am a senior developer, application architect and CFA candidate. Recently started working on a financial application and needed some guidance to conquer the complexity at metamodel level. This book helps.