SlideShare una empresa de Scribd logo
1 de 88
INTRODUCTION TO SOFTWARE
ENGINEERING
BY :
Ahmed Elshahat Mohamed
Agenda
Software Definition.
 Attributes of good software.
Software Engineering :
• Software Engineering Definition.
• Software Development Life Cycle.
 Waterfall Model.
 V-Model.
 Agile Scrum.
Introduction to software engineeringBy : Ahmed Elshahat Mohamed
What is software ?
 Software is a set of instructions used to acquire inputs and to
manipulate them to produce the desired output in terms of
functions and performance as determined by the user of the
software.
software
Source
Code
Documents
System
Manuals
ProcessInputs Outputs
Types of software
 Custom :
 For a specific customer
 Generic :
 Specifications are produced by the marketing
department of the product company .They reflect
what they think
 Embedded Software :
 Software with principal role , specialized for
particular hardware that runs on and has time and
memory constraints .
Importance of software
 It is embedded in all kinds of systems, such as
transportation, medical, telecommunications, military,
industrial processes, entertainment, office products, etc.
 It is important as it affects nearly every aspect of our lives
and has become pervasive in our commerce, our culture,
and our everyday activities.
Software quality attributes:
The software should deliver the required functionality and performance to user
and should be maintainable, reliable and acceptable.
Software quality attributes
• Reliability
Ability of Software to perform its intended functions and
operations in a system's environment, without experiencing
failure (system crash) always exist.
• Efficiency
Software should make the best use of the system resources.
And satisfy the required response time.
• Usability
Software must be usable by the users for which it was designed.
This means it must be understandable, usable and compatible
with other systems.
Software quality attributes
• Portability
Characteristics related to the ability to transfer the software from
one organization or hardware or software environment to another.
• Maintainability
Software must evolve to meet changing needs.
Software Cost
 Software engineering is concerned with cost-efficient software
development.
 The costs of software are often higher than the hardware cost.
 Software costs more to be maintained than it does to be developed
For systems with long life,
maintenance cost may be several times
development cost.
 About US$250 billions spent per year
 in the US on application development.
 Out of this, about US$140 billions wasted
due to the projects getting abandoned or reworked.
Software crisis
 31% of projects get cancelled before they are completed .
 53% over-run their cost estimates by an average 189% .
 For every 100 projects , there are 94 projects restart .
Why !
• Schedule and cost estimates are often grossly inaccurate.
• Lack in productivity of software people .
• The quality of software sometimes less than expected .
• Communication between customer and developer is often poor.
• Software maintenance tasks devour the majority of funds.
Software crisis
 The launched rocket by the European Space Agency , 1996 .
 Software crisis led to software Engineering
Software crisis
What is software Engineering?
 It is a systematic approach to
analysis, design, implementation,
test, maintenance
and reengineering of software,
so that it is of higher quality,
more affordable, maintainable,
cost efficient and faster to build.
Software development life cycle
 Also known as software process.
 Software Development Life Cycle (or SDLC) is the process
which is followed to develop a software product. It is a
structured way of building software applications. Most
organizations have a process in place for developing software.
 The software-development life-cycle is used to facilitate the
development of a large software product in a systematic, well-
defined, cost-effective and fast way.
 A set of activities whose goal is the development or evolution
of software.
Software development life cycle
Requirements
Design
codingTesting
Deployment
Maintenance
Requirements
 What the system should do and its development constraints, This
phase is the main focus of the project managers and stake holders
.
 Meetings with managers, stake holders and users are held in order
to determine the requirements like , Who is going to use the
system? How will they use the system ? What data should be input
into the system ? What data should be output by the system ?
These are general questions that get answered during a
requirements gathering phase.
• Functional Requirements: specify what actually the system
does.
•Non-functional Requirements: specify system limits and
constrains example: memory size, power consumption and
aspects concerning maintainability, portability, and usability.
Requirement types
Functional
Requirements
Non-functional
Requirements
Requirements analysis
 The purpose of a requirements
analysis is to identify the qualities
required of the application,
in terms of functionality,
performance, ease of use,
portability, interfaces, security.
 The requirements describe
the “what” of a system, not the “how” .
 The o/p of this step is An SRS .
Software Requirement Specification Document
An SRS document is generated as the output of requirements
analysis.
 Requirements analysis involves obtaining a clear and thorough
understanding of the product to be developed. Thus, the SRS
should be a consistent, correct, unambiguous, and complete
document.
 An SRS document must contain the following:
 Detailed statement of problem.
 Possible alternative solution to problem.
 Functional requirements of the software system.
 Constraints on the software system.
Software Requirement Specification Document
 Requirements documentation is the description of what a particular
software does or shall do.
 It is used throughout development to communicate how the
software functions or how it is intended to operate. It is also used
as an agreement or as the foundation for agreement on what the
software will do.
 Requirements are produced and consumed by everyone involved
