skip to main content
article
Free Access

The design and implementation of hierarchical software systems with reusable components

Published:01 October 1992Publication History
Skip Abstract Section

Abstract

We present a domain-independent model of hierarchical software system design and construction that is based on interchangeable software components and large-scale reuse. The model unifies the conceptualizations of two independent projects, Genesis and Avoca, that are successful examples of software component/building-block technologies and domain modeling. Building-block technologies exploit large-scale reuse, rely on open architecture software, and elevate the granularity of programming to the subsystem level. Domain modeling formalizes the similarities and differences among systems of a domain. We believe our model is a blueprint for achieving software component technologies in many domains.

References

  1. 1 ~BACH, M. J. The Design of the Umx Operati,g System Prentice-Hall, Englewood Cliffs, ~NJ.,1986. Google ScholarGoogle Scholar
  2. 2 ~BATORY, D. S. Modehng the storage architectures of commercial database systems. ACM ~Trans. Database Sys. 10, 4 (Dec 1985), 463 528. Google ScholarGoogle Scholar
  3. 3 ~BATORY, D.S. Extensible cost models and query optimization m GENESIS. IEEE Database ~Eng. (1987).Google ScholarGoogle Scholar
  4. 4 ~BATORY, D.S. Concepts for a database system compiler. ACM PODS, 1988. Google ScholarGoogle Scholar
  5. 5 ~BATORY, D. S., BARNETT, J R., GARZA, J. F., SM~Ta, K. P., TSUKUDA, K., TWICHELL, B. C, AND ~WISE, T.E. GENESIS: An extensible database management system IEEE Trans. Softw. ~Eng. (1988), 1711-1730. Google ScholarGoogle Scholar
  6. 6 ~BATORY, D. S., BARNETT, J. R., ROY, J., TWICHRLL, B. C., AND GARZA, J. Construction of file ~management systems from software components. COMPSAC, 1989Google ScholarGoogle Scholar
  7. 7 ~BATORY, D.S. On the reusability of query optimization algorithms. Inf. Syst. (1989). Google ScholarGoogle Scholar
  8. 8 ~BATORY, D.S. The genesis database system compiler: User manual. Umv. of Texas Tech. ~Rep. TR-90-27, 1990. Google ScholarGoogle Scholar
  9. 9 ~BATORY, D. S., AND BARNETt, J. R. DATE. The genes~s DBMS software layout editor. In ~Conceptual Modelling, Databases, and CASE, R. Zicari, Ed., McGraw-Hfil, 1991.Google ScholarGoogle Scholar
  10. 10 ~BATORY, D.S. A domain modeling methodology. In preparation.Google ScholarGoogle Scholar
  11. 11 ~BATORY, D. S., ET AL. The implementation of genesis. In preparationGoogle ScholarGoogle Scholar
  12. 12 ~BAXTER, I. Personal communication.Google ScholarGoogle Scholar
  13. 13 ~BERNSTEIN, P. A., AND CHIU, D.M. Using semi-joins to solve relational queries. J. ACM. 28, ~i (Jan. 1981). Google ScholarGoogle Scholar
  14. 14 ~BERNSTEIN, P. A., ET AL. Query processing in a system for distributed databases (SDD-1). ~ACM Trans. Database Syst. 6, 4 (Dec. 1981). Google ScholarGoogle Scholar
  15. 15 ~BERSHAD, g., ANDERSON, T., LAZOWSKA, E., AND LEVY, H. Lightweight remote procedure call. ~In ACM Symposium on Operating Systems Pmnciples (Dec. 1989), 102-113. Google ScholarGoogle Scholar
  16. 16 ~BIGGERSTAFF, T. J., AND PERLm, A.J. Software Reusability I: Concepts and Models. ACM ~Press, 1989. Google ScholarGoogle Scholar
  17. 17 ~BIGGERS?AFF, T. J., AND PERLIS, A.J. Software Reusability II Apphcat~ons and Experience. ~ACM Press, 1989.Google ScholarGoogle Scholar
  18. 18 ~Boocn, G. Software Components with Ada. Benjamin Cummings, 1987. Google ScholarGoogle Scholar
  19. 19 ~BOOCH, G. Object-Oriented Design W~th Applzcat~ons. Benjamin Cummings, 1991. Google ScholarGoogle Scholar
  20. 20 ~BRITTON, K. H., PARKER, R. A., AND PARNAS, D. L. A procedure for designing abstract ~in~erfaces for device interface modules. In Internatmnal Conference on Software Engineering ~(1981) 195-204. Google ScholarGoogle Scholar
  21. 21 ~CARDELLI, L., AND WEGNER, P. On understanding types, data abstraction, and polymor- ~phism. ACM Comput. Surv. 17, 4 (Dec. 1985). Google ScholarGoogle Scholar
  22. 22 ~CHAMBERLIN, D. D., ET AL. SEQUEL 2: A unified approach to data definition, manipulation, ~and control. IBM J. Res. Dev. 20, 6 (Nov. 1976).Google ScholarGoogle Scholar
  23. 23 ~CHERITON, D.R. VMTP: A transport protocol for the next generation of communications ~systems. In ACM SIGCOM '86 Symposium (Aug. 1987), 406-415. Google ScholarGoogle Scholar
  24. 24 ~CLARK, D.D. The structuring of systems using upcalls. In ACM Symposmm on Operating ~Systems Principles (Dec. 1985), 171-180. Google ScholarGoogle Scholar
  25. 25 ~DEUTSCH, P.L. Design reuse and frameworks in the smallta}k-80 programming system. In ~Software Reusabtl~ty I: Concepts and Models, ACM Press, 1989. Google ScholarGoogle Scholar
  26. 26 ~D~JKSTRA, E.W. The structure of THE multiprogramming system. Commun. ACM 11, 5 ~(May 1968). Google ScholarGoogle Scholar
  27. 27 ~GOGUEN, J. Parameterized programming. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept. 1984).Google ScholarGoogle Scholar
  28. 28 ~GOLDBERG, A. Smalltalk-80: The Interactive Programming Environment. Addison-Wesley, ~1984. Google ScholarGoogle Scholar
  29. 29 ~GRAEFE, G., AND DEWITT, D.J. The EXODUS optimizer generator. ACM SIGMOD, 1987. Google ScholarGoogle Scholar
  30. 30 ~GRAVES, H., AND POLAK, W. Common intermediate design language overview. Lockheed Palo ~Alto Res. Lab., Spring 1991.Google ScholarGoogle Scholar
  31. 31 ~GOTTAG, J. Abstract data types and the development of data structures. Commun. ACM 20, ~6 (June 1977). Google ScholarGoogle Scholar
  32. 32 ~GUTTAG, J., HOROWITZ, E., AND MUSSER, D.R. Abstract data types and software validation. ~Cornmun. ACM 21, 12 (Dec. 1978). Google ScholarGoogle Scholar
  33. 33 ~HABERMANN, A. N., FLON, L., AND COOPRIDER, L. Modularization and hierarchy in a family of ~operating systems. Commun. ACM 19, 5 (May 1976). Google ScholarGoogle Scholar
  34. 34 ~HABERMANN, A. N., FLON, L., AND COOPRIDER, L. Modularization and hierarchy in a family of ~operating systems. Commun. ACM 19, 5 (May 1976). Google ScholarGoogle Scholar
  35. 35 ~HAYES, 1~., MANWEILER, S., AND SCHLICHTING, R.' A simple system for constructing dis- ~tributed, mixed language programs. Softw.--Pract. Exper. (July 1988). Google ScholarGoogle Scholar
  36. 36 ~HUTCHINSON, N. C., AND PETERSON, L.L. The x-Kerneh An architecture for implementing ~network protocols. IEEE Trans. Softw. Eng. 17, 1 (Jan. 1991). Google ScholarGoogle Scholar
  37. 37 ~JARKE, M., AND KOCH, J. Query optimization in database systems. ACM Comput. Surv. 16, ~2 (June 1984).{ Google ScholarGoogle Scholar
  38. 38 ~JOHNSON, R. E., AND FOOTE, B. Designing reusable classes. J. Object-Ortented Program. ~(June/July 1988).Google ScholarGoogle Scholar
  39. 39 ~KORTH, H. F., AND SILBERSCHATZ, A. Database System Concepts. McGraw-Hill, 1991. Google ScholarGoogle Scholar
  40. 40 ~LINDSAY, B. Private communication, 1989.Google ScholarGoogle Scholar
  41. 41 ~LISKOV, B., SNYDBR, A., ATK{NSON, R., AND SCHAFFERT, C. Abstraction mechanisms in CLU. ~Commun. ACM 20, 8 (Aug. 1977). Google ScholarGoogle Scholar
  42. 42 ~LOHMAN, G. Grammar-like functional rules for representing query optimization alterna- ~tives, In Proceedings ofACM SIGMOD 1988 (Chicago, June 1988), 18-27. Google ScholarGoogle Scholar
  43. 43 ~MASON, T., AND BROWN, D. Unix Programming Tools: Lex & Yacc. O'Reilly and Associates, ~1990. Google ScholarGoogle Scholar
  44. 44 ~MOGUL, J. C., AND BORG, A. The effect of context switches on cache performance. In ~Conference on Architecdtural Support for Programming Languages and Operating Systems ~(April 1991), 39-51. Google ScholarGoogle Scholar
  45. 45 ~O'MALLEY, S.W. Ph.D. dissertation, Univ. of Arizona, 1990.Google ScholarGoogle Scholar
  46. 46 ~O'MALLEY, S.W. Avoca: An environment for programming with protocols. Ph.D. disserta- ~tion, Univ. of Arizona, TR90-31, Aug. 1990. Google ScholarGoogle Scholar
  47. 47 ~O'MALLEY, S. W., AND PETERSON, L.L. A new methodology for designing network software. ~Submitted for publication.Google ScholarGoogle Scholar
  48. 48 ~O'iVIALLEY, S. W., ABBOTT, M. B., HUTCHINSON, N. C., AND PETERSON, L.L. A transparent ~blast facility. J. Internetworking, 1, 2 (Dec. 1990).Google ScholarGoogle Scholar
  49. 49 ~OUSTERHOUT, J. K., CHERENSON, A. R., DOUGLIS, F., NELSON, M. N., AND WELCH, B.g. The ~Sprite network operating system. IEEE Computer, (Feb. 1988). Google ScholarGoogle Scholar
  50. 50 ~PARNAS, D, L. On the criteria to be used m decomposing systems into modules. Commun. ~ACM 15, 12 (Dec. 1972). Google ScholarGoogle Scholar
  51. 51 ~PARNAS, D.L. Designing software for ease of extension and contraction. IEEE Trans. Softw. ~Eng. (Mar. 1979).Google ScholarGoogle Scholar
  52. 52 ~PRIETO-DIAZ, R., AND ARANGO, G., ED. Domatn Analyszs and Software Systems Modeling'. ~IEEE Computer Society Press, 1991. Google ScholarGoogle Scholar
  53. 53 ~PURTILO, J. Polylith: An environment to support management of tool interfaces, In Proceed- ~ings of the ACM SIGPLAN Symposium on Language Issues in Programmtng Enwronments ~(July 1985), 12-18. Google ScholarGoogle Scholar
  54. 54 ~RoY, J. Design and use of the Jupiter file management system. M.Sc. thesis, Dept. of ~Computer Science, Univ. of Texas, 1991.Google ScholarGoogle Scholar
  55. 55 ~RUMBAUGH, J., BLAItA, M., PREMERLANI, W., EDDY, F., AND LORENSEN, W. Object-Oriented ~Modelzng and Design. Prentice Hall 1991. Google ScholarGoogle Scholar
  56. 56 ~SOFTWARE ENGINEERING INSTITUTE. Proceedings of the Workshop on Domain-Specific Soft- ~ware Architectures (July 9-12, 1990).Google ScholarGoogle Scholar
  57. 57 ~SELINGER, P. G., ET AL. Access path selection in a relational database management system. ~ACM SIGMOD, 1979. Google ScholarGoogle Scholar
  58. 58 ~SNODGRASS, R. The Interface Descrtption Language: Defimtion and Use. Computer Science ~Press, Rockville, Md., 1989. Google ScholarGoogle Scholar
  59. 59 ~STONEBRAKER, M., WONG, E., KREPS, P., AND HELD, G. The design and implementation of ~INGRES. ACM Trans. Database Syst 1, 3 (Sept 1976) Google ScholarGoogle Scholar
  60. 60 ~TANENBAUM, A.S. Computer Networks. Prentice-Hall, 1988. Google ScholarGoogle Scholar
  61. 61 ~TENNENHOUSE, D.L. Layered multiplexing considered harmful. In 1st International Work- ~shop on H,gh-Speed Networks (Nov 1989).Google ScholarGoogle Scholar
  62. 62 ~TEOREY, T. J., YANG, D., AND FRY, J. P. A logical design methodology for relational ~databases using the extended entity-relationship modeI. ACM Comput. Surv. 18, 2 (June ~1986). Google ScholarGoogle Scholar
  63. 63 ~TEOREY, T.J. Database Modeling and Deszgn: The Entity-Relationship Approach. Morgan- ~aufmann, 1990 Google ScholarGoogle Scholar
  64. 64 ~TSICHmTZIS, D., AND KLUG, A., EDS. The ANSI/X3/SPARC DBMS Framework. AFIPS ~Press, 1978.Google ScholarGoogle Scholar
  65. 65 ~WADLER, P., AND BLOTT, S. How to make ad-hoc polymorphism less ad hoc. ACM POPL, ~1989. Google ScholarGoogle Scholar
  66. 66 ~WON% E., AND YOUSEFFI, K. Decomposition--A strategy for query processing. ACM Trans. ~Database Syst. 1, 3 (Sept. 1976). Google ScholarGoogle Scholar
  67. 67 ~Yu, C. T., OZSOYOGLU, Z. M., AND LAM, K. Optimization of tree queries. J. Comput. Syst. Scz. ~29, 3 (Dec. 1984). Google ScholarGoogle Scholar
  68. 68 ~ZANIOLO, C. The Database Language GEM. ACM SIGMOD, 1983 Google ScholarGoogle Scholar
  69. 69 ~ZIMMERMANN, H. OSI Reference Model--The ISO model of architecture for open systems ~interconnection. IEEE Trans. Commun. 28, 4 (April 1980).Google ScholarGoogle Scholar

Index Terms

  1. The design and implementation of hierarchical software systems with reusable components

                    Recommendations

                    Reviews

                    Herman Fischer

                    The authors attempt to describe hierarchical construction of software by a technique that aggregates components, and give two examples. Serious work is being done in this area, but the trend is toward object-oriented integration facilities, spearheaded by the Object Management Group's CORBA standard and Microsoft's OLE 2 dispatch and automation facilities. None of these current, highly visible, well-publicized efforts are discussed or referenced. As a consequence, the reader is led to wonder about the paper's relevance to current practice. I believe the authors are trying to convince application designers that there is a better way to organize programs, based on a starting position accepting compositions of abstract data types. While the paper is well written and covers its points thoroughly, it misses the mark by exploring directions that differ from the current trends in the industry, without referring to these trends. The length seems unusually long for this type of paper. It was hard to slog through 41 typeset pages. The paper's best feature is that it raises awareness of program construction techniques. The worst feature is that it is technically old. The authors seem to be ignorant of current developments in its field. The paper lacks references to methods, tools, and techniques current at the time of publication. In the discussion of “Libraries and Parameterized Components,” the authors seem to be talking about linkable components (such as UNIX archives) instead of class libraries (inheritable and specializable object constructs). I would like to see them address construction of applications by aggregation of tools containing hierarchies of objects that have services usable by request brokering or dispatching technologies (as in CORBA and OLE 2). I believe that more applications will be constructed in this manner than by distribution of compiled linkable components. Under “Component Semantics,” it would be easier to say that “objects” can be “encapsulatable” than to attempt to discuss objects exporting unions of encapsulated interfaces. Under “Symmetric Components,” are the authors describing a communicative law feature of interface stacking__?__ Will this remain true in an object-oriented world where object methods can be pre- and post-conditioned__?__ In the section on “Components,” the example of UNIX pipe expressions used is “<__?__Pub Fmt italic>dtbl<__?__Pub Fmt /italic> |<__?__Pub Fmt italic>deqn<__?__Pub Fmt /italic> |<__?__Pub Fmt italic>ditroff.<__?__Pub Fmt /italic>” Hardly any<__?__Pub Caret>one uses <__?__Pub Fmt italic>troff<__?__Pub Fmt /italic> now. Today, a rich selection of desktop publishers are available (including Interleaf and Frame on UNIX, and Word for Windows and its brethren on PCs). These publishers are not pipable in integration, instead using various forms of control integration and macro extension programming to accomplish the same end. The arguments here are antiquated (or I prefer to use them to push my point of control integration usurping pipe-based and linked library integration). Under “Composition, Systems, and Domains,” a major topic of granularity is missing. Granularity of integration determines how closely integrated components work together. CORBA and OLE 2 emphasize a variety of techniques for medium and smaller granularities of integration. With the emergence of these types of program construction techniques, this sort of discussion is important. In Section 4.1, “Object-oriented Designs,” the authors describe an approach where schemas are defined by classes of objects and their interrelationships. Many published methodologies address this phase of software engineering. A number of them do the converse, beginning with description of instances of objects, which are later grouped and collected into classes. Footnote 12 states, “Astonishingly, the idea of stratified designs and layered systems is virtually absent in contemporary object-oriented literature.” I am the one who is astonished. That is what the current generation of CORBA and OLE 2 product technologies are all about. Perhaps there is a growing rift between commercial products and published literature, or perhaps the rate at which this technology develops is so fast that it makes it virtually impossible for authors of such well written and long papers to get them published while their technology is current. Perhaps this paper would be current if it had been published in 1990. I realize that a long process is involved in writing a paper and getting it into the publication mills and getting reviewers to look at it, but the authors' technology and most of their examples have been passed over by time. Programming construction techniques are a required background for readers of this paper. Furthermore, UNIX experience would help with understanding most of the examples. For a paper published in the 1990s, on the hot topic of program construction, the references are not exactly hot. The authors need to be apprised of current developments.

                    Access critical reviews of Computing literature here

                    Become a reviewer for Computing Reviews.

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader