The Architecture and Processes for a Systematic OO Reuse Factory Martin L. Griss Hewlett Packard Laboratories 1501 Page Mill Road Palo Alto, CA 94303 Tel: (415)857-8715 Fax: (415) 813-3668 Email:griss@hpl.hp.com Abstract This position paper describes the initial ideas of a new project, aimed at developing an Objectory-based Reuse Factory. This work is a research collaboration between Martin Griss and Ivar Jacobson, and several colleagues at HP and Objectory. We are combining the systematic reuse concepts of process, organization and kits, with the OO modeling and methods of Ob jectory's system engineering (OOSE) and business engineering (OOBE). Keywords: OO reuse, process, organization, architecture, methods Workshop Goals: Learning; networking; share and get feedback on initial ideas Working Groups:reuse process models, reuse architecture, domain- engineering 1 Background I have worked since 1988 in the area of systematic software process and technology at Hewlett-Packard, in both HP Corporate Reuse practice and in HP Laboratories research. I have described the evolution of my work at many reuse events: WISR[Gri92, GT93], IWSR[GJK+94], SRR[GJJ+95], SAC94[GW94 ] and OOPSLA[GAB+91 ], as wellas in other publications [Gri93,GW95b , Gri95b,Gri95a,GW95a , GK95a]. During this time Iand several colleagues (primarily Kevin Wentzel,James Navarro, Ruth Malan, Patricia Collins and Danielle Fafchamps) developed the concepts and explored several consequences of domain-specific kits and flexible software factories. Several ideas,such as reuse handbooks, domain-specific kit analysis frameworks and reuse maturity moels, were refined during working groups at WISR. Most recently, I have been exploring the integration of these ideas with OOmethods and technology, leading to a collaboration with Ivar Jacobson, started in Nov 1994[AG94, Gri95b, Gri95a,GJJ+ 95]. I and a sabatical visitor (Bob Kessler, University of Utah) have been applying these ideas to the development of an exemplary instrument systems kit, prototyped using Lego Dacta Control Lab parts[GK95a, GK95b ]. This is used as a test case for the Objectory modeling, and proposed for part of a new reuse-based software engineering course for delivery at the University of Utah. 2 Position Object technology (OT)is believed to be crucial to achieving the long sought after goal of widespread reuse. This goal is the most frequently stated reason for adopting OT. Unfortunately,many people naively equate reuse with objects, expecting it to"automatically" ensure reuse, but often do not get much reuse[Pit93]. Based on our experience with reuse at HP and Objectory, and with our many customers, we think that OT as used today will not succeed in giving users reuse. Without an explicit reuse agenda, and a systematic approach to the design and use of reusable assets, OO reuse will not succeed. In almost all cases of successful reuse, management support, simple architecture, a dedicated component group, a stable domain, standards and organizational support were the keys to success. These largely non-technical issues seem to be more important to successful reuse than the specific language or design methodology chosen. We believe that this architecture/process/organization question can be addressed systematically. Our work is exploring an exciting approach which applies Object-oriented Business Engineering (OOBE) and concepts of BPR to restructure a software development organization to offer reuse at a large scale. To obtain a true systematic OO reuse process, today's OT must be augmented with specific reuse-oriented processes, organizationstructures, guidelines, and training. OO methods must be extended to support domain engineering,with specific architecture and component factoring and clustering steps. Component and framework engineering should include explicit design and implementation guidelines, building on a catalog of architectures, patterns, designs and mechanisms. We need a better understanding of how to produce layered, modular architectures. We need to determine how and when to augment OO application frameworks with problem oriented scripting languages, builders, and systems and component generators to produce domain- specific kits that can handle the complexity inherent in frameworks with large numbers of classes and methods. Our work in progress explores how the principles of systematic reuse[Gri95b] and reuse processes, such as captured in the CFRP[STA93a, STA93b], can be used to augment traditional object-technology. In particular,we have tried to apply OO methods to the description and analysis of organization, process and reuse architecture and technology issues. As our OO method,we use the Use-driven approach of Ivar Jacobson. We useOOBE[JCJO92 ] and OOSE[JEJ94] to link the reuse organization and process with the reusable as sets (architectures, components and frameworks). We have augmented standard Objectory with the concepts of component systems,layered architectures,systems of interacting systemsand component system kits. 2.1 Reuse organization and processes We will use an OOBE model to describe the processes and organizations used in the design and evolution of reuse-oriented organizations. Here, use-cases are used to model the interaction of an actor (person or external organization) with the subject organization. Use-case and domain models (not the domain engineering model) help identify core processes within the organization. When these models are further refined to produce the Objectory robustness model (with interface, control and entity objects), we are able to map these onto processes (control objects),handlers (interface objects) and information systems (entity objects).Factoring and subsystem packaging techniques at the OOBE model allow us to introduce and model organizations. This organizational or business modeling technique is applied in two different ways: Development organization - it is applied to the software development organization to introduce and model reuse processes and organizations. This use is related the Objectory notion of "development cases." Business object extraction- it can also be used as part of the "organizational domain engineering process" applied to some target organization or system,to identify reusable business objects and processes. This could be called a "business-case." For example, we might start with a high-level of a company, and quickly identify software development and process improvement sub- organizations.Looking at the sub-system to subsystem interactions helps us model the roles of people such as reuse engineer,reuse manager, librarian, etc. 2.2 Domain engineering and component systemskits Here we believe strongly in an incremental, architectural, domain- specific approach. We are modifying the robustness analysis phase of the Objectory method to make explicit the commonality and variability required to carry out a systematic, OOdomain engineering. We are most influenced by the ideas of FODA[Kan90], ODM[Sim95] and Gomaa[Gom91 ]. As noted above, the OOBE phase is most like ODM, helping identify business objects. We have also found the need to introduce notation and methods to support application ssystems that are built in a layered or modular way from a combination of concrete and abstract components. Components are sets of models (Objectory thinks of code asyet another model) related to each other by refinement and tracebility links, and encapsulated by interface objects (which we will call "facade objects" or "contract objects",in the style of the pattern community[GHJV94]) based on other Objectory work on systems of interacting systems. We see the need to add some mechanisms for additional parameterization, in order to explicitly capture variability, and not just use the existing "uses" and "extends", via subclassing and aggregation. When a component system is adorned with domain-specific methods, tools, instructions and training, more suited to a special class of handler ( i.e, domain expert rather than s ftware engineer), we call this a "component system kit." 3 Conclusion We are quite excited about how well these ideas fit together, and how easily the concepts of use-case, robustness model and devlopment case can be extended with the OOBE and domain-engineering ideas. This work is still in its earliest phases, but we hope to produce a more detailed report by the end of the summer, and a tutorial for OOPSLA. References [AG94] Eric Aranow and Martin L. Griss. Systematic software reuse. (Tutorial: Object World San Francisco), July 1994. [GAB+91] Martin L. Griss, Sam S.Adams, Howard Baetjer, Jr., Brad J. Cox, and Adele Goldmics of software reuse (panel). In Proceedings of OOPSLA '91,Phoenix, Arizona, 6-11October, pages 264-270, November 1991. (Also as SIGPLAN Notices v26, 1, Nov 1991). [GHJV94] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading, MASS, 1994. (ISBN 0-201- 63361-2). [GJJ+95]Martin Griss, Ivar Jacobson, Chris Jette,Bob Kessler, and Doug Lea. Panel: Systematic software reuse - objects and frameworks are not enough. In M. Samezadeh, editor, Proceedings of the Symposium on Software Reuse. IEEE, April 1995. [GJK+94] Martin L. Griss, Chris Jette, Voytek Kozaczinski, Robert Troy, and Anthony Wasserman. Panel: Object-oriented reuse. In W. B. Frakes, editor, Proceedings of theThird International Conference on Software Reuse, pages 209-213, Los Alamitos, California, November 1994. IEEE Computer Society Press. [GK95a] Martin L. Griss and Robert R. Kessler. Visual basic does lego. In VBITS '95. Visual Basic Programmers Journal, March 1995. [GK95b] Martin L. Griss and Robert R. Kessler.Visual basic does lego. Technical Report HPL-xx, HP Laboratories, April 1995. [Gom91] Hassan Gomaa. An object-oriented domain analysis and modeling method for software reuse. In Bruce Shriver, editor, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences, pages 46-56, Los Alamitos, CA, January 1991. IEEE, Computer Society Press. [Gri92] Martin L. Griss. Amulti-disciplinary software reuse research program. In Martin Griss and Larry Latour, editors, Proceedings of the 5th Annual Workshop on Software Reuse, pages Griss-1:8. Department of Computer Science, University of Maine, November 1992. [Gri93] Martin L. Griss. Software reuse: From library to factory. IBM Systems Journal, 32(4):548-566, November 1993. [Gri95a] Martin L. Griss. Software reuse:A process of getting organized. Object Magazine, May 1995. [Gri95b]Martin L. Griss. Software reuse: Objects and frameworks are not enough. Object Magazine, pages 77-79, February 1995. [GT93] Martin Griss and Will Tracz. Wisr'92: 5th annual workshop on software reuse working groups report.Software Engineering Notes, 18(2):74-85, April 1993. [GW94] Martin L. Griss and Kevin Wentzel. Hybrid domain-specific kits for a flexible software factory. In Proceedings of SAC'94, pages 47-52, New York, New York, March 1994. ACM. [GW95a] Martin L. Griss and Kevin Wentzel. Hybrid domain-specific kits. Journal of Software and Systems, September 1995. (To appear. [GW95b] Martin L. Griss and Marty Wosser. Making reuse work at hewlett-packard. IEEE Software, 12(1):105-107, January 1995. [JCJO92]Ivar Jacobson, Magnis Christerson, PatrikJonsson, and Gunnar Overgaard. Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley Publishing Company, 1992. (Revised 4th printing, 1993). [JEJ94] Ivar Jacobson, Maria Ericsson, and Agneta Jacobson. The Object Advantage - Business Process Reengineering with Object Technology. Addison-Wesley Publishing Company, Menlo Park, CA, 1994. (ISBN 0-201- 42289-1. [Kan90] Kyo C. Kang. Feature-based domain analysis methodology. In L. Latour, editor, Third Annual Workshop: Methods & Tools for Reuse. CASECenter, Syracuse University, University of Maine, June 1990. [Pit93] Matthew Pittman. Lessons learned in managing object-oriented development. IEEE Software, 10(1):43-53, January 1993. [Sim95] Mark A. Simos. Organization domain modelling (odm): Formalizing the core domain modeling life cycle. In Proceedings of the Symposium on Software Reuse, April 1995. (To appear.). [STA93a]STARS. STARSConceptual Framework for Reuse Processes (CFRP): Volume I - Definition. Technical Report STARS-VC-A018/001/00, Paramax, October 1993. (Version 3.0 . See also volume II, applications.). [STA93b]STARS.STARS Conceptual Framework for Reuse Processes (CFRP): Volume II- Application. Technical Report STARS-VC-A018/002/00, Paramax, September1993. (Version 1.0 . See also volume I, definition). 4 Biography Martin L. Griss is a senior Laboratory Scientist at Hewlett-Packard Laboratories, Palo Alto, where he researches object-oriented reuse and measurement system kits. As HP's "reuse rabbi,"he led research on software reuse process, tools and software factories,the creation of an HP Corporate Reuse program,and the systematic introduction of software reuse into HP's divisions. He was past director of the Software Technology Laboratory and has over 20 years in software engineering research. He was previously associate professor of computer science at the University of Utah. He has authored numerous papers and reports on software engineering and reuse, writes a reuse column for the Object Magazine and is active on several reuse program committees. He has given several half-day and full-day tutorials on systematic reuse, and object-oriented reuse. Griss is a frequent invited or keynote speaker at numerous executive level software symposia and workshops, discussing software reuse as a strategic software activity.