2012 in review


The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here’s an excerpt: 600 people reached the top of Mt. Everest in 2012. This blog got about 3,000 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 5 years to get…

The profession of software architect


Many certification programs that include software architecture titles in their offers certify the knowledge of an architect on specific technologies or frameworks (e.g. TOGAF). More difficult is to certify the general skills of professional software architects. This is a potential issue because technical skills cover only a small part of the body of knowledge required…

Can the design be automated?


Recently I have partecipated in a discussion about the value of forward-reverse engineering of UML models. Undoubtedly generating code from models can save the developer to perform routine operations. Furthermore, the automatic synchronization of models and code can be really rewarding when the expected outcome is mainly to avoid the premature obsolescence of models with…

Leaving untested code is stupid, shortsighted, and irresponsible (B. Beizer)


Testing in software industry is a typical activity that everyone involved recognizes as both mandatory in theory and so often neglected in practice. Many organizations continue to develop software without a minimal testing plan. Sometimes even without a clear/detailed project specification. The classical excuse for this “lack of materials” is that there are not enough…

2010 in review


The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health: The Blog-Health-o-Meterâ„¢ reads Minty-Freshâ„¢. Crunchy numbers A Boeing 747-400 passenger jet can hold 416 passengers. This blog was viewed about 2,200 times in 2010. That’s about 5 full 747s. In…

The need of measuring software quality


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…

On the difference between data and object models


A recurring challenge in the development of an object-oriented system is mapping the object model (in particular, the domain model) with a relational database. This is a well-known problem referred in literature with the “impedance mismatch” term [2,3]. It is a problem because we are trying to merge two paradigms which encourage very different programming…

Why SOA is different?


The idea of reusing a functionality embedded in software modules (or components) is not new. Even considering only the last decade, the technology of remote reusable services has been well established. Both Microsoft DCOM and CORBA attempted at a distributed service model. Both models failed in some way. I have found an interesting discussion about…

How 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.…