SlideShare a Scribd company logo
1 of 22
COM 213: PROCEDURAL
PROGRAMMING II
BY: SAMWEL TARUS
PART 1:
Introduction to Procedural Programming
1. Overview of modular programming language
2. Compilers used in C / C++ programming
3. Relationship between C and C++ programming languages
Overview of modular programming language (C Language)
• Modular programming:
Software design technique that emphasizes separating the functionality of
a program into independent, interchangeable modules, such that each contains
everything necessary to execute only one aspect of the desired functionality.
Compilers used in C / C++ programming
Borland C++ ...
Dev C++
Turbo C / C++
Code block.
Embarcadero C++ builder. ...
Clang
Visual C++ ...
Intel C++ ...
Popular Java IDE
Eclipse. Platform – Linux/macOS/Solaris/Windows. ...
NetBeans. Platform – Linux/macOS/Solaris/Windows. ...
IntelliJ IDEA. Platform – Linux/macOS/Windows. ...
BlueJ. Platform – Linux/macOS/Windows. ...
(Oracle) JDeveloper. Platform – Linux/macOS/Windows. ...
DrJava. Platform – Linux/macOS/Windows. ...
JCreator. ...
• https://hackr.io/blog/best-java-ides
Relationship b/w C and C++ programming languages
C
Modular PL
Syntax similar
Application area: System
Programming
Execution: Compile and run
Platform Dependent
.C
C++
Supports OOP
Syntax similar
Application area: system
Programming
Execution: Compile and run
Platform Dependent
.CPP
JAVA
Pure OOP
Syntax similar
Application area: Application
Programming, Internet apps
Execution: Compile/
Intepretor and run
Platform Independent
.Java
Part II:
Introduction to object oriented programming concepts
1. Software Crisis, Software Evolution.
2. Procedural programming Paradigm.
3. Object oriented approach introduced, examples of OOP languages
4. Characteristics of object oriented languages
5. Benefits of object oriented programming languages
6. Applications of OOP
Software Crisis
Software Technology dynamics
Issues to be addressed to mitigate s/w crisis:
How to design systems with open interfaces
How to represent real life entities of problems in systems.
How to ensure re-usability and extensibility of modules
How to improve quality of software
How to manage time schedules.
How to improve s/w productivity and decrease s/w cost.
Causes of the software crisis
Projects running over-budget
Projects running over-time
Software was inefficient.
Software was of low quality
Software often did not meet requirements
Software was not delivered.
Projects were unmanageable
Difficulty in maintaining the code.
Quality issues to be considered for critical evaluation
S/w products should be evaluated for quality b4 they are delivered and
implemented.
1. Correctness.
2. Maintainability.
3. Reusability.
4. Openness and interoperability.
5. Portability.
6. Security.
7. User-friendliness
SOFTWARE EVOLUTION
The process of developing, maintaining, then timely updating software for
various reasons. i.e., to add new features or to remove obsolete functionalities
etc.
It includes the initial development of software, its maintenance and updates, till
desired software product is developed, which satisfies the expected requirements.
Nb: Software changes are inevitable because there are many factors that change
during the life cycle of a piece of software. Some of these factors include:
Requirement changes
Environment changes
Errors or security breaches
New equipment added or removed
Improvements to the system
Importance of Software Evolution
a. Change in requirement with time:
Organization’s needs and working changes substantially over time which calls
for a corresponding change in the software.
b. Environment change:
Environmental dynamics calls for working environment changes hence old
software must be updated with new features and functionality to adapt the new
environment.
c. Errors and bugs:
Obsolete Software need to undergo the evolution process in order to become
robust as per the workload complexity of the current environment.
d. Security risks:
To eliminate security threats such as cyberattacks and make software more
robust.
e. For having new functionality and features:
To increase the performance and fast data processing and other functionalities.
Procedural programming paradigm
Modular programming: Software design technique that emphasizes
separating the functionality of a program into independent, interchangeable
modules, such that each contains everything necessary to execute only one
aspect of the desired functionality
Generally, functions fall into two categories:
Program Control – Functions used to simply sub-divide and control the
program. These functions are unique to the program being written. Other
programs may use similar functions, maybe even functions with the same name,
but the content of the functions are almost always very different.
Specific Task – Functions designed to be used with several programs. These
functions perform a specific task and thus are usable in many different
programs because the other programs also need to do the specific task. Specific
task functions are sometimes referred to as building blocks. Because they are
already coded and tested, we can use them with confidence to more efficiently
write a large program
Modular Programming
Properties of Procedural programming Paradigm
Emphasis is on doing things (algorithm)
Large programs are divided into smaller programs called functions.
Most of the functions share global data.
Data move openly around the system from function to function.
Functions transform data from one form to another.
Employs top-down approach in program design.
Introduction to Object oriented approach
OOP:
Programming paradigm based on dividing the program into objects.
Concepts of OOP:
1. Class
2. Object
3. Data Abstraction and Encapsulation
4. Inheritance
5. Polymorphism
6. Dynamic binding
7. Message passing
Characteristics of object oriented languages
Objects:
Objects are basic building blocks for designing programs.
An object is a collection of data members and associated member functions.
An object may represent a person, place or a table of data.
Each object is identified by a unique name. Each object must be a member of a
particular class.
• Example: chair, table, whiteboard are the objects of the class (class).
https://tutorialslink.com/Articles/Basic-Characteristics-of-Oops/1308
Classes:-
The objects can be made user-defined data types with the help of a class.
A class is a collection of objects that have identical properties, common
behavior and shared relationship.
Once the class is defined any number of objects of that class is created.
User-defined data types. A class can hold both data and functions.
For example planets, sun and moon are the members of the solar system class.
Data abstraction:-
• Refers to the process of representing essential features without including
background details or explanations.
Data encapsulation:-
• The wrapping of data and function into a single unit
• Enables data hiding and information hiding.
Inheritance:-
The process by which one object can acquire and the use of properties of
another object.
The existing class is known as a base class or superclass.
The new class is known as a derived class or subclass.
The derived class shares some of the properties of the base class. Therefore a
code from a base class can be reused by a derived class.
Polymorphism:-
The ability of an operator and function to take.
Multiple forms are known as polymorphism.
The different types of polymorphism are operator
overloading and function overloading.
Benefits of object oriented programming languages
1. Code Re-useability
2. Effective problem solving.
3. Reduced Maintenance: The primary goal of object-oriented development is the
assurance that the system will enjoy a longer life while having far smaller
maintenance costs. Because most of the processes within the system are
encapsulated, the behaviors may be reused and incorporated into new behaviors.
4. Real-World Modeling: Object-oriented systems tend to model the real world in a
more complete fashion than do traditional methods. Objects are organized into
classes of objects, and objects are associated with behaviors. The model is based
on objects, rather than on data and processing.
5. Improved Reliability and Flexibility: Object-oriented system promise to be far
more reliable than traditional systems, primarily because new behaviors can be
"built" from existing objects. Because objects can be dynamically called and
accessed, new objects may be created at any time. The new objects may inherit
data attributes from one, or many other objects. Behaviors may be inherited from
super-classes, and novel behaviors may be added without effecting existing
systems functions.
Examples of OOP languages
• Java, C++, C#, Python, R, PHP, Visual Basic.NET, JavaScript, Ruby,
Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Kotlin, Common
Lisp, MATLAB, and Smalltalk.
Applications of OOP
Rael Time Systems
Simulation and Modelling
Object Oriented databases
AI and Expert systems.
Neural networks and Parallel programming
Decision support and office automation systems.
Client server systems

