This Article 
 Bibliographic References 
 Add to: 
Composition Validation and Subjectivity in GenVoca Generators
February 1997 (vol. 23 no. 2)
pp. 67-82

Abstract—GenVoca generators synthesize software systems by composing components from reuse libraries. GenVoca components are designed to export and import standardized interfaces, and thus be plug-compatible, interchangeable, and interoperable with other components. In this paper, we examine two different but important issues in software system synthesis. First, not all syntactically correct compositions of components are semantically correct. We present simple, efficient, and domain-independent algorithms for validating compositions of GenVoca components. Second, components that export and import immutable interfaces are too restrictive for software system synthesis. We show that the interfaces and bodies of GenVoca components are subjective, i.e., they mutate and enlarge upon instantiation. This mutability enables software systems with customized interfaces to be composed from components with "standardized" interfaces.

[1] D. Batory and S. O'Malley, "The Design and Implementation of Hierarchical Software Systems with Reusable Components," ACM TOSEM, pp. 355-398, Oct. 1992.
[2] D.S. Batory and J.R. Barnett, "DaTE: The Genesis DBMS Software Layout Editor," Conceptual Modeling, Databases, and CASE, P. Loucopoulos and R. Zicari, eds., pp. 201-222, John Wiley&Sons, 1992.
[3] D. Batory et al., "Scalable Software Libraries," Proc. ACM SIGSOFT, pp. 191-199, Dec. 1993.
[4] D. Batory and D. Vasavada, "Software Components for Object-Oriented Database Systems," Int'l J. Software Eng. and Knowledge Eng., pp. 165-192, 1993.
[5] D. Batory et al., "The GenVoca Model of Software-System Generators" IEEE Software, pp. 89-94, Sept. 1994.
[6] D. Batory and B.J. Geraci, "Validating Component Compositions in Software System Generators," UT/CS TR-95-03, Univ. of Texas at Austin, 1995.
[7] D. Batory, "Inheritance and Subjectivity," to appear.
[8] I.D. Baxter, ”Design Maintenance Systems,” Comm. ACM, vol. 35, no. 4, pp. 73–89, Apr. 1992.
[9] T. Biggerstaff, "The Library Scaling Problem and the Limits of Concrete Component Reuse," Int'l Conf. Software Reuse,Rio de Janeiro, pp. 102-109, 1994.
[10] L. Blaine and A. Goldberg, "DTRE—A Semi-Automatic Transformation System," Constructing Programs from Specifications. Elsevier Science, 1991.
[11] G. Booch, Object Oriented Design with Applications, Benjamin/Cummings Publishing Company, Inc., Redwood City, Calif., 1991.
[12] C. Chambers and G.T. Leavens, "Type Checking and Modules for Multi-Methods," OOPSLA '94, pp. 1-15, 1994.
[13] L. Coglianese and R. Szymanski, "DSSA-ADAGE: An Environment for Architecture-Based Avionics Development," Proc. AGARD, 1993.
[14] S. Cohen et al., "Models for Domains and Architectures: A Prescription for Systematic Software Reuse," AIAA Computing in Aerospace, 1995.
[15] S. Danforth and I. Forman, “Reflections on Metaclass Programming in SOM,” Proc. Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '94), pp. 440–452, Oct. 1994.
[16] E. Dijkstra, "The Structure of the 'T.H.E.' Multiprogramming System," Comm. ACM, Aug. 1968, pp. 453-457.
[17] I.R. Forman, S. Danforth, and H. Madduri, "Composition of Before/After Metaclasses in SOM," OOPSLA '94, pp. 427-439, 1994.
[18] E. Gamma et al., Design Patterns: Elements of Object-Oriented Software, Addison-Wesley, Reading, Mass., 1994.
[19] D. Garlan et al., "Exploiting Style in Architectural Design Environments," ACM SIGSOFT, pp. 175-188, 1994.
[20] D. Garlan et al., "Architectural Mismatch or Why It's Hard to Build Systems Out of Existing Parts," Int'l Conf. Software Eng., 1995.
[21] J.A. Goguen, "Reusing and Interconnecting Software Components," Computer, Feb. 1986.
[22] J.A. Goguen, "Parameterized Programming and Software Architecture," Int'l Conf. Software Reuse, pp. 2-10, 1996.
[23] P. Goldstein et al., "An Experimental Description-Based Programming Environment: Four Reports," Technical Report CSL-81-3, Xerox PARC, Mar. 1981.
[24] H. Gomaa et al., "A Prototype Domain Modeling Environment for Reusable Software Architectures," Int'l Conf. Software Reuse, pp. 74-83, 1994.
[25] M.L. Griss and K.D. Wentzel, "Hybrid Domain-Specific Kits for a Flexible Software Factory," ACM SAC '94, Mar. 1994.
[26] B. Hailpern and H. Ossher, "Extending Objects to Support Multiple Interfaces and Access Control," IEEE Trans. Software Eng., pp. 1,247-1,257, Nov. 1990.
[27] W. Harrison et al., "Integrating Coarse-Grained and Fine-Grained Tool Integration," Workshop on Computer-Aided Software Eng., July 1992.
[28] W. Harrison and H. Ossher, "Subject-Oriented Programming (A Critique of Pure Objects)," OOPSLA '93, pp. 411-427, 1993.
[29] W. Harrison, H. Ossher, R.B. Smith, and D. Ungar, "Subjectivity in Object-Oriented Systems: Workshop Summary," Addendum to OOPSLA '94, 1994.
[30] J. Heidemann and G. Popek, "File System Development with Stackable Layers," ACM TOCS, Mar. 1993.
[31] J. Heidemann e-mail correspondence, 1995.
[32] N.C. Hutchinson and L.L. Peterson, “The x-Kernel: An Architecture for Implementing Network Protocols,” IEEE Trans. Software Eng., vol. 17, no. 1, pp. 64-76, Jan. 1991.
[33] R.E. Johnson and B. Foote, "Designing Reusable Classes," J. Object-Oriented Programming, June/July 1988.
[34] R.E. Johnson, "Documenting Frameworks Using Patterns," Proc. OOPSLA 92, ACM Press, New York, 1994, pp. 63-76.
[35] M.D. Katz and D.J. Volper, "Constraint Propagation in Software Libraries of Transformation Systems," Int'l J. Software Eng. and Knowledge Eng., vol. 2, no. 3, 1992.
[36] G. Kiczales, J. des Rivières, and D. Bobrow, The Art of the Metaobject Protocol. MIT Press, 1991.
[37] J.C.S. do Prado Leite et al., "Draco-PUC: A Technology Assembly for Domain-Oriented Software Development," Int'l Conf. Software Reuse, pp. 94-101, 1994.
[38] D. McAllester, "Variational Attribute Grammars for Computer Aided Design," ADAGE-MIT-94-01, 1994.
[39] M. Moriconi and X. Qian, "Correctness and Composition of Software Architectures," ACM SIGSOFT '94, 1994.
[40] J. Neighbors, "Software Construction Using Components," PhD thesis, ICS-TR-160, Univ. of California at Irvine, 1980.
[41] M. Nenninger and F. Nickl, "Implementing Data Structures by Composition of Reusable Components: A Formal Approach," Proc. ICSE-17 Workshop Formal Methods Applications in Software Eng. Practice, Apr. 1995.
[42] J.Q. Ning et al., "An Architecture-Driven, Business-Specific, and Component-Based Approach to Software Engineering," Int'l Conf. Software Reuse, pp. 164-174, 1994.
[43] G.S. Novak, "Creation of Views for Reuse of Software with Different Data Representations," IEEE Trans. Software Eng., pp. 993-1,005, Dec. 1995.
[44] H. Ossher and W. Harrison, ”Combination of Inheritance Hierarchies,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 25–40, Oct. 1992.
[45] H. Ossher et al., "Subject-Oriented Composition Rules," OOPSLA '95, pp. 235-250, 1995.
[46] D. E. Perry,“Software interconnection models,”inProc. Ninth Int. Conf. Software Eng., IEEE Computer Society Press, Mar. 1987.
[47] D.E. Perry, "The Logic of Propagation in the Inscape Environment," ACM SIGSOFT, 1989.
[48] D.E. Perry, "The Inscape Environment," Int'l Conf. Software Eng. 1989.
[49] D. E. Perry and A. L. Wolf,“Foundations for the study of software architecture,”inACM SIGSOFT Software Eng. Notes, Oct. 1992, vol. 17, no. 4, pp. 40–52.
[50] V. Singhal and D. Batory, "P++: A Language for Large-Scale Reusable Software Components," WISR, Owego, New York, Nov. 1993.
[51] V. Singhal, "A Programming Language for Writing Domain-Specific Software System Generators," PhD thesis, Dept. of Computer Sciences, Univ. of Texas at Austin, Aug. 1996.
[52] M. Sitaraman and B. Weide, "Component-Based Software Using RESOLVE," ACM Software Eng. Notes, Oct. 1994.
[53] S. Sreerama, D. Fleming, and M. Sitaraman, "Graceful Object-Based Performance Evolution," Software Practice and Experience, vol. 27, no. 1, pp. 111-122, Jan. 1997.
[54] Symbolics, Inc., Intermediate Lisp Programming, Sept. 1984.
[55] W. Tracz, "Parameterized Programming in Lileanna," Proc. 2nd Int'l Workshop Software Reuse, IEEE Computer Soc. Press, Los Alamitos, Calif., Mar. 1993, pp. 66-78.
[56] J. Udell, "Componentware," BYTE, May 1994.
[57] M. Van Hilst and D. Notkin, "Using Role Components to Implement Collaboration-Based Designs," OOPSLA '96, pp. 359-369, 1996.
[58] D.M. Weiss, "Synthesis Operational Scenarios," Technical Report 90038-N. Version 1.00.01, Software Productivity Consortium, Aug. 1990.

Index Terms:
GenVoca, software generators, subjectivity, composition validation, design rule checking.
Don Batory, Bart J. Geraci, "Composition Validation and Subjectivity in GenVoca Generators," IEEE Transactions on Software Engineering, vol. 23, no. 2, pp. 67-82, Feb. 1997, doi:10.1109/32.585497
Usage of this product signifies your acceptance of the Terms of Use.