![]()
|
7. Object Technology, Architectures, and Domain Analysis: What’s the Connection? Is There a Connection?Moderator:
Participants:
Domain analysis and architecture make a necessary contribution to object technology: a focus on understanding the common capabilities of software applications within a product line and on ways to structure and evaluate solutions. At one time, these technologies seemed to be headed in different directions. New approaches in scenarios, use cases, frameworks, and design patterns have blurred many of the distinctions. This working group explored issues involved in moving towards a more unified (to reuse a term) view. We tried to understand the differences between the various technologies and how to make best use of these new approaches by looking at the following issues: The working group established the following goals: The working group continued the efforts of previous WISR working groups, including "Systematic OO Reuse—A Tale of Two Cultures" from WISR-7. Two years later, many of the same barriers reported by that working group still exist. The products of the working group included:
The Working Group adopted some basic definitions to establish consistency in terminology: While these are far from perfect, they allowed the group’s discussion to concentrate on the relationships of these areas to object technology.
Work products convey different viewpoints and depth of understanding within a domain. Different products represent the degree of enterprise knowledge and perspectives on that knowledge. The degree of formality of the work products suggests our level of understanding: In architecture, these viewpoints similarly suggest abstractions reflecting different levels of knowledge. A reference architecture helps us characterize the system structure for software in a domain or product line. Components capture deeper knowledge, but are based on the reference architecture.
Systematic software reuse crosses various engineering boundaries. Reuse is not an end in itself, but rather a means to satisfy the needs of engineering within an organization. We may classify engineering into several levels, depending on the types of activities involved. Each has its own life cycle: The enterprise and parts of the domain engineering levels are the purview of product lines; the discussion of issues at this level was left to the Product Lines and Reuse working group. The Object-Domain-Architecture group dealt with the issues raised in domain and application engineering, specifically building and using assets.
Work products within the Object-Domain-Architecture areas support different levels of engineering and of understanding. These cover the enterprise, domain and application engineering activities. How may these products work together to support systematic reuse?
Domain models represent our understanding and classification of information within the domain. They characterize the problem space vs. the solution space of architectures, class hierarchies and object models. Domain models also represent a separation of concerns—the domain model is used to show abstractions and variability of parts from which reusable components may be built. Domain models may be exploited for dealing with commonality and variation. They provide information for handling options not currently dealt with in OO technology. Among the approaches discussed in the working group were variability vectors, coming from the notion of context features in the Feature Oriented Domain Analysis method. This vector would contain information about how and why variation occurs in a domain, such as types of users, modes of operation, system factors, etc. It may determine selections among alternative capabilities and provide guidance for choosing options. A variability vector may also be used to document where change is likely to occur, how and why it will be made, and what impact it will have. Scope and domain definition are important aspects of the domain model. In single system OO analysis, the scope is a given; for domain analysis, the analysts must work to agree on scope. Domain understanding will be captured in the domain model through addressing the following issues: Domain features may also be captured architecturally as a framework. Domain information captured as an object model together with domain features (relationships and context) is used together with previous application designs to form the framework, as shown in Figure 3. Figure 3: Relationship of Domain Model to Framework
Architecture provides a set of composition and abstraction concerns within the solution space of large-scale systems. Composition may involve integrating frameworks, structuring implementation interfaces, or guiding partitioning. At the enterprise level, an organization may need to integrate OO and non-OO components; architecture provides the means to resolve the conflict between structural and OO designs. Abstractions include the key design decisions about a system. Abstractions within a domain include reusable business objects, data access objects, and data sources. For the telecommunications sector, these abstractions include the user interface, service process, data, and network. Architecture viewpoints are a popular way to characterize the composition and
abstraction concerns. Kruchten ( In developing an architecture for reuse, there are several approaches currently
employed. Organizations go through many iterations as a system evolves or as designs
evolve across systems. Some organizations use these iterations to evolve existing
structures into frameworks through abstraction (Roberts,
Object technology provides abstractions and representations to support domain models and architectures. A domain information hierarchy may be represented as a class hierarchy, and architecture as a collection of frameworks or patterns. Several specific approaches in use support reuse: Object-oriented techniques may provide specific architectural support within a domain. Refinement of methods may involve preserving of structure through: They may also modify structure through breaching: A new trend within object technology is the "concern": a specific domain used as a further modeling criterion for a system or second domain. A concern may be used during analysis, design, or refactoring. During these phases a domain will have several relevant concerns, e.g., error handling, interfaces, etc. These concerns may be shared between domains; thus, the concern of error handling will provide criteria for an analysis of many domains. An "aspect" is a realization of a concern, the classes that are shared to enable the handling of the concern. Recent work in the area of aspect-oriented programming, which looks at cross-cutting issues that affect multiple domains and must broach the encapsulation of objects, offers a contrast to domain analysis as another a priori approach to commonality. This approach is similar to domain interaction within the reuse community. A feature model, especially a variability vector, could provide the basis for a useful concern across several domains.
Integration among the Object-Domain-Architecture areas is necessary. If the only asset is the framework, i.e., all information is captured in that asset, the framework may be difficult to reuse. A priori methods will capture what is known implicitly through inductive approaches. Architecture methods will help determine the role frameworks in large-scale system structures. Analysts can and should take steps to connect the variability vector and other domain model information to frameworks or patterns. Some issues raised by the group include: Innovation can come through exploring the domain beyond the scope of existing frameworks or patterns. Integrating the feature space with input from informants, stakeholders and exemplars can help considerations for the future of the architecture and of the assets. Integration is also valid since not all domains may be suited to strict OO approaches. Pia Maria Maccario mentioned her experience in service orientation, which cuts across objects. In this case, the use of extensions to OO methods documents feature interaction.
The group identified several issues that will challenge the move to integration:
The group saw a growing movement of OO techniques toward a priori methods. There are also several examples of OO methods that are beginning to promote domain analysis and architecture concepts: Table 1 reflects some of these trends.
To advance the connections among the Domain-Architecture-Object areas the group proposed the following:
|
![]() |