in the production of software: end users, customers, product
managers, project managers , designers , developers, and testers.
Requirement Traceability
 The ability to describe and trace the life of a requirement
, is it covered by coding team and testing team (create test
cases) .
 Requirement traceability matrix is documented table to
trace the progress in the project
Requirement Traceability
Software Design
 Software design is the blueprint of the system, which once
completed can be provided to developers for code
development. Based on the components in design, they are
translated into software modules/functions/libraries, etc…
and these pieces together form a software system.
Software Design
High level design Low level design
Software Design
 High Level Design (HLD) : is the overall system design , It
describes the relation between various modules and functions of
the system.
 Low Level Design (LLD) : is like detailing the HLD. It defines the
actual logic for each and every component of the system.
Flow chart
 Flow chart is a type of diagram that describe the path of data , or
process step by step, showing the steps as boxes of various kinds
and their order by connecting with arrows.
 Flow charts are used in designing processes or programs to
make them simple to understand.
 The biggest advantage of a flow chart is that it gives an overall
view of the process at a single glance , to understand it better
 Commonly used shapes in flow charts
Flow Line
An arrow coming from one symbol
and ending at another symbol
represents that control passes to
the symbol the arrow points to.
Terminal
Represented as circles. They usually
contain the word "Start" or "End", or
another phrase signaling the start or
end of a process.
Process
Represented as rectangles. This
shape is used to show that
something is performed. Examples:
"Add 1 to X .
Decision
Represented as a diamond showing
where a decision is necessary,
commonly a Yes/No question or
True/False test.
 Generally , flowcharts flow from top to bottom and left to right.
 Flow chart Example
Pseudo-code
 using pseudo-code , the designer describes system
characteristics using short , concise English language
phrases that are structured by keywords , such as if-
Then-Else, while-do , and End.
 Its written in structured manner .
Software Architecture
 Decomposition of software into layers.
Software Architecture
 Why SW Layers ?
 Isolate Application from HW changes as
upper layers don’t affect by lower ones
(Portability).
 Reusability of the SW driver among different
applications.
 Easier in Testing.
 Simplifies isolation of software bugs
(detection and correction).
 Easier Software updates and upgrades
(Software maintainability).
Development(Coding)
 On receiving system design documents,
the work is divided in modules/units and actual coding is
started.
 Since, in this phase the code is produced so it is the main
focus for the developer.
 The output of this phase
is an implemented
and tested collection of modules.
Testing
 After the code is developed it is tested against the requirements to
make sure that the product is actually solving the needs addressed
and gathered during the requirements phase.
Testing levels
1.Unit testing : Test the software for defects and bugs .
2.Component testing :Test functionality of each module alone.
3.Integration testing : Test the interfaces and interactions between
integrated modules .
4.System testing : Checking the whole system in the intention of
finding defects and anomalies from both the design & the
requirements.
5.User Acceptance Testing : The acceptance test phase is the
phase used by the customer to determine whether to accept the
system or not. When the software passes those tests it has been
accepted by the client as meeting the requirements .
Test Levels
System
Integration
Testing
Testing Organisation
System
Testing
User
Acceptance
Testing
Component
Integration
Testing
Unit Testing
TestingProcess
test organisation businessSW dev.
Deployment
 Getting software out of the hands of the developers
into the hands of the users.
Maintenance
 It is an important part of the SDLC .it may consume
time more than that taken for development and cost
that range from 50% to 80% of the total development
cost .
Types of maintenance
Types of maintenance
1. Corrective maintenance : it is repairing processing
or performance failures or making changes because
of previously uncorrected problems .
2. Adaptive maintenance : changing the program
function . This is done to adapt to the external
environment change .
3. Perfective maintenance : enhancing the
performance or modifying the programs to respond to
the user’s additional or changing needs.
4. Preventive maintenance : it is the process by which
we prevent our system from being obsolete. It
involves the concept of re-engineering an old system
with an old technology using new technology
Software Development Methodology
 Plan driven:
 Agile:
Software Development Methodology
 Plan driven:
 Plan driven processes where all the process activities
are planed in advance .
 In this way, we can measure the progress of the
process against this plan.
 Agile:
 In Agile processes planning is incremental and it is
easier to change the plan and the software to reflect
changing customer requirements .
 As activities can be changed, so the progress of
development process is not measured exactly.
Waterfall model
Waterfall model
 The waterfall model is a very common software development
process model.
 The waterfall model was popularized in the 1970s and
permeates most current software-engineering textbooks and
standard industrial practices.
 As the figure shows, the process is structured as a cascade of
phases, where the output of one phase constitutes the input to
the next one. Each phase, in turn, is structured as a set of
activities that might be executed by different people concurrently.
 Because of the cascade from one phase to another, this model is
known as the waterfall model.
Waterfall model
 Advantages of Waterfall Model
1.it is a simple one. Easy to understand, easy to use.
2.Easy to manage due to the rigidity of the model –each phase has
specific deliverables and a review process.
3.Phases are processed and completed one at a time.
4.Works well for smaller projects where requirements are very well
understood.
Waterfall model
 Disadvantages of Waterfall Model
