Learn More
In an integrated development environment, the ability to manage the evolution of a software system in terms of logical abstractions, compositions, and their interrelations is crucial to successful software development. This paper presents a novel framework and infrastructure, <i>Molhado</i>, upon which to build <i>object-oriented</i> software configuration(More)
A key process in software product line (SPL) engineering is product derivation, which is the process of building software products from a base set of core assets. During product derivation, the components in both core assets and derived software products are modified to meet needs for different functionality, platforms, quality attributes, etc. However,(More)
Researchers in Web engineering have regularly noted that existing Web application development environments provide little support for managing the evolution of Web applications. Key limitations of Web development environments include line-oriented change models that inadequately represent Web document semantics and in ability to model changes to link(More)
XML has become the standard document representation for many popular tools in various domains. When multiple authors collaborate to produce a document, they must be able to work in parallel and periodically merge their efforts into a single work. While there exist a small number of three-way XML merging tools, their performance could be improved in several(More)
Software development is a dynamic process where engineers constantly modify and refine their systems. As a consequence, everything evolves including designs, system's architectural structure, and implementation source code. This paper contributes a novel approach to manage architectural evolution of software systems at the logical level. Key to Molhado(More)
Internal structures of software artifacts, especially program source code, are very important to software engineers in developing and maintaining a high-quality software. However, existing version control and configuration management systems often treat a software system as a set of files in directories on a file system. They usually disregard the logical(More)
Software development is a dynamic process where engineers constantly modify and refine their systems. As a consequence, everything evolves including designs, system's architectural structure, and implementation source code. Software evolution can easily make architectural traceability relationships between software architectural entities and corresponding(More)
A document often goes through many revisions before it is finalized. In the normal document creation process, newer revisions overwrite older ones and only the final revision is kept. At any stage of document creation, it might be desirable to see how the document came to its current form or to revert back to a previous revision. Conventional version(More)