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)
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.
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)
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.
Defining, creating, and manipulating <italic>persistent typed objects</italic> will be central activities in future software environments. PGRAPHITE is a working prototype through which we are exploring the requirements for the persistent object capability of an object management system in the Arcadia software environment. PGRAPHITE represents both a set of… (More)
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)