Page 142 - DCAP405_SOFTWARE_ENGINEERING
P. 142

Unit 8: Design Engineering




               other modules and thousands of other details that he cannot possibly worry about at the  Notes
               same time.

              A  modular  design  reduces  the design  complexity  and  results  in  easier  and  faster
               implementation by allowing parallel development of different parts of a system.

          8.6 Keywords

          Coupling: Coupling is an internal software attribute that can be used to indicate the degree of
          interdependence among the components of a software system.
          Dependency Inversion Principle: Dependency Inversion Principle states that we should decouple
          high level modules from low level modules.

          Design Patterns: A software design pattern describes a family of solutions to a software design
          problem.
          Modular Design: A modular design reduces the design  complexity and results in easier and
          faster implementation by allowing parallel development of different parts of a system.

          8.7 Review Questions

          1.   In software engineering why do we desperately need good design at all levels?
          2.   Explain with example that how the modular design reduces the design complexity?

          3.   “Software Design is more an art than a science.” Analyze.
          4.   Clients should not be forced to depend upon interfaces that they don’t use. Explain.
          5.   Discuss the set of guidelines provided by the  software design principles that helps  to
               avoid having a bad design.
          6.   Dependency Inversion and Inversion of Control have the same meaning? Why or why
               not? Explain briefly.

          7.   A good design is the one that has low coupling. Explain.
          8.   Engineering is more about how you do the process than it is about what the final product
               looks like. Discuss.

          9.   The design of  software is  often depicted by graphs  that show  components and their
               relationships. Comment.
          10.  “Two modules that are tightly coupled are strongly dependent on each other.” Explain
               why?

          Answers: Self  Assessment

          1.   planning                          2.  complexity
          3.   software                          4.  domains

          5.   Software development              6.  details
          7.   substitutable                     8.  build/test
          9.   problem                           10.  run-time
          11.  documenting                       12.  Class diagrams





                                           LOVELY PROFESSIONAL UNIVERSITY                                   135
   137   138   139   140   141   142   143   144   145   146   147