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 / wisr5 / proceedings / ascii / hufnagel.ascii < prev    next >
Text File  |  1993-05-29  |  18KB  |  376 lines

  1.  
  2. Formally Specified Object-Oriented Approach to Reuse 
  3.  
  4. Steve Hufnagel 
  5.  
  6. The University of Texas at Arlington 
  7. Computer Science Engineering Department 
  8. Arlington, Texas  76019-0015 
  9. Tel: (817) 273-3618, fax: (817) 273-2548 
  10. E-mail: hufnagel@cse.uta.edu 
  11.  
  12.  
  13.                       Abstract  
  14.  
  15. Our work targets the establishment of a knowledge base - an 
  16. integrated software construction framework of software tools to 
  17. build, maintain, and reuse quality software. The key innovative 
  18. concept is our meta-linguistic object-oriented approach with which 
  19. to formally specify, archive, and retrieve reusable components. 
  20. A domain specific thesaurus is used to translate amongst application 
  21. domains. The main design goal is to maintain overall conceptual 
  22. integrity and simplicity, while integrating diverse technologies 
  23. into a unified environment. Mathematical and linguistic formalisms, 
  24. engineering principles and problem solving techniques, in addition 
  25. to methods and approaches from artificial intelligence, computer 
  26. science, and communications, are the foundation of this work.
  27.  
  28. Keywords:  formal specifications, object-oriented, Z, Object-Z, reuse, 
  29.        environment
  30.  
  31. Workshop Goals:  learning; networking; identifying research directions
  32.  
  33. Working Groups:  Reuse and formal methods; Reuse and OO methods; Domain 
  34.          analysis/engineering; Design guidelines for reuse - 
  35.          general, Ada, and/or C++; Useful and collectible metrics; 
  36.          Tools and environments; Education
  37.  
  38.  
  39. 1  Background 
  40.  
  41. Reuse is the ``Holy Grail'' and nemesis of software developers.
  42.  
  43.  
  44. 1.1  The Need 
  45.  
  46. Most companies are dedicated to gaining a competitive edge in
  47. meeting customer needs by getting to market more quickly with
  48. appropriate high-quality products at lower development costs. The
  49. international telecommunications industry is perhaps the most
  50. competitive of modern times. Telecommunication software must be
  51. easy to maintain, flexible in operation, and quickly enhanced.
  52. There is an increased demand for graphical user interfaces, a
  53. need for greater portability amongst development and application
  54. platforms, reliability in support of increasingly critical
  55. wide-spread applications, and an increased use of distributed
  56. multi-user and multi-version environments.
  57.  
  58.  
  59. 2  Reuse environment 
  60.  
  61. Our research objective is directed toward creating an environment
  62. in which software components are developed, organized, and made
  63. available for reuse. Domain knowledge, proper component description, 
  64. tool support, and a skilled staff are needed [Schaefer91]. This 
  65. requires integration of the best of current day technologies into a 
  66. framework that is intended to evolve and adapt to new and improved 
  67. technologies. The most important design goal is to maintain conceptual 
  68. integrity and interoperability amongst software tools [Brooks87] so 
  69. that the environment is powerful, yet intuitively simple to use. The 
  70. key concept of our work is a meta-linguistic object-oriented approach
  71. to formally specifying, archiving, and retrieving reusable
  72. domain-specific components.  Domain analysis of general areas to
  73. identify primitive reusable components and object-oriented
  74. analysis of user requirements is becoming part of the software
  75. development lifecycle [Coad91, Prieto-Diaz91]. The determination
  76. and management of software abstractions, specifications, and
  77. indexing of class libraries and object components are critical
  78. strategic tasks in building Domain Engineering Environments
  79. (DEE's). See Figure 1. This information must be distributed and
  80. visible to management as well as to design teams. Corporate
  81. training and software quality control are important ingredients
  82. in a software reuse environment.
  83.  
  84.     Figure 1: Domain Engineering Environment (DEE)
  85.     Figure 2: Application Engineering Environment (AEE)
  86.     Figure 3: Meta-Linguistic Framework 
  87.     Figure 4: Intelligent Network-Based Software Development 
  88.           Environment (INBSDE)
  89.  
  90. Future CASE products will contain extensive libraries and will
  91. become programming language transparent to designers. Intelligent
  92. tools, utilizing artificial intelligence technology, will provide
  93. easy-to-use and easy-to-learn graphical user interfaces to these
  94. libraries [Harmon90]. 
  95.  
  96. The users of a reuse environment are the domain analysts who
  97. specify reusable components; implementers who build the
  98. components; application designers who use the components to build
  99. systems; managers who schedule and do strategic planning; and
  100. customers who need system documentation.
  101.  
  102.  
  103. 2.1  Application engineering environment 
  104.  
  105. We believe that domain-specific Application Engineering
  106. Environments (AEEs) for reuse, using meta-linguistic techniques
  107. for indexing, will become application designers' tool boxes. See
  108. Figure 2. These will eventually be standardized and integrated
  109. into operating systems, as UNIX pipes are used today.
  110.  
  111. A steady evolution of domain-specific AEE's will eventually
  112. produce generic application engineering environments. We envision
  113. AEE's being used by geographically distributed teams of software
  114. developers working on different parts of the same large project.
  115. Configuration management and version control are automatically
  116. maintained by the AEE. A target software system is assembled from
  117. a combination of reusable components and new components provided
  118. by the software engineers [Ramamoorthy91].
  119.  
  120. The AEE concept proposed in this paper provides access to
  121. libraries appropriate for a particular domain. An AEE is a
  122. software management tool, optimized to take advantage of the
  123. semantics of the application domain. It provides the user
  124. interface for analysis and design, requirements, textual and/or
  125. graphical specifications [Coad91] of the object model, dynamic
  126. model, and functional model of the system, and a rapid prototype
  127. animator and test scenario simulator. It must present a clear,
  128. complete, correct, concise, and consistent representation of the
  129. software products contained within. An AEE should be easy to use
  130. and flexible.
  131.  
  132.  
  133. 2.2  Libraries/Repository 
  134.  
  135. The success of the environment in large part depends upon
  136. capture, structuring, and delivery of knowledge in forms readily
  137. usable by the individual engineer and development project as a
  138. whole. The repository will contain both generic and
  139. domain-specific components and subsystems, as well as the
  140. information required to produce appropriate documentation
  141. concerning each component. Generic libraries span application
  142. areas and may include traditional algorithms for data structure
  143. manipulation, mathematical functions, and components. These
  144. components, although derived in a domain-specific context, may be
  145. more widely applicable than the original developer imagined.
  146. Generic algorithms often have domain-specific counterparts with
  147. names and attributes peculiar to a given domain. The
  148. correspondence between generic forms and domain-specific
  149. renderings of the same or closely related logic must be captured
  150. to make the identification of new instances of software reuse
  151. simple and semantically correct for the specialists wo The
  152. conceptual framework for such capabilities must include
  153. provisions for capturing syntactic structures, semantic
  154. information, and must support a form of translation through a
  155. combination of equivalence rules, grammatical mappings, and
  156. analogical relations. We call this concept the "meta-linguistic
  157. framework." 
  158.  
  159.  
  160. 2.3  Meta-linguistic approach 
  161.  
  162. Among the central problems in computer-aided software
  163. engineering (CASE) systems are lack of provision for requirements
  164. understanding and related problems of traceability, making
  165. inferences, and controlling those inferences. To address these
  166. problems, a meta-linguistic method for controlling inferences is
  167. proposed that has positive effects on ease-of-use, correctness,
  168. information archiving and retrieval, scenario applications to
  169. view analysis, requirements traceability, and tracking of goals
  170. and plans.
  171.  
  172. Meta-linguistic means that there is a common domain-independent
  173. virtual specification of system components. See Figure 3. This
  174. meta-specification, plus one or more domain thesauri, maps
  175. amongst domains and provides the mechanism for archiving and
  176. retrieving reusable components. The basis of our meta-linguistic
  177. approach is conceptual dependency theory [Schank88] combined with
  178. scenario-based processing of requirements [Wang91].
  179.  
  180. An example is requirements analysis. An analysis program
  181. interacts with a user and maps requirements into
  182. language-independent formally-specified structures (Fig. 1). A
  183. template-based data dictionary management program makes
  184. inferences from input conceptual structures and determines if
  185. reusable components already exist (Fig. 2). A generator maps
  186. conceptual structures into documentation: requirements, graphical
  187. specifications and designs (e.g., state transition, entity-relation, 
  188. and flow diagrams) and a software language (Fig. 3). Together the 
  189. programs will function as a software construction workbench and 
  190. reuse inference system. See Figure 4.
  191.  
  192. Meta-linguistic representation has a language-free deep
  193. conceptual base (i.e., conceptual dependency) [Schank88]. The
  194. conceptual analysis of a system's requirements, specifications,
  195. and design and the nature of their conceptual base, from both
  196. theoretical and practical standpoints, must be developed. The
  197. various types of inferences, that can be made during and after
  198. the conceptual analysis, must be defined. A functioning AEE is
  199. being built to prototype these inference tasks.
  200.  
  201. A result of the meta-linguistic approach is an environment that
  202. may be said to function intelligently and is self tutoring. Since
  203. natural language may be assumed to have an underlying conceptual
  204. structure, the environment's object database structure
  205. (conceptual dependencies) must be represented in a manner
  206. concomitant with the human needs for using it. 
  207.  
  208.  
  209. 2.4  Formal methods 
  210.  
  211. A formal specification is valuable because it provides: n a
  212. consistent form for the expression of specifications, n an
  213. axiomatic mechanism to support expression of relations among
  214. specifications, n a proof theory which supports mathematical
  215. analysis of specifications.  Formal methods have largely been
  216. used for life-critical and high reliability systems. There are a
  217. number of formal specifications in use, among them Z ("Zed"), VDM
  218. (Vienna Development Method), and LOTOS (Language of Temporal
  219. Ordering Specification), which is the CCITT standard
  220. specification language devised for telecommunications systems.
  221.  
  222. Formal specifications allow desirable characteristics to be proved 
  223. and inconsistencies to be uncovered during analysis.  Beyond providing 
  224. a mechanism for expressing and proving system attributes, formal 
  225. methods have been found to be more compact than conventional natural 
  226. language specifications by as much as an order of magnitude. Further, 
  227. there are multiple instances in which the use of such methods have 
  228. saved money, improved understandability, and supported aggressive 
  229. schedule constraints [Hall90].
  230.  
  231. The integrated use of the formal specification may include
  232. entity-relationship, dataflow, and state transition diagrams for
  233. components and subsystems, as well as inheritance hierarchies
  234. when object-oriented approaches are used. This provides a
  235. powerful means to visualize, animate, and reason about the static
  236. structure and dynamic behavior of a system prior to the
  237. investment of time and funds to create the envisioned system.
  238.  
  239.  
  240. 2.5  Object-oriented Technology 
  241.  
  242. Object-oriented technology is being promoted as a significant way
  243. to achieve software reusability. In discussing Interactive
  244. Development Environment's object-oriented structured design
  245. (OOSD), Wasserman encourages users to follow principles of
  246. information hiding, attention to reuse through the use of
  247. inheritance and generics (templates), and a spiral model of
  248. software development [Wasserman90]. Brooks holds out hope for
  249. object-oriented technology as the way to achieve software
  250. reusability [Brooks87]. Cox declares object-oriented as an
  251. objective rather than a technology. He states that
  252. object-oriented is the key element to the creation of a
  253. standard-parts marketplace with pluggable software components
  254. assembled into higher-level solutions [Cox90]. It is important to
  255. reiterate what many experts have stated: while continually
  256. evaluating new methodologies, the method, procedure, or technique
  257. needs to be appropriate for a particular system, and the
  258. discipline imposed by a methodo!  logy must be consistently
  259. applied 4.4 Other Methodologies Object-oriented methods, while
  260. obviously powerful, are not ends in themselves. There are
  261. numerous examples of systems which either do not readily admit an
  262. object-oriented view or are equally well represented by other
  263. approaches. We envision a system which is methodology supportive,
  264. not methodology prescriptive. As such, other approaches which
  265. have been found to be useful in the past will be supported,
  266. including: n traditional functional decomposition techniques,
  267. such as structured design techniques of Yourdon or the successive
  268. refinement technique pioneered by Wirth, n data structured
  269. methods exemplified by Warnier-Orr and Jackson, n hybrid
  270. modelling techniques such as Petri nets, which have been
  271. successfully applied to real-time applications, neural networks,
  272. communications, and large-scale production rule systems.
  273.  
  274. The goal of the environment we are pursuing is to empower the
  275. engineers who use this system with integrated capabilities not
  276. previously at their disposal. To preclude the use of methods that
  277. have proved valuable to visualize systems in the past would be a
  278. disservice and counterproductive to users.
  279.  
  280.  
  281. 3  Prototype activities 
  282.  
  283.  We are creating a conceptual architecture for the environment we
  284. have described in this paper. Using telecommunications examples,
  285. we are building prototypes of object-oriented database platforms,
  286. user interfaces, and inference engines. These prototyped concepts
  287. will evolve as we gain further experience in the technologies and
  288. a deeper understanding of the abstract aspects of the environment
  289. we are developing.
  290.  
  291.  
  292. 4  Position 
  293.  
  294. The competitive edge in systems development comes from
  295. easy-to-use corporate-wide sharing of standardized software
  296. components and the automatic management of documentation and
  297. configuration complexity of large systems. We believe the
  298. approach presented in this paper provides the framework for an
  299. intelligent, network-based, distributed software development
  300. environment, that supports and encourages building reusable
  301. software components.
  302.  
  303.  
  304. 5  Comparison 
  305.  
  306. Biggerstaff points out that reuse is not the silver bullet of
  307. success and is not merely the task of gathering up components and
  308. casually assembling a library. We cannot have reuse without
  309. changing our process. He indicates that the key factors that make
  310. reuse successful, are: (1) narrow, well understood, slowly
  311. changing domains; (2) inter-component standards that enable
  312. interconnectability of components; (3) economies of scale in the
  313. market where the same kind of software is being built over and
  314. over again; (4) economies of scale in technologies: big
  315. components produce larger payoff than small components because
  316. the interconnection and defect removal costs are lower; and (5)
  317. infrastructure support - tools that enforce the process are
  318. critical to the success of reuse [Biggerstaff91].
  319.  
  320.  
  321. 6  Biography 
  322.  
  323. Stephen P. Hufnagel is Assistant Professor, Computer Science
  324. Engineering Department, The University of Texas at Arlington, and
  325. a member of the Software Engineering Center for Telecommunications. 
  326. He works as a consultant with NEC America, Texas Instruments, and 
  327. Electrospace Inc.  His research interests include telecommunication 
  328. software, requirements analysis, formal specifications, the object 
  329. paradigm, and software construction methodologies. He received a 
  330. B.A. in psychology and mathematics and a Ph.D. in computer science 
  331. from The University of Texas at Austin.
  332.  
  333.  
  334. References 
  335.  
  336. [1]  Biggerstaff, T. J., Panel: "Software Reuse: Is it Delivering?," 
  337.      Proceedings, 13th ICSE, Austin, Texas, May 1991, pp. 52-61.
  338.  
  339. [2]  Brooks, F. P., "No silver bullet, essence and accidents of software 
  340.      engineering," IEEE Computer, April 1987, pp. 14.
  341.  
  342. [3]  Coad, Peter, and Yourdon, Ed, Object-Oriented Analysis, Prentice Hall, 
  343.      Englewood Cliffs, New Jersey, second edition, 1991.
  344.  
  345. [4]  Cox, Brad J., "There is a Silver Bullet," BYTE, October 1990, pp. 209-218.
  346.  
  347. [5]  Hall, Anthony, "Seven Myths of Formal Methods," IEEE Software, 
  348.      September 1990.
  349.  
  350. [6]  Harmon, Paul, and Sawyer, Brian, The ObjectVision Manual: A Graphical 
  351.      Programming Tool for Object-Oriented Applications, Addison Wesley, 
  352.      Reading, Massachusetts, 1990.
  353.  
  354. [7]  Prieto-Diaz, R., and Arango, G., Domain Analysis and Software Systems 
  355.      Modeling Tutorial, IEEE Computer Society, 1991.
  356.  
  357. [8]  Ramamoorthy, C.V., Miguel, Luis, and Shim, Young-Chul, "On Issues in 
  358.      Software Engineering and Artificial Intelligence," International Journal 
  359.      of Software Engineering and Knowledge Engineering, Vol. 1, No. 1, 1991, 
  360.      pp. 9-20.
  361.  
  362. [9]  Schaefer, W., Panel: "Software Reuse: Is it Delivering?," Proceedings, 
  363.      13th ICSE, Austin, Texas, May 1991, pp. 52-61.
  364.  
  365. [10] Schank, R. C., and Ram, A., "Question-driven parsing - a new approach to 
  366.      natural language understanding," Journal of Japanese Society for 
  367.      Artificial Intelligence, Vol. 3, No. 3, 1988, pp. 260-269.
  368.  
  369. [11] Wang, Wei, and Hufnagel, Stephen, "An Application-Specific, Scenario-
  370.      Driven, Object-Oriented Software Development Technique (SSOOSDT)," in 
  371.      preparation for submittal to IEEE Transactions on Software Engineering.
  372.  
  373. [12] Wasserman, Anthony I., and Pircher, Peter A., "Customizing Object-Oriented
  374.      Structured Design for C++," Technical Paper, Interactive Development 
  375.      Environments, Inc., San Francisco, California, December 1990.
  376.