SlideShare a Scribd company logo
INTRODUCTION TO
PROGRAMING & PROBLEM
SOLVING – SPS2101
Lecture 2
Program Development Cycle - Modularity
Lecture Overview
• Program development life cycle
• Characteristics of a good program
• Types of errors
• Modularity
Program
development
life cycle
Program development life
cycle
• The program development is part of the software
development life cy le, characterized by the following
steps;
1. Requirement analysis
2. Design
3. Coding
4. Testing
5. Implementation support
6. Documentation
Requirement Analysis
• An accurate and complete set of
client and user requirements is
produced to determine the
characteristics of the desirable
solution.
Requirement analysis components
• The requirement analysis is made up of;
1. The proposed solution agreed upon by the client and developer
2. List of existing tools, new tools, required facilities and development team
3. A schedule for implementation stages consisting of deliverables at each phase
Design stage
• Use of proper design techniques to illustrate the program
specifications in a systematic way
• Representing the tasks required in the program
specification showing al input, processing and output
requirements
Example
• Flowchart
• Pseudocode
• JSP
Coding stage
Produce the programs that will
make up the system
Translation of design into
programming language e.g c,
c++, pascal
AKA implementation Complete when all code is
written, compiled and
documented without any errors
Testing
stage
Debugging: Done by development team – the task
involves tracing and removing errors/bugs
Testing: done by testing team – the task of locating
and identifying bugs/errors included in the program
Any tracable error is corrected and the testing
phase repeated again.
Types of tests
Alpha test: test of the finished application
completed internally
Beta test: tested externally
Implementation and support
• When all the previous stages have been completed
satisfactorily, the system is ready for implementation
• Program is transferred o the user’s machine and made to
work
• 3 strategies are incorporated
• The new program run concurrently with the old one
• It may completely replace the old one
• It may be phased out gradually
Implementation and support
ONCE THE PROGRAM IS INSTALLED AND
OPERATED, IT WILL BE MONITORED FOR SOME
TIME TO ENSURE THAT PROGRAM IS ERROR-FREE
MAINTENANCE INCLUDES ERROR FIXING,
UPDATES AND MODIFICATION
Documentation stage
All processes in all stages during the system
development must be documented/written
down
This documentation is vital for future
reference/for future maintenance of the
program
Characteristics of a good program
CORRECTNESS: FULFILLING
USER REQUIREMENTS
RELIABILITY: IT PRODUCES
CORRECT OUTPUT AND
VALIDATES INPUT DATA TO
AVOID PROGRAM CRASH
PORTABILITY: EASILY
INSTALLED FROM ONE
MACHINE TO ANOTHER
WITH MINIMAL
MODIFICATION
MAINTAINABILITY: EASILY
FOLLOWED AND MODIFIED,
NOT ONLY TO THE
PROGRAMMER WHO
WROTE IT
READABILITY: CLEARLY
DOCUMENTED
USE OF RESOURCES: FAST IN
PROCESSING, USES
MINIMUM STORAGE SPACE
AND ABLE TO RUN ON
EXISTING HARDWARE
Types of
errors
Syntax: error relating to the
programming language used
Logical: error in programming logic
Run-time/execution: error that
appears after you compile and run
your code
Modularity
Modularity
Software is divided into
separately named
components often called
modules that are used to
detect problems at ease.
This follows the “divide and
conquer’ strategy.
It is easier to solve a
complex problem when you
break it into manageable
pieces
Why modularize a
system?
Management: partition the
overall development effort
Evolution: Decouple parts of
a system so that changes to
one part are isolated from
changes to other parts
Principle of
discontinuity
(delete a part)
Principle of
continuity
(addition to the
part)
Understanding: Permit
system to be understood
As composition
of mind-sized
chunks
With one issue at
a time
Advantages of modularization
Smaller
components are
easier to maintain
Program can be
divided based on
functional aspects
Desired level of
abstraction can be
brought in the
program
Components with
high usage can be
re-used
Concurrent
execution can be
made possible
Modular design
Easier to change Easier to build Easier to maintain
Functional Independence
Cohesion: The degree
to which a module
performs one and
only one function
Coupling: The degree
to which a module is
‘connected’ to other
module in the system.
Modularity “Modules”
cost Vs size
• The effort(cost) to develop an individual software
module does decrease as the total number of modules
increases.
• Given the same of requirements more modules means
smaller individual size.
• However, as the number of modules grows the effort
(cost)associated with integrating the modules grows.
• These characteristics lead to a total cost or effort
as shown in these figure.
• There is a number “M” of modules that would result in
Minimum cost development.
Self-contained:
“Agile &
Autonomous”
A module is a self-contained component of a
larger software system.
This doesn’t mean that it is atomic component
In fact, a module consists of several smaller
pieces which are collectively contributed o the
functionality/ performance of the module.
A module can be installed, un-installed or
moved as a whole and it won’t affect the
functionality of the other modules

More Related Content

Similar to Lecture 2.pptx

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Software engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall modelSoftware engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall model
Vaibhav Khanna
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v model
Minal Kashyap
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
Conestoga Collage
 
Software Process Model.ppt
Software Process Model.pptSoftware Process Model.ppt
Software Process Model.ppt
SasiR18
 
software process model
software process modelsoftware process model
software process model
juhi kumari
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
HumzaWaris1
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
Manusha Dilan
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
Jayant Dalvi
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
Badar Waseer
 
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
dzulfazawawi
 
