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 / dunn.ascii < prev    next >
Text File  |  1993-10-19  |  18KB  |  377 lines

  1.  
  2.  
  3.  
  4.  
  5.                 Creating  And  Using  An  Industrial  Domain  Model
  6.  
  7.  
  8.  
  9.                             Michael F. Dunn                                   John C. Knight
  10.  
  11.  
  12.  
  13.                   Industrial Software Technology                          University of Virginia
  14.  
  15.                          Earlysville, VA 22936                         Charlottesville, VA 22903
  16.  
  17.                           Tel: (804) 978-7475                               Tel:  (804) 982-2216
  18.  
  19.                      Email: mfd3k@virginia.edu                        Email: knight@virginia.edu
  20.  
  21.  
  22.  
  23.                                                          Abstract
  24.  
  25.  
  26.            A successful reuse process requires a set of well-understood domain models. Creating these
  27.        models,  however,  can  be  an  extremely  difficult  task,  requiring  a  great  deal  of  information-
  28.        gathering and formatting.  In this paper, we discuss two aspects of a method we have been
  29.        developing to cope with these complexities.  First, we discuss our work in devising a metho d
  30.        by which unstructured domain information can be gathered. Second, we discuss the format in
  31.        which we capture domain knowledge, and how this knowledge can then be used. The challenges
  32.        we have encountered while using this method in an industrial environment are also discussed.
  33.  
  34.  
  35.        Keywords: Reuse, domain analysis, domain modeling, practice.
  36.  
  37.  
  38.        Workshop Goals: Learning; networking; sharing domain modeling experience.
  39.  
  40.  
  41.        Working Groups: Domain analysis/engineering, Reusable component certification, Tools and
  42.        environments.
  43.  
  44.  
  45.  
  46. ___________________________________________________
  47.      We thank Motorola, Inc. for their generous financial and technical support for this research.
  48.  
  49.  
  50.                                                           Dunn- 1
  51.  
  52.  
  53. 1      Background
  54.  
  55.  
  56.  
  57. Domain analysis and modeling are generally agreed to be crucial first steps to developing an or-
  58. ganized software reuse process. The abstract nature of these two processes, however, has been a
  59. major source of difficulty for organizations considering introducing reuse.
  60.  
  61.  
  62. The  authors'  involvement in  domain  analysis  and  modeling  stems  not  only  from  an  interest  in
  63. facilitating  component-based  reuse  processes, but  also  from  a  desire  to  create  a  framework  by
  64. which components can be certified. Once a cohesive model is created for a family of systems built
  65. by an organization, the qualitycriteria to which each family member must adhere can be identified.
  66.  
  67.  
  68.  
  69. 2      Position
  70.  
  71.  
  72.  
  73. 2.1     Introduction
  74.  
  75.  
  76.  
  77. Performing a domain analysis can require an arduous amount of work;  it usually requires sifting
  78. through often-incomplete system documentation, examining large sections of application code, and
  79. interviewing busy technical experts. This diverse, unstructured information must then be tied to-
  80. gether into a cohesive model. A complicating factor is the issue of whoshould p erform the analysis.
  81. If the analysis is performed by one who is unfamiliar with the domain,then it is often difficult for
  82. that person to distinguish what domain information is important from a reuse standp oint.  Conse-
  83. quently, the analyst is often required to become a domain expert in his own right in order to do an
  84. adequate job. However, a similar situation can exist when a domain expert performs the analysis.
  85. The  expert  can  have  such  detailed  knowledge  of  the  domain  that  he  might  have  a  tendency  to
  86. add too much information to the analysis, clouding the resulting model.  Also, the exp ert will often
  87. have a tendency to carry a great deal of conceptual baggage from previous system implementations,
  88. constraining the analysis to information on how systems have been built in the past, rather than
  89. on how they should be built under a reuse-based process.
  90.  
  91.  
  92. Creating a domain model based on the information gathered during the domain analysis is also a
  93. major hurdle.  The first problem is a carry-over from the domain analysis:  namely, determining
  94. what domain knowledge is important enough to include in the mo del,and what information should
  95. be discarded. The second issue is that of structuring the model for maximum usefulness. A domain
  96. model which includes useful information but which is not formatted carefully will be difficult to
  97. use and end up on the engineer's shelf.
  98.  
  99.  
  100. The authors have recently been involved with a domain modeling project with a large industrial
  101. organization, where these issues came to the forefront. A major part of this project was to devise
  102. a "domain modeling cookbook", that is, a generic process for performing a domain analysis, and
  103. capturing that information in a standardized format. The goal was for this process to be flexible
  104. enough  to  be  used  by  any  industrial  organization, but  rigorous  enough  that  it  was  clear  what
  105. information is important, and how that information should be organized.  The next several sections
  106. describe the results of this work, and the insights gained.
  107.  
  108.  
  109.  
  110.                                                           Dunn- 2
  111.  
  112.  
  113. 2.2     Performing A Domain Analysis
  114.  
  115.  
  116.  
  117. The organization with which we collaborated was resp onsiblefor developing test harnesses for the
  118. software that drives telephone switches manufactured by the company. The organization is staffed
  119. by about twenty-five software engineers, and is responsible for about ten large test tools.
  120.  
  121.  
  122. Much of the up-front analysis work was based on the results of a questionnaire completed by the
  123. organzation's  technical  staff.  This  questionnaire  was  intended  to  introduce  the analysts  to  the
  124. organization's mission,  product line,  current development process,  current tools and methods to
  125. support their process, and current status of their reuse activities.  The questionnaire was a necessary
  126. first step in large part because of the physical distance separating theanalysts and the programmer
  127. community. The two groups were several hundred miles away from each other,making it necessary
  128. to coordinate the initial analysis effort by telephone, email, and occasional sitevisits.
  129.  
  130.  
  131. The  answers  provided  to  the  questionnaire  laid  the  foundation  for  the  work  performed  during
  132. the  on-site  visits.  During  these  visits, meetings  were  held  with  members  of  the  technical  staff,
  133. management, process control, and quality assurance areas.  This gave a balanced view of the overall
  134. sofware production environment. Although the organization's customers were not included in the
  135. discussions, it also would have been useful to get insights into the customer's current needs, how
  136. these needs are likely to change over time, and how these needs would impact the set of reusable
  137. assets the organization should have available.
  138.  
  139.  
  140. Nevertheless, the content of the meetingswith the technical staff was most revealing. The discus-
  141. sions focused on the following areas:
  142.  
  143.  
  144.  
  145.     fflThe technical requirements of the product line.
  146.  
  147.  
  148.     fflThe decomposition of the domain into its subdomains.
  149.  
  150.  
  151.     fflCommon terminology used within the subdomains.
  152.  
  153.  
  154.     fflThe generic requirements of systems used within the subdomains.
  155.  
  156.  
  157.     fflThe set of components required to support systems built within these subdomains.
  158.  
  159.  
  160.  
  161. As a result of these discussions, a number of issues came tolight:
  162.  
  163.  
  164.  
  165. Terminology:         Members of the technical community often disagree on the meaning of common
  166.        terms  used  within  a  particular  domain, even  those  used  on  a  daily  basis.  The  term  "test
  167.        case", for example, a central concept in this domain, changes its meaning depending on the
  168.        level and type of testing being performed. Thus, two engineers are likely to have a completely
  169.        different notion of what constitutes a test case depending on the types of systems with which
  170.        they are familiar.  This highlights the importance of establishing working definitions for basic
  171.        domain concepts before attempting to gather detailed domain knowledge.
  172.  
  173.  
  174. Focus:     Different participants often have a different perspective on what is important to the domain.
  175.        Their perspectives are dictated, in large part, by the projects in which they have participated
  176.        most recently. Thus, information-gathering sessions can easily turn into debates over technical
  177.        side-issues unless the moderator maintains a clear focus.  However, if the moderator is not
  178.        familiar with the domain in question, it can be hard for him to realize when the discussion is
  179.        going astray.
  180.  
  181.  
  182.                                                           Dunn- 3
  183.  
  184.  
  185. Cohesive Viewpoint:             This issue is closely affiliated with the previous issue.  While staff members
  186.        have typically worked with several different system implementations, they often will not have
  187.        a  cohesive  view  of  the  similarities  and  differences  between  these  systems, and  the  major
  188.        functional  aspects  of  these  systems.  This  makes  it  difficult  to  identify  broad  categories  of
  189.        useful components.  Thistendency to get lost in the details makes a case for using an analyst
  190.        who  is  not  a  domain  expert,  since  he  will  only  have  a  high  level  view,  free  of extraneous
  191.        details.
  192.  
  193.  
  194.  
  195. In addition to questionnaires and interviews,strategic planning documents, system user guides, and
  196. a limited amount of source code analysis also proved useful in providing a picture of the domain's
  197. structure.
  198.  
  199.  
  200.  
  201. 2.3     Purposes of a Domain Model
  202.  
  203.  
  204.  
  205. The main purpose of a domain model is not simply to determine the set of reusable parts needed to
  206. support a model, it is also to create a conceptual framework in which these components can be used.
  207. This means creating a generic model that captures the salient features of systems developed within
  208. the domain. An example of such a generic model is the one often used to explain the five phases of
  209. program compilation: lexing, parsing, semantic analysis, code generation, and optimization. Most
  210. compilers are not literally implemented with these phases insequence,  but the conceptual model
  211. gives implementers an idea of the basic features that need to be included in any compiler.
  212.  
  213.  
  214. Other purposes of a domain model include:
  215.  
  216.  
  217.  
  218.     fflTo serve as a basis from which component certification criteriacan b e derived.
  219.  
  220.  
  221.     fflTo  help  the  organization  determine  which  aspects  of  the  domain  are  best  served  by  using
  222.        software components, by using domain-specific languages, or by using application generators.
  223.  
  224.  
  225.     fflTo help the organization determine which aspects of its development pro cess are b est served
  226.        by reuse, and which are best served by other tools and process improvements.
  227.  
  228.  
  229.     fflTo highlight to the organization the specific factors that will influence the set ofparts needed
  230.        for future development.  This can include changes to the product line, changes in available
  231.        technology, and changes in the organization's mission.
  232.  
  233.  
  234.  
  235. 2.4     Structure And Use Of The Domain Model Document
  236.  
  237.  
  238.  
  239. We  structured  the  domain  model  document  so that  the  organizational  factors,  process  and  tool
  240. factors, and domain-specific factors of the domain were made explicit.  The goal wasto provide not
  241. only a model of the systems supported and developed by the organization,but also to provide insight
  242. into  how  they  could  be  developed  using  components, and  what  cost  savings  could  be  expected.
  243. Consequently, the document includes the following main sections:
  244.  
  245.  
  246.  
  247. Terminology:         This section defines the basic words and phrases used within the domain.
  248.  
  249.  
  250. Mission and Strategy:             This section describes the customer goals which the software organization
  251.        is commissioned to fulfill. It also highlights the potential changes in the customer community
  252.  
  253.  
  254.                                                           Dunn- 4
  255.  
  256.  
  257.        that  might  affect  these  needs.   A change  in  product  line,  for  example,  would  necessitate
  258.        changes in software, which would necessitate the development of new software components.
  259.        For each specified goal, either a set of reusable assets is listed that can satisfythe goal, or a
  260.        set of process improvements is listed that can better serve the goal.
  261.  
  262.  
  263. Process:      This  section  describ es  the  development  process  the  organization  can  use  to  facilitate
  264.        creating its target systems. The description includes the stages to be used in the development
  265.        process, and the roles of the participants in the process.
  266.  
  267.  
  268. Technological Infrastructure:               This  section  describes  the  set  of  tools  needed  to  support  the
  269.        development process, and maps tools to desired lifecycle work products.
  270.  
  271.  
  272. Domain Model:           This section,  which is the central part of the document, describes the generic
  273.        models  of  systems  developed  within  the  domain.  Each  model  is  broken  into  subdomains,
  274.        such  as  user  interface  or  report  generation.  Each  subdomain  is  then  broken  into  different
  275.        implementation  models.   For  example, the  subdomain  of  "user  interfaces"  would  include
  276.        such implementation models as graphical user interfaces and command-line interfaces. Each
  277.        implementation model is then broken into a description of the model, the trade-offs of using
  278.        the model within this domain, the possible failures that can occur as a result of using this
  279.        model, systems that have already been implemented by the organization that use thismo del,
  280.        and a list of potential components that have been or can be developed to support this model.
  281.  
  282.  
  283. Certification Criteria:           Identifies the criteria to be used in certifying the components identified
  284.        for the implementation models. The format used here is described by Dunn and Knight [1].
  285.  
  286.  
  287. Financial Justification:           Identifies the financial costs and benefits that can accrue from the devel-
  288.        opment of the identified reusable assets, and includes a schedule for implementing the assets
  289.        prioritized according to immediacy of need and highest financial benefit.
  290.  
  291.  
  292.  
  293. 3      Comparison
  294.  
  295.  
  296.  
  297. Our method currently relies heavily on manual effort and discussions with experts.  By contrast,
  298. Iscoe describes a process developed by EDS that relies heavilyon automated information gathering
  299. techniques  [2].  This  pro cess  takes  as  input  source  code,  formal mo dels, and  other  development
  300. assets, and produces sets of "specification models". Human expertise is used only to resolve ambi-
  301. guity.
  302.  
  303.  
  304. Tracz provides a comparisonof a number of different approaches to domain analysis and modeling
  305. [3].  Our experience bears out most of the observations noted ab out the similarities between these
  306. different approaches. Specifically,
  307.  
  308.  
  309.  
  310.     fflOne of our end results was a design model for the domain,
  311.  
  312.  
  313.     fflWe assumed the existence of previously developed systems within the domain,
  314.  
  315.  
  316.     fflThe resulting model did imply the existence of a layered underlying implementation architec-
  317.        ture,
  318.  
  319.  
  320.     fflThe process we used was highly iterative.
  321.  
  322.  
  323.  
  324.                                                           Dunn- 5
  325.  
  326.  
  327. A significant  part  of  the  Software  Productivity  Consortium's  (SPC) Synthesis  process  involves
  328. specifying tailorable requirements documentation, and creating sp ecificsource code comp onents to
  329. fit those requirements [4].  The SPC's domain analysis process has three parts - development of
  330. a conceptual framework for the domain, developmentof a reuse architecture, and development of
  331. product composition mappings.  In spite of the differences between these phases and the ones de-
  332. scribed in this paper, the desired end products of the two processes are quite similar - identification
  333. of specific software assets, and development of generic system models and specifications.
  334.  
  335.  
  336.  
  337. References
  338.  
  339.  
  340.  
  341. [1]  M.  Dunn  and J.  Knight,  "Certification  Of  Reusable  Software  Parts,"  Tech.  Rep.  CS-93-41,
  342.      University of Virginia, 1992.
  343.  
  344.  
  345. [2]  N. Iscoe, "Domain Modeling - Overview and Ongoing Research at EDS," in Fifteenth Interna-
  346.      tional Conference on Software Engineering, 1993.
  347.  
  348.  
  349. [3]  W. Tracz, "Domain Analysis Working Group Report - First International Workshop on Software
  350.      Reusability," ACM SIGSOFT Software Engineering Notes, vol. 17, pp. 27-34,July 1992.
  351.  
  352.  
  353. [4]  G.   C.   J.  S.   Faulk   and   D.   Weiss,   "Introduction   to   Synthesis,"   Tech.   Rep.   IN-
  354.      TRO_SYNTHESIS.90010-N, Software Productivity Consortium, June 1990.
  355.  
  356.  
  357.  
  358. 4      Biography
  359.  
  360.  
  361.  
  362. Michael F. Dunn is an independent consultant specializing in software reuse, especially domain
  363. analysis  and  asset  certification  issues.  He  has  worked  as  both  a  practitioner  and  researcher  in
  364. reuse-related topics for the past several years, and has been associated with companies as diverse
  365. as  IBM,  Sperry-Marine, and  Motorola.  He  received  his  B.S.  in  Computer  Science  in  1985  from
  366. Duke University, and his M.S. in Computer Science in 1990 from the University of Virginia.
  367.  
  368.  
  369. John C. Knight is a professor of Computer Science at the University of Virginia.  He joined the
  370. University of Virginia in 1981 and prior to that was with NASA's Langley Research Center. >From
  371. 1987 to 1989 he was on leave at the Software Productivity Consortium.  Hisresearch interests are
  372. in dependable computing and software reuse.
  373.  
  374.  
  375.  
  376.                                                           Dunn- 6
  377.