1.This model is not suitable for accommodating any change. So this
model is Not suitable for the projects where requirements are at a
moderate to high risk of changing.
2.We can not go backward in the SDLC. Once an application is in
the testing stage, it is very difficult to go back and change
something that was not well-thought out in the concept stage
3.It does not scale up well to large and complex projects.
4.Poor model for long and ongoing projects.
5.No working software is produced until late during the life cycle.
Waterfall model
 When to use the waterfall model
1.Requirements are very well known, clear and fixed.
2.Product definition is stable.
4.There are no ambiguous requirements
5.The project is short
Developers life cycle V-Model Tester life cycle
Requirements
specification
High level Design
Low level Design
coding
Software code
Unit testing
Component testing
Integration Testing
System testing
V-model
 The V-model represents a software development , which may be
considered an extension of the waterfall model. Instead of moving
down in a linear way, the process steps are bent upwards after the
coding phase, to form the typical V shape. The V-Model
demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing.
 Requirements like SRS document begin the life cycle model just
like the waterfall model. But, in this model before development is
started, a system test plan is created. The test plan focuses on
meeting the functionality specified in the requirements gathering.
V-model
 The high-level design (HLD) or Architecture Design phase
focuses on system architecture and design. It provide overview of
solution, platform, system, product and service/process. An
integration test plan is created in this phase as well in order to
test the pieces of the software systems ability to work together.
 The low-level design(LLD) or Detailed Design Phase or
Module Design Phase is where the actual software components
are designed. It defines the actual logic for each and every
component(Module) of the system. Component tests or Module
Tests are created in this phase as well.
V-model
 The implementation(Coding) phase is where all coding takes
place. Unit Testing is created in this phase in order to test the
software for defects and bugs . Then is performed on the code
once coding is complete . The path of execution continues up the
right side of the V where the test plans developed earlier are now
put to use. This is at the bottom of the V-Shape model. Module
design is converted into code by developers.
V-model
 Advantages of V-model
1.Simple and easy to use.
2.Testing is a full life-cycle activity ,this saves a lot of time. Hence
higher chance of success over the waterfall model.
3.Proactive defect tracking –that is defects are found at early stage.
V-model
 Disadvantages of V-model
1.Software is developed during the implementation phase, so no
early prototypes of the software are produced.
2.If any changes happen in midway, then the test documents along
with requirement documents has to be updated.
3.Heavy weight documentation.
4.It needs lot of resources . It can be implemented by only some big
companies
Waterfall Limitations
Waterfall
limitations
Sequential in nature,
complete a stage before
moving to next stage
No working version of the
system until late in the
process
Any changes customer mentions
in between may cause a lot of
rework
Doesn't account for the
fact that requirements
constantly change
Agile Scrum
 Many projects fail to deliver value in either a timely fashion or at all
For both technical and non-technical reasons. So agile allows us to
focus on delivering the highest business value in the shortest time.
 For progress in project , software is developed and delivered in
small iterations (Sprints).
 It helps the business to see the work , or want to receive product
benefit earlier or help in later changes .
Agile principles
 Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software .
 Welcome changing requirements , even late in development.
 Deliver working software (customer value ) with a preference to
the shorter time scale.
 Simplicity .
Agile Scrum
 The Agile Scrum life cycle :
 Every sprint :
Project endSprint 3Sprint 2Sprint 1
Project
start
Detailed
requirements
Design
develop
test
Characteristics of Agile Scrum
 Scrum projects make progress in a series of “sprints”.
 Typical duration is 2–4 weeks or a calendar month at most.
 Product feature is designed, coded, and tested during the sprint.
 Teams are co-located , or simulate being together.
 Face to face communication is preferred over documentation
Scrum framework
•Product owner
•ScrumMaster
•Team
Roles
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
Scrum framework
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product owner
•ScrumMaster
•Team
Roles
•Product backlog
•Sprint backlog
Artifacts
Product owner
■ Define the features of the product (responsible for the
backlog and story) .
■ Decide on release date and content .
■ Prioritize features according to market value .
■ Accept or reject work results .
■ Helps define ‘done’ .
The Scrum Master
• Process facilitator .
• Represents management to the project .
• Helps builds self organizing teams .
• Removes impediments
• Ensure that the team is fully functional and productive .
• Enable close cooperation across all roles and functions .
• Shield the team from external interferences .
The team
• Typically 5-9 people
• Cross-functional
• Programmers, testers, designers, analyst , etc.
• Teams are self-organizing
• Accountable for delivery of result that meet the customer’s needs
and software quality
• Membership should change only between sprints
•Product owner
•ScrumMaster
•Team
Roles
Scrum framework
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
Product backlog
• The requirements
• A list of all desired work on the project
• Ideally expressed such that each item has value to the users or
customers of the product
• Prioritized by the product owner
• Reprioritized at the start of each sprint
This is the
product backlog
Sprint Backlog
 Team selects items from the product backlog they can
