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 [...]

Read more

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 [...]

Read more

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 [...]

Read more

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 [...]

Read more

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 [...]

Read more

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 [...]

Read more

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. [...]

Read more

Physical 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 more

Physical 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 more

Design 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
Follow

Get every new post delivered to your Inbox.