SlideShare une entreprise Scribd logo
1  sur  42
Syed Saqib Raza Rizvi
What is Engineering?
What is Software?
What is software engineering?
What is a software process?
Different types of process models?
Different Models with Strengths and Weaknesses
Agile Software Development
Engineering is the application of scientific
and practical knowledge in order to invent,
design, build, maintain, and improve
systems, processes, etc.
The software is collection of Integrated programs
Software consists of carefully-organized instructions and
code written by programmers in any of various special
computer languages.
Computer programs and associated documentation such
as requirements, design models and user manuals.
Software engineering is an engineering discipline that is
concerned with all aspects of software production.
According to IEEE's definition software engineering can
be defined as the application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of software, and the study of these
approaches; that is, the application of engineering to
software.
 A framework that describes the activities performed at each stage of
a software development project.
 A set of activities whose goal is the development or evolution of
software.
 Generic activities in all software processes are:
 Specification - what the system should do and its development
constraints
 Development - production of the software system
 Validation - checking that the software is what the customer
wants
 Evolution - changing the software in response to changing
demands.
Waterfall Model
Incremental Model
RAD Model
Spiral Model
Scrum Model
Lean Development Methodology
Extreme Programming
Etc
 .
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Good for management control (plan, staff, track)
Works well when quality is more important than cost or
schedule
All requirements must be known upfront
Deliverables created for each phase are considered frozen
inhibits flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of software
development – iterations of phases
Integration is one big bang at the end
Little opportunity for customer to preview the system
(until it may be too late)
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform.
High risk for new systems because of specification
and design problems
Whole requirement is divided into various builds
Multiple development cycles take place here, making the
life cycle a “multi-waterfall” cycle.
Cycles are divided up into smaller, more easily managed
modules.
Each module passes through the requirements, design,
implementation and testing phases.
A working version of software is produced during the first
module, so you have working software early on during the
software life cycle.
Generates working software quickly and early during the
software life cycle.
More flexible – less costly to change scope and
requirements.
Easier to test and debug during a smaller iteration.
Customer can respond to each built.
Lowers initial delivery cost.
Needs good planning and design.
Needs a clear and complete definition of the whole system
before it can be broken down and built incrementally.
Total cost is higher than waterfall.
Requirements of the complete system are clearly defined
and understood.
Major requirements must be defined; however, some
details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
Rapid Application Development model
type of incremental model
In RAD model the components or functions are developed
in parallel as if they were mini projects.
The developments are time boxed, delivered and then
assembled into a working prototype.
This can quickly give the customer something to see and
use and to provide feedback regarding the delivery and
their requirements.
Reduced development time.
Increases reusability of components
Quick initial reviews occur
Encourages customer feedback
Depends on strong team and individual performances for
identifying business requirements.
Only system that can be modularized can be built using
RAD
Requires highly skilled developers/designers.
High dependency on modeling skills
Inapplicable to cheaper projects as cost of modeling and
automated code generation is very high.
RAD should be used when there is a need to create a
system that can be modularized in 2-3 months of time.
It should be used if there’s high availability of designers
for modeling and the budget is high enough to afford their
cost along with the cost of automated code generating
tools.
RAD SDLC model should be chosen only if resources with
high business knowledge are available and there is a need
to produce the system in a short span of time (2-3 months).
The spiral model is similar to the incremental model, with
more emphasis placed on risk analysis.
The spiral model has four phases: Planning, Risk Analysis,
Engineering and Evaluation.
A software project repeatedly passes through these phases
in iterations (called Spirals in this model).
The baseline spiral, starting in the planning phase,
requirements are gathered and risk is assessed.
High amount of risk analysis hence, avoidance of Risk is
enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk analysis
phase.
Doesn’t work well for smaller projects.
When costs and risk evaluation is important
For medium to high-risk projects
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and
exploration)
Traditional approach to managing software development
projects was failing far too often, and there had to be a
better way
Agile development is a different way of managing IT
development teams and projects
Came up with the agile manifesto, which describes 4
important values that are as relevant today
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test
early and often
10. A collaborative & cooperative approach between all
stakeholders is essential
 Is also an agile development method, which concentrates