commit to completing.
 Sprint backlog is created
 Tasks are identified and each is estimated (1-16
hours)
 Collaboratively, not done alone by the Scrum
Master
•Product owner
•ScrumMaster
•Team
Roles
Scrum framework
•Sprint planning
•Daily scrum meeting
•Sprint review
•Sprint retrospective
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
Sprint planning meeting
Sprint prioritization
• Analyze and evaluate product
backlog
• Select sprint goal
Sprint planning
• Decide how to achieve sprint
goal (design)
• Create sprint backlog (tasks)
from product backlog items
(user stories / features)
• Estimate sprint backlog in hours
Sprint
goal
Sprint
backlog
Business
conditions
Team
capacity
Product
backlog
Technology
Current
product
Sprint planning
The daily scrum
• Parameters
• Daily
• 15-minutes
• Stand-up
• Not for problem solving
• Whole world is invited
• Only team members, Scrum Master, product
owner, can talk
• Helps avoid other unnecessary meetings
Everyone answers 3 questions
What did you do yesterday?
1
What will you do today?
2
Is anything in your way?
3
The sprint review
• Team presents what it accomplished during the sprint
• Typically takes the form of a demo of new features Informal
• 2-hour prep time rule
• Whole team participates
• Invite the world
Sprint retrospective
■ Periodically take a look at what is and is not
working
■ Typically 15–30 minutes
■ Done after every sprint
■ Whole team participates
– Scrum Master
– Product owner
– Team
– Possibly customers
Parameters Agile Model Non-Agile Models
Approach of this methodology This methodology is very flexible and
adjustable and can adapt to the
project needs.
This methodology is not as flexible as
Agile model and it’s tough to
accommodate changes in the project.
Measurement of Success The success of the project in Agile
model is measured by the Business
value delivered.
In this methodology the success of
the project is measured by the
Conformation to plan.
Size of the Project The Project size is usually small in
Agile model. However larger projects
can also be handled using the Scaled
Agile Framework (SAFe).
The project size is Large in non- Agile
models.
Ability to adapt to change In Agile model the changes are
accepted and adapted as per the
project needs.
But in non-Agile models the changes
are not accepted easily in the later
stages of the development.
Difference between Agile model and Non-Agile models
Documentation required Less documentation is required in
Agile.
More documentation is required in
non-Agile models.
Importance of In Agile model more emphasis is given
to the people that means it’s People-
Oriented.
In non-Agile models the more
importance is given to the process
hence it’s Process- Oreinted.
Planning in Advance There is minimal upfront planning in
Agile methodology.
In Non-Agile models the planning
should be complete before the
development starts.
Revenue In Agile method the return on
investment is early in the project cycle.
In non-Agile methods the return on
investment is at the end of the project.
Size of the team The size of the team in Agile
methodology is usually small and
creative.
But in Non-Agile models the team size
is large.
Contact Details
Eng. Ahmed Elshahat Mohamed.
Mob: 01098745294
a.elshahat10@gmail.com
By : Ahmed Elshahat Mohammed Software testing Instructor

Más contenido relacionado

La actualidad más candente

Staff training and certification
Staff training and certificationStaff training and certification
Staff training and certificationashamarsha
 
Components of the sqa system
Components of the sqa system Components of the sqa system
Components of the sqa system Hamza Malik
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Kiran Hanjar
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Ch 4 components of the sqa system
Ch 4 components of the sqa systemCh 4 components of the sqa system
Ch 4 components of the sqa systemKittitouch Suteeca
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Abdul Basit
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24koolkampus
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process ImprovementBilal Shah
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - BasicsPurvik Rana
 

La actualidad más candente (20)

Staff training and certification
Staff training and certificationStaff training and certification
Staff training and certification
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Components of the sqa system
Components of the sqa system Components of the sqa system
Components of the sqa system
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Ch 4 components of the sqa system
Ch 4 components of the sqa systemCh 4 components of the sqa system
Ch 4 components of the sqa system
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 

Destacado

Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering pptshruths2890
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...Ashok Mohanty
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)Hafiz Ammar Siddiqui
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTURishi Shukla
 
Chapter 4 software project planning
Chapter 4 software project planningChapter 4 software project planning
Chapter 4 software project planningPiyush Gogia
 
Software Engineering - Introduction and Motivation (Marcello Thiry)
Software Engineering - Introduction and Motivation (Marcello Thiry)Software Engineering - Introduction and Motivation (Marcello Thiry)
Software Engineering - Introduction and Motivation (Marcello Thiry)Marcello Thiry
 
Software Engineering Introduction
Software Engineering Introduction Software Engineering Introduction
Software Engineering Introduction sarahflieger
 
software engineering
software engineeringsoftware engineering
software engineeringramyavarkala
 
