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