SWDesign Module 3
SWDesign Module 3
Software Engineering
Software Design
Design Basics 2
Translating Analysis Design
4
Design Challenges
Design is a wicked problem
Design is a sloppy process
Design is About Trade-Offs and Priorities
Design Involves Restrictions
Design is Non-Deterministic – no right way
Design is a Heuristic Process – trail and error
Design: Fundamental Concepts 5
Abstraction
Safely ignore some details – handling different details at
different levels.
Advantages:
Allows to ignore irrelevant information.
7
Data Abstraction
8
Encapsulation
Abstraction – Allowed to look at object at high level of detail
Encapsulation – Not allowed to look at object at any other level of
detail.
Modular Design
easier to build, easier to change, easier to fix ...
11
Modularity – Coupling
The degree of dependence such as the amount of
interactions among components
Types of Coupling
15
Modularity - Cohesion
The degree to which all elements of a component are
directed towards a single task.
The degree to which all elements directed towards a
task are contained in a single component.
Internal glue with which component is constructed
All elements of component are directed toward and
essential for performing the same task.
22
Batch Sequential
Abstract machine (layered) model
Used to model the interfacing of sub-systems.
Tasks
1. Understanding the architecture and requirements
2. Creating detailed designs
3. Evaluating detailed designs
4. Documenting software design
5. Monitoring and controlling implementation
Structured / Detailed Design - Major Tasks 51
1. Understanding the architecture and requirements - Unlike the software architecture, where the
complete set of requirements are evaluated and well understood, designers during detailed design
activity focus on requirements allocated to their specific components.
2. Creating detailed designs - When creating detailed designs, focus is placed on the topics such as
Interface Design - Internal & External, Graphical User Interface (GUI) Design, Internal Component Design
& Data Design
3. Evaluating detailed designs - The most popular technique for evaluating detailed designs involves
Technical Reviews.
4. Documenting software design - Documentation of a project’s software design is mostly captured in
the software design document (SDD), also known as software design description. The SDD is used widely
throughout the development of the software.
5. Monitoring and controlling implementation - Monitor and control detailed design.
52
Structured Design
Transaction analysis
Transform analysis
System integration
53
Structured Design
After set of DFDs were produced, there are three steps to turn the design into
structure charts (from which the system can be implemented):
1. Transaction analysis
– divides the system into tractable units
2. Transform analysis
– converts units into structure charts
3. System integration
– recombines charts by linking units together
54
Structured Design
55
1. Maintainability: It is easier to fix bugs because the source code is easy to read /
manage.
This module discussed in detail about the various design concepts and
principles.
Abstraction and Refinement are discussed in this module.
The Modularity is explained with two major things such as Cohesion &
Coupling.
The various types of cohesion are discussed in detail.
The different coupling are explained in this module.
The Architectural Design is provided with rules and regulations.
The Detailed Design is explained with Transaction and Transformation
analysis.
The Refactoring analysis is also discussed in the direction of software
design.