People spend a lot of time debating about software quality but, very often, they speak in abstract terms. They don’t measure anything. Even worst, they make early design decisions in name of non-functional requirements (especially concerning perfomance issues). Without any measurement to support decisions, our intuition can be misleading most of the time. UML models [...]
Read moreHow testable is a software architecture?
Testability is not testing. A (software) system is testable when there is an effective test strategy that can be used to verify the conformance of a particular implementation with respect to its specifications. Vice-versa, a system is tested when a specific test suite has been executed, verifying that such implementation really conforms to its specifications. [...]
Read morePhysical design vs. logical design (part II)
In the first instalment of this post, I introduced the notions of physical and logical designs. Then, I introduced three new stereotyped UML dependencies needed to express the relations between classes in terms of both interfaces and implementations. In this post I discuss how to transform a logical design into a physical architecture that can be exploited [...]
Read morePhysical design vs. logical design (part I)
The first time I met the concept of physical design was almost one decade ago, reading the book “Large-Scale C++ Software Design“, by John Lakos. The book is now quite aged, resulting in some out-of-date material (e.g. package prefixes versus C++ namespaces).Nonetheless, these elements are details with respect to the overall methodology that I continue to [...]
Read moreDesign for testability and UML models
There are several books available either in the market or in the Web addressing the fundamentals of object-oriented design using UML. More or less, almost all of them provide to the reader important concepts and principles on software design, a basic notation for learning the most used part of UML, some examples, and perhaps some [...]
Read more

November 1, 2010
