Understanding the structure of large existing (and evolving) software systems is a major challenge for software engineers. In reverse engineering, we aim to compute, for a given s...
During software evolution, programmers spend a lot of time and effort in the comprehension of the internal code structure. Such an activity is often required because the available...
The role of design patterns in forward engineering is well known, also if it's not easy to use them, since large experience is needed. Different approaches and tools have bee...
Many software projects have failed because their requirements were poorly negotiated among stakeholders. Requirements negotiation is more critical than other factors such as tools...
Declarative models play an important role in most software design activities, by allowing designs to be constructed that selectively abstract over complex implementation details. ...
Paulo Pinheiro da Silva, Tony Griffiths, Norman W....