Page 133 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 133

Unit 6: Functional Design



            Abstraction  in  software  analysis,  design  and  development  is  to  reduce  the  complexity  to  a   Notes
            certain level so that the “relevant” aspects of the requirements, design and development may
            be easily articulated and understood. This starts with the requirements definition through the
            actual code implementation. In the three major activities of requirements definition, of design
            definition,  and  of  implementation  code  definition,  there  are  different  degrees  of  abstraction
            based on what is considered relevant and necessary. The general relationships of the individual
            world domain, the abstractions of those domain entities. The bold, vertical arrows represent the
            intra-transformations occurring within each individual world domain of requirements, design,
            and implementation. The horizontal arrows represent the inter-transformations occurring across
            those domains. In software engineering, we are concerned with both the horizontal and the
            vertical transformations. (See Figure 6.1)

                       Figure 6.1: Relationships Among Abstraction, Software Artifacts,
                                     and Individual World Domains

                 Specifications  Requirements        Design           Implementation
                 of                Document         Document              Code
                 abstractions



                 abstractions    Requirements        Design           Implementation
                                   Models of        Models of           Models of
                                  Abstraction       Abstraction        Abstraction


                  Individual world   User            Design             Executing
                    domains       Needs/Wants        Solutions          Software
                                                                         System

            Abstraction used in the form of a verb, as represented with bold vertical arrows in individual
            world domain to abstractions, would include the notion of simplification. Simplification represents
            the concept of categorizing and grouping domain entities into components and relating those
            components. We simplify by:
              (i)  Reduction and

              (ii)  Generalization.
            By reduction, we mean the elimination of the details. Generalization, on the other hand, is the
            identification and specification of common and important characteristics. Through these two
            specific subtasks of reduction and generalization we carry out the task of abstraction. The process
            of abstraction, we aim to simplify or decrease the complexity of the domain of software design
            solution by reducing the details  and  by generalization. One may view the well established
            concept of modularization in software engineering as a specific technique within the broader
            context of abstraction.

            The employment of abstraction in software engineering where we aim to reduce complexity
            is certainly not just limited to the domain of software design. At the early stage of software
            development, the requirements represent the needs and wants of the users and customers. The
            user requirement is represented in some form of the user business flow, user functional needs,
            user  information  flow, user  information  representation,  user  information  interface,  etc.  Each
            of these categories is an abstraction of the user world. Different degrees of abstraction may be
            employed Depending on the amount of details that need to be portrayed in the requirements.
            This intra-transformation is represented by the vertical arrow from user needs/wants domain
            to requirements models of abstraction.




                                             LOVELY PROFESSIONAL UNIVERSITY                                   127
   128   129   130   131   132   133   134   135   136   137   138