Software evolution and reuse is more likely to receive higher payoff if high-level artifacts—such as architectures and designs—can be reused and can guide low-level component ...
Software architectures are often claimed to be robust. However, there is no explicit and concrete definition of software architecture robustness. This paper gives a definition of ...
An alternative approach to developing reusable components from scratch is to recover them from existing systems. Although numerous techniques have been proposed to recover reusabl...
Software product line engineering aims at producing functionally similar software systems as a family of products. In this process, the development life cycle has been shifted from...
Evolution is a permanent challenge in product line engineering. Reusable assets such as software components or documents evolve continuously due to new customer requirements or te...