Page 174 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 174

Principles of Software Engineering



                   Notes         sample of existing program design languages. Finally, a new POL Environment is proposed for
                                 further consideration. Index Terms - design tools program design languages, formally defined
                                 design constructs, software reusability, software metrics, PDL Environment.
                                 The  Unified  modelling  Language  (UML)  has  various  types  of  diagrams  to  model  different
                                 properties, which allow both static be used to show how a scenario is implemented by involving
                                 different objects. Using the UML notation, object oriented designs of a system can be created.
                                 The object-oriented design methodology focuses on identifying classes and relationships between
                                 them, and validating the class definitions using dynamic and functional modeling.
                                 Self Assessment Questions
                                    1.  Decomposition criteria are:

                                       (  a)  Application generators
                                       (  b)  Database management systems
                                       (  c)  Human-computer interaction utilities
                                       (  d)  Does the module have low cohesion?
                                    2.  In the DD phase developers may have to:
                                       (  a)  Application generators   (b)  decide which library modules to use
                                       (  c)  Mathematical utilities   (d)  Graphical utilities

                                    3.  The principle of mutual suspicion says that modules should assume other modules contain
                                      errors.
                                       (  a)  Mutual suspicion         (b)  Immediate detection
                                       (  c)  Redundancy               (d)  None of these

                                    4.  The optimization process is to:
                                       (  a)  Human-computer interaction utilities
                                       (  b)  decide which library modules to use
                                       (  c)  measure the attribute values before modifying the software
                                       (  d)  Graphical utilities
                                    5.  A significant usage of program design languages as a design tool in practical environments
                                      has surfaced in recent years.
                                       (  a)  True                     (b)  False

                                 8.3 Logic and Algorithm Design

                                 Algorithms  and  Logic  section  is  the  technical  basis  for  constructing  healthy,  efficient,  and
                                 intelligent software applications based on mathematically sound solutions. Two crucial aspects
                                 when designing efficient software are large data sets and essentially hard problems. The naive
                                 algorithm or data structure usually only suffices for solving small scale problems. A simple
                                 search engine can easily index the contents of a drive on a personal computer, but indexing the
                                 web is much more difficult. Similarly, an autonomous robot can plan its actions optimally by an
                                 exhaustive state space search only if the number of possible actions and states is very limited.
                                 Thus  more  advanced  algorithms/methods  are  needed  to  solve  these  problems.  In  software
                                 applications for complex problems, often some degree of intelligence is needed in addition to
                                 efficiency. Intelligence means that the software is able to collect and categorize knowledge, do
                                 logical reasoning, learn from experiences, and communicate and negotiate with other software




        168                               LOVELY PROFESSIONAL UNIVERSITY
   169   170   171   172   173   174   175   176   177   178   179