Conventional Domain Analysis Limits Reusability*

Murali Sitaraman

Department of Statistics and Computer Science
West Virginia University
Morgantown, WV 26506-6330
Email: murali@cs.wvu.edu
Project web page: http://www.cs.wvu.edu/~resolve

Abstract:

This paper takes the position that conventional domain analysis is limited to consideration of objects within a narrow application domain. This limitation is inherent in approaches that rely on names and informal explanations of domain artifacts because if the domain is not sufficiently narrow (sometimes requiring the name of a specific organization and a specific product line), neither the names nor their descriptions mean much. The result is a class of reusable artifacts whose potential for reuse is highly limited.

Unfortunately, there is no easy solution to this problem other than avoiding dependence on ``loaded'' names, domain terms and descriptions. Use of mathematical models and notations, that have common understanding, allow domain analysts to escape from the limitation of domains. In addition, identification and use of mathematical models also lead to objects that are truly reusable and that are unlikely to have been discovered when the focus is limited to single and narrow application domains. More importantly, they might help eliminate consideration of domains that lead to artificial and narrow partitions.

Keywords: domain analysis, horizontal and vertical components, objects, mathematical descriptions

Workshop Goals: Meet friends; Engage in a discussion on domain analysis

Working Groups: To be decided on first WISR morning

* This research is funded in part by DoD grant DAAH04-96-1-0419, monitored by the U. S. Army Research Office.

Background

There is a significant conceptual gap between objects most suitable for constructing a software solution to a real world problem and those of the built-in programming objects. To bridge this conceptual gap, intermediate user-defined objects are needed. Some of these will be closer and specific to the problems and some others will be more general-purpose. In the reuse community, components providing the general-purpose objects are called ``horizontal components'' and the ones defining more specific objects are called ``vertical components''. By definition, there are far more vertical components than horizontal components.

Software reuse community has pursued vertical components earnestly, for example, concentrating on what components would be of use for a specific industry in developing a specific set of products. Identification and description reusable vertical components in such a ``domain'' is a key objective of most domain analysis techniques. The panel on domain analysis at the Fourth International Conference on Software Reuse discussed a number of techniques for successful domain analysis, and addressed organizational and other issues in applying domain analysis [1]. However, this paper argues that a fundamental technical limitation that is inherent in conventional approaches to domain analysis is often overlooked.

Position

To describe the objects in a domain, typically, a domain analyst relies on picking suitable names and providing natural languge explanations that are arguably sufficient for using the objects within the domain under consideration. Unfortunately, when objects are described in this way, natural generalizations that would make them potentially reusable outside the current domain become impossible because the domain-specific terminology does not be generalize.

The solution to this reusability problem is in using standard mathematical models and associated explanations, that are independent of domain-specific terminology, to conceptualize and describe objects. Use of mathematial models often lead to a completely different set of highly reusable concepts that would not have been conceived otherwise, and expose artificial limitations of what were initially thought to be suitable domains [3]. In addition, the reusable concepts can be used as the basis to instantiate and create more traditional vertical components in different domains. It is true that vertical component development within a domain is much easier than development of more horizontal and reusable objects, conceptualized using mathematical models. However, in the long-term the better conceptualized objects are more likely to be "evolution-friendly" even within a limited domain, while additionally being reusable across domains.

Given this rationale, I take the following position: ``Conventional domain analysis approaches result in objects that are inherently limited in their reuse potential because of the reliance of domain-specific naming and informal explanations. More general-purpose conceptualizations that become possible only when mathematical models of objects are considered and that permit freedom from artificial domain boundaries should be the focus of more modern domain analysis.''

Discussion

One of the implications of the above position is that mathematical models are an essential mechanism for identifying and describing general-purpose objects. However, most published data structure and object literature seem to contain general-purpose objects such as stacks, queues, and lists without any formal explanations. Why does seem to work? This is because the textbook discussions either assume that these objects are already understood or use simple physical metaphors such a stack is like ``a cafeteria stack of trays''. Descriptions of objects usually focus only on syntactic elements such as the number and types of parameters for operations. A push method is explained to behave like a stack push and a pop method is explained to behave like a stack pop. Often it is assumed that the implementations of these objects are so obvious that the behavior of the objects can be understood by understanding their implementations. Unfortunately, these simple assumptions do not hold for new and non-trivial objects in new domains, and may lead to ``wrong'' solutions [2].

In a domain such as the air-traffic control system, objects are not sufficiently understood for explanations of the kind ``a stack is a stack'' to suffice. The objects in the system do not and should not correspond to actual physical objects, making it impossible to explain the objects in the software system using physical analogies. In addition, implementations of these objects are usually non-trivial and are layered using other complex objects, making it impossible to understand the objects through their implementations.

Summary

In conclusion, any approach that relies on objects to be ``readily understood'' or assumes that objects can be understood based on natural language descriptions of a few terms is unlikely to be scalable or applicable when the audience is varied or when the objects are new and non-trivial.

The motivation for this position paper came from an exercise in using RESOLVE-style mathematical models to describe selected objects in an air-traffic control system. The objects resulting from that exercise were much more generally applicable than for air-traffic control, bringing into question the appropriateness of a domain such as air-traffic control systems. The objects suggest the basis for a more appropriate and broader domain. It is in conceptualizing such new objects where RESOLVE proves to be most valuable, and the scalability and general applicability of its core ideas become apparent.

Acknowledgments

I am pleased to acknowledege the contributions of Bruce Weide with whom I have had several conversations regarding the position taken in this paper.

References

[1] S. Fraser, S. Peterson, D. Schmidt, M. Simos, W. Tracz, and N. Zalman, ``Domain Analysis: From Tar Pit Extraction to Object Mania?'', Proceedings of the Fourth International Conference on Software Reuse, IEEE Computer Society Press, Orlando, FL, 1996, 227-235.

[2] M. Sitaraman, ``Role of Conceptualizations and Generalizations in Domain Modeling'', Proceedings of the NASA Focus on Software Reuse Workshop, Fairfax, VA, 1996, 579-581.

[3] M. Sitaraman, An Introduction to Software Engineering Using Properly Conceptualized Objects, 1997, manuscript in preparation.

Biography

Sitaraman is an Associate Professor of Computer Science at West Viriginia University (WVU). He is a principal investigator of the RESOLVE research effort and he leads the Reusable Software Research Group at WVU. His research and educational efforts in software engineering have been regularly funded by DoD, NASA, and NSF grants since 1992. He has authored numerous papers on a variety of topics in reuse and software engineering.

Sitaraman served as the program chairman for the IEEE Computer Society Fourth International Conference on Software Reuse in 1996 and is the co-editor of a special section on reuse for the IEEE Transactions on Software Engineering. He serves on the WISR steering committee and has been a regular WISR attendee for the past several years. Sitaraman is a member of of the ACM and IEEE Computer Society.