Page 140 - DCAP405_SOFTWARE_ENGINEERING
P. 140

Unit 8: Design Engineering




               software system by adding more details over time. Class diagrams are important because  Notes
               they represent the static structure of a software system, and therefore we design a UML
               profile extending the UML meta model to support class diagram refinement.
               Refactoring: Refactoring is a disciplined technique for restructuring an existing body of
               code, altering its internal structure without changing its external behavior. Its heart is a
               series of small behavior preserving transformations. Each transformation (called a
               ‘refactoring’) does little, but a sequence of transformations can produce a significant
               restructuring. Since each refactoring is small, it’s less likely to go wrong. The system is
               also kept fully working after each small refactoring, reducing the chances that a system
               can get seriously broken during the restructuring.” [Martin Fowler] Refactoring is used to
               improve code quality, reliability, and maintainability throughout the software lifecycle.
               Code design and code quality are enhanced with refactoring. Refactoring also increases
               developer productivity and increases code reuse.

               Design Classes: Class diagrams are an aspect of UML that describe a static design of the
               objects, and their relationships to each other, in an application. During analysis, class
               diagrams may just be the names of objects and how they interact, but as the design develops
               the details of each class, including attributes and methods, are displayed in the diagram. A
               class is represented by a rectangle divided into three rows. The top row contains the name
               of the class. The middle row lists the attribute names, while the third row lists the method
               names for the class. There are two major relationships that can exist between classes:
               inheritance and association. Inheritance, also know as generalization, describes a
               superclass/subclass relationship. An empty arrow that points from the subclass to the
               superclass represents a generalization relationship.

          Self Assessment

          Fill in the blanks:
          8.   A software design must be represented in some programming language, and then validated
               and refined via a …………………… cycle.
          9.   Software design involves inventing software concepts to model concepts in a ………………..
               space.
          10.  Behavioral models are especially useful in assessing ………………… qualities such as
               performance and security.
          11.  Execution views help in evaluating physical distribution options and ……………………..
               and communicating decisions.

          12.  …………………… are important because they represent the static structure of a software
               system.
          13.  Measures which are more objective and amenable to ………………… collection are required
               for systems of realistic size.
          14.  ………………… is a measure of internal module strength while coupling describes the
               strength of inter-module relationships.

          15.  The protection involves providing a stable interface which protects the remainder of the
               program from the …………………….










                                           LOVELY PROFESSIONAL UNIVERSITY                                   133
   135   136   137   138   139   140   141   142   143   144   145