L3 Requirements Eng Overview
L3 Requirements Eng OverviewL3 Requirements Eng Overview
L3 Requirements Eng OverviewIan Sommerville
 
Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringLemi Orhan Ergin
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerGaurav Verma
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
 

Destacado (20)

Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)
2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Software Engineering UPTU
Software Engineering UPTUSoftware Engineering UPTU
Software Engineering UPTU
 
Chapter 4 software project planning
Chapter 4 software project planningChapter 4 software project planning
Chapter 4 software project planning
 
Software Engineering - Introduction and Motivation (Marcello Thiry)
Software Engineering - Introduction and Motivation (Marcello Thiry)Software Engineering - Introduction and Motivation (Marcello Thiry)
Software Engineering - Introduction and Motivation (Marcello Thiry)
 
Software Engineering Introduction
Software Engineering Introduction Software Engineering Introduction
Software Engineering Introduction
 
software engineering
software engineeringsoftware engineering
software engineering
 
L3 Requirements Eng Overview
L3 Requirements Eng OverviewL3 Requirements Eng Overview
L3 Requirements Eng Overview
 
Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software Engineering
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software design methodologies
Software design methodologiesSoftware design methodologies
Software design methodologies
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontroller
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 

Similar a software engineering

Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxethiouniverse
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Software Engineering tools
Software Engineering tools Software Engineering tools
Software Engineering tools imran khan
 
software engineering
software engineeringsoftware engineering
software engineeringsubhakirthi
 
Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.pptMSahibKhan
 
Iterative Waterfall model
Iterative Waterfall modelIterative Waterfall model
Iterative Waterfall modelAnmol Purohit
 
Sofware engineering
Sofware engineeringSofware engineering
Sofware engineeringnstjelja
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNANDINI SHARMA
 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirementcricket2ime
 

Similar a software engineering (20)

Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
Software engineer
Software engineerSoftware engineer
Software engineer
 
Software testing
Software testingSoftware testing
Software testing
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Intro
IntroIntro
Intro
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Sepm t1
Sepm t1Sepm t1
Sepm t1
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Software Engineering tools
Software Engineering tools Software Engineering tools
Software Engineering tools
 
software engineering
software engineeringsoftware engineering
software engineering
 
Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.ppt
 
Iterative Waterfall model
Iterative Waterfall modelIterative Waterfall model
Iterative Waterfall model
 
Sofware engineering
Sofware engineeringSofware engineering
Sofware engineering
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project Management
 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirement
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 

Último

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 

Último (20)

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 

