The Role of Design Information in Software Evolution
Walter Cazzola, Sonia Pini, Massimo Ancona · 2005
Abstract. Software modeling has received a lot a of attention in the last decade and now is an important support for the design process. Actually, the design process is very important to the usability and understandability of the system, for example functional requirements present a complete description of how the system will function from the user’s perspective, while nonfunctional requirements dictate properties and impose constraints on the project or system. The design models and implementation code must be strictly connected, i.e. we must have correlation and consistency between the two previous views, and this correlation must exist during all the software cycle. Often, the early stages of development, the specifications and the design of the system, are ignored once the code has been developed. This practice cause a lot of problems, in particular when the system must evolve. Nowadays, to maintain a software is a difficult task, since there is a high coupling degree between the software itself and its environment. Often, changes in the environment cause changes in the software, in other words, the system must evolve itself to follow the evolution of its environment. Typically, a design is created initially, but as the code gets written and modified, the design is not updated to reflect such changes. This paper describes and discusses how the design information can be used to drive the software evolution and consequently to maintain consistency among design and code. 1