Authors: Jim Arlow and Ila Neustadt
This book is best read on a iPad or Mac. You can buy it from the iBook StoreIf you are reading on any other device, there is a PDF version available: PDF version£29.99
This is a book about Object Oriented Analysis (OOA).
Our original idea for this book was a simple volume of worked examples to be sold as a companion to our best-selling, “UML 2 and the Unified Process”. We’ve had lots of requests over the years for a really complete worked example.
However, as we began to write we became very aware that throughout the construction of the examples we were using particular thought processes and techniques that had been hard learned by us over many years of analysis and design. Nowhere (to our knowledge) had these thought processes and techniques been made explicit. In fact, until we had the leisure to work on these examples relatively free of time constraints, we had not even been consciously aware that we were using them. This is why we call them “secrets”.
Other OOA books, such “UML 2 and the Unified Process”, tell the novice what to do when, and are very valuable and relevant. In fact, they are an essential prerequisite for a book such as this.
However, they tend not to cover the how of OOA that experienced modelers apply often intuitively and unconsciously to get great results. After many years teaching OOA we observe again and again that beginners to analysis and design, even if told exactly what to do and when to do it, generally don’t get the same quality of results as experienced analysts. Something is missing – the how that only the experts have. Thus a larger idea for this book was born.
We decided to model what we, as experienced analyst/designers, do and how we do it. Our goal is to impart this knowledge to you, the reader, in as efficient and entertaining a way as possible. We call the book “Secrets of Analysis” because the techniques we present here have been, until now, self-secret. That is to say no one has been consciously hiding them, it is just that the inner process of analysis, the how part, has never before been presented in a book such as this.
We call our approach Generative Analysis: It is generative because its focus is on generating information – how you capture information and how you transform information into new, more specific forms of information that take you ever-nearer to your goal.
It is analytical not so much in the specific sense of OO Analysis but rather in the general sense in that it uncovers basic principles.
In summary, this book is very different to other books on OOA because (as far as we know) it is the first to explicitly present the how, the inner processes you go through in order to get the results you need. One of our early reviewers called this book revolutionary, because it can revolutionise how you approach software engineering and how you think about software. This is testable: we set out to answer the question “how do you do OO analysis”? Your success as an OO analyst is the measure of how well we have managed to answer that question for you.
In our books and courses, we describe various goodies that you can have for free. Some of these goodies are code. There are no warranties or guarantees for any of this code – it is not production code, and it is shared with you for experimentation purposes only. All this code is released under the GNU General Public License.
An implementation of Smalltalk workspaces for Ruby. What does this mean? A workspace is a simple text editor in which you can write text and embed and execute Ruby code. This allows you to create “booklets” of executable Ruby snippets. The workspace idea is in some ways superior to IRB, because whilst you have the same level of interactivity as IRB, you can see everything you have typed and executed on one page. You can also save the pages to refer to later.
Generative Analysis is a new approach to OOAD that we describe in our book “Secrets of Analysis”.
This is the original paper on Literate Modelling.
A sample chapter from Enterprise Patterns and MDA on Literate Modelling.
Research into Literate Modelling as applied to BPMN process models at the University of Innsbruck.
A simple Python implementation of the Rule Archetype Pattern from “Enterprise Patterns and MDA”. Note: this is written in as general way as possible (Python almost as pseudo-code) so that it can be easily ported to other languages – it is definitely NOT idiomatic Python. Our friend, Greg Swindle, has a very nice PHP implementation here.
This worked example is getting a bit old now, although it is still very useful. It will be superseded by the incredibly detailed worked example in Secrets of Analysis.
After many years, Ila and I have finally published “Secrets of Analysis”. In the end, we decided to go the self publishing route, and publish the book (at least initially) on the Apple iBook Store for iPad. In fact, the book is designed specifically to be read on an iPad (although it also works just fine on a Mac), and it looks great!
The whole process of publishing this book has left us quite disillusioned with conventional publishers. We originally had a contract with Wiley, and we delivered a first draft on time. Then they asked for a very significant change that pushed the publishing back by a year. When we delivered the text, our commissioning editor told us that Wiley had undergone a reorganisation and was no longer interested in publishing this sort of book. Telling us sooner, rather than just waiting until we submitted, seemed to be entirely beyond him. So we wrote for an extra year, for at least 6 months of which, completely unbeknown to us, we had no contract. Ironically, Ila and I ultimately decided that the change was detrimental, so a lot of that work went into the wastebasket.
We tried a few other publishers, but because the book is very difficult to categorise, none would publish it despite the fact that several thought it was important. Finding a commissioning editor with vision and imagination is very hard when the general consensus is that the professional publishing market is moribund.
Because we tend to write the books we need, or that we want to read, we tend to finish a text, and then try to find a publisher for it. Publishers simply don’t want to work like this. They want an idea, a proposal, a sample chapter etc. etc. You would think that a finished text that just needed a review, some editorial changes and polishing would be a gift to them, but they are not interested. It just doesn’t fit into their workflows and they are not agile enough to accommodate a different approach.
So here we are, publishing it ourselves on iBooks. In many ways, this is actually the optimum outcome for us, because we keep control of all of our intellectual property, and because we can publish a book that is exactly as radical and iconoclastic as we desire, without any ”watering down” by an editor who (often but not always) knows very little of what we are actually trying to achieve.
We have had quite a lot of success with self publishing with “Introduction to BPMN2”, which is (as far as we know) the first interactive modeling book, and with “Interactive Computational Geometry”, which is live Mathematica (sorry – I should really say, “Wolfram Language”) code published as a CDF (Computational Document Format).
Publishing isn’t a problem for us. Getting paid for our work is. Secrets took several man-years to write, and we put everything we know (well – almost everything) into it. We are unlikely to ever get any reasonable recompense for this work even at minimum wage levels. Do we care? Yes – we care a bit – because we both believe that if authors like us can’t get a reasonable return, then fewer and fewer books like “Secrets” will ever be published. For us, the time consuming business of earning a living means that we will probably never be able to write another “Secrets”.
The big problem Ila and I face is marketing. Neither of us have any training in, or inclination towards, this darkest of dark arts. As such we sell very few copies of our self published books. To give you some idea, our “Introduction to BPMN2” training course has had well over 100,000 views on Slideshare (putting us in Slideshares top 5%), but the book itself has only sold in the hundreds. Most of our books have associated training courses, and we give these away free to over a hundred Universities world-wide as our way of contributing something back to the software development community. This has been advantageous to us because these courses have driven sales of our print books very well, but of our eBooks – not so much. We’re not sure why this is.
Nowadays, everyone wants, “free”, and the thought of actually paying someone for the hard work they have put into a book seems very far from many peoples thoughts (our readers excepted). This is a shame.