particularly on how to manage tasks within a team-based
development environment.
Scrum is the most popular and widely adopted agile
method
Relatively simple to implement and addresses many of the
management issues that have plagued IT development
teams for decades
•A product owner creates a prioritized wish list called a product backlog.
•During sprint planning, the team pulls a small chunk from the top of that
wish list, a sprint backlog, and decides how to implement those pieces.
•The team has a certain amount of time — a sprint (usually two to four
weeks) — to complete its work, but it meets each day to assess its progress
(daily Scrum).
•Along the way, the Scrum Master keeps the team focused on its goal.
•At the end of the sprint, the work should be potentially shippable: ready
to hand to a customer, put on a store shelf, or show to a stakeholder.
•The sprint ends with a sprint review.
•As the next sprint begins, the team chooses another chunk of the product
backlog and begins working again-
XP (Extreme Programming) is a more radical agile
methodology,
Focusing more on the software engineering process
 Addressing the analysis, development and test phases
with novel approaches that make a substantial difference
to the quality of the end product.
1. You need to improve communication.
2. You need to seek simplicity.
3. You need to get feedback on how well you are doing.
4. You need to always proceed with courage.
In XP these four basic activities are implemented by using
practices which are traditional software engineering
practices but elevated to embody and encourage XP
values.
Although practices of Extreme Programing they can be
compacted into twelve simple rules
1. User stories (planning): User stories can be viewed as a smaller version of use case. In this way, the
customer define as briefly as possible the specification of the new application (features, value, priority).
These stories will be the base for the project team to do cost estimation and management of the project.
2. Small releases (building blocks): XP emphasizes on small, simple but frequent versions updates of the
application. Each newly added requirement will instantly incorporated and the system is re-released.
3. Metaphor (standardized naming schemes): Developers and programmers must adhere to standards on
names, class names and methods.
4. Collective ownership: In XP methodology, all code is considered to be owned by the whole team and not
an individual property. Hence, all code is reviewed and updated by everyone.
5. Coding standard: Styles and formats of coding must be the same in order to enable compatibility
between team members. This approach results in more rapid collaboration.
6. Simple design: Always look for system implementation that is as easy as possible implementation of
the system yet meets all required functionality.
7. Refactoring: The application should be continually adjusted and improved by all team
members. This requires extremely good communication between members to avoid work
duplication.
8. Testing: Every small release (called building block) must pass tests before being released.
XP’s uniqueness in this aspect is that tests are created first and then application code is
developed to meet and pass the challenges of those pre-written tests.
9. Pair programming: XP programmers work in pairs. All code is developed by two
programmers who work together at a single machine. The expectation is that pair programming
produces higher quality code at the same or less cost.
10. Continuous integration: Software builds are completed several times a day. In this way all
developers can avoid work fragmentations because they continuously releasing and integrating
code together.
11. 40-hour workweek: Keep mental and physical conditions to be up and running by not
working more than what the bodies can handle.
12. On-site customer: The customer must be viewed as an integral part of the project. The
customer must be arranged to be available at all times in order to ensure that the project is in the
right track.
Introduction to Software Engineering
Introduction to Software Engineering
Introduction to Software Engineering

Contenu connexe

Tendances

Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Spiral model presentation
Spiral model presentationSpiral model presentation
Spiral model presentationSayedFarhan110
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering FundamentalsRahul Sudame
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented DesignSharath g
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software EngineeringUpekha Vandebona
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project ManagementReetesh Gupta
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Software Engineering - Ch1
Software Engineering - Ch1Software Engineering - Ch1
Software Engineering - Ch1Siddharth Ayer
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
DeadLock in Operating-Systems
DeadLock in Operating-SystemsDeadLock in Operating-Systems
DeadLock in Operating-SystemsVenkata Sreeram
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary modelsPihu Goel
 

Tendances (20)

Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Software design
Software designSoftware design
Software design
 
Spiral model presentation
Spiral model presentationSpiral model presentation
Spiral model presentation
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Software project management
Software project managementSoftware project management
Software project management
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software Engineering
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project Management
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software Engineering - Ch1
Software Engineering - Ch1Software Engineering - Ch1
Software Engineering - Ch1
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Software process
Software processSoftware process
Software process
 
DeadLock in Operating-Systems
DeadLock in Operating-SystemsDeadLock in Operating-Systems
DeadLock in Operating-Systems
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 

En vedette

