Professional Documents
Culture Documents
1 Sda
1 Sda
Dr Awais Majeed
1
Dr Awais Majeed Design Fundamentals
/
1/4646
Outline
Introduction
Design Concepts
2
Dr Awais Majeed Design Fundamentals
/
2/4646
Introduction
3
Dr Awais Majeed Design Fundamentals
/
3/4646
Introduction ...
4
Dr Awais Majeed Design Fundamentals
/
4/4646
What a design represents?
Design represents:
1. Architecture of the system
2. Interface that connects the software to end user
3. Interface that connects software to other systems and devices and to its
own constitutent components
4. Software components that are used to construct the system are also
designed.
5
Dr Awais Majeed Design Fundamentals
/
5/4646
Design Levels
Software Architecture
The overall structure of the software and the ways in which that structure
provides conceptual integrity for a system
Detailed Design
Detailed Design describes the structure, properties and behaviour of the
individual components in such a detail that these can be implemented by a
developer easily.
6
Dr Awais Majeed Design Fundamentals
/
6/4646
Design in SDLC
Design is the last activity within the modelling activity in SDLC and sets
the stage for construction (code generation and testing).
It translates the models created during requirements analysis into design
models
8
Dr Awais Majeed Design Fundamentals
/
8/4646
Quality Guidelines I
A design should exhibit an architecture that (1) has been created using
recognizable architectural styles or patterns, (2) is composed of
components that exhibit good design characteristics and (3) can be
implemented in an evolutionary fashion
For smaller systems, design can sometimes be developed linearly.
A design should be modular; that is, the software should be logically
partitioned into elements or subsystems
A design should contain distinct representations of data, architecture,
interfaces, and components.
A design should lead to data structures that are appropriate for the
classes to be implemented and are drawn from recognizable data
patterns.
9
Dr Awais Majeed Design Fundamentals
/
9/4646
Quality Guidelines II
10
Dr Awais Majeed Design Fundamentals
/
10/4646
Design Principles
13
Dr Awais Majeed Design Fundamentals
/
13/4646
Procedural Abstraction
14
Dr Awais Majeed Design Fundamentals
/
14/4646
Architecture
The overall structure of the software and the ways in which that struc-
ture provides conceptual integrity for a system.
Structural properties. This aspect of the architectural design representation
defines the components of a system (e.g., modules, objects, filters) and the manner
in which those components are packaged and interact with one another. For
example, objects are packaged to encapsulate both data and the processing that
manipulates the data and interact via the invocation of methods
Extra-functional properties. The architectural design description should address
how the design architecture achieves requirements for performance, capacity,
reliability, security, adaptability, and other system characteristics.
Families of related systems. The architectural design should draw upon
repeatable patterns that are commonly encountered in the design of families of
similar systems. In essence, the design should have the ability to reuse
architectural building blocks.
15
Dr Awais Majeed Design Fundamentals
/
15/4646
Patterns
16
Dr Awais Majeed Design Fundamentals
/
16/4646
Separation of Concerns
17
Dr Awais Majeed Design Fundamentals
/
17/4646
Modularity
18
Dr Awais Majeed Design Fundamentals
/
18/4646
Modularity: Trade-offs
19
Dr Awais Majeed Design Fundamentals
/
19/4646
Advantages of Modularity
Easier to manage
Easier to understand
Reduces complexity
Delegation / division of work
Fault isolation
Independent development
Separation of concerns
Reuse
20
Dr Awais Majeed Design Fundamentals
/
20/46 46
Principles of Modular Design
21
Dr Awais Majeed Design Fundamentals
/
21/4646
Information Hiding
Design the modules in such a way that information (data & procedures)
contained in one module is directly inaccessible to other modules.
Modules to be characterized by design decisions that are hidden from all
others.
Independent modules.
Benefits:
When modifications are required, it reduces the chances of propagating
to other modules.
22
Dr Awais Majeed Design Fundamentals
/
22/4646
Information Hiding
23
Dr Awais Majeed Design Fundamentals
/
23/4646
Why Information Hiding?
24
Dr Awais Majeed Design Fundamentals
/
24/46 46
Information Hiding
person1.age=25;
25
Dr Awais Majeed Design Fundamentals
/
25/4646
Stepwise Refinement
26
Dr Awais Majeed Design Fundamentals
/
26/46 46
Sizing Modules: Two Views
27
Dr Awais Majeed Design Fundamentals
/
27/4646
Functional Independence
28
Dr Awais Majeed Design Fundamentals
/
28/46 46
Cohesion
29
Dr Awais Majeed Design Fundamentals
/
29/46 46
Coupling
30
Dr Awais Majeed Design Fundamentals
/
30/46 46
Aspects
31
Dr Awais Majeed Design Fundamentals
/
31/4646
Aspects—An Example
32
Dr Awais Majeed Design Fundamentals
/
32/46 46
Refactoring
33
Dr Awais Majeed Design Fundamentals
/
33/46 46
OO Design Concepts
Design classes
Entity classes
Boundary classes
Controller classes
Inheritance—all responsibilities of a superclass are immediately inherited
by all subclasses
Messages—stimulate some behavior to occur in the receiving object
Polymorphism—a characteristic that greatly reduces the effort required to
extend the design
34
Dr Awais Majeed Design Fundamentals
/
34/46 46
Design Classes
35
Dr Awais Majeed Design Fundamentals
/
35/4646
The Design Model
37
Dr Awais Majeed Design Fundamentals
/
37/4646
Data Design Elements
38
Dr Awais Majeed Design Fundamentals
/
38/46 46
Architectural Design Elements
39
Dr Awais Majeed Design Fundamentals
/
39/46 46
Interface Design Elements
40
Dr Awais Majeed Design Fundamentals
/
40/46 46
Component-Level Design Elements
42
Dr Awais Majeed Design Fundamentals
/
42/46 46
Design Errors I
Incorrectness
The design does not meet the users’ requirements on its functionality
and features.
Inconsistency
Inconsistency is where a design does not work
Conflicting assumptions about functionality, data etc. by different design
decisions/statements
43
Dr Awais Majeed Design Fundamentals
/
43/46 46
Design Errors II
Ambiguity
Different interpretations or ambiguous design specification
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.
Typical inferior quality problems include inefficiency and inflexibility.
44
Dr Awais Majeed Design Fundamentals
/
44/46 46
Conclusion
45
Dr Awais Majeed Design Fundamentals
/
45/4646
Self Study & References
46
Dr Awais Majeed Design Fundamentals
/
46/46 46