In the last years, as object-oriented software systems became more and more complex, the need of performing automatically reverse engineering upon these systems has increased sign...
Collaboration is essential for the development of complex software systems. When a team of developers is geographically distributed, collaboration aspects –such as awareness, co...
Software Product Lines aim at capturing the variability and commonality of a family of related programs that share a common set of assets. Variation points capture variability on ...
There is wide agreement that architecture plays a prominent role in large, complex software systems. Selection of an appropriate architecture – one that matches the system requi...
Component recovery and remodularization is a means to get back control on large and complex legacy systems suffering from ad-hoc changes by recovering logical components and restr...