Page 237 - DCAP405_SOFTWARE_ENGINEERING
P. 237

Software Engineering




                    Notes          Reuse

                                   Domain analysis is not a one-shot affair. Product definitions evolve continuously. The
                                   development of a particular system that exploits previously accumulated domain knowledge
                                   can be the source for new insights about the domain that adds to or refines codified domain
                                   knowledge. In analogy to the emergence of domain-specific code libraries, we foresee the
                                   development of domain-specific analysis concept repositories, linked ultimately to code via
                                   domain-specific design repositories. The following diagram explains the interactions:
                                        Intial domain analysis





                                                             domain            domain            domain
                                                            concepts          constructs          code





                                        Requirements         Analysis          Design        Implementation






                                                                               Generic           Generic
                                                                              constructs          code



                                   Functional model components are the primary outputs of a domain analysis. The feedback
                                   loops explain/prescribe that the outputs of the different phases are to be abstracted and added to
                                   the domain repositories. The “bird-feet” lines in the diagram that are attached to the repositories
                                   express their interconnections. For example, a domain analysis concept can have multiple
                                   realizations in the design repository. Similarly, a domain construct can have multiple realizations
                                   in the corresponding code repository, where each realization satisfies different auxiliary
                                   requirement trade-offs.
                                   Domain analysis is the spearhead for disciplined reuse in software development. This is quite
                                   obvious for the generator version of domain analysis, but applies as well to the two weaker
                                   versions. An organization for system development will be complemented, when cost effective,
                                   by an organization that maintains and manages domain-specific repositories. OO analysis has
                                   much to offer to domain analysis from a technical perspective. However the sociological, cultural
                                   and organizational problems of realizing a cost effective reuse program that underlies our
                                   diagram extend beyond the technical dimension. This has led to the widespread adoption of
                                   reuse-based strategies in OO design and programming efforts. However, these practices remain
                                   incomplete without equally prevalent adoption of a reuse-based engineering discipline at the
                                   requirements and analysis levels.












          230                               LOVELY PROFESSIONAL UNIVERSITY
   232   233   234   235   236   237   238   239   240   241   242