More Related Content

Similar to DOC-20210303-WA0017..pptx,coding stuff in c

Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologiesprakashk453625
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies prakashk453625
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++ shammi mehra
 
PCCF-UNIT 2-1 new.docx
PCCF-UNIT 2-1 new.docxPCCF-UNIT 2-1 new.docx
PCCF-UNIT 2-1 new.docxprakashvs7
 
Object Oriented Programming using C++.pptx
Object Oriented Programming using C++.pptxObject Oriented Programming using C++.pptx
Object Oriented Programming using C++.pptxparveen837153
 
A Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdfA Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdfAnn Wera
 
Unit 1 introduction to c++.pptx
Unit 1 introduction to c++.pptxUnit 1 introduction to c++.pptx
Unit 1 introduction to c++.pptxshashiden1
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportKhushboo Wadhwani
 
Reusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADReusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADShivani Kapoor
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptxFajar Baskoro
 

Similar to DOC-20210303-WA0017..pptx,coding stuff in c (20)

Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
Oop basic overview
Oop basic overviewOop basic overview
Oop basic overview
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
OOP-1.pptx
OOP-1.pptxOOP-1.pptx
OOP-1.pptx
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++
 
Unit 1 OOSE
Unit 1 OOSE Unit 1 OOSE
Unit 1 OOSE
 
