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 / wisr6 / proceedings / ascii / lubars.ascii < prev    next >
Text File  |  1993-10-19  |  27KB  |  534 lines

  1.  
  2.  
  3.  
  4.  
  5. Frameworks  Versus  Libraries:  A  Dichotomy  of  Reuse  Strategies
  6.  
  7.  
  8.  
  9.                                               Mitchell D. Lubars
  10.  
  11.  
  12.  
  13.                       Electronic Data Systems, Research and Development
  14.  
  15.                                         1601 Rio Grande, Suite 500
  16.  
  17.                                                Austin, TX 78701
  18.  
  19.                                               Tel:  (512) 477-1892
  20.  
  21.                                       Email:  lubars@austin.eds.com
  22.  
  23.  
  24.  
  25.                                                     Neil Iscoe
  26.  
  27.  
  28.  
  29.                       Electronic Data Systems, Research and Development
  30.  
  31.                                         1601 Rio Grande, Suite 500
  32.  
  33.                                                Austin, TX 78701
  34.  
  35.                                               Tel:  (512) 477-1892
  36.  
  37.                                        Email:  iscoe@austin.eds.com
  38.  
  39.  
  40.  
  41.                                                      Abstract
  42.  
  43.  
  44.        In  general,  setting  up  reuse  libraries  for  random  collections  of  software  components  has
  45.    not  been  a  very  effective  reuse  strategy  for  software  organizations.  Rather, most  examples
  46.    of successful reuse libraries actually consists of reusable components that are structured and
  47.    organized according to well-defined frameworks for their use. Often these frameworks correspond
  48.    to reusable architectures in a particular application domain, a common set of experiences inthe
  49.    software community, a set of standards or protocols, or awell-structured system layer.  One
  50.    situation where reuse with a random collections of components does seem to payoff, however,
  51.    is in the reuse of large scale components in a very large community,  such as that supported
  52.    by the Internet through FTP sites and shareware. This position paper discusses the problems
  53.    with random reuse libraries and the advantages offered by focusing on frameworks and domain
  54.    analysis for reusability.
  55.  
  56.  
  57.    Keywords: Reuse, framework, library, component
  58.  
  59.  
  60.    Workshop Goals: Networking, Advance state of theory.
  61.  
  62.  
  63.    Working Groups:  Domain analysis/engineering, Design guidelines for reuse, Reuse and OO
  64.    methods, Reuse and formal methods, Tools and environments, Reuse handbook, Education.
  65.  
  66.  
  67.  
  68.                                                      Lubars- 1
  69.  
  70.  
  71. 1      Background
  72.  
  73.  
  74.  
  75. The majority of our involvement in software reuse has been concerned with constructing systems
  76. to support software design reuse and researching domain analysis techniques and representations
  77. to  develop  reusable  software.  The  design  reuse  systems, IDeA,  ROSE-1, and  ROSE-2,  contain
  78. collections of design schemas, each of which is an abstract reusable design, similar in principle to
  79. reusable software architectures and frameworks.  The user interface system CRTForm is based on a
  80. framework of language-independent functions that provide a firewall between users and application
  81. programs.
  82.  
  83.  
  84. We are currently investigating domain modeling representations to express commonality in business-
  85. related application areas and exploring the use of formal techniques to check the consistency of the
  86. domain models and to use the models for generating domain-specific programs.
  87.  
  88.  
  89.  
  90. 2      Position
  91.  
  92.  
  93.  
  94. 2.1     Introduction
  95.  
  96.  
  97.  
  98. For many years now, a popular approach for starting a reuse program at an organization has been
  99. to set up a reuse library mechanism and encourage develop ersto contribute components to the
  100. library and search the library for components that they needin new situations.  In some cases,
  101. organizations have set up elaborate incentive programs to encourage people to contribute compo-
  102. nents (usually functions or classes) to and to look for components in those libraries.  Anecdotal
  103. evidence suggests that where these efforts have focused on random and spontaneous contributions
  104. of small components, the efforts have not generally been successful.  The major reasons for this lack
  105. of success are two fold.
  106.  
  107.  
  108.  
  109.     1. A  random collection of reusable components cannot be expected to seamlessly fit together
  110.        with the other components that someone is developing.
  111.  
  112.  
  113.     2. The  effort  to  search  a  large  collection  of  random  components  is  frequently  not  worth  the
  114.        expected reward (partly because of the first point).
  115.  
  116.  
  117.  
  118. Where  reuse  programs  have  been  most  successful, the  reusable  components  were  generally  con-
  119. structed  and  organized  according  to  a  well-defined  framework,  either  through  a  careful  domain
  120. analysis of an application domain, or through evolution of a large base of experience over the years.
  121.  
  122.  
  123. There is one intermediate reuse situation, however, where reuse libraries of randomly contributed
  124. components  do  seem  to  have  high  success  rates.   This  is  where  the  granularity  of  the  reusable
  125. components is very large, such as in the size of a subsystem,  supporting application domain,  or
  126. a complete mini-framework. There is significant anecdotal evidence to support the importance of
  127. this kind of reuse. In particular, the browsing of FTP sites, distribution of shareware, and simple
  128. cataloging schemes like Archie show that this type of reuse occurs at significant levels.
  129.  
  130.  
  131. This position paper discusses some of the properties and advantages of the reuse situations,  and
  132. its ramifications for library approaches.
  133.  
  134.  
  135.  
  136.                                                          Lubars- 2
  137.  
  138.  
  139. 2.2     The Problems with Most Random Reuse Libraries
  140.  
  141.  
  142.  
  143. When starting a reuse program in an organization, a very tempting technique is to create a library,
  144. provide some mechanisms for classifying the components and browsing the library, declare that the
  145. library exists, and encourage developers to contribute components.  These components are usually
  146. subroutines, functions, or classes. One theory is that as the library grows, the chances will increase
  147. that components that a programmer needs will be available in the library.  That will increase the
  148. likelihood that the programmer will look in the library for desirable components,instead of writing
  149. them himself.
  150.  
  151.  
  152. Often there is little intrinsic incentive to contribute to the library, so the organization may create
  153. extrinsic  incentives  to  encourage  programmers to  contribute  their  code,  such  as  providing  cash
  154. rewards. One of the problems that can result from this is that the library can fill up with lots of
  155. random, even poorly written, code that most programmers will never reuse.  Techniques to deal
  156. with these problems include library administrators to regulate what goes in the library, librarians
  157. to provide assistance, review boards to review the quality of reusable components,  and elaborate
  158. classification schemes to organize the library material.
  159.  
  160.  
  161. Although these techniques help somewhat, they don't address the real problem which is that any
  162. random piece of code, no matter how reusable and well-written, is unlikely to be reusable by itself
  163. in a new program. To be reused, the code often requires many other pieces of code to be reused at
  164. the same time or require that a lot of additional code be written to make the reused co de fit into
  165. the program.
  166.  
  167.  
  168. The underlying situation is that the original code was written to work in some framework that the
  169. programmer had in mind; an architecturefor the program he was developing or some understanding
  170. about how many pieces of code work together to accomplish anob jective. While it is true that
  171. high cohesion and low coupling increase the reusability of a piece of software, it is unusual that any
  172. small piece of code accomplishes something useful completely on its own. The way thatthe piece is
  173. used, and how it interfaces to the other components, is embedded in the framework for that piece.
  174.  
  175.  
  176. Often object-oriented advocates say that objects are inherently reusable and object-orientedpro-
  177. gramming techniques promote reusability.  There is some truth to this in that objects package a set
  178. of related methods together so that each object embodies a mini-framework. However, this usually
  179. isn't enough, since an object-oriented program consists of a large set of collaborating objects to
  180. accomplish shared responsibilities.  In this view, individual objects are often not reusable unless
  181. their object-oriented framework and related objects are also reused. A single object is still rarely
  182. reusable all by itself.
  183.  
  184.  
  185.  
  186. 2.3     What is a Software Framework?
  187.  
  188.  
  189.  
  190. A framework is a set of principles that describe how a set of software components interact with
  191. one  another  to  accomplish  a  set  of  shared  responsibilities.  Often  frameworks  are  considered  to
  192. be  synonymous  with  architectures.  There  is  a  subtle  distinction, however.   An  architecture  is
  193. concerned more with the physical layout, such as allocation to modules, processes and processors,
  194. the aggregation and scoping of components, and the physical nature of communication between
  195. the  pieces.  Frameworks  are  more  concerned  with  the  conceptual  nature  and  conventions  of  the
  196. communication between the pieces and their inter-dependencies.  Both frameworks and architectures
  197. are related to one another and both affect reusability.  For the purpose of this discussion, framework
  198. will be used to generally refer to all communication and dependency issues (both conceptual and
  199.  
  200.  
  201.                                                          Lubars- 3
  202.  
  203.  
  204. physical).
  205.  
  206.  
  207. There are also several varieties of frameworks,  which focus on different kinds of dependency and
  208. communication issues. Some are more concerned with constructing components that worktogether
  209. as units to accomplish higher-level responsibilities. These often correspond to modules, or program
  210. subsystems, or supporting domains.  For example, frameworks may be available for constructing
  211. databases,  device  drivers,  or  file  systems.  These  frameworks  normally  prescribe  ways  that the
  212. components must be interconnected to solve problems.  They also tend to be rather application-
  213. specific.
  214.  
  215.  
  216. Most object-oriented frameworks [1, 2 ] are of this type.  They define the abstract classes that must
  217. be in the system and the protocol that must be supported between those classes. Each concrete
  218. class  must  support  the  protocol  and  a  set  of  such  concrete  classes  must  be  reused  together  to
  219. support the framework.  A given concrete class isnot reusable by itself, because it only provides
  220. part of the framework's protocol.
  221.  
  222.  
  223. Another type of framework defines a set of components that may be used together to solve prob-
  224. lems, but it is up to the user to compose the components together.  Often these frameworks are
  225. constructed  to  provide  an  orthogonal,  but  composable,  set  of  behaviors.   Typical  examples  are
  226. well-engineered subroutine or class libraries, such as math libraries,  window-system libraries, and
  227. statistical  packages.  Usually  these  frameworks  can  be  thought  of  as  providing  a  layer, abstract
  228. machine, or supporting domain in a complex system.
  229.  
  230.  
  231. Another  type  of  framework  defines  and  enforces  a  set of  standards  in  some  domain.   To olkits,
  232. such as Motif, which supports a common look and feel, or proto col-supp orting libraries are typical
  233. examples of these frameworks. These frameworks may also be thought of as providing a layer or
  234. supporting domain in a complex system, with additional supporting policy.
  235.  
  236.  
  237.  
  238. 2.4     Most Successful Reuse Libraries are Frameworks in Disguise
  239.  
  240.  
  241.  
  242. Most examples of successful reuse libraries are actually well-engineered frameworks,  rather than
  243. random reuse libraries. Math libraries and statistical packages are based on a mature understanding
  244. of subject matter, which has evolved over many years. Well before the packages were written,there
  245. was general agreement in the math and engineeringcommunities of what the useful functions would
  246. be.  Providing  consistent  typing  and  nomenclature  further  makes  these  libraries  into  a  coherent
  247. framework. Had the functions been provided in a library,but with random interfaces, the functions
  248. would have been considerably less reusable.
  249.  
  250.  
  251. Similarly, data structure function and class libraries support frameworks.  The set of useful data
  252. structure and common operations on them (such as searching and sorting) have been well-known
  253. and taught for many years. In addition, providing some unifying principles, such as viewing them
  254. as different kinds of collections with some common attributesand op erations, further strengthens
  255. the framework. When someone reuses a data structure, he is not reusing a single class or a small
  256. set of functions, but he is reusing the knowledge of the data structure and the set of principles for
  257. using data structures that he shares with all other computer scientists.
  258.  
  259.  
  260. Many other examples of reuse success stories, suchas the Toshiba software factory [3] and similar
  261. examples in Japan and the U.S. [4], are also really framework successes. These successes occur in
  262. application domains in which the organizations have considerable experience in developing similar
  263. applications. Over the years, a framework (orarchitecture) is developed for the application domain,
  264.  
  265.  
  266.  
  267.                                                          Lubars- 4
  268.  
  269.  
  270. which is embodied in the expertise of the developers. When these developers contribute components
  271. to the reuse library, they are not contributing random components.  Instead they are contributing
  272. components that they know will fit within the framework for their domain.
  273.  
  274.  
  275. Similarly, when  developers  look  for  reusable  components,  they  are lo oking for  something  that
  276. fits  into  a  specific  portion  of  the  framework.  They  are  not  browsing  through  a large  collection
  277. of  randomly  contributed  components.  Thus, cataloging  components  and  searching  through  the
  278. framework-supporting library are not serious problems,as they might be for a random reuse library.
  279.  
  280.  
  281.  
  282. 2.5     Reuse of Random Large Scale Components
  283.  
  284.  
  285.  
  286. The general thesis of this position paper has been that reuse of a random collection of software
  287. components does not work well. There is, however, a significant counter-example. That example
  288. has to do with reuse of random software componentsacross the Internet and through shareware.
  289.  
  290.  
  291. Many reusable pieces of software are available at a variety of FTP sites across the U.S. and even
  292. other countries.  Many p eople regularly browse these FTP sites looking for reusable software.  In
  293. some cases, they are looking for software tomeet a sp ecific need, and in some cases they are simply
  294. looking for interesting software that they might experiment with and maybe find a use for later
  295. on.  There aresome primitive means for cataloging and organizing this information, such as local
  296. hierarchical file system structures at each FTP site and Archie for cataloging and querying.
  297.  
  298.  
  299. Other reusable software is available through computer news groups, distribution tapes, and other
  300. shareware sources. Much of this software is poorly cataloged, if cataloged at all. Yet people go to
  301. the trouble to make it available and search it for useful components.
  302.  
  303.  
  304. The  big  question  is  why  is  this  completely  ad  hoc  and  voluntary  reuse  process  successful  when
  305. so many attempts to set up random reuse libraries in organizations have failed?  There are three
  306. primary reasons for its success.
  307.  
  308.  
  309.  
  310.     1. Each  component  embodies  a  framework  so  that  it  can  usually  be  reused  by  itself.  The
  311.        components do not require reusing a significant set of other components at the same time.
  312.  
  313.  
  314.     2. The components are rather large.  It would take a substantial amount of work and time to
  315.        reconstruct the components from scratch.
  316.  
  317.  
  318.     3. The availability of the reusable components is almost unlimited,but the actual reuse rates are
  319.        small.  However, taken together these variables make theabsolute amount of reuse significant.
  320.  
  321.  
  322.  
  323. The fact that the components are large-scale is significant. People are much more willing to look
  324. for a reusable piece of software in a random collection that will save them a substantial amount of
  325. development effort, than they are for a small function or ob ject.  But this by itself is not sufficient.
  326. In  addition, the  component  must  stand-alone.   It  must, by  itself,  emb ody  a  useful  framework
  327. that people want to reuse,  such as a graphic editor,  a paint program,  a spreadsheet program,  a
  328. protocol library, a language interpretor, a compiler, or a window toolkit.  Frequently,  these large
  329. scale reusable components correspond to supporting domains, modules, or subsystems.  Inmany
  330. cases, people are even more interested in reusing the frameworksthan the actual code.  They are
  331. interested in how the editor works or what the protocol is, rather than (or in addition to) the code.
  332. These issues together provide a large granularity of reusability.
  333.  
  334.  
  335.  
  336.                                                          Lubars- 5
  337.  
  338.  
  339. The wide availability of theco de is also significant.  First,because the code is so widely distributed,
  340. there is often some increased confidence (even though this isoften misguided) that the code is widely
  341. used and perhaps more reliable than code in a more localized random library.  This increases the
  342. chance that people are willing to try it out.  Evenif it do esn't work right, there is a belief that
  343. someone will soon post a fix or an improved version of it. A corollary to this principle is that if
  344. someone is willing to distribute their software that widely, they must have a significant level of
  345. pride in it, and they must have spent alot of time to engineer it for reusability.
  346.  
  347.  
  348. Another consequence of the wide availability is that if only one out of 1000 programmers who have
  349. access to the software uses it, that would amount to very significant reuse. That is simply not true
  350. for reuse libraries in any single organization. For mostorganizations, if one out of 1000 programmers
  351. reuse any software component in the library, the library would be considered a dismal failure. Indeed
  352. it is likely that reuse rates for most reusable components inthe Internet and shareware sources are
  353. quite low; much lower than would be cost effective within any one organization.
  354.  
  355.  
  356.  
  357. 2.6     Conclusions
  358.  
  359.  
  360.  
  361. The overall conclusion of this position paper is that organizations thatare interested in starting a
  362. reuse program should not attempt to construct a library and populate it with a random collection
  363. of reusable components. Rather, they should conduct a domain analysis of their application domain
  364. (or domains) to determine a framework or architecture for the domain,  and then only construct
  365. reusable components that fit within that framework. If they take this approach, then the problems
  366. of cataloging, searching, and retrieving components in a library can b ereduced or even obviated.
  367.  
  368.  
  369. These conclusions are not particularly novel, as is evidenced by the increasing interest in domain
  370. analysis in recent years [5, 6 , 7 , 8 ]. Unfortunately, there still tend to be many examples of organi-
  371. zations and researchers heading back down the path of building better tools and techniques to aid
  372. in constructing yet more random reuse libraries. This is witnessed by a continuing stream of new
  373. papers in the literature and questions on harvesting reusable componentsfrom p oor legacy code,
  374. new variations of software cataloging and retrieval techniques, and new incentive strategies to make
  375. programmers contribute to reuse libraries. Many of these efforts could be better directed to helping
  376. organizations discover the frameworks underlying their application domains and engineering the
  377. components to work together within the framework, or to constructing and organizing large-scale
  378. reusable components in the software community at large.
  379.  
  380.  
  381.  
  382. 3      Comparison
  383.  
  384.  
  385.  
  386. The framework concepts presented in this position paper are similar to the ob ject-oriented frame-
  387. works  advocated  by  Peter  Deutsch  [1 ],  Johnson  and  Foot  [2 ],  and  others.  Another  similar  area
  388. is that of domain-specific software architectures(DSSA), which provide reusable architectures for
  389. specific application domains.
  390.  
  391.  
  392. The  design  schemas  that  are  used  in  the  IDeA [9],  ROSE-1  [10 ],  and  ROSE-2  [11 ]  design  reuse
  393. systems are also similar to frameworks. In addition, they contain constraints and inference rules to
  394. choose consistent design components and semi-automatically customize abstract designs.  Similar
  395. techniques to reusable design schemas include theplan calculus techniques used in the Programmer's
  396. Apprentice project [12 ] and subsequent work includingthe Requirement's Apprentice [13 ].
  397.  
  398.  
  399.  
  400.                                                          Lubars- 6
  401.  
  402.  
  403. The user interface system CRTForm [14 ] is also based on a framework, supplying language-independent
  404. functions that provide a firewall between users and application programs. Another framework-based
  405. software reuse system that is similar to IDeA, ROSE-1, ROSE-2, and CRTForm is GENESIS [15],
  406. which generates different kinds of databases systems based on a reusable database architecture.
  407.  
  408.  
  409. Our  domain  modeling  work  at  the  EDS Research  Lab  is  also  similar  to  other  work  in  object-
  410. oriented frameworks, but focuses more on the data modeling aspects of frameworks, such as the
  411. data constraints and rules that apply to all programs withinan application domain.
  412.  
  413.  
  414.  
  415. References
  416.  
  417.  
  418.  
  419.   [1] L. Deutsch, "Design Reuse and Frameworks in the Smalltalk-80 System," in SoftwareReusabil-
  420.       ity Volume II: Applicationsand Experience (T. J. Biggerstaff and A. J. Perlis, eds.), pp.57-71,
  421.       Addison Wesley, 1989.
  422.  
  423.  
  424.   [2] R. Johnson and B. Foot, "Designing Reusable Classes," Journal of Object-Oriented Program-
  425.       ming, vol. 2, pp. 22-35, June/July 1988.
  426.  
  427.  
  428.   [3] Y. Matsumoto, "Some Experiences in Promoting Reusable Software: Presentation in Higher
  429.       Abstract Levels," in Software Reusability Volume II: Applications and Experience (T. J. Big-
  430.       gerstaff and A. J. Perlis, eds.), pp. 157-185, Addison Wesley, 1989.
  431.  
  432.  
  433.   [4] R. Lanergan and C. Grasso, "Software Engineering with Reusable Design and Code," IEEE
  434.       Transactions on Software Engineering, vol. SE-10, pp. 498-501, September 1984.
  435.  
  436.  
  437.   [5] R. Prieto-Diaz, "Domain Analysis for Reusability," in Proceedings of COMPSAC '87, pp.23-
  438.       29, 1987.
  439.  
  440.  
  441.   [6] G.  Arango,  "Domain  Analysis:  From  Art  to  Engineering  Discipline,"  in  Proceedings Fifth
  442.       International Workshop on Software Specification and Design, pp. 152-159, May 19-20 1989.
  443.  
  444.  
  445.   [7] K. Kang, S. Cohen, J. Hess, W. Novak, and A.Peterson, "Feature-Oriented Domain Analysis
  446.       (FODA) Feasibility  Study," Tech. Rep. CMU/SEI-90-TR-21, Software Engineering Institute,
  447.       November 1990.
  448.  
  449.  
  450.   [8] M. Lubars, "Domain Analysis and Domain Engineering in IDeA," in Domain  Analysis  and
  451.       Software  systems  Modeling  (R.  Prieto-Diaz  and  G.  Arango,  eds.),  IEEE  Computer  Society
  452.       Press, 1991.
  453.  
  454.  
  455.   [9] M. Lubars, "A Knowledge-Based Design Aid for the Construction of Software Systems," Tech.
  456.       Rep. UIUCDCS-R-86-1304, Department of Computer Science, University of Illinois, Urbana,
  457.       IL., November 1986.
  458.  
  459.  
  460. [10]  M. Lubars, "Wide-Spectrum Support for Software Reusability," in IEEE Tutorial, Software
  461.       Reuse: Emerging Technology (W. Tracz, ed.), pp. 275-281, The Computer Society of the IEEE,
  462.       1988.
  463.  
  464.  
  465. [11]  M. Lubars and M. Harandi, "Addressing Software Reuse Through Knowledge-Based Design,"
  466.       in Software Reusability VolumeII: Applications and Experience (T. J. Biggerstaff and A. J.
  467.       Perlis, eds.), Addison Wesley, 1989.
  468.  
  469.  
  470. [12]  C. Rich, "A Formal Representation for Plans in the Programmer's Apprentice," in Proceedings
  471.       of the Seventh International Joint Conference on Artificial Intelligence, (Vancouver, Canada),
  472.       August 1981.
  473.  
  474.  
  475.                                                          Lubars- 7
  476.  
  477.  
  478. [13]  C. Rich, R. Waters, and H. Reubenstein, "Toward a Requirements Apprentice," inProceedings
  479.       of the Fourth International Workshop on Software Specification and Design, (Monterey, CA),
  480.       April 1987.
  481.  
  482.  
  483. [14]  N. Iscoe, "CRTForm: An Object-Oriented Application Development System Using Type and
  484.       Type-Type Managers," Tech. Rep. Masters Report, Department of Computer Sciences,  Uni-
  485.       versity of Texas, Austin, TX., August 1986.
  486.  
  487.  
  488. [15]  D. Batory and A. Buchmann, "Molecular Objects, Abstract Data Types, and Data Models: A
  489.       Framework," in Proceedings of the Tenth International Conference on Very Large  Databases,
  490.       (Singapore), pp. 172-184, August 1984.
  491.  
  492.  
  493.  
  494. 4      Biography
  495.  
  496.  
  497.  
  498. Mitchell D. Lubars is a research scientist at Electronic Data Systems, Research and Development
  499. in Austin Texas. He is part of a team developing a domain modeling languageand to olsto supp ort
  500. the application-specific domain modeling needs within EDS. He also provides part-time consulting
  501. in the areas of software reusability, domain analysis, and object-oriented analysis and design.
  502.  
  503.  
  504. Prior to coming to EDS, Dr.  Lubars was a member of the technical staff at MCC for six years,
  505. working in the areas of software designreusability and requirements analysis.  While at MCC, he
  506. developed the ROSE-1 and ROSE-2 design reuse systems.
  507.  
  508.  
  509. Dr.  Lubarsreceived the A.B. degree in biology from Cornell University, in 1977. He received the
  510. M.S. and Ph.D. degrees in computer science from the University of Illinois at Urbana-Champaign,
  511. in 1980 and 1986 respectively. He is a member of the Association for Computing Machinery, the
  512. IEEE Computer Society, and AAAI.
  513.  
  514.  
  515. Neil Iscoe is director of the EDS Austin Laboratory for Software Engineering and Computer Sci-
  516. ence, which is part of the Electronic Data Systems Research and Development organization. Prior
  517. to EDS, Iscoe had extensive experience with large industrial applications at MCC(Microelectronics
  518. and Computer Consortium). He conducted field studies and performed analyses of large software
  519. projects in application domains such as telephony, command and control, manufacturing, avionics,
  520. and other real time distributed application areas. Prior to MCC, he served as president of Statcom
  521. Corporation, a company that produced and marketed a line of CASE tools and provided consult-
  522. ing services for programming companies. As a founder of the company, Iscoe designed the initial
  523. product and also served as the company's technicaldirector.
  524.  
  525.  
  526. Dr. Iscoe received his Ph.D. and M.S. in Computer Sciences from the University ofTexas at Austin,
  527. in  1990  and  1988  respectively, and  his  undergraduate  engineering  degree from  the  University  of
  528. Wisconsin in Madison in 1977.  He serves as an adjunct assistant professor at the University of
  529. Texas.
  530.  
  531.  
  532.  
  533.                                                          Lubars- 8
  534.