Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes ...
-
Upload
sabrina-park -
Category
Documents
-
view
217 -
download
0
description
Transcript of Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes ...
![Page 1: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/1.jpg)
Week 6: Software Design
HNDIT23082
![Page 2: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/2.jpg)
Software Engineering
Software Design
Learning Outcomes
Understand the activities involved in the Design process
Understand the principles of good design
Identify Software design techniques
Identify possible software architecture
![Page 3: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/3.jpg)
Software Design - Objectives
Design is a meaningful engineering representation of something that is to be built.
In software Engineering context, design focuses on transforming requirements into implementable version of the software system.
![Page 4: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/4.jpg)
Design activities
Identification of the sub-systems
Identification of the software components
Identification of the software architecture
Data design
Interface design
Algorithm design
Data structure design
Design specification
![Page 5: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/5.jpg)
Software Design – Why it is important?
A good design is the key for a successful software system
A good design allows easy maintenance of a system
A good design allows to achieve non-functional requirements such as reliability, performance, reusability, portability.
A good design facilitates the development and management processes of a software project.
![Page 6: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/6.jpg)
Some important software design principles
Abstraction
Modularity
Information Hiding (Encapsulation)
Polymorphism
![Page 7: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/7.jpg)
AbstractionThis is an intellectual tool (a psychological notion) which permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details
Abstraction allows us to proceed with the development work without been held up in low-level implementation details (yet to be discovered)
![Page 8: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/8.jpg)
Modularity• Software is divided into separately named, addressable components called modules.
• Complexity of a program depends on modularity
![Page 9: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/9.jpg)
Modularity Ctd..
Modularity facilitates
• the development process
• the maintenance process
• the project management process
• reusability
![Page 10: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/10.jpg)
How many modules?Cost of effort
No. of modules
Cost per module
Interface cost
![Page 11: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/11.jpg)
Module Coupling
• A measure of the strength of the interconnections between
system components.
• Loose(Low) coupling means component changes are likely to affect other components.
• Shared variables or control information exchange lead to tight(High) coupling.
• Loose coupling can be achieved by component communication
via parameters or message passing.
![Page 12: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/12.jpg)
Levels of Coupling• Data Coupling
Data is passed from one module to another using arguments
Stamp Coupling
More data than necessary is passed via arguments. Eg. Pass the whole record instead of just the field being changed.
Control Coupling
A flag is passed from one module to another affecting the functionality of the second module
• External Coupling
Coupling with the environment (eg. Data files, other programs etc.).
![Page 13: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/13.jpg)
![Page 14: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/14.jpg)
Levels of Coupling (Cont..)• Common Coupling
Occurs when modules access the same global data.
MODULE- A MODULE- B
MODULE- C MODULE -D
![Page 15: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/15.jpg)
Levels of Coupling (Cont..)
• Content Coupling
One module directly affects the working of another. Calling module can modify the called module or refer to an internally defined data element.
A
B C
D E
GlobalDataarea
Common
Coupling
Content
Coupling
![Page 16: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/16.jpg)
Levels of Coupling (Contd..)
• Object Coupling
Occurs when an object class inherits attributes and methods of another class. Changes to super-class propagate to all sub-classes.
Student
UG Student PG Student
Object oriented systems are loosely coupled. No shared state and objects communicate using message passing, but
![Page 17: Week 6: Software Design HNDIT23082. Software Engineering Software Design Learning Outcomes Understand the activities involved in the Design process.](https://reader033.fdocuments.us/reader033/viewer/2022051717/5a4d1b607f8b9ab0599acf3d/html5/thumbnails/17.jpg)
Coupling should be minimised.
Loosely coupled modules facilitate:
• Maintenance
• Development
• Reusability