software project management
software project managementsoftware project management
software project management
Jassir4
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
Raheel Aslam
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
Mantesh Basarakod
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
bipulpwc
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Amity University | FMS - DU | IMT | Stratford University | KKMI International Institute | AIMA | DTU
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback system
Akshay Surve
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
krishnaraj714229
 
Software Processes
Software Processes Software Processes
Software Processes
Usman Bin Saad
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
Rupesh Vaishnav
 

Similar to Lecture 2.pptx (20)

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall modelSoftware engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall model
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v model
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
 
Software Process Model.ppt
Software Process Model.pptSoftware Process Model.ppt
Software Process Model.ppt
 
software process model
software process modelsoftware process model
software process model
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
INTELLIGENT TOURIST GUIDE SYSTEM CHAPTER 3
 
software project management
software project managementsoftware project management
software project management
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback system
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Software Processes
Software Processes Software Processes
Software Processes
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

Lecture 2.pptx

  • 1. INTRODUCTION TO PROGRAMING & PROBLEM SOLVING – SPS2101 Lecture 2 Program Development Cycle - Modularity
  • 2. Lecture Overview • Program development life cycle • Characteristics of a good program • Types of errors • Modularity
  • 4. Program development life cycle • The program development is part of the software development life cy le, characterized by the following steps; 1. Requirement analysis 2. Design 3. Coding 4. Testing 5. Implementation support 6. Documentation
  • 5. Requirement Analysis • An accurate and complete set of client and user requirements is produced to determine the characteristics of the desirable solution.
  • 6. Requirement analysis components • The requirement analysis is made up of; 1. The proposed solution agreed upon by the client and developer 2. List of existing tools, new tools, required facilities and development team 3. A schedule for implementation stages consisting of deliverables at each phase
  • 7. Design stage • Use of proper design techniques to illustrate the program specifications in a systematic way • Representing the tasks required in the program specification showing al input, processing and output requirements Example • Flowchart • Pseudocode • JSP
  • 8. Coding stage Produce the programs that will make up the system Translation of design into programming language e.g c, c++, pascal AKA implementation Complete when all code is written, compiled and documented without any errors
  • 9. Testing stage Debugging: Done by development team – the task involves tracing and removing errors/bugs Testing: done by testing team – the task of locating and identifying bugs/errors included in the program Any tracable error is corrected and the testing phase repeated again. Types of tests Alpha test: test of the finished application completed internally Beta test: tested externally
  • 10. Implementation and support • When all the previous stages have been completed satisfactorily, the system is ready for implementation • Program is transferred o the user’s machine and made to work • 3 strategies are incorporated • The new program run concurrently with the old one • It may completely replace the old one • It may be phased out gradually
  • 11. Implementation and support ONCE THE PROGRAM IS INSTALLED AND OPERATED, IT WILL BE MONITORED FOR SOME TIME TO ENSURE THAT PROGRAM IS ERROR-FREE MAINTENANCE INCLUDES ERROR FIXING, UPDATES AND MODIFICATION
  • 12. Documentation stage All processes in all stages during the system development must be documented/written down This documentation is vital for future reference/for future maintenance of the program
  • 13. Characteristics of a good program CORRECTNESS: FULFILLING USER REQUIREMENTS RELIABILITY: IT PRODUCES CORRECT OUTPUT AND VALIDATES INPUT DATA TO AVOID PROGRAM CRASH PORTABILITY: EASILY INSTALLED FROM ONE MACHINE TO ANOTHER WITH MINIMAL MODIFICATION MAINTAINABILITY: EASILY FOLLOWED AND MODIFIED, NOT ONLY TO THE PROGRAMMER WHO WROTE IT READABILITY: CLEARLY DOCUMENTED USE OF RESOURCES: FAST IN PROCESSING, USES MINIMUM STORAGE SPACE AND ABLE TO RUN ON EXISTING HARDWARE
  • 14. Types of errors Syntax: error relating to the programming language used Logical: error in programming logic Run-time/execution: error that appears after you compile and run your code
  • 16. Modularity Software is divided into separately named components often called modules that are used to detect problems at ease. This follows the “divide and conquer’ strategy. It is easier to solve a complex problem when you break it into manageable pieces
  • 17. Why modularize a system? Management: partition the overall development effort Evolution: Decouple parts of a system so that changes to one part are isolated from changes to other parts Principle of discontinuity (delete a part) Principle of continuity (addition to the part) Understanding: Permit system to be understood As composition of mind-sized chunks With one issue at a time
  • 18. Advantages of modularization Smaller components are easier to maintain Program can be divided based on functional aspects Desired level of abstraction can be brought in the program Components with high usage can be re-used Concurrent execution can be made possible
  • 19. Modular design Easier to change Easier to build Easier to maintain
  • 20. Functional Independence Cohesion: The degree to which a module performs one and only one function Coupling: The degree to which a module is ‘connected’ to other module in the system.
  • 21. Modularity “Modules” cost Vs size • The effort(cost) to develop an individual software module does decrease as the total number of modules increases. • Given the same of requirements more modules means smaller individual size. • However, as the number of modules grows the effort (cost)associated with integrating the modules grows. • These characteristics lead to a total cost or effort as shown in these figure. • There is a number “M” of modules that would result in Minimum cost development.
  • 22. Self-contained: “Agile & Autonomous” A module is a self-contained component of a larger software system. This doesn’t mean that it is atomic component In fact, a module consists of several smaller pieces which are collectively contributed o the functionality/ performance of the module. A module can be installed, un-installed or moved as a whole and it won’t affect the functionality of the other modules