SlideShare a Scribd company logo
1 of 84
Diploma in Information Technology
Module VII: Software Engineering
Rasan Samarasinghe
ESOFT Computer Studies (pvt) Ltd.
No 68/1, Main Street, Pallegama, Embilipitiya.
Contents
1. What is software?
2. Software classification
3. Attributes of Software
4. What is Software Engineering?
5. Software Process Model
6. Waterfall Model
7. Prototype Model
8. Throw away prototype model
9. Evolutionary prototype model
10. Rapid application development
11. Programming styles
12. Unstructured programming
13. Structured programming
14. Object oriented programming
15. Flow charts
16. Questions
17. Pseudo codes
18. Object oriented programming
19. OOP Concepts
20. Inheritance
21. Polymorphism
22. Encapsulation
23. Generalization/specialization
24. Unified Modeling Language
25. Class Diagrams
26. Use case diagrams
27. Software testing
28. Black box testing
29. White box testing
30. Software documentation
What is software?
A software is a collection of instructions that
enables a user to interact with the computer
or have the computer perform special task for
them.
Software classification
• System Software
– Directly controlling the hardware resources and
supports the operation of application software.
• Application Software
– Serves the user requirements in a particular
application domain.
Software classification
• Generic Software (off the shelf)
– Available on open market to any customer who is
able to buy it.
• Custom Software (bespoke)
– Developed specially for a customer requirement.
Generic Software vs Custom Software
Less expensive
More reliable
Immediate installation
More user friendly
User requirements are
not completely satisfied
Cannot accommodate
future changes
More expensive
Less reliable
Delay due to high
development time
Less user friendly
Completely satisfied
Can easily
accommodate future
changes
Generic Software Custom Software
Attributes of Software
• Maintainability
• Dependability
• Efficiency
• Usability
• Security
• Reliability
• Robustness
• Customizability
• Scalability
• Accessibility
• Extensibility
What is Software Engineering?
Software engineering is concerned with application
of theories, methods and tools to develop and
maintain software systems that behave reliably and
efficiently, are affordable to develop and maintain,
and satisfy all the requirements that customers
have defined for them.
Software Engineering Process ModelA software process model is a set of predicted
procedures or set of stages to be use to
develop a fully tested software system timely.
Software Process Model
• Waterfall model
• Prototyping model
• Rapid application development model
• Spiral model
• V-model
• Join application development model
• Incremental development model
Software Process Models
Waterfall Model
Waterfall Model
• A linear sequential development model.
• Because of the cascade form one stage to another it
is known as waterfall model.
• Divided project activities into isolated stages and
each stage should complete before next started.
• Concurrent activities are not possible.
• Need to wait until end of the life cycle to see the
outcome.
• Suitable for develop systems which has stable
requirements.
Waterfall Model Stages
Stage 1: Requirement Definition
• The system services, constraints and goals are
established by consulting with the system
users.
• They are define in a manner which is
understandable by both users and the
development staff.
Waterfall Model Stages
Stage 2: System and Software designing
• Partitions the requirements either hardware or
software.
• Involves representing the software system
functions in a form that may be transformed into
executable programs.
• Identifying and describing fundamental software
system abstraction and there relationships.
Waterfall Model Stages
Stage 3: Implementation and unit testing
• Implementation consists of converting the
physical designing into set of actual programs
and a set of database tables.
• The software is realized as a set of programs
or program units.
• Unit testing involves verifying that each unit
meets it’s requirements.
Waterfall Model Stages
Stage 4: integration and system testing
• Individual program units are integrated and
tested as a complete system.
• Ensure the software requirements have been
met.
• After testing the software system is delivered
to the customer.
Waterfall Model Stages
Stage 5: Operation and maintenance
• The system installed and put into practical use.
• Involved correcting errors which were not
discovered in earlier stages.
• Improving implementation as new requirements
are discovered.
• Normally this is the longest life cycle phase.
Extended Waterfall Model
• Due to the above discussed disadvantages, the
waterfall model was modified with the
concept of backtracking.
• As a result, the Extended Waterfall Model
introduced.
Extended Waterfall Model
Prototype Model
Prototype is a working model of the actual
System
There are two types of prototype model.
1. Throw away prototype model
2. Evolutionary prototype model
Throw away prototype model
Throw away prototype model
• Prototype is use to gather requirements and
there after it will be thrown away.
• Further designing, construction and
implementation will be done using the normal life
cycle stages.
• Requirements gathering can be exactly done by
using the prototype
• Even to develop prototype consumes lot of time
and effort , therefore once a prototype is thrown
away it’s a waste of time and money.
Evolutionary prototype model
System
Complete
System
Architecture
Identify
Prototype Quick Design
Construct
And Use The
System
Revise
Prototype
Deliver
System
Yes
No
Evolutionary prototype model
• Prototype is use to gather requirements and it
will become the final system.
• Both the prototyping process as well as the
development process will be combine
together.
• Prototype will not be thrown away and it is
not wasting effort and cost like throw away
prototype.
Rapid Application Development (RAD)
Rapid application development model (RAD)
• This is a software process model which uses to
develop applications rather quickly.
• The entire system is broken down into several
manageable stages and each stage analyzed,
designed, developed, tested and implemented
simultaneously
Rapid Application Development (RAD)
Stages in the RAD
1. Business modeling
• The information flow among business
functions is modeled.
• Find answers for the following questions:
What information drives the business process?
What information is generated?
Who generate it?
Where does information go?
Who process it?
Stages in the RAD
2. Data modeling
• The information flows are refined into set of
data objects.
• The attributes of each objects and
relationships between these objects defined.
Stages in the RAD
3. Process modeling
• The data objects are transformed to achieve
the information flow necessary to implement
the business function.
• Processes are created for adding, modifying,
deleting and retrieving data objects.
Stages in the RAD
4. Application generation
• Using fourth generation techniques rather
than using conventional third generation
programming languages.
• In possible cases automated tools/reusable
components are use to facilitate construction
of the software. (Ex: DB query tools, reports,
graphics manipulation, interface designs)
Stages in the RAD
5. Testing and turnover
• Since the RAD process use many reusable
components that have been tested, it reduces
the overall testing time.
• How ever the new components should be
tested.
Programming Styles
There are 3 main programming styles
1. Unstructured Programming
2. Structured Programming
3. Object Oriented Programming
Unstructured Programming
• Unstructured programming is the historically
earliest programming paradigm.
• It is a procedural program, the statements are
executed in sequence as written.
• This type of programming uses the goto
statement. A goto statement allows control to
be passed to any other place in the program.
• Difficult to understand the logic of the
program.
Ex: Machine language, Cobol
Structured Programming
• Structured programming is a subset of procedural
programming that enforces a logical structure to
make it more efficient and easier to understand
and modify.
• Use of the goto statement is discouraged.
• Structured programming using 3 controls
constructs:
– Sequence
– Selection
– repetition
Ex: C, Pascal, Ada
Object Oriented Programming
• Object-oriented programming (OOP) is a
programming model organized around objects
rather than actions and data rather than logic.
• It is becoming more popular as a designing
technique, because it has an ability to
represent complex relationships, data and data
processing with suitable notations.
Ex: Java, C++, C#
Flow Charts
A flowchart is a diagrammatic representation
of the process involved in arriving at a solution
to a problem.
Flow Chart Notations
Start / End of the program
Input / Output
Process
Decision / Repetition
Flow
Connector
Flow Charts
• Question 1:
Draw a flowchart to develop a program to
input the student index number, name and
total marks scored in three modules and
display the students index number, name and
average marks on the screen.
Flow Charts
• Question 2:
Draw a flowchart to develop a program to
input student number, name, module 1 marks
and module 2 marks and display student
number, name, average marks and total
marks.
Flow Charts
• Question 3:
A student has sat for an exam and following
details were entered through the keyboard:
student number, name, and average marks.
If he average is greater than 50 student will be
graded as “Pass” otherwise graded as “Fail”.
Draw a flowchart to display the student name,
average and grade.
Flow Charts
• Question 4:
Draw a flowchart to input two numbers from
the keyboard and evaluate and display the
maximum value.
Flow Charts
• Question 5:
Draw a flowchart to develop a program to
input student no, name, module 1 marks and
module 2 marks by keyboard. Calculate and
display student no, average and the grade. The
grading system is as follows. Average > 75
grade is “distinction”, 50 - 75 grade is “credit”,
25 - 50 grade is “Pass” and less than 25 is
“Fail”.
Flow Charts
• Question 6:
Draw a flowchart to calculate and display the
sum of first five natural numbers.
Flow Charts
• Question 7:
Draw a flowchart to input a number from
keyboard, and there after calculate and
display the factorial number.
Pseudo Codes
Pseudo code consists of short, English phrases
used to explain specific tasks within a
program's algorithm. Pseudo code should not
include keywords in any specific computer
languages. It should be written as a list of
consecutive phrases.
Pseudo Codes
One of the concepts in programming is…
PROGRAM = DATA + ALGORITHM
Data
 Data types: String, Integer, Real
 Data usage: Variable, Constant
 Data scope: Global data, Local data
