Done well, separation of concerns can provide many software engineering beneets, including reduced complexity, improved reusability, and simpler evolution. The choice of boundaries for separate concerns depends on both requirements on the system and on the kind(s) of decomposition and composition a given formalism supports. The predominant methodologies and… (More)
Tools and environments to aid developers in producing software have existed, in one form or another, since the early days of computer programming. They are becoming increasingly crucial as the demand for software increases, time-to-market decreases, and diversity and complexity grow beyond anything imagined a few decades ago. In this paper, we briefly… (More)
S Separation of concerns  is a key guiding principle of software engineering. It refers to the ability to identify, encapsulate, and manipulate only those parts of software that are relevant to a particular concept, goal, or purpose. Concerns are the primary criteria for decomposing software into smaller, more manageable and comprehensible parts that… (More)
Hyper/J™ supports flexible, multi-dimensional separation of concerns for Java™ software. This demonstration shows how to use Hyper/J in some important development and evolution seenarios, emphasizing the software engineering benefits it provides.
In practice, object-oriented design models have been less useful throughout the lifetime of software systems than they should be. Design models are often large and monolithic, and the structure of the designs is generally quite different from that of requirements. As a result, developers tend to discard the design, especially as the system evolves, since it… (More)
There is an increasing need and desire to develop systems by combining components that are written in different languages and/or that are run on different kinds of machines. Success at this depends in large part on the interoperability of the components-that is, the ability of the components to communicate and work together despite their differing… (More)
Much of web services' initial promise will be realized via integration within the enterprise.
The Concern Manipulation Environment (CME) is an AOSD environment in which software is organized and manipulated in terms of concerns. This paper is about ConMan, the CME concern manager, which supports the identification, definition, encapsulation, extraction and composition of concerns. ConMan models software in terms of concerns, relationships,… (More)
Successful software development requires effective coordination among developers. In this paper, we propose Ensemble, an approach and a set of tools that aim to help developers better coordinate their work. Built on IBM Rational Team Concert, Ensemble helps developers select the right people to collaborate with, the right times to collaborate with them, and… (More)