home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr4 / proceedings / detex / kilov.detex < prev    next >
Text File  |  1992-04-05  |  10KB  |  195 lines

  1.  [12pt] article  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.    Reuse of generic concepts in information modeling  
  12.  
  13.    Haim Kilov 
  14. Bellcore, MRE-1F 216 
  15. 435 South Street 
  16. Morristown, NJ 07960 
  17.  
  18. haim@bcr.cc.bellcore.com 
  19.  
  20.    
  21.  
  22.  
  23.   Position Statement 
  24. Two major issues have existed for some time in system development: (1) the
  25. information to be processed should be understood, and (2) the complexity of
  26. existing systems precludes understanding. As early as in 1972, E.W.Dijkstra 
  27.  
  28. explicitly acknowledged this and urged programmers to deal only with
  29. intellectually manageable problems. Although important lessons have been learned
  30. in programming, all too often other levels of system development, in particular,
  31. planning and analysis, still remain close to black magic. This need not be the
  32. case: ideas from programming methodology -- most importantly, abstraction -- can
  33. and should be reused at all levels, and not just in coding.
  34.  
  35. The sequence understand -- specify -- reuse may provide a reasonable framework
  36. for the job to be done. Implementation should start only after a clear, precise,
  37. and formal contract specification  
  38. exists. The specification should be
  39. abstract enough: irrelevant details like implementation considerations should be
  40. suppressed, and the declarative approach (i.e., formulating pre- and
  41. postconditions for an operation), well-known in programming methodology 
  42.  ,
  43. is
  44. appropriate (i.e., should be reused) at the analysis level as well. Intellectual
  45. economy (reuse rather than reinvention) is possible only if the construct to be
  46. reused is understood, i.e., if its specification exists and is precise and
  47. explicit. However, this need not mean top-down waterfall development: a
  48. higher-level primitive may be built from lower-level ones that already exist.
  49.  
  50. The most important difference between a typical contract considered from a
  51. programming language viewpoint   and a contract considered from an information
  52. management viewpoint is the existence of explicit inter-class relationships.
  53. Namely, the pre- and postconditions refer not just to properties of their class,
  54. but also to properties of other related classes visible to the client of the
  55. class. An operation for which the contract is specified may be spanned across
  56. several classes  . An invariant for a class may include visible properties of
  57. objects belonging to other classes, and in this case it may be more proper to
  58. consider an inter-class invariant. This approach to contracts may be used both
  59. at the generic level (example: ``create a dependent entity'' and at any
  60. application domain-specific level (example: ``hire an employee'').
  61.  
  62. Certain generic modeling concepts (entities, relationships, dependencies, etc.)
  63. have been used by analysts, often inconsistently. These inconsistencies were due
  64. to the absence of formal and implementation-independent definitions of the
  65. concepts. As a result, concepts have not been properly understood (a typical
  66. remark by a subject matter expert: ``we don't know whether this is a dependent
  67. entity or a subtype'') and therefore not properly (re)used. Moreover, structural
  68. properties (``data'') and behavioral properties (``processes'') have been
  69. artificially separated, leading to unnecessary complexities.
  70.  
  71. We have provided precise and formal definitions of generic information modeling
  72. concepts, i.e., defined a reusable class library of entity meta-types (aka
  73. object classes), based on pre- and postconditions and invariants 
  74.  . Pre- and
  75. postconditions define operations that can be applied to instances of these
  76. classes, and invariants are operation-independent conditions associated with
  77. collections of classes that must be true at all times outside of any operation
  78. on those classes 
  79.  . The invariant, pre- and postconditions usually refer to
  80. the properties of more than one of the objects. Whereas in considering isolated
  81. objects, it has been possible -- to a certain extent -- to underestimate the
  82. importance of precise and formal specifications of behavior, this is not
  83. possible anymore for inter-object relationships. The reason is simple: the
  84. relationships must be intellectually manageable. As they are substantially more
  85. complex than isolated objects, their understanding is possible only by means of
  86. encapsulating their implementations and providing explicit and precise, i.e.,
  87. formal, specifications of their behavior. This approach leads to a clear
  88. understanding of concepts, to conceptual simplicity, and also, as an important
  89. side-effect, to non-proliferation of different and often shallow definitions for
  90. commonly encountered terms. Therefore these concepts can easily be understood
  91. and therefore reused both by the customers of the information model (including
  92. subject matter experts) and by its implementors. For instance, the definition of
  93. a dependent entity includes an invariant: ``the existence of a dependent entity
  94. instance 
  95. implies the existence of an appropriate instance of its parent entity''.
  96. Evidently, without understanding of the information model it cannot be correctly
  97. implemented and used; programmers will have to introduce their own understanding
  98. because a program has to be precise (and in this manner a programmer will have
  99. to become a modeler, usually without the benefit of reusing the class libraries
  100. of information model components [only exceptional programmers can do that;
  101. however, they work within a certain application domain, and the problem of
  102. redundant and inconsistent data across different application areas can not be
  103. solved in this manner]).
  104.  
  105. Given such concept definitions, information modelers and their customers reuse
  106. common concepts independently of methodologies, CASE tools, implementations,
  107. etc., both at domain-independent and domain-specific levels. The generic class
  108. library described in   is extensible: a sufficient number of application
  109. domains sharing a common concept leads to the inclusion of an appropriate
  110. generic concept into this library. Examples of currently existing -- and
  111. reusable -- generic concepts are: ``regular entities'', ``dependents'',/
  112. ``composites'', ``reference entities'', etc. Concepts currently considered for
  113. inclusion into the library are exemplified by ``derived entity'', ``version'', 
  114. etc.
  115.  
  116. Generic concept definitions are based only on primitive
  117. Create-Read-Update-Delete (CRUD) operations. Naturally, the signatures, pre- and
  118. postconditions of these operations may refer not only to the entity itself, but
  119. also to its associated entities (e.g., to create an instance of a dependent
  120. entity, references to its parent entity type and instance are needed). Note that
  121. an application domain-specific model consists of interrelated objects that may
  122. be considered as subclasses of the generic object classes. In this manner,
  123. generic properties of an object belonging to a particular domain-specific class
  124. (e.g., ``account transaction'') should not be reinvented: they are reused from the
  125. definition of its generic object (super)class (e.g., ``dependent'' with respect to
  126. ``account'').
  127.  
  128. Our experience with information modeling in Bellcore suggests that the reusable
  129. component library of generic meta-types leads to drastically improved
  130. understanding of information models. The components of these models become
  131. clearly defined and therefore reusable. On the other hand, the granularity of
  132. these components is appropriate: the size of the models does not preclude their
  133. understanding, especially taking into account that one ``high-level'' entity
  134. meta-type can be decomposed into a cluster of interrelated ``lower-level'' entity
  135. meta-types. (For instance, a ``document'', being a subtype of a ``composite
  136. entity'', may belong, together with its associations, to the high-level model.
  137. Components of a document, e.g., pieces of text, tables, pictures, etc., being
  138. subtypes of a ``component entity'', may be of no interest -- and therefore
  139. invisible -- to the high level model, but will belong, together with their
  140. associations, to the lower-level model. In this manner, the high-level model is
  141. an abstraction (``suppression of irrelevant detail to establish a simplified
  142. model''  ) of the lower-level one.) Naturally, model clustering provides a way
  143. of browsing through the model, again, both by its users and implementors.
  144.  
  145.  
  146.    dijk 72 
  147.  
  148. E.W.Dijkstra. The humble programmer. Communications of the ACM, Vol. 15
  149. (1972), No. 10, pp. 859-886.
  150.  
  151.  
  152. B.Meyer. Object-oriented software construction. Prentice-Hall, 1988.
  153.  
  154.  
  155. H.Kilov. Generic information modeling concepts: a reusable component library.
  156. In: TOOLS '91 (Proceedings of the Fourth International Conference on Technology
  157. of Object-Oriented Languages and Systems, Paris, 1991, pp. 187-201).
  158. Prentice-Hall, 1991.
  159.  
  160.  
  161. A Reference Model for Object Data Management. Final Revision. (ANSI
  162. Accredited Standards Committee. X3, Information Processing Systems.) Document
  163. Number OODB 89-01R8. August 10, 1991.
  164.  
  165.  
  166. E.W.Dijkstra. A discipline of programming. Prentice-Hall, 1976.
  167.  
  168.  
  169. Basic Reference Model for Open Distributed Processing Q Part 2: Descriptive
  170. Model. Committee Draft ISO/IEC CD 10746-2. ISO/IEC JTC1/SC 21 N 6079.
  171. 1991-07-24.
  172.  
  173.  
  174.  
  175.   About the Author 
  176. Haim Kilov has been through all stages of various software (compilers,
  177. preprocessors, post-relational DBMS, etc.) design and development -- from
  178. initial conception to actual implementation and release, and also has been
  179. engaged in research, development, and consulting in advanced information
  180. modeling. He is currently involved in information modeling as a Member of
  181. Technical Staff at Bellcore (Morristown, NJ). His approach to creating a
  182. reusable library of generic object classes for this purpose has been widely used
  183. in actual modeling activities within Bellcore. He is also a member of the ANSI
  184. X3 Database System Study Group and its subgroups (Object Database Task Group and
  185. OSI/Database Task Group); he is one of the Editors of the reports of the Object
  186. Database Task Group and one of the active contributors to the Object Data
  187. Management Reference Model. He is a member of the Editorial Board of ``Computer
  188. Standards and Interfaces'' and has been a Program Committee member of several
  189. domestic and international conferences and workshops on information management.
  190. He has a significant number of published papers and reviews in the database and
  191. information modeling areas. His current interests and experience are in the
  192. areas of information modeling and programming methodology.
  193.  
  194.  
  195.