Software Engineering Axioms
Software Engineering Axioms
Software Engineering Axioms
Lecture 2
Aamir Anwar
1/ 18
Outline
Introduction
FunctionalIndependence
Design Errors
2/ 18
Design Concepts
Abstraction
• Concentrate on a a problem at some level of generalization
without regard to irrelevant low leveldetails.
Refınement
• Top down design strategy that successively refınes the levels of
procedural details.
• Every refınement step involves Design Decisions.
Modularity
• Divide the software into separately named and addressable
components, that are integrated to satisfy the problem requirements.
3/ 18
Modularity
• Easier to manage
• Easier to understand
• Reduces complexity
• Delegation / division of work
• Fault isolation
• Independent development
• Separation of concerns
• Reuse
4/ 18
Modular Design
5/ 18
Information Hiding
6/ 18
Information Hiding
person1.age=25;
7/ 18
Functional Independence
8/ 18
Cohesion
9/ 18
Coupling
10/ 18
Design ErrorsI
Incorrectness
• The design does not meet the users‘ requirements on
its functionality and features.
Inconsistency
• Inconsistency is where a design does not work
o Conflicting assumptions about functionality, data etc. bydifferent
design decisions/statements
11/ 18
Design ErrorsII
Ambiguity
• Different interpretations or ambiguous design specifıcation
o Ambiguity causes errors in the implementation of the design due
to inconsistent interpretations made in the implementation
process.
Inferiority
• The design does not address quality requirements adequately.
o Typical inferior quality problems include ineffıciency and
infTexibility.
12/ 18
Reducing Diffıculties
13/ 18
AxiomsI
14/ 18
AxiomsII
15/ 18
AxiomsIII
16/ 18
Conclusions
17/ 18
References
18/ 18