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