Ernesto Guerrieri, Ph.D.
Buzzeo, Inc.
85 Swanson Road, Suite 1N
Boxborough, MA 01719
Tel: (508) 264-2020 ext.1001
Email:
guerrieri@buzzeo.com
Abstract
Buzzeo, Inc. is a software technology company targeting the Higher Education market place. A lot of its products have overlapping functionality and a lot of its customers have unique variations that they would like to see in a product. This has provided Buzzeo, Inc. with an opportunity to adopt various systematic software reuse techniques to increase productivity and time-to-market both in the short-term and in the long-term. Some of the principal techniques include domain analysis and domain-specific kit development.
Keywords: Component-based reuse, component design and composition, domain engineering, domain analysis, domain-specific kits
Workshop Goals: Interact/discuss with others on how to institutionalize software reuse; Advance software engineering and reuse technology; Networking.
Working Groups: Domain analysis/engineering, Institutionalizing software reuse, Design guidelines for reuse, Tools and environments, Reuse handbook
Ernesto Guerrieri, while at SofTech, Inc., was the lead designer of the RAPID (Reusable Ada Products for Information systems Development) Library Center (RCL) tool utilized by the RAPID Center. He also co-authored the original domain analysis method utilized within RAPID. He also developed a domain analysis tool for capturing dynamic, multi-dimension classification scheme vocabulary. At Digital Equipment Corporation, he was involved on several reuse programs as well as investigating the reuse capabilities of the DECADMIRE product, a Rapid Application Development (RAD) environment. Currently, Ernesto is the Director of Technology where he has introduced key systematic reuse concepts into the development of commercial products targeted at the Higher Education market.
Buzzeo Inc. is a software technology company targeting the Higher Education market place. In understanding the targeted market place, we found that:
* a lot of the Higher Education products have overlapping functionality, and
* a lot of the Higher Education customers required unique variations that they would like to see in a product.
This has provided Buzzeo, Inc. with an opportunity to adopt various systematic software reuse techniques to increase productivity and time-to-market both in the short-term and in the long-term. Some of the principal techniques include domain analysis and domain-specific kit development. This is being implemented as part of ZZ Factory Software Development Process for Buzzeo products.
The main concept behind the ZZ Factory consists of understanding the different domains that compose a product. ZZ Factory analyzes these domains and defines ZZ kits that implement the corresponding sub-systems. Given a suite of ZZ kits, the ZZ Factory can then compose an application from a set of the ZZ kits that are appropriately customized. Future releases of ZZ kits are based on updates to the domain information, feedback from the integration of the ZZ kit into an application, and feedback from the use of products that incorporated the ZZ kit.
Figure 1 provides an overview (using IDEF0) of the ZZ Factory software development process. The ZZ Factory software development process consists of three major activities:
* Domain Analysis: Activity of analyzing the commonalities and variabilities across a set of solutions within a problem domain.
* ZZ Kit Production: Activity of packaging all needed material and tools (a ZZ Kit) to build a family of software products.
* ZZ Kit Usage: Activity of assembling and tailoring a software product, based on user requirements, from a ZZ Kit (or set of ZZ Kits).
Figure 1 - ZZ Factory IDEF0 Diagram
Products in the Higher Education market place are based on a finite set of domains. In analyzing these domains, we found that the domains could be grouped based on the focus of the domains and their interaction with each other. We defined these groupings as domain sectors. We have identified four major domain sectors:
* Student Academics. Sample domains include recruitment, admissions, registration, advisement, history, etc.
* Curriculum. Sample domains include faculty management, resource scheduling, catalog management, etc.
* Student Services. Sample domains include job placement, protective services, etc.
* Student Finances. Sample domains include student billing, cashiering, financial aid, etc.
By understanding these domains and their relationship to other domains, one can capture the commonalities and the range of variabilities that exists in a domain. The commonalities of a domain provides the requirements for the generic architecture of the corresponding sub-system. The range of variabilities in a domain provides a description of potential variations and the requirements for the customization capability of the corresponding sub-system. Understanding the range of variabilities is key to the success at Buzzeo since it allows us to identify and support (down to the domain level) the unique product variations required by a customer. For this to be successful requires the direct collaboration in the domain analysis of a diverse set of Higher Education customers.
Figure 2 - Domain Analysis Information
Figure 2 provides a high-level view of the information developed during domain analysis. A Customer Information Book (CIB) provides information of the current customer system as well as the future customer needs within a specific domain. This may be a versionable document since the analysis may be re-done over time to capture shifts in customer needs. A BIDA (Buzzeo, Inc. Domain Analysis) Information Book provides the domain analysis for a specific domain based on a set of Customer Information Books in the corresponding domain. This, too, may be a versionable document since the domain analysis may be updated with additional Customer Information Books for that domain.
For each domain, the ZZ Factory produces a domain-specific ZZ Kit that contains all the necessary material to build a sub-system for that domain (i.e., an instance of the domain). A domain-specific ZZ Kit is based on requirements derived from the domain analysis performed on the particular corresponding domain.
Besides domain-specific ZZ Kits derived from Higher Education domains, there are also generic/service ZZ Kits for common services required by different domain-specific ZZ Kits. Some of these are client/server connectivity, security, database access, GUI, report generation, print capability, audit log, error handling, etc. These can also be considered as internal domain-specific ZZ Kits where the domain analysis is based on the common needs of the customer domain-specific ZZ Kits.
All ZZ Kits utilize common kit technology so that kit assembly and kit usage/customization is performed in a standard, repeatable manner. All ZZ Kits contain:
* domain-specific generic architecture
* public interfaces (APIs)
* kit extension and customization mechanisms
* kit composition mechanism
* kit dependency list
* 3rd party components and their wrappers
* construction and tailoring environment/tools
* test scaffolding, test data, and test environment/tools
* documentation, help, and information construction environment/tools
* execution environment
* pre-generated, ready-to-run, sample applications
Based on a specific customer requirement (or RFP), the application development consists of building (or constructing) an application from customized versions of the available ZZ Kits such that the customer requirements are fully met. This process ("Design with Reuse") consists of:
* ZZ Kit Usage
* ZZ Kit Customization
ZZ Kit Usage is the process whereby application developers "use" a set of ZZ Kits to construct a particular application. We also include the search and matching of ZZ Kits to the customer requirements as part of ZZ Kit Usage. This also provides information for the ZZ Kit Customization process.
The application developers perform a differential "application requirements analysis" for the particular application based on the specific users requirements. This analysis is done in the context of an appropriate ZZ Kit ("Design for Reuse"). Requirements formulated in a canonical form will allow for automatic verification of kit coverage of requirements as well as identification of ZZ Kit customization activities and work items for unsatisfied requirements by the given ZZ Kit.
The application of ZZ Factory at Buzzeo, Inc. is on-going and is providing a lot of experience in the application of systematic software reuse techniques in the context of a real business environment where all the technical, market, and business forces are being applied. This should provide for an interesting case study given the well-defined nature of the domains involved.
3 Comparison
A lot of the concepts involved in ZZ Factory consist of the application of domain engineering. Domain Engineering is a process to understand, design, and build domain-specific components, a domain-specific architecture, and other work products (such as domain-specific language, generator, or tools, an application framework, and generic applications) in order to construct applications in a particular domain. []
Domain Engineering consists of two major phases:
* Domain Analysis - The activity that identifies, acquires, organizes, and models information in a problem domain and produces reusable software requirements.
* Domain Implementation - The activity which acquires, adapts, implements, and tests reuse components and which implements the enabling software reuse infrastructure.
[1] Arango, G., "Domain Analysis - From Art Form to Engineering Discipline," in the Proceedings of the 5th International Workshop on Software Specifications and Design, pg.152-159, 1989
[2] Cusumano, M.A., Japan's Software Factories - A Challenge to U.S. Management, Oxford University Press, New York, 1991
[3] Griss, M.L., "Software Reuse: From Library to Factory." IBM Systems Journal, Vol.32, No.4, pg.548-566, 1993.
[4] Griss, M.L., "Towards Tools and Languages for Hybrid Domain-Specific Kits," in the Proceedings of the Sixth Annual Workshop on Software Reuse (WISR-6), Owego, NY, November, 1993
[5] Griss, M.L. and Wentzel, K.D., "Hybrid Domain-Specific Kits for a Flexible Software Factory," in the Proceedings of SAC'94, Phoenix, AZ, pg. 47-52, ACM Press, New York, March, 1994
[6] Griss, M.L., "Packaging Software Reuse Technologies as Kits," Object Magazine, pg.80-81, October, 1995
[7] Guerrieri, E. and Vitaletti, W., "Domain Analysis within ISEC RAPID Center," in the Proceeding of the Eighth Annual National Conference on Ada Technology, Atlanta, GA, pg.460-470, March 5-8, 1990.
[8] Karlsson, E. (Ed.), Software Reuse - A Holistic Approach, John Wiley & Sons, Inc., New York, NY, 1995
[9] Neighbors, J.M., "The DRACO Approach to Constructing Software from Reusable Components," IEEE Transactions on Software Engineering, Vol.SE-10, No. 5, pg.564-574, September, 1984
[10] Ning, J.Q., Miriyala, K., and Kozaczynski, W., "An Architecture-driven, Business-specific, and Component-based Approach to Software Engineering," in the Third International Conference on Software Reuse (ICSR-3), Rio de Janeiro, Brazil, November, 1994
[11] Prieto-Diaz, R., "Domain analysis for Reusability," in the Proceedings of COMPSAC'87, pg.23-29, 1987
[12] Prieto-Diaz, R. and Arango, G. (Ed.), Domain Analysis and Software Systems Modeling, IEEE Computer Society Press, Los Alamitos, CA, 1991
[13] Simos, M, Creps, D., Klinger, C., Levine, L., and Allemang, D., "Organization Domain Modeling (ODM) Guidebook, Version 2.0," STARS Document Number STARS-VC-A025/001/00, Lockheed Martin Tactical Defense Systems, Manassas, VA, 14, June, 1996
[14] Software Productivity Consortium, "Reuse Adoption Guidebook, Version 02.00.05," Technical report No. SPC-92051-CMC, Software Productivity Consortium, Herndon, VA, November, 1993
[15] Software Productivity Consortium, "Reuse-Driven Software Processes Guidebook, Version 02.00.03," Technical Report No. SPC-92019-CMC, Software Productivity Consortium, Herndon, VA, November, 1993
Ernesto Guerrieri is the Director of Technology and ZEOLogix at Buzzeo, Inc. He is also an Adjunct Associate Professor in the Software Engineering program at Boston University. He was previously at Digital Equipment Corporation where he was the project leader of Digital's ACMSxp transaction processing system and TP Workcenter development environment, and the team leader of Digital's DECADMIRE application development environment. He was also involved in Digital's corporate reuse initiatives. Prior to Digital, he was at SofTech, Inc. where he led the development of the RAPID (Reusable Ada Packages for Information system Development) Center Library (RCL). He received a Ph.D. in Electrical, Computer, and Systems Engineering from Rensselaer Polytechnic Institute in 1989.