PCCF-UNIT 2-1 new.docx
PCCF-UNIT 2-1 new.docxPCCF-UNIT 2-1 new.docx
PCCF-UNIT 2-1 new.docx
 
Object Oriented Programming using C++.pptx
Object Oriented Programming using C++.pptxObject Oriented Programming using C++.pptx
Object Oriented Programming using C++.pptx
 
SDLC
SDLCSDLC
SDLC
 
A Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdfA Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdf
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Unit 1 introduction to c++.pptx
Unit 1 introduction to c++.pptxUnit 1 introduction to c++.pptx
Unit 1 introduction to c++.pptx
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ report
 
Unit v(dsc++)
Unit v(dsc++)Unit v(dsc++)
Unit v(dsc++)
 
Reusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADReusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOAD
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptx
 

Recently uploaded

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

DOC-20210303-WA0017..pptx,coding stuff in c

  • 1. COM 213: PROCEDURAL PROGRAMMING II BY: SAMWEL TARUS
  • 2. PART 1: Introduction to Procedural Programming 1. Overview of modular programming language 2. Compilers used in C / C++ programming 3. Relationship between C and C++ programming languages
  • 3. Overview of modular programming language (C Language) • Modular programming: Software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
  • 4. Compilers used in C / C++ programming Borland C++ ... Dev C++ Turbo C / C++ Code block. Embarcadero C++ builder. ... Clang Visual C++ ... Intel C++ ...
  • 5. Popular Java IDE Eclipse. Platform – Linux/macOS/Solaris/Windows. ... NetBeans. Platform – Linux/macOS/Solaris/Windows. ... IntelliJ IDEA. Platform – Linux/macOS/Windows. ... BlueJ. Platform – Linux/macOS/Windows. ... (Oracle) JDeveloper. Platform – Linux/macOS/Windows. ... DrJava. Platform – Linux/macOS/Windows. ... JCreator. ... • https://hackr.io/blog/best-java-ides
  • 6. Relationship b/w C and C++ programming languages C Modular PL Syntax similar Application area: System Programming Execution: Compile and run Platform Dependent .C C++ Supports OOP Syntax similar Application area: system Programming Execution: Compile and run Platform Dependent .CPP JAVA Pure OOP Syntax similar Application area: Application Programming, Internet apps Execution: Compile/ Intepretor and run Platform Independent .Java
  • 7. Part II: Introduction to object oriented programming concepts 1. Software Crisis, Software Evolution. 2. Procedural programming Paradigm. 3. Object oriented approach introduced, examples of OOP languages 4. Characteristics of object oriented languages 5. Benefits of object oriented programming languages 6. Applications of OOP
  • 8. Software Crisis Software Technology dynamics Issues to be addressed to mitigate s/w crisis: How to design systems with open interfaces How to represent real life entities of problems in systems. How to ensure re-usability and extensibility of modules How to improve quality of software How to manage time schedules. How to improve s/w productivity and decrease s/w cost.
  • 9. Causes of the software crisis Projects running over-budget Projects running over-time Software was inefficient. Software was of low quality Software often did not meet requirements Software was not delivered. Projects were unmanageable Difficulty in maintaining the code.
  • 10. Quality issues to be considered for critical evaluation S/w products should be evaluated for quality b4 they are delivered and implemented. 1. Correctness. 2. Maintainability. 3. Reusability. 4. Openness and interoperability. 5. Portability. 6. Security. 7. User-friendliness
  • 11. SOFTWARE EVOLUTION The process of developing, maintaining, then timely updating software for various reasons. i.e., to add new features or to remove obsolete functionalities etc. It includes the initial development of software, its maintenance and updates, till desired software product is developed, which satisfies the expected requirements. Nb: Software changes are inevitable because there are many factors that change during the life cycle of a piece of software. Some of these factors include: Requirement changes Environment changes Errors or security breaches New equipment added or removed Improvements to the system
  • 12. Importance of Software Evolution a. Change in requirement with time: Organization’s needs and working changes substantially over time which calls for a corresponding change in the software. b. Environment change: Environmental dynamics calls for working environment changes hence old software must be updated with new features and functionality to adapt the new environment. c. Errors and bugs: Obsolete Software need to undergo the evolution process in order to become robust as per the workload complexity of the current environment. d. Security risks: To eliminate security threats such as cyberattacks and make software more robust. e. For having new functionality and features: To increase the performance and fast data processing and other functionalities.
  • 13. Procedural programming paradigm Modular programming: Software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality Generally, functions fall into two categories: Program Control – Functions used to simply sub-divide and control the program. These functions are unique to the program being written. Other programs may use similar functions, maybe even functions with the same name, but the content of the functions are almost always very different. Specific Task – Functions designed to be used with several programs. These functions perform a specific task and thus are usable in many different programs because the other programs also need to do the specific task. Specific task functions are sometimes referred to as building blocks. Because they are already coded and tested, we can use them with confidence to more efficiently write a large program
  • 15. Properties of Procedural programming Paradigm Emphasis is on doing things (algorithm) Large programs are divided into smaller programs called functions. Most of the functions share global data. Data move openly around the system from function to function. Functions transform data from one form to another. Employs top-down approach in program design.
  • 16. Introduction to Object oriented approach OOP: Programming paradigm based on dividing the program into objects. Concepts of OOP: 1. Class 2. Object 3. Data Abstraction and Encapsulation 4. Inheritance 5. Polymorphism 6. Dynamic binding 7. Message passing
  • 17. Characteristics of object oriented languages Objects: Objects are basic building blocks for designing programs. An object is a collection of data members and associated member functions. An object may represent a person, place or a table of data. Each object is identified by a unique name. Each object must be a member of a particular class. • Example: chair, table, whiteboard are the objects of the class (class). https://tutorialslink.com/Articles/Basic-Characteristics-of-Oops/1308
  • 18. Classes:- The objects can be made user-defined data types with the help of a class. A class is a collection of objects that have identical properties, common behavior and shared relationship. Once the class is defined any number of objects of that class is created. User-defined data types. A class can hold both data and functions. For example planets, sun and moon are the members of the solar system class. Data abstraction:- • Refers to the process of representing essential features without including background details or explanations. Data encapsulation:- • The wrapping of data and function into a single unit • Enables data hiding and information hiding.
  • 19. Inheritance:- The process by which one object can acquire and the use of properties of another object. The existing class is known as a base class or superclass. The new class is known as a derived class or subclass. The derived class shares some of the properties of the base class. Therefore a code from a base class can be reused by a derived class. Polymorphism:- The ability of an operator and function to take. Multiple forms are known as polymorphism. The different types of polymorphism are operator overloading and function overloading.
  • 20. Benefits of object oriented programming languages 1. Code Re-useability 2. Effective problem solving. 3. Reduced Maintenance: The primary goal of object-oriented development is the assurance that the system will enjoy a longer life while having far smaller maintenance costs. Because most of the processes within the system are encapsulated, the behaviors may be reused and incorporated into new behaviors. 4. Real-World Modeling: Object-oriented systems tend to model the real world in a more complete fashion than do traditional methods. Objects are organized into classes of objects, and objects are associated with behaviors. The model is based on objects, rather than on data and processing. 5. Improved Reliability and Flexibility: Object-oriented system promise to be far more reliable than traditional systems, primarily because new behaviors can be "built" from existing objects. Because objects can be dynamically called and accessed, new objects may be created at any time. The new objects may inherit data attributes from one, or many other objects. Behaviors may be inherited from super-classes, and novel behaviors may be added without effecting existing systems functions.
  • 21. Examples of OOP languages • Java, C++, C#, Python, R, PHP, Visual Basic.NET, JavaScript, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Kotlin, Common Lisp, MATLAB, and Smalltalk.
  • 22. Applications of OOP Rael Time Systems Simulation and Modelling Object Oriented databases AI and Expert systems. Neural networks and Parallel programming Decision support and office automation systems. Client server systems