Visualisera & arbeta smartare
Visualisera & arbeta smartareVisualisera & arbeta smartare
Visualisera & arbeta smartareFredrik Cederlöf
 
Intro till EA och Sigma Target Architecture
Intro till EA och Sigma Target ArchitectureIntro till EA och Sigma Target Architecture
Intro till EA och Sigma Target ArchitectureJohan Hallberg
 
Digital leadership and participation
Digital leadership and participationDigital leadership and participation
Digital leadership and participationChris Yiu
 
Digital leadership and participation
Digital leadership and participationDigital leadership and participation
Digital leadership and participationChris Yiu
 
Capability Maturity Model Integartion
Capability Maturity Model IntegartionCapability Maturity Model Integartion
Capability Maturity Model IntegartionSaqib Raza
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Marco Brambilla
 
AUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALAAUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALASaikiran Panjala
 
Software Engineering-R.D.Sivakumar
Software Engineering-R.D.SivakumarSoftware Engineering-R.D.Sivakumar
Software Engineering-R.D.SivakumarSivakumar R D .
 
FSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering ResearchFSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering ResearchMargaret-Anne Storey
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyGaditek
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml OverviewDang Tuan
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-EngineeringSaqib Raza
 
Modul rpl (final 2013)
Modul rpl (final 2013)Modul rpl (final 2013)
Modul rpl (final 2013)Ikka Utamy
 

En vedette (20)

Visualisera & arbeta smartare
Visualisera & arbeta smartareVisualisera & arbeta smartare
Visualisera & arbeta smartare
 
Iffis14 datavisualisering
Iffis14 datavisualiseringIffis14 datavisualisering
Iffis14 datavisualisering
 
Intro till EA och Sigma Target Architecture
Intro till EA och Sigma Target ArchitectureIntro till EA och Sigma Target Architecture
Intro till EA och Sigma Target Architecture
 
Primena EMS u fitnesu
Primena EMS u fitnesuPrimena EMS u fitnesu
Primena EMS u fitnesu
 
Digital leadership and participation
Digital leadership and participationDigital leadership and participation
Digital leadership and participation
 
Digital leadership and participation
Digital leadership and participationDigital leadership and participation
Digital leadership and participation
 
Capability Maturity Model Integartion
Capability Maturity Model IntegartionCapability Maturity Model Integartion
Capability Maturity Model Integartion
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...
 
AUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALAAUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALA
 
Software Engineering-R.D.Sivakumar
Software Engineering-R.D.SivakumarSoftware Engineering-R.D.Sivakumar
Software Engineering-R.D.Sivakumar
 
FSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering ResearchFSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering Research
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
 
Carnaval recife2017
Carnaval recife2017Carnaval recife2017
Carnaval recife2017
 
Genocidio Armenio Goya
Genocidio Armenio GoyaGenocidio Armenio Goya
Genocidio Armenio Goya
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
 
Bpr
BprBpr
Bpr
 
Modul rpl (final 2013)
Modul rpl (final 2013)Modul rpl (final 2013)
Modul rpl (final 2013)
 

Similaire à Introduction to Software Engineering

Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basicAnurag Tomar
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Managementswatisinghal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSibel Kuzgun AKIN
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projectsrachna_nainani
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software developmentbizpresenter
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsNicole Gomez
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development OverviewMark Kovacevich
 

Similaire à Introduction to Software Engineering (20)

Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basic
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
software engineering
software engineering software engineering
software engineering
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projects
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming Teams
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 

Plus de Saqib Raza

The Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdfThe Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdfSaqib Raza
 
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...Saqib Raza
 
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdfData_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdfSaqib Raza
 
Social Impacts of Artificial intelligence
Social Impacts of Artificial intelligenceSocial Impacts of Artificial intelligence
Social Impacts of Artificial intelligenceSaqib Raza
 
Professional Practice Course Outline
Professional Practice Course OutlineProfessional Practice Course Outline
Professional Practice Course OutlineSaqib Raza
 
Ethical hacking
Ethical hackingEthical hacking
Ethical hackingSaqib Raza
 
12 security policies
12 security policies12 security policies
12 security policiesSaqib Raza
 
11 Computer Privacy
11 Computer Privacy11 Computer Privacy
11 Computer PrivacySaqib Raza
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice Saqib Raza
 
7 Engineering Profession
7 Engineering Profession7 Engineering Profession
7 Engineering ProfessionSaqib Raza
 