software engineering

  • 1.
  • 2. INTRODUCTION TO SOFTWARE ENGINEERING BY : Ahmed Elshahat Mohamed
  • 3. Agenda Software Definition.  Attributes of good software. Software Engineering : • Software Engineering Definition. • Software Development Life Cycle.  Waterfall Model.  V-Model.  Agile Scrum. Introduction to software engineeringBy : Ahmed Elshahat Mohamed
  • 4. What is software ?  Software is a set of instructions used to acquire inputs and to manipulate them to produce the desired output in terms of functions and performance as determined by the user of the software. software Source Code Documents System Manuals ProcessInputs Outputs
  • 5. Types of software  Custom :  For a specific customer  Generic :  Specifications are produced by the marketing department of the product company .They reflect what they think  Embedded Software :  Software with principal role , specialized for particular hardware that runs on and has time and memory constraints .
  • 6. Importance of software  It is embedded in all kinds of systems, such as transportation, medical, telecommunications, military, industrial processes, entertainment, office products, etc.  It is important as it affects nearly every aspect of our lives and has become pervasive in our commerce, our culture, and our everyday activities.
  • 7.
  • 8. Software quality attributes: The software should deliver the required functionality and performance to user and should be maintainable, reliable and acceptable.
  • 9. Software quality attributes • Reliability Ability of Software to perform its intended functions and operations in a system's environment, without experiencing failure (system crash) always exist. • Efficiency Software should make the best use of the system resources. And satisfy the required response time. • Usability Software must be usable by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
  • 10. Software quality attributes • Portability Characteristics related to the ability to transfer the software from one organization or hardware or software environment to another. • Maintainability Software must evolve to meet changing needs.
  • 11. Software Cost  Software engineering is concerned with cost-efficient software development.  The costs of software are often higher than the hardware cost.  Software costs more to be maintained than it does to be developed For systems with long life, maintenance cost may be several times development cost.  About US$250 billions spent per year  in the US on application development.  Out of this, about US$140 billions wasted due to the projects getting abandoned or reworked.
  • 12. Software crisis  31% of projects get cancelled before they are completed .  53% over-run their cost estimates by an average 189% .  For every 100 projects , there are 94 projects restart . Why ! • Schedule and cost estimates are often grossly inaccurate. • Lack in productivity of software people . • The quality of software sometimes less than expected . • Communication between customer and developer is often poor. • Software maintenance tasks devour the majority of funds.
  • 13. Software crisis  The launched rocket by the European Space Agency , 1996 .  Software crisis led to software Engineering
  • 15. What is software Engineering?  It is a systematic approach to analysis, design, implementation, test, maintenance and reengineering of software, so that it is of higher quality, more affordable, maintainable, cost efficient and faster to build.
  • 16. Software development life cycle  Also known as software process.  Software Development Life Cycle (or SDLC) is the process which is followed to develop a software product. It is a structured way of building software applications. Most organizations have a process in place for developing software.  The software-development life-cycle is used to facilitate the development of a large software product in a systematic, well- defined, cost-effective and fast way.  A set of activities whose goal is the development or evolution of software.
  • 17. Software development life cycle Requirements Design codingTesting Deployment Maintenance
  • 18. Requirements  What the system should do and its development constraints, This phase is the main focus of the project managers and stake holders .  Meetings with managers, stake holders and users are held in order to determine the requirements like , Who is going to use the system? How will they use the system ? What data should be input into the system ? What data should be output by the system ? These are general questions that get answered during a requirements gathering phase.
  • 19. • Functional Requirements: specify what actually the system does. •Non-functional Requirements: specify system limits and constrains example: memory size, power consumption and aspects concerning maintainability, portability, and usability. Requirement types Functional Requirements Non-functional Requirements
  • 20. Requirements analysis  The purpose of a requirements analysis is to identify the qualities required of the application, in terms of functionality, performance, ease of use, portability, interfaces, security.  The requirements describe the “what” of a system, not the “how” .  The o/p of this step is An SRS .
  • 21.
  • 22.
  • 23.
  • 24. Software Requirement Specification Document An SRS document is generated as the output of requirements analysis.  Requirements analysis involves obtaining a clear and thorough understanding of the product to be developed. Thus, the SRS should be a consistent, correct, unambiguous, and complete document.  An SRS document must contain the following:  Detailed statement of problem.  Possible alternative solution to problem.  Functional requirements of the software system.  Constraints on the software system.
  • 25. Software Requirement Specification Document  Requirements documentation is the description of what a particular software does or shall do.  It is used throughout development to communicate how the software functions or how it is intended to operate. It is also used as an agreement or as the foundation for agreement on what the software will do.  Requirements are produced and consumed by everyone involved in the production of software: end users, customers, product managers, project managers , designers , developers, and testers.
  • 26. Requirement Traceability  The ability to describe and trace the life of a requirement , is it covered by coding team and testing team (create test cases) .  Requirement traceability matrix is documented table to trace the progress in the project
  • 28. Software Design  Software design is the blueprint of the system, which once completed can be provided to developers for code development. Based on the components in design, they are translated into software modules/functions/libraries, etc… and these pieces together form a software system.
  • 29. Software Design High level design Low level design
  • 30. Software Design  High Level Design (HLD) : is the overall system design , It describes the relation between various modules and functions of the system.  Low Level Design (LLD) : is like detailing the HLD. It defines the actual logic for each and every component of the system.
  • 31. Flow chart  Flow chart is a type of diagram that describe the path of data , or process step by step, showing the steps as boxes of various kinds and their order by connecting with arrows.  Flow charts are used in designing processes or programs to make them simple to understand.  The biggest advantage of a flow chart is that it gives an overall view of the process at a single glance , to understand it better
  • 32.  Commonly used shapes in flow charts Flow Line An arrow coming from one symbol and ending at another symbol represents that control passes to the symbol the arrow points to. Terminal Represented as circles. They usually contain the word "Start" or "End", or another phrase signaling the start or end of a process. Process Represented as rectangles. This shape is used to show that something is performed. Examples: "Add 1 to X . Decision Represented as a diamond showing where a decision is necessary, commonly a Yes/No question or True/False test.  Generally , flowcharts flow from top to bottom and left to right.
  • 33.  Flow chart Example
  • 34. Pseudo-code  using pseudo-code , the designer describes system characteristics using short , concise English language phrases that are structured by keywords , such as if- Then-Else, while-do , and End.  Its written in structured manner .
  • 35. Software Architecture  Decomposition of software into layers.
  • 36. Software Architecture  Why SW Layers ?  Isolate Application from HW changes as upper layers don’t affect by lower ones (Portability).  Reusability of the SW driver among different applications.  Easier in Testing.  Simplifies isolation of software bugs (detection and correction).  Easier Software updates and upgrades (Software maintainability).
  • 37. Development(Coding)  On receiving system design documents, the work is divided in modules/units and actual coding is started.  Since, in this phase the code is produced so it is the main focus for the developer.  The output of this phase is an implemented and tested collection of modules.
  • 38. Testing  After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase.
  • 40. 1.Unit testing : Test the software for defects and bugs . 2.Component testing :Test functionality of each module alone. 3.Integration testing : Test the interfaces and interactions between integrated modules . 4.System testing : Checking the whole system in the intention of finding defects and anomalies from both the design & the requirements. 5.User Acceptance Testing : The acceptance test phase is the phase used by the customer to determine whether to accept the system or not. When the software passes those tests it has been accepted by the client as meeting the requirements .
  • 42. Deployment  Getting software out of the hands of the developers into the hands of the users.
  • 43. Maintenance  It is an important part of the SDLC .it may consume time more than that taken for development and cost that range from 50% to 80% of the total development cost .
  • 45. Types of maintenance 1. Corrective maintenance : it is repairing processing or performance failures or making changes because of previously uncorrected problems . 2. Adaptive maintenance : changing the program function . This is done to adapt to the external environment change . 3. Perfective maintenance : enhancing the performance or modifying the programs to respond to the user’s additional or changing needs. 4. Preventive maintenance : it is the process by which we prevent our system from being obsolete. It involves the concept of re-engineering an old system with an old technology using new technology
  • 46. Software Development Methodology  Plan driven:  Agile:
  • 47. Software Development Methodology  Plan driven:  Plan driven processes where all the process activities are planed in advance .  In this way, we can measure the progress of the process against this plan.  Agile:  In Agile processes planning is incremental and it is easier to change the plan and the software to reflect changing customer requirements .  As activities can be changed, so the progress of development process is not measured exactly.
  • 49. Waterfall model  The waterfall model is a very common software development process model.  The waterfall model was popularized in the 1970s and permeates most current software-engineering textbooks and standard industrial practices.  As the figure shows, the process is structured as a cascade of phases, where the output of one phase constitutes the input to the next one. Each phase, in turn, is structured as a set of activities that might be executed by different people concurrently.  Because of the cascade from one phase to another, this model is known as the waterfall model.
  • 50. Waterfall model  Advantages of Waterfall Model 1.it is a simple one. Easy to understand, easy to use. 2.Easy to manage due to the rigidity of the model –each phase has specific deliverables and a review process. 3.Phases are processed and completed one at a time. 4.Works well for smaller projects where requirements are very well understood.
  • 51. Waterfall model  Disadvantages of Waterfall Model 1.This model is not suitable for accommodating any change. So this model is Not suitable for the projects where requirements are at a moderate to high risk of changing. 2.We can not go backward in the SDLC. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage 3.It does not scale up well to large and complex projects. 4.Poor model for long and ongoing projects. 5.No working software is produced until late during the life cycle.
  • 52. Waterfall model  When to use the waterfall model 1.Requirements are very well known, clear and fixed. 2.Product definition is stable. 4.There are no ambiguous requirements 5.The project is short
  • 53. Developers life cycle V-Model Tester life cycle Requirements specification High level Design Low level Design coding Software code Unit testing Component testing Integration Testing System testing
  • 54. V-model  The V-model represents a software development , which may be considered an extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.  Requirements like SRS document begin the life cycle model just like the waterfall model. But, in this model before development is started, a system test plan is created. The test plan focuses on meeting the functionality specified in the requirements gathering.
  • 55. V-model  The high-level design (HLD) or Architecture Design phase focuses on system architecture and design. It provide overview of solution, platform, system, product and service/process. An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.  The low-level design(LLD) or Detailed Design Phase or Module Design Phase is where the actual software components are designed. It defines the actual logic for each and every component(Module) of the system. Component tests or Module Tests are created in this phase as well.
  • 56. V-model  The implementation(Coding) phase is where all coding takes place. Unit Testing is created in this phase in order to test the software for defects and bugs . Then is performed on the code once coding is complete . The path of execution continues up the right side of the V where the test plans developed earlier are now put to use. This is at the bottom of the V-Shape model. Module design is converted into code by developers.
  • 57. V-model  Advantages of V-model 1.Simple and easy to use. 2.Testing is a full life-cycle activity ,this saves a lot of time. Hence higher chance of success over the waterfall model. 3.Proactive defect tracking –that is defects are found at early stage.
  • 58. V-model  Disadvantages of V-model 1.Software is developed during the implementation phase, so no early prototypes of the software are produced. 2.If any changes happen in midway, then the test documents along with requirement documents has to be updated. 3.Heavy weight documentation. 4.It needs lot of resources . It can be implemented by only some big companies
  • 59. Waterfall Limitations Waterfall limitations Sequential in nature, complete a stage before moving to next stage No working version of the system until late in the process Any changes customer mentions in between may cause a lot of rework Doesn't account for the fact that requirements constantly change
  • 60. Agile Scrum  Many projects fail to deliver value in either a timely fashion or at all For both technical and non-technical reasons. So agile allows us to focus on delivering the highest business value in the shortest time.  For progress in project , software is developed and delivered in small iterations (Sprints).  It helps the business to see the work , or want to receive product benefit earlier or help in later changes .
  • 61. Agile principles  Our highest priority is to satisfy the customer through early and continuous delivery of valuable software .  Welcome changing requirements , even late in development.  Deliver working software (customer value ) with a preference to the shorter time scale.  Simplicity .
  • 62. Agile Scrum  The Agile Scrum life cycle :  Every sprint : Project endSprint 3Sprint 2Sprint 1 Project start Detailed requirements Design develop test
  • 63. Characteristics of Agile Scrum  Scrum projects make progress in a series of “sprints”.  Typical duration is 2–4 weeks or a calendar month at most.  Product feature is designed, coded, and tested during the sprint.  Teams are co-located , or simulate being together.  Face to face communication is preferred over documentation
  • 64. Scrum framework •Product owner •ScrumMaster •Team Roles •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Ceremonies •Product backlog •Sprint backlog Artifacts
  • 65. Scrum framework •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Ceremonies •Product owner •ScrumMaster •Team Roles •Product backlog •Sprint backlog Artifacts
  • 66. Product owner ■ Define the features of the product (responsible for the backlog and story) . ■ Decide on release date and content . ■ Prioritize features according to market value . ■ Accept or reject work results . ■ Helps define ‘done’ .
  • 67. The Scrum Master • Process facilitator . • Represents management to the project . • Helps builds self organizing teams . • Removes impediments • Ensure that the team is fully functional and productive . • Enable close cooperation across all roles and functions . • Shield the team from external interferences .
  • 68. The team • Typically 5-9 people • Cross-functional • Programmers, testers, designers, analyst , etc. • Teams are self-organizing • Accountable for delivery of result that meet the customer’s needs and software quality • Membership should change only between sprints
  • 69. •Product owner •ScrumMaster •Team Roles Scrum framework •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Ceremonies •Product backlog •Sprint backlog Artifacts
  • 70. Product backlog • The requirements • A list of all desired work on the project • Ideally expressed such that each item has value to the users or customers of the product • Prioritized by the product owner • Reprioritized at the start of each sprint This is the product backlog
  • 71. Sprint Backlog  Team selects items from the product backlog they can commit to completing.  Sprint backlog is created  Tasks are identified and each is estimated (1-16 hours)  Collaboratively, not done alone by the Scrum Master
  • 72.
  • 73. •Product owner •ScrumMaster •Team Roles Scrum framework •Sprint planning •Daily scrum meeting •Sprint review •Sprint retrospective Ceremonies •Product backlog •Sprint backlog Artifacts
  • 74.
  • 75. Sprint planning meeting Sprint prioritization • Analyze and evaluate product backlog • Select sprint goal Sprint planning • Decide how to achieve sprint goal (design) • Create sprint backlog (tasks) from product backlog items (user stories / features) • Estimate sprint backlog in hours Sprint goal Sprint backlog Business conditions Team capacity Product backlog Technology Current product Sprint planning
  • 76. The daily scrum • Parameters • Daily • 15-minutes • Stand-up • Not for problem solving • Whole world is invited • Only team members, Scrum Master, product owner, can talk • Helps avoid other unnecessary meetings
  • 77. Everyone answers 3 questions What did you do yesterday? 1 What will you do today? 2 Is anything in your way? 3
  • 78. The sprint review • Team presents what it accomplished during the sprint • Typically takes the form of a demo of new features Informal • 2-hour prep time rule • Whole team participates • Invite the world
  • 79. Sprint retrospective ■ Periodically take a look at what is and is not working ■ Typically 15–30 minutes ■ Done after every sprint ■ Whole team participates – Scrum Master – Product owner – Team – Possibly customers
  • 80.
  • 81.
  • 82.
  • 83.
  • 84. Parameters Agile Model Non-Agile Models Approach of this methodology This methodology is very flexible and adjustable and can adapt to the project needs. This methodology is not as flexible as Agile model and it’s tough to accommodate changes in the project. Measurement of Success The success of the project in Agile model is measured by the Business value delivered. In this methodology the success of the project is measured by the Conformation to plan. Size of the Project The Project size is usually small in Agile model. However larger projects can also be handled using the Scaled Agile Framework (SAFe). The project size is Large in non- Agile models. Ability to adapt to change In Agile model the changes are accepted and adapted as per the project needs. But in non-Agile models the changes are not accepted easily in the later stages of the development. Difference between Agile model and Non-Agile models
  • 85. Documentation required Less documentation is required in Agile. More documentation is required in non-Agile models. Importance of In Agile model more emphasis is given to the people that means it’s People- Oriented. In non-Agile models the more importance is given to the process hence it’s Process- Oreinted. Planning in Advance There is minimal upfront planning in Agile methodology. In Non-Agile models the planning should be complete before the development starts. Revenue In Agile method the return on investment is early in the project cycle. In non-Agile methods the return on investment is at the end of the project. Size of the team The size of the team in Agile methodology is usually small and creative. But in Non-Agile models the team size is large.
  • 86.
  • 87. Contact Details Eng. Ahmed Elshahat Mohamed. Mob: 01098745294 a.elshahat10@gmail.com
  • 88. By : Ahmed Elshahat Mohammed Software testing Instructor