Algorithm
 Sequence
 Selection
 Repetition
Object Oriented Programming
• Object-oriented programming (OOP) is a
programming language model organized
around objects rather than actions and data
rather than logic.
• Object oriented programming becoming more
popular as a designing technique, because it
has an ability to represent complex
relationships, data and data processing with
suitable notations.
Object Oriented Programming
Male Female
Son
Father Mother Daughter
Family system
Objects
Object and Class
An object is person,
place or thing which
consist of data and
behaviors. The data of
an object is its
properties (attributes)
and behaviors
represent how an
object acts and reacts.
A class is simply a
representation of a
type of object. It is the
blueprint / template
that describe the
details of an object.
Class is composed of
three things: a name,
attributes, and
operations.
Object Instance
Object instance is uniquely identified
occurrence of an object
Book
Book_id
Title
Author
Lending
Reservation
Reading
Book
001 – A
Science
Peter
Lending
Reservation
Reading
Object instance
Object Oriented Programming Concepts
 Inheritance
 Polymorphism
 Encapsulation
 Generalization
 Specialization
Inheritance
Inheritance is sharing of attributes and operations
among classes based on a hierarchical relationship.
Vehicle
v-no
Model
color
Drive
Stop
Bus
v-no
Model
color
Drive
Stop
Car
v-no
Model
color
Drive
Stop
Super class
operations and
attributes are
inherited to the
sub classes
Polymorphism
• Polymorphism is simply the ability for an
object behaves differently depending on its
type.
• Ex: both cat and dog are animals which has
the same method called makeNoise(). But
they are making noise in different ways.
Polymorphism
Encapsulation
• According to encapsulation attributes and
operations are encapsulated (hidden) within
the object.
• The outside world know what the object can
do but don’t know how it does or where data
is stored. These features are hidden from the
user.
Generalization / Specialization
Generalization and specialization both refer to
inheritance but the approach in which they
are implemented are different.
If many similar existing
classes are combined
to form a super class
to do common job of
its subclass, then it is
known as
Generalization.
If some new
subclasses are created
from an existing super
class to do specific job
of the super class,
then it is known as
Specialization.
Generalization / Specialization
Vehicle
v-no
Model
Color
Drive
Stop
Motorbike
v-no
Model
color
Drive
Stop
Car
v-no
Model
Color
Airbag
Drive
Stop
Reverse
Specialization
Generalization
Car and Motorbike specialize Vehicle to their
own sub-type.
Vehicle Generalize what is
common between Car and
Motorbike
Unified Modeling Language (UML)
• UML is a general purpose visual modeling
language to visualize, specify and document
software systems.
• The most important goal for developing UML
is to define some general purpose modeling
language which all modelers can use and it
also needs to be simple to understand and
use.
Unified Modeling Language (UML)
• Class Diagrams
• Use Case Diagrams
Class Diagrams
• A class diagram shows the static structure of
an object oriented model.
• Also it shows object classes and their internal
structures (attributes and operations) and
their relationships.
Class Diagrams
Student
Name
Address
Phone
Display
Add
Edit
Delete
Class Name
Attributes
Operations
Structure of a Class
Relationships
• Association
• Aggregation
• Composition
• Generalization
Association
• An association is a relationship among classes
or objects.
• Ex: Student follows Course, Lecturer teaches
Student, Manager manages company.
manager company
Aggregation
• When an object has an another object, then
you have got an aggregation between them.
• Ex: Library has Students
Student Library
Composition
• When an object contains the other object, if
the contained object cannot exist without the
existence of container object, then it is called
composition.
• Ex: University consist from Buildings, Shirt
consist from Collar, buttons, etc.
Generalization
Person
Employer Customer
Multiplicity
Multiplicity indicates the number of instance
of one class linked to instance of another
class.
One to One
1 1
One to Many
1 *
Many to Many
* *
A Sample Class Diagram
A sample class diagram
Use Case Diagrams
A use case diagram is a graphical
representation of a user's interaction with the
system.
The purpose of use case diagram is to capture
the dynamic aspect of a system.
Use Case Diagram Notations
Actor
Use Case
Communication Extend/include
System
Boundary
A Sample Use Case Diagram
A Sample Use Case Diagram
Software Testing
• The objective of testing is uncover errors in a
program as much as possible
• In testing a series of steps such as
– Unit Testing
– Integration Testing
– Validation Testing
– System Testing
Are planned and executed…
Unit Testing
Unit Testing focuses verification effort of the
smallest unit of the software component or
module.
Integration Testing
Verifies the incorporation of components into
a program structure.
Validation Testing
Validation Testing is testing traceability to the
software requirements.
System Testing
Validates software once it has been
incorporated into a large system. (hardware,
people, information)
Testing Approaches
There are two main testing approaches
1. Black Box Testing
2. White Box Testing
Black Box Testing
• The program is considered as a black box
which the internal logic is cannot seen by the
testers.
• The expected output is checking against the
input given to the program.
White Box Testing
• Program is assumed as a transparent box
where the internal logic is seen by the testers.
• The flows of every logical pathway are tested
in a systematic approach.
Software Documentation
Documentation are two types
1. Documents for programmers
2. Documents for users
Documents for Programmers
• Internal
Used in coding
– Meaningful names for variables
– Comments
– Using standard style and format
• External
These are the documents which carried out by
designers, analysts and programmers to
communicate
– Requirements Specification
– Design Specification
– Feasibility Report
Documents for Users
There are user manuals which is giving
instructions and support for end users for using
the software systems.
Explaining the purpose of the system
Detailed, descriptions and examples by screen
shots.
Step by step guide for operating the system
Troubleshooting support
The End
http://twitter.com/rasansmn