6 software contracts
6 software contracts6 software contracts
6 software contractsSaqib Raza
 
Introduction to Intellectual Property
Introduction to Intellectual PropertyIntroduction to Intellectual Property
Introduction to Intellectual PropertySaqib Raza
 
Itroduction to Business Ethics
Itroduction to Business EthicsItroduction to Business Ethics
Itroduction to Business EthicsSaqib Raza
 
Types of Ethics
Types of EthicsTypes of Ethics
Types of EthicsSaqib Raza
 
Introduction to ethics
Introduction to ethicsIntroduction to ethics
Introduction to ethicsSaqib Raza
 
Project Management Concepts
Project Management ConceptsProject Management Concepts
Project Management ConceptsSaqib Raza
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design Saqib Raza
 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentSaqib Raza
 

Plus de Saqib Raza (20)

The Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdfThe Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdf
 
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
 
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdfData_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
 
Social Impacts of Artificial intelligence
Social Impacts of Artificial intelligenceSocial Impacts of Artificial intelligence
Social Impacts of Artificial intelligence
 
Professional Practice Course Outline
Professional Practice Course OutlineProfessional Practice Course Outline
Professional Practice Course Outline
 
Ethical hacking
Ethical hackingEthical hacking
Ethical hacking
 
12 security policies
12 security policies12 security policies
12 security policies
 
11 Computer Privacy
11 Computer Privacy11 Computer Privacy
11 Computer Privacy
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
 
7 Engineering Profession
7 Engineering Profession7 Engineering Profession
7 Engineering Profession
 
6 software contracts
6 software contracts6 software contracts
6 software contracts
 
Introduction to Intellectual Property
Introduction to Intellectual PropertyIntroduction to Intellectual Property
Introduction to Intellectual Property
 
Itroduction to Business Ethics
Itroduction to Business EthicsItroduction to Business Ethics
Itroduction to Business Ethics
 
Types of Ethics
Types of EthicsTypes of Ethics
Types of Ethics
 
Introduction to ethics
Introduction to ethicsIntroduction to ethics
Introduction to ethics
 
Project Management Concepts
Project Management ConceptsProject Management Concepts
Project Management Concepts
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 

Dernier

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
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
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
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
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 

