Module Composition and System Design for the Object Paradigm

This paper argues that a powerful module compo"itioll facility can ell),il.Ilce t]le a.bility of object oriented languages to reuse aud contpose designs, specifications and code. hl addition, several flexible ways to produo.' prototypes can be supported, induuhlg symbolic eXf'cutioa of designs. rom posing prototype versions of components, and usiug "brti\t·iu" modules. ~luch of this power comes from having rnouule expressions, therxies and views as first class citizens: 50me come,; from providing both vprtiLal and horizontal composition, and from distinguishing between sorts for values, clil.sses for objects, modules for code, ar,d theories as types for modules. New features introduced in this paper include dynamiL binding with views, vertical wrappers, support for abstract cla.sses and private class inheritance, a,nd the dynamic imegration of components from different libraries. Although we Hlu$trate these features using the FOOPS language, "hey could be added to many oUler lallguages, and some comparison with other languages is given. IThe research reponed in tbl' paper has be€u supported In paIl b}' the Scieuc~ and Engineering Rese4Jch Council, the cEe under ESPRIT-2 BRA Working Groups 5071. lS-CORE (InfonuaLion S.\'8tems COrrectness and REllsabil ­ ily.l and 5Il2, COMPASS (COMPrehen~ive Algebraic Approa.ch to SY6tern Specificat.ion and deveioPIn~nt), FUjil~n Laboratorie~ Limited, a contract. under the mallagemenl of the Information Technologji PromotIon Ag.ncy (IPA), Japan. a,; pan of the {lldu.o>lliaJ Sdence and Technology Frolllier Proganl ~New Models for Sohware Architectur~,~ sponsored by NEDO (New Energy and Indll6Lnal Technology Development Orga"i~alion), and a schohnshlp from the u::ouomic Development Office of Puerto RICO (for Adolfo SoconQ) lAbo ..ith SRllnIHnallon<l-l, Menlo Park CA 94025 USA; p'l-ltially written while on lea"", at the T«hnical Uni­ versity of N<)Va Scotia, Halifa:o.. with pa,lial support from lhe No"a Scotia provincial go"ernmenL

[1]  Will Tracz,et al.  Parametrized programming in LILEANNA , 1993, SAC '93.

[2]  Examples L. Parnas,et al.  A Technique for Software Module Specification with , 1972 .

[3]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.