More Related Content

What's hot

Software effort estimation
Software effort estimationSoftware effort estimation
Software effort estimationtumetr1
 
Requirements Engineering - Quality assurance
Requirements Engineering - Quality assuranceRequirements Engineering - Quality assurance
Requirements Engineering - Quality assuranceBirgit Penzenstadler
 
Basic Software Effort Estimation
Basic Software Effort EstimationBasic Software Effort Estimation
Basic Software Effort Estimationumair khan
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleRIKSOF
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptxubaidullah75790
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringZahoor Khan
 
Requirements Engineering Process Improvement
Requirements Engineering Process ImprovementRequirements Engineering Process Improvement
Requirements Engineering Process ImprovementIan Sommerville
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPTMohit Kumar
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Chapter 01 - Introduction to Software Project Management
Chapter 01 - Introduction to Software Project ManagementChapter 01 - Introduction to Software Project Management
Chapter 01 - Introduction to Software Project ManagementRohanMistry15
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse EngineeringRehan Saeed
 

What's hot (20)

Design engineering
Design engineeringDesign engineering
Design engineering
 
Unit 3
Unit 3Unit 3
Unit 3
 
Software effort estimation
Software effort estimationSoftware effort estimation
Software effort estimation
 
Requirements Engineering - Quality assurance
Requirements Engineering - Quality assuranceRequirements Engineering - Quality assurance
Requirements Engineering - Quality assurance
 
