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)
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.
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)
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)
Much of web services' initial promise will be realized via integration within the enterprise.
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)
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)
Separation of concerns has been central to software engineering for decades, yet its many advantages are still not fully realized. A key reason is that traditional modularization mechanisms do not allow simultaneous decomposition according to multiple kinds of (overlapping and interacting) concerns. This workshop was intended to bring together researchers… (More)