Dernier (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
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
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
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...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 

Introduction to Software Engineering

  • 1.
  • 3. What is Engineering? What is Software? What is software engineering? What is a software process? Different types of process models? Different Models with Strengths and Weaknesses Agile Software Development
  • 4. Engineering is the application of scientific and practical knowledge in order to invent, design, build, maintain, and improve systems, processes, etc.
  • 5. The software is collection of Integrated programs Software consists of carefully-organized instructions and code written by programmers in any of various special computer languages. Computer programs and associated documentation such as requirements, design models and user manuals.
  • 6. Software engineering is an engineering discipline that is concerned with all aspects of software production. According to IEEE's definition software engineering can be defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
  • 7.  A framework that describes the activities performed at each stage of a software development project.  A set of activities whose goal is the development or evolution of software.  Generic activities in all software processes are:  Specification - what the system should do and its development constraints  Development - production of the software system  Validation - checking that the software is what the customer wants  Evolution - changing the software in response to changing demands.
  • 8. Waterfall Model Incremental Model RAD Model Spiral Model Scrum Model Lean Development Methodology Extreme Programming Etc
  • 10. Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule
  • 11. All requirements must be known upfront Deliverables created for each phase are considered frozen inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development – iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)
  • 12. Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform. High risk for new systems because of specification and design problems
  • 13. Whole requirement is divided into various builds Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle.
  • 14.
  • 15. Generates working software quickly and early during the software life cycle. More flexible – less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Customer can respond to each built. Lowers initial delivery cost.
  • 16. Needs good planning and design. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. Total cost is higher than waterfall.
  • 17. Requirements of the complete system are clearly defined and understood. Major requirements must be defined; however, some details can evolve with time. There is a need to get a product to the market early. A new technology is being used Resources with needed skill set are not available
  • 18. Rapid Application Development model type of incremental model In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.
  • 19.
  • 20. Reduced development time. Increases reusability of components Quick initial reviews occur Encourages customer feedback
  • 21. Depends on strong team and individual performances for identifying business requirements. Only system that can be modularized can be built using RAD Requires highly skilled developers/designers. High dependency on modeling skills Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
  • 22. RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time. It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools. RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).
  • 23. The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed.
  • 24.
  • 25. High amount of risk analysis hence, avoidance of Risk is enhanced. Good for large and mission-critical projects. Strong approval and documentation control. Additional Functionality can be added at a later date.
  • 26. Can be a costly model to use. Risk analysis requires highly specific expertise. Project’s success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects.
  • 27. When costs and risk evaluation is important For medium to high-risk projects Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration)
  • 28. Traditional approach to managing software development projects was failing far too often, and there had to be a better way Agile development is a different way of managing IT development teams and projects Came up with the agile manifesto, which describes 4 important values that are as relevant today
  • 29.  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 30. 1. Active user involvement is imperative 2. The team must be empowered to make decisions 3. Requirements evolve but the timescale is fixed 4. Capture requirements at a high level 5. Develop small, incremental releases and iterate
  • 31. 6. Focus on frequent delivery of products 7. Complete each feature before moving on to the next 8. Apply the 80/20 rule 9. Testing is integrated throughout the project lifecycle – test early and often 10. A collaborative & cooperative approach between all stakeholders is essential
  • 32.  Is also an agile development method, which concentrates particularly on how to manage tasks within a team-based development environment. Scrum is the most popular and widely adopted agile method Relatively simple to implement and addresses many of the management issues that have plagued IT development teams for decades
  • 33. •A product owner creates a prioritized wish list called a product backlog. •During sprint planning, the team pulls a small chunk from the top of that wish list, a sprint backlog, and decides how to implement those pieces. •The team has a certain amount of time — a sprint (usually two to four weeks) — to complete its work, but it meets each day to assess its progress (daily Scrum). •Along the way, the Scrum Master keeps the team focused on its goal. •At the end of the sprint, the work should be potentially shippable: ready to hand to a customer, put on a store shelf, or show to a stakeholder. •The sprint ends with a sprint review. •As the next sprint begins, the team chooses another chunk of the product backlog and begins working again-
  • 34.
  • 35. XP (Extreme Programming) is a more radical agile methodology, Focusing more on the software engineering process  Addressing the analysis, development and test phases with novel approaches that make a substantial difference to the quality of the end product.
  • 36. 1. You need to improve communication. 2. You need to seek simplicity. 3. You need to get feedback on how well you are doing. 4. You need to always proceed with courage.
  • 37. In XP these four basic activities are implemented by using practices which are traditional software engineering practices but elevated to embody and encourage XP values. Although practices of Extreme Programing they can be compacted into twelve simple rules
  • 38. 1. User stories (planning): User stories can be viewed as a smaller version of use case. In this way, the customer define as briefly as possible the specification of the new application (features, value, priority). These stories will be the base for the project team to do cost estimation and management of the project. 2. Small releases (building blocks): XP emphasizes on small, simple but frequent versions updates of the application. Each newly added requirement will instantly incorporated and the system is re-released. 3. Metaphor (standardized naming schemes): Developers and programmers must adhere to standards on names, class names and methods. 4. Collective ownership: In XP methodology, all code is considered to be owned by the whole team and not an individual property. Hence, all code is reviewed and updated by everyone. 5. Coding standard: Styles and formats of coding must be the same in order to enable compatibility between team members. This approach results in more rapid collaboration. 6. Simple design: Always look for system implementation that is as easy as possible implementation of the system yet meets all required functionality.
  • 39. 7. Refactoring: The application should be continually adjusted and improved by all team members. This requires extremely good communication between members to avoid work duplication. 8. Testing: Every small release (called building block) must pass tests before being released. XP’s uniqueness in this aspect is that tests are created first and then application code is developed to meet and pass the challenges of those pre-written tests. 9. Pair programming: XP programmers work in pairs. All code is developed by two programmers who work together at a single machine. The expectation is that pair programming produces higher quality code at the same or less cost. 10. Continuous integration: Software builds are completed several times a day. In this way all developers can avoid work fragmentations because they continuously releasing and integrating code together. 11. 40-hour workweek: Keep mental and physical conditions to be up and running by not working more than what the bodies can handle. 12. On-site customer: The customer must be viewed as an integral part of the project. The customer must be arranged to be available at all times in order to ensure that the project is in the right track.