Rad model
Rad modelRad model
Rad model
 
Basic Software Effort Estimation
Basic Software Effort EstimationBasic Software Effort Estimation
Basic Software Effort Estimation
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Software project management
Software project managementSoftware project management
Software project management
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Requirements Engineering Process Improvement
Requirements Engineering Process ImprovementRequirements Engineering Process Improvement
Requirements Engineering Process Improvement
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
 
RAD Model
RAD ModelRAD Model
RAD Model
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Chapter 01 - Introduction to Software Project Management
Chapter 01 - Introduction to Software Project ManagementChapter 01 - Introduction to Software Project Management
Chapter 01 - Introduction to Software Project Management
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse Engineering
 

Similar to DITEC - Software Engineering

DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringRasan Samarasinghe
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 
Soft engg introduction and process models
Soft engg introduction and process modelsSoft engg introduction and process models
Soft engg introduction and process modelssnehalkulkarni74
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process ModelsAhsan Rahim
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design Jayant Dalvi
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3Azhar Shaik
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsNoor Ul Hudda Memon
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
software process model
software process modelsoftware process model
software process modeljuhi kumari
 
SDLC models testing
SDLC models testingSDLC models testing
SDLC models testingJadavsejal
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMMubashir Ali
 

Similar to DITEC - Software Engineering (20)

DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
ppt2.pptx
ppt2.pptxppt2.pptx
ppt2.pptx
 
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...
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
Soft engg introduction and process models
Soft engg introduction and process modelsSoft engg introduction and process models
Soft engg introduction and process models
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
software engineering
software engineering software engineering
software engineering
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
1 sdlc model
1 sdlc model1 sdlc model
1 sdlc model
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
software process model
software process modelsoftware process model
software process model
 
SDLC models testing
SDLC models testingSDLC models testing
SDLC models testing
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 

More from Rasan Samarasinghe

Managing the under performance in projects.pptx
Managing the under performance in projects.pptxManaging the under performance in projects.pptx
Managing the under performance in projects.pptxRasan Samarasinghe
 
Agile project management with scrum
Agile project management with scrumAgile project management with scrum
Agile project management with scrumRasan Samarasinghe
 
Application of Unified Modelling Language
Application of Unified Modelling LanguageApplication of Unified Modelling Language
Application of Unified Modelling LanguageRasan Samarasinghe
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIRasan Samarasinghe
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Rasan Samarasinghe
 
Advanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitAdvanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitRasan Samarasinghe
 
DIWE - Working with MySQL Databases
DIWE - Working with MySQL DatabasesDIWE - Working with MySQL Databases
DIWE - Working with MySQL DatabasesRasan Samarasinghe
 
DIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationDIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationRasan Samarasinghe
 
DIWE - Programming with JavaScript
DIWE - Programming with JavaScriptDIWE - Programming with JavaScript
DIWE - Programming with JavaScriptRasan Samarasinghe
 
DIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningDIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningRasan Samarasinghe
 
DIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesDIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesRasan Samarasinghe
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Rasan Samarasinghe
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingRasan Samarasinghe
 
Esoft Metro Campus - Certificate in java basics
Esoft Metro Campus - Certificate in java basicsEsoft Metro Campus - Certificate in java basics
Esoft Metro Campus - Certificate in java basicsRasan Samarasinghe
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementRasan Samarasinghe
 

More from Rasan Samarasinghe (20)

Managing the under performance in projects.pptx
Managing the under performance in projects.pptxManaging the under performance in projects.pptx
Managing the under performance in projects.pptx
 
Agile project management with scrum
Agile project management with scrumAgile project management with scrum
Agile project management with scrum
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
IT Introduction (en)
IT Introduction (en)IT Introduction (en)
IT Introduction (en)
 
Application of Unified Modelling Language
Application of Unified Modelling LanguageApplication of Unified Modelling Language
Application of Unified Modelling Language
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST API
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...
 
Advanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitAdvanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with Git
 
DIWE - Working with MySQL Databases
DIWE - Working with MySQL DatabasesDIWE - Working with MySQL Databases
DIWE - Working with MySQL Databases
 
DIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationDIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image Manipulation
 
DIWE - File handling with PHP
DIWE - File handling with PHPDIWE - File handling with PHP
DIWE - File handling with PHP
 
DIWE - Advanced PHP Concepts
DIWE - Advanced PHP ConceptsDIWE - Advanced PHP Concepts
DIWE - Advanced PHP Concepts
 
DIWE - Fundamentals of PHP
DIWE - Fundamentals of PHPDIWE - Fundamentals of PHP
DIWE - Fundamentals of PHP
 
DIWE - Programming with JavaScript
DIWE - Programming with JavaScriptDIWE - Programming with JavaScript
DIWE - Programming with JavaScript
 
DIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningDIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web Designing
 
DIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesDIWE - Multimedia Technologies
DIWE - Multimedia Technologies
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programming
 
Esoft Metro Campus - Certificate in java basics
Esoft Metro Campus - Certificate in java basicsEsoft Metro Campus - Certificate in java basics
Esoft Metro Campus - Certificate in java basics
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality Management
 

Recently uploaded

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

DITEC - Software Engineering

  • 1. Diploma in Information Technology Module VII: Software Engineering Rasan Samarasinghe ESOFT Computer Studies (pvt) Ltd. No 68/1, Main Street, Pallegama, Embilipitiya.
  • 2. Contents 1. What is software? 2. Software classification 3. Attributes of Software 4. What is Software Engineering? 5. Software Process Model 6. Waterfall Model 7. Prototype Model 8. Throw away prototype model 9. Evolutionary prototype model 10. Rapid application development 11. Programming styles 12. Unstructured programming 13. Structured programming 14. Object oriented programming 15. Flow charts 16. Questions 17. Pseudo codes 18. Object oriented programming 19. OOP Concepts 20. Inheritance 21. Polymorphism 22. Encapsulation 23. Generalization/specialization 24. Unified Modeling Language 25. Class Diagrams 26. Use case diagrams 27. Software testing 28. Black box testing 29. White box testing 30. Software documentation
  • 3. What is software? A software is a collection of instructions that enables a user to interact with the computer or have the computer perform special task for them.
  • 4. Software classification • System Software – Directly controlling the hardware resources and supports the operation of application software. • Application Software – Serves the user requirements in a particular application domain.
  • 5. Software classification • Generic Software (off the shelf) – Available on open market to any customer who is able to buy it. • Custom Software (bespoke) – Developed specially for a customer requirement.
  • 6. Generic Software vs Custom Software Less expensive More reliable Immediate installation More user friendly User requirements are not completely satisfied Cannot accommodate future changes More expensive Less reliable Delay due to high development time Less user friendly Completely satisfied Can easily accommodate future changes Generic Software Custom Software
  • 7. Attributes of Software • Maintainability • Dependability • Efficiency • Usability • Security • Reliability • Robustness • Customizability • Scalability • Accessibility • Extensibility
  • 8. What is Software Engineering? Software engineering is concerned with application of theories, methods and tools to develop and maintain software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.
  • 9. Software Engineering Process ModelA software process model is a set of predicted procedures or set of stages to be use to develop a fully tested software system timely. Software Process Model
  • 10. • Waterfall model • Prototyping model • Rapid application development model • Spiral model • V-model • Join application development model • Incremental development model Software Process Models
  • 12. Waterfall Model • A linear sequential development model. • Because of the cascade form one stage to another it is known as waterfall model. • Divided project activities into isolated stages and each stage should complete before next started. • Concurrent activities are not possible. • Need to wait until end of the life cycle to see the outcome. • Suitable for develop systems which has stable requirements.
  • 13. Waterfall Model Stages Stage 1: Requirement Definition • The system services, constraints and goals are established by consulting with the system users. • They are define in a manner which is understandable by both users and the development staff.
  • 14. Waterfall Model Stages Stage 2: System and Software designing • Partitions the requirements either hardware or software. • Involves representing the software system functions in a form that may be transformed into executable programs. • Identifying and describing fundamental software system abstraction and there relationships.
  • 15. Waterfall Model Stages Stage 3: Implementation and unit testing • Implementation consists of converting the physical designing into set of actual programs and a set of database tables. • The software is realized as a set of programs or program units. • Unit testing involves verifying that each unit meets it’s requirements.
  • 16. Waterfall Model Stages Stage 4: integration and system testing • Individual program units are integrated and tested as a complete system. • Ensure the software requirements have been met. • After testing the software system is delivered to the customer.
  • 17. Waterfall Model Stages Stage 5: Operation and maintenance • The system installed and put into practical use. • Involved correcting errors which were not discovered in earlier stages. • Improving implementation as new requirements are discovered. • Normally this is the longest life cycle phase.
  • 18. Extended Waterfall Model • Due to the above discussed disadvantages, the waterfall model was modified with the concept of backtracking. • As a result, the Extended Waterfall Model introduced.
  • 20. Prototype Model Prototype is a working model of the actual System There are two types of prototype model. 1. Throw away prototype model 2. Evolutionary prototype model
  • 22. Throw away prototype model • Prototype is use to gather requirements and there after it will be thrown away. • Further designing, construction and implementation will be done using the normal life cycle stages. • Requirements gathering can be exactly done by using the prototype • Even to develop prototype consumes lot of time and effort , therefore once a prototype is thrown away it’s a waste of time and money.
  • 23. Evolutionary prototype model System Complete System Architecture Identify Prototype Quick Design Construct And Use The System Revise Prototype Deliver System Yes No
  • 24. Evolutionary prototype model • Prototype is use to gather requirements and it will become the final system. • Both the prototyping process as well as the development process will be combine together. • Prototype will not be thrown away and it is not wasting effort and cost like throw away prototype.
  • 26. Rapid application development model (RAD) • This is a software process model which uses to develop applications rather quickly. • The entire system is broken down into several manageable stages and each stage analyzed, designed, developed, tested and implemented simultaneously Rapid Application Development (RAD)
  • 27. Stages in the RAD 1. Business modeling • The information flow among business functions is modeled. • Find answers for the following questions: What information drives the business process? What information is generated? Who generate it? Where does information go? Who process it?
  • 28. Stages in the RAD 2. Data modeling • The information flows are refined into set of data objects. • The attributes of each objects and relationships between these objects defined.
  • 29. Stages in the RAD 3. Process modeling • The data objects are transformed to achieve the information flow necessary to implement the business function. • Processes are created for adding, modifying, deleting and retrieving data objects.
  • 30. Stages in the RAD 4. Application generation • Using fourth generation techniques rather than using conventional third generation programming languages. • In possible cases automated tools/reusable components are use to facilitate construction of the software. (Ex: DB query tools, reports, graphics manipulation, interface designs)
  • 31. Stages in the RAD 5. Testing and turnover • Since the RAD process use many reusable components that have been tested, it reduces the overall testing time. • How ever the new components should be tested.
  • 32. Programming Styles There are 3 main programming styles 1. Unstructured Programming 2. Structured Programming 3. Object Oriented Programming
  • 33. Unstructured Programming • Unstructured programming is the historically earliest programming paradigm. • It is a procedural program, the statements are executed in sequence as written. • This type of programming uses the goto statement. A goto statement allows control to be passed to any other place in the program. • Difficult to understand the logic of the program. Ex: Machine language, Cobol
  • 34. Structured Programming • Structured programming is a subset of procedural programming that enforces a logical structure to make it more efficient and easier to understand and modify. • Use of the goto statement is discouraged. • Structured programming using 3 controls constructs: – Sequence – Selection – repetition Ex: C, Pascal, Ada
  • 35. Object Oriented Programming • Object-oriented programming (OOP) is a programming model organized around objects rather than actions and data rather than logic. • It is becoming more popular as a designing technique, because it has an ability to represent complex relationships, data and data processing with suitable notations. Ex: Java, C++, C#
  • 36. Flow Charts A flowchart is a diagrammatic representation of the process involved in arriving at a solution to a problem.
  • 37. Flow Chart Notations Start / End of the program Input / Output Process Decision / Repetition Flow Connector
  • 38. Flow Charts • Question 1: Draw a flowchart to develop a program to input the student index number, name and total marks scored in three modules and display the students index number, name and average marks on the screen.
  • 39. Flow Charts • Question 2: Draw a flowchart to develop a program to input student number, name, module 1 marks and module 2 marks and display student number, name, average marks and total marks.
  • 40. Flow Charts • Question 3: A student has sat for an exam and following details were entered through the keyboard: student number, name, and average marks. If he average is greater than 50 student will be graded as “Pass” otherwise graded as “Fail”. Draw a flowchart to display the student name, average and grade.
  • 41. Flow Charts • Question 4: Draw a flowchart to input two numbers from the keyboard and evaluate and display the maximum value.
  • 42. Flow Charts • Question 5: Draw a flowchart to develop a program to input student no, name, module 1 marks and module 2 marks by keyboard. Calculate and display student no, average and the grade. The grading system is as follows. Average > 75 grade is “distinction”, 50 - 75 grade is “credit”, 25 - 50 grade is “Pass” and less than 25 is “Fail”.
  • 43. Flow Charts • Question 6: Draw a flowchart to calculate and display the sum of first five natural numbers.
  • 44. Flow Charts • Question 7: Draw a flowchart to input a number from keyboard, and there after calculate and display the factorial number.
  • 45. Pseudo Codes Pseudo code consists of short, English phrases used to explain specific tasks within a program's algorithm. Pseudo code should not include keywords in any specific computer languages. It should be written as a list of consecutive phrases.
  • 46. Pseudo Codes One of the concepts in programming is… PROGRAM = DATA + ALGORITHM Data  Data types: String, Integer, Real  Data usage: Variable, Constant  Data scope: Global data, Local data Algorithm  Sequence  Selection  Repetition
  • 47. Object Oriented Programming • Object-oriented programming (OOP) is a programming language model organized around objects rather than actions and data rather than logic. • Object oriented programming becoming more popular as a designing technique, because it has an ability to represent complex relationships, data and data processing with suitable notations.
  • 48. Object Oriented Programming Male Female Son Father Mother Daughter Family system Objects
  • 49. Object and Class An object is person, place or thing which consist of data and behaviors. The data of an object is its properties (attributes) and behaviors represent how an object acts and reacts. A class is simply a representation of a type of object. It is the blueprint / template that describe the details of an object. Class is composed of three things: a name, attributes, and operations.
  • 50. Object Instance Object instance is uniquely identified occurrence of an object Book Book_id Title Author Lending Reservation Reading Book 001 – A Science Peter Lending Reservation Reading Object instance
  • 51. Object Oriented Programming Concepts  Inheritance  Polymorphism  Encapsulation  Generalization  Specialization
  • 52. Inheritance Inheritance is sharing of attributes and operations among classes based on a hierarchical relationship. Vehicle v-no Model color Drive Stop Bus v-no Model color Drive Stop Car v-no Model color Drive Stop Super class operations and attributes are inherited to the sub classes
  • 53. Polymorphism • Polymorphism is simply the ability for an object behaves differently depending on its type. • Ex: both cat and dog are animals which has the same method called makeNoise(). But they are making noise in different ways.
  • 55. Encapsulation • According to encapsulation attributes and operations are encapsulated (hidden) within the object. • The outside world know what the object can do but don’t know how it does or where data is stored. These features are hidden from the user.
  • 56. Generalization / Specialization Generalization and specialization both refer to inheritance but the approach in which they are implemented are different. If many similar existing classes are combined to form a super class to do common job of its subclass, then it is known as Generalization. If some new subclasses are created from an existing super class to do specific job of the super class, then it is known as Specialization.
  • 58. Unified Modeling Language (UML) • UML is a general purpose visual modeling language to visualize, specify and document software systems. • The most important goal for developing UML is to define some general purpose modeling language which all modelers can use and it also needs to be simple to understand and use.
  • 59. Unified Modeling Language (UML) • Class Diagrams • Use Case Diagrams
  • 60. Class Diagrams • A class diagram shows the static structure of an object oriented model. • Also it shows object classes and their internal structures (attributes and operations) and their relationships.
  • 62. Relationships • Association • Aggregation • Composition • Generalization
  • 63. Association • An association is a relationship among classes or objects. • Ex: Student follows Course, Lecturer teaches Student, Manager manages company. manager company
  • 64. Aggregation • When an object has an another object, then you have got an aggregation between them. • Ex: Library has Students Student Library
  • 65. Composition • When an object contains the other object, if the contained object cannot exist without the existence of container object, then it is called composition. • Ex: University consist from Buildings, Shirt consist from Collar, buttons, etc.
  • 67. Multiplicity Multiplicity indicates the number of instance of one class linked to instance of another class. One to One 1 1 One to Many 1 * Many to Many * *
  • 68. A Sample Class Diagram A sample class diagram
  • 69. Use Case Diagrams A use case diagram is a graphical representation of a user's interaction with the system. The purpose of use case diagram is to capture the dynamic aspect of a system.
  • 70. Use Case Diagram Notations Actor Use Case Communication Extend/include System Boundary
  • 71. A Sample Use Case Diagram
  • 72. A Sample Use Case Diagram
  • 73. Software Testing • The objective of testing is uncover errors in a program as much as possible • In testing a series of steps such as – Unit Testing – Integration Testing – Validation Testing – System Testing Are planned and executed…
  • 74. Unit Testing Unit Testing focuses verification effort of the smallest unit of the software component or module.
  • 75. Integration Testing Verifies the incorporation of components into a program structure.
  • 76. Validation Testing Validation Testing is testing traceability to the software requirements.
  • 77. System Testing Validates software once it has been incorporated into a large system. (hardware, people, information)
  • 78. Testing Approaches There are two main testing approaches 1. Black Box Testing 2. White Box Testing
  • 79. Black Box Testing • The program is considered as a black box which the internal logic is cannot seen by the testers. • The expected output is checking against the input given to the program.
  • 80. White Box Testing • Program is assumed as a transparent box where the internal logic is seen by the testers. • The flows of every logical pathway are tested in a systematic approach.
  • 81. Software Documentation Documentation are two types 1. Documents for programmers 2. Documents for users
  • 82. Documents for Programmers • Internal Used in coding – Meaningful names for variables – Comments – Using standard style and format • External These are the documents which carried out by designers, analysts and programmers to communicate – Requirements Specification – Design Specification – Feasibility Report
  • 83. Documents for Users There are user manuals which is giving instructions and support for end users for using the software systems. Explaining the purpose of the system Detailed, descriptions and examples by screen shots. Step by step guide for operating the system Troubleshooting support

Editor's Notes

  1. Maintenability Ability to evolve with the changing needs of the customer Dependability What it is depends on Efficiency Efficiency is the ability of the software to do the required processing on least amount of hardware. Usability Usability is the ability of a software to offer its interfaces in a user friendly and elegant way. Security Security is the ability of the software to remain protected from unauthorized access. This includes both change access and view access. Reliability High Reliability is the measure of how a product behaves in varying circumstances. Robustness Robustness is defined as the ability of a software product to cope with unusual situation. Customizability Customizability is the ability of a software to offer extensions to existing functionality to better suite the needs of a user. Scalability Scalability is the ability of the software to cater for heavier processing loads as the needs arise. Accessibility Accessibility is the ability of a software to be accessible from a multitude of devices and for a number of different types of users. Extensibility (Data model) Extensibility is the ability of the software to be extended beyond the functionality of the original product.