SlideShare a Scribd company logo
Software Engineering Methodologies
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
Most software today is very much like an Egyptian pyramid with millions of bricks
piled on top of each other, with no structural integrity, but just done by brute force and
thousands of slaves. Alan Kay, ACM Queue,2005
Why Software Engineering?
Software Engineering is a great achievement
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
• Software is a Computer programs and associated documentation
defining a project.
• Good software should deliver the required functionality and
performance to the user and should be maintainable,
dependable, and usable
What’s software?
Good software features
Q. What are natural constrains or limits of software ?
Q. What are the consequences of the above constraints?
Software Engineering Methodologies
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
Software Engineering is the application of a systematic, disciplined,
quantifiable approach to development, operation and maintenance
of software: that is, the application of engineering to software.”
IEEE Standard Computer Dictionary
IEEE defines Software Engineering
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
Software engineering ethics
1.Confidentiality: You should normally respect the confidentiality of your
employers or clients irrespective of whether or not a formal
confidentiality agreement has been signed.
2. Competence: You should not misrepresent your level of competence. You
should not knowingly accept work that is outside your competence.
3. Intellectual property rights: You should be aware of local laws governing
the use of intellectual property such as patents and copyright. You should
be careful to ensure that the intellectual property of employers and clients
is protected.
4. Computer misuse: You should not use your technical skills to misuse
other people’s computers. Computer misuse ranges from relatively
trivial (game playing on an employer’s machine, say) to extremely
serious (dissemination of viruses or other malware).
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
Software
development
processes (SDLC)
Software
Management
processes
Software Engineering processes are
divided into
Software Process is a sequence of activities leading to production
Software engineering Processes
Software
specifications
Software
development
Software
validation
Software
evolution
Software fundamental activities
(General Model)
1. Importance of Software Engineering and usage
2. What’s a software?
3. Definition of Software Engineering
4. Software Engineering ethics
5. Software Engineering processes
6. Software Engineering methodologies
Contents
• Waterfall Model
• Prototyping Model
• Incremental Model
• Iterative Model
• Agile
Software engineering methodologies
(techniques)
Waterfall Methodology
Analysis
(Requirements
Definitions)
Design
(system and software
design)
Maintenance
Development and
Implementation
System Testing
Waterfall Advantages
• Easy to understand & Use.
• Easy to manage
•Phases are processed and completed one at a time.
• Works well for projects where requirements are clear & stable.
Waterfall Disadvantages
• It’s hard to respond to changing customer requirements.
• Each phase output is an input to the next phase , so delay in one
phase may delay the whole project.
•In practice, phases overlaps and displace achieved.
• software is produced late during the life cycle.
• Poor model for complex and requirements variant projects.
Maintenance
Development and
Implementation
System Testing
prototyping
Customer
evaluation
Review
Design
Prototyping Methodology
Analysis
(Requirements Definitions)
Design
(quick design)
Customer approval
Prototyping Advantages
• Customers can “see” the system requirements as they are
being gathered.
• Developers learn from customers .
• A more accurate end product.
• Allows for flexible design and development.
• Steady, visible signs of progress produced.
• Interaction with the prototype stimulates awareness of additional
needed functionality.
• Overall maintainability may be overlooked
• The customer may want the prototype delivered.
• Process may continue forever (scope creep)
Prototyping disadvantages
Analysis
Design
Development
Testing
Iterative Model
Product
delivery and
maintenance
Iterative = waterfall+ prototyping
Iterative Model
Iteration 1
Iterative Model
Iteration 2
Iterative Model
Iteration 3
Incremental Model
•Divide into mini-Waterfalls
• It means you develop one part of the system and when it’s ready you develop the
next part
Analysis Design
Development and
Implementation Testing 1st Increment
Analysis Design
Development and
Implementation Testing 2nd Increment
Analysis Design
Development and
Implementation Testing 3rd Increment
Incremental Model
Analysis Design
Development and
Implementation Testing 1st Increment
Analysis Design
Development and
Implementation Testing 2nd Increment
Analysis Design
Development and
Implementation Testing 1st Increment
Incremental Model
Analysis Design
Development and
Implementation Testing 3rd Increment
Analysis Design
Development and
Implementation Testing 2nd Increment
Analysis Design
Development and
Implementation Testing 1st Increment
Incremental Model
Agile Methodology
Incremental Model
(Enhanced waterfall)
Iterative Model
(Waterfall+protptyping)
+
Agile Model
Agile Manifesto
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
Agile Manifesto
System Testing
Agile Model
Analysis
(Requirements
Definitions)
Design
(system and software
design)
Development and
Implementation
1. Extreme Programming (XP)
2. SCRUM
3. Crystal Family
4. Open Source
5. Adaptive Software Development (ASD)
6. Feature Driven Development (FDD)
7. Dynamic System Development Method (DSDM)
Agile
Agile suitability
Agile methods have been very successful for some types of system
development:
1. Product development where a software company is developing a small
or medium-sized product for sale.
2. Custom system development within an organization, where there is
a clear commitment from the customer to become involved in the
development process and where there are not a lot of external rules and
regulations that affect the software.
Agile difficulties
1.Customer availability.
2. Individual team members personalities suitability to interact
with other teams
3. Priority determination may be extremely difficult especially
for many stakeholders.
4. Difficulty of shifting to a new model especially for large
companies
Agile and Plan-driven(water fall) methodologies
differences
Agile Plan-driven
Iterative and Incremental Phased
Working Software every build Working software in final phase
More Visibility- working software Less visibility ,prototypes
Changes accepted in all phases
Changes accepted at certain stages
only
Conclusion
Agile and Plan-driven methodologies
suitability
Agile Plan-driven
Short term projects Long term projects
Senior developers Junior / Senior developers
Requirements change often Requirements do not change often
Small number of developers Small/Large number of developers
Culture that responds to change Culture that demands order
Software Engineering Methodologies

More Related Content

PDF
How to create a SIPOC diagram
PDF
Software Development Life Cycle - Iterative Model
PPTX
Software Engineering Methodologies
PPT
Project Scheduling, Planning and Risk Management
PDF
Chaos Engineering, When should you release the monkeys?
PPTX
Chapter 1 - Software Design - Introduction.pptx
PPTX
Waterfall model and spiral model
PPTX
Functional vs Non-functional Requirements - Which comes first?
How to create a SIPOC diagram
Software Development Life Cycle - Iterative Model
Software Engineering Methodologies
Project Scheduling, Planning and Risk Management
Chaos Engineering, When should you release the monkeys?
Chapter 1 - Software Design - Introduction.pptx
Waterfall model and spiral model
Functional vs Non-functional Requirements - Which comes first?

What's hot (20)

PDF
Shifting Security Left - The Innovation of DevSecOps - ValleyTechCon
PDF
Software Engineering - chp5- software architecture
PPTX
Software project management- Software Engineering
PPT
Introduction to project management
PDF
ATDD - Acceptance Test Driven Development
PDF
Practical Microservice Architecture (edition 2022).pdf
PDF
DevOps introduction
PDF
Applying both Agile and Waterfall in one project
PPT
Lecture4 requirement engineering
PPTX
Introduction to Chaos Engineering
PPT
Project Management Concepts
PDF
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
PPTX
Requirement engineering evaluation
PDF
1_Project Management Foundation
PDF
Unit 3 system models
PPTX
Ch 6 development plan and quality plan
PPT
Introduction and life cycle models
PPTX
Software testing ppt
PPTX
Requirements engineering for agile methods
PDF
The Agile Adoption Roadmap (Keynote by Tim Abbott)
Shifting Security Left - The Innovation of DevSecOps - ValleyTechCon
Software Engineering - chp5- software architecture
Software project management- Software Engineering
Introduction to project management
ATDD - Acceptance Test Driven Development
Practical Microservice Architecture (edition 2022).pdf
DevOps introduction
Applying both Agile and Waterfall in one project
Lecture4 requirement engineering
Introduction to Chaos Engineering
Project Management Concepts
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Requirement engineering evaluation
1_Project Management Foundation
Unit 3 system models
Ch 6 development plan and quality plan
Introduction and life cycle models
Software testing ppt
Requirements engineering for agile methods
The Agile Adoption Roadmap (Keynote by Tim Abbott)
Ad

Viewers also liked (20)

PPTX
Methodologies of Software Engineering
PPTX
Luxoft Seminar Planning Big Project
PDF
Lesson 02.2
PPTX
Software System Development Methodologies, tools, design and life cycle by K....
PPTX
Software Craftsmanship - It's an Imperative
PDF
TIAD 2016 : Ethics in software development
PPTX
Testing Throughout the Software Life Cycle - Section 2
PPT
Six Principles of Software Design to Empower Scientists
PPTX
Software Engineering Ethics
PPT
software engineering ethics
PPTX
Software Development Methodologies-HSM, SSADM
PPTX
Software Craftsmanship VS Software Engineering
PPT
Software Requirements Engineering Methodologies
PDF
SE_Lec 10_ Software Code of Ethics
PDF
System Development Methodologies
PPTX
Software Engineering- Crisis and Process Models
PDF
Professional Code of Ethics in Software Engineering
PPTX
Software Design Concepts
PDF
software engineering
PPTX
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Methodologies of Software Engineering
Luxoft Seminar Planning Big Project
Lesson 02.2
Software System Development Methodologies, tools, design and life cycle by K....
Software Craftsmanship - It's an Imperative
TIAD 2016 : Ethics in software development
Testing Throughout the Software Life Cycle - Section 2
Six Principles of Software Design to Empower Scientists
Software Engineering Ethics
software engineering ethics
Software Development Methodologies-HSM, SSADM
Software Craftsmanship VS Software Engineering
Software Requirements Engineering Methodologies
SE_Lec 10_ Software Code of Ethics
System Development Methodologies
Software Engineering- Crisis and Process Models
Professional Code of Ethics in Software Engineering
Software Design Concepts
software engineering
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Ad

Similar to Software Engineering Methodologies (20)

PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
PPTX
Basics of software engineering
PPTX
Week1.pptx
PPTX
Introduction to Software engineering ch03
PPT
Software engineering introduction
PDF
Software Engineering and Introduction, Activities and ProcessModels
PPTX
Slidesnumber1of the main course and this is the final show
PDF
lecture 1.pdf
PPTX
SE Unit-1.pptx
PPTX
4_59247024118127714222222222222222255.pptx
PDF
Software engineering study materials
PPT
Unit 2 SEPM_ Requirement Engineering
PPTX
Lecture 1 SE.pptx
PDF
Software process model
PPT
SE-Lecture1.ppt
PPTX
unit 1 SE.pptx software engineering note
PPTX
The process
PPTX
Agile software process
PDF
Software Engineering Unit-1
20CS4103 SE UNIT 1-1.pptx software engineering
Basics of software engineering
Week1.pptx
Introduction to Software engineering ch03
Software engineering introduction
Software Engineering and Introduction, Activities and ProcessModels
Slidesnumber1of the main course and this is the final show
lecture 1.pdf
SE Unit-1.pptx
4_59247024118127714222222222222222255.pptx
Software engineering study materials
Unit 2 SEPM_ Requirement Engineering
Lecture 1 SE.pptx
Software process model
SE-Lecture1.ppt
unit 1 SE.pptx software engineering note
The process
Agile software process
Software Engineering Unit-1

Software Engineering Methodologies

  • 2. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 3. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 4. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. Alan Kay, ACM Queue,2005 Why Software Engineering?
  • 5. Software Engineering is a great achievement
  • 6. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 7. • Software is a Computer programs and associated documentation defining a project. • Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable What’s software?
  • 9. Q. What are natural constrains or limits of software ? Q. What are the consequences of the above constraints?
  • 11. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 12. Software Engineering is the application of a systematic, disciplined, quantifiable approach to development, operation and maintenance of software: that is, the application of engineering to software.” IEEE Standard Computer Dictionary IEEE defines Software Engineering
  • 13. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 14. Software engineering ethics 1.Confidentiality: You should normally respect the confidentiality of your employers or clients irrespective of whether or not a formal confidentiality agreement has been signed. 2. Competence: You should not misrepresent your level of competence. You should not knowingly accept work that is outside your competence. 3. Intellectual property rights: You should be aware of local laws governing the use of intellectual property such as patents and copyright. You should be careful to ensure that the intellectual property of employers and clients is protected. 4. Computer misuse: You should not use your technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses or other malware).
  • 15. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 16. Software development processes (SDLC) Software Management processes Software Engineering processes are divided into Software Process is a sequence of activities leading to production Software engineering Processes
  • 18. 1. Importance of Software Engineering and usage 2. What’s a software? 3. Definition of Software Engineering 4. Software Engineering ethics 5. Software Engineering processes 6. Software Engineering methodologies Contents
  • 19. • Waterfall Model • Prototyping Model • Incremental Model • Iterative Model • Agile Software engineering methodologies (techniques)
  • 20. Waterfall Methodology Analysis (Requirements Definitions) Design (system and software design) Maintenance Development and Implementation System Testing
  • 21. Waterfall Advantages • Easy to understand & Use. • Easy to manage •Phases are processed and completed one at a time. • Works well for projects where requirements are clear & stable.
  • 22. Waterfall Disadvantages • It’s hard to respond to changing customer requirements. • Each phase output is an input to the next phase , so delay in one phase may delay the whole project. •In practice, phases overlaps and displace achieved. • software is produced late during the life cycle. • Poor model for complex and requirements variant projects.
  • 23. Maintenance Development and Implementation System Testing prototyping Customer evaluation Review Design Prototyping Methodology Analysis (Requirements Definitions) Design (quick design) Customer approval
  • 24. Prototyping Advantages • Customers can “see” the system requirements as they are being gathered. • Developers learn from customers . • A more accurate end product. • Allows for flexible design and development. • Steady, visible signs of progress produced. • Interaction with the prototype stimulates awareness of additional needed functionality.
  • 25. • Overall maintainability may be overlooked • The customer may want the prototype delivered. • Process may continue forever (scope creep) Prototyping disadvantages
  • 30. Incremental Model •Divide into mini-Waterfalls • It means you develop one part of the system and when it’s ready you develop the next part Analysis Design Development and Implementation Testing 1st Increment Analysis Design Development and Implementation Testing 2nd Increment Analysis Design Development and Implementation Testing 3rd Increment
  • 31. Incremental Model Analysis Design Development and Implementation Testing 1st Increment
  • 32. Analysis Design Development and Implementation Testing 2nd Increment Analysis Design Development and Implementation Testing 1st Increment Incremental Model
  • 33. Analysis Design Development and Implementation Testing 3rd Increment Analysis Design Development and Implementation Testing 2nd Increment Analysis Design Development and Implementation Testing 1st Increment Incremental Model
  • 34. Agile Methodology Incremental Model (Enhanced waterfall) Iterative Model (Waterfall+protptyping) + Agile Model
  • 35. Agile Manifesto 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a plan
  • 37. System Testing Agile Model Analysis (Requirements Definitions) Design (system and software design) Development and Implementation
  • 38. 1. Extreme Programming (XP) 2. SCRUM 3. Crystal Family 4. Open Source 5. Adaptive Software Development (ASD) 6. Feature Driven Development (FDD) 7. Dynamic System Development Method (DSDM) Agile
  • 39. Agile suitability Agile methods have been very successful for some types of system development: 1. Product development where a software company is developing a small or medium-sized product for sale. 2. Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are not a lot of external rules and regulations that affect the software.
  • 40. Agile difficulties 1.Customer availability. 2. Individual team members personalities suitability to interact with other teams 3. Priority determination may be extremely difficult especially for many stakeholders. 4. Difficulty of shifting to a new model especially for large companies
  • 41. Agile and Plan-driven(water fall) methodologies differences Agile Plan-driven Iterative and Incremental Phased Working Software every build Working software in final phase More Visibility- working software Less visibility ,prototypes Changes accepted in all phases Changes accepted at certain stages only Conclusion
  • 42. Agile and Plan-driven methodologies suitability Agile Plan-driven Short term projects Long term projects Senior developers Junior / Senior developers Requirements change often Requirements do not change often Small number of developers Small/Large number of developers Culture that responds to change Culture that demands order

Editor's Notes

  • #5: Due to increasing demands and low expectations of the software leads to its failure. Software engineering is derived from the software crisis. It regulates achieving a successful software.
  • #6: Software engineering is a proud of achievement, without it we wouldn’t have explored space, internet and modern telecommunications
  • #8: . There’s no natural limits or constrained by any physical laws.. Lack of the physical constraints leads to the software systems quickly become extremely complex , difficult to understand and expensive to maintain.
  • #10: Q. What are natural constrains or limits of software ?Ans. There’s no natural limits or constrained by any physical laws.Q. What are the consequences of the above constraints?Ans. Lack of the physical constraints leads to the software systems quickly become extremely complex , difficult to understand and expensive to maintain.
  • #13: IEEE defines Software Engineering:Software Engineering is the application of a systematic, disciplined, quantifiable approach to development, operation and maintenance of software: that is, the application of engineering to software.”IEEE: The Institute of Electrical and Electronics Engineers. that is dedicated to advancing technological innovation and excellence
  • #17: - Software Process is a sequence of activities leading to production- Software development is the development of a software product. The term "software development" may be used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, ideally in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.
  • #18: The systematic approach that is used in software engineering is sometimes called a software process. A software process is a sequence of activities that leads to the production of a software product. There are four fundamental activities that are common to all software processes. These activities are:1. Software specification, where customers and engineers define the software thatis to be produced and the constraints on its operation.2. Software development, where the software is designed and programmed.3. Software validation, where the software is checked to ensure that it is what thecustomer requires.4. Software evolution, where the software is modified to reflect changing customer and market requirements.
  • #24: Software prototyping, refers to the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development. A prototype typically simulates only a few aspects of, and may be completely different from the final product. It's like a toy implementation of the product Types of prototyping: Software prototyping has many variants. However, all the methods are in some way based on two major types of prototyping: Throwaway Prototyping and Evolutionary Prototyping.1.Throwaway prototyping: Also called close-ended prototyping. Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the final delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.2. Evolutionary prototyping: The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it. "The reason for this is that the Evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will be built. When developing a system using Evolutionary Prototyping, the system is continually refined and rebuilt. Evolutionary prototyping acknowledges that we do not understand all the requirements and builds only those that are well understood. This technique allows the development team to add features, or make changes that couldn't be conceived during the requirements and design phase. For a system to be useful, it must evolve through use in its intended operational environment. A product is never "done;" it is always maturing as the usage environment changes we often try to define a system using our most familiar frame of reference---where we are now. We make assumptions about the way business will be conducted and the technology base on which the business will be implemented. A plan is enacted to develop the capability, and, sooner or later, something resembling the envisioned system is delivered. Evolutionary Prototypes have an advantage over Throwaway Prototypes in that they are functional systems. Although they may not have all the features the users have planned, they may be used on an interim basis until the final system is delivered.3. Incremental prototyping: The final product is built as separate prototypes. At the end the separate prototypes are merged in an overall design.4. Extreme prototyping: Extreme Prototyping as a development process is used especially for developing web applications. Basically, it breaks down web development into three phases, each one based on the preceding one.
  • #27: Iteration means the act of repeating a process usually with the aim of approaching a desired goal or target or result. Each repetition of the process is also called an “iteration”, and the results of one iteration are used as the starting point for the next iteration. You are building your whole system following the waterfall methodology steps and then return back from any process to another
  • #31: A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small part of a system, before proceeding to the next incrementOverall requirements are defined before proceeding to evolutionary, mini-Waterfall development of individual increments of a system
  • #36: The meanings of the manifesto items on the left within the agile software development context are described below:1.Individuals and interactions: in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.2.Working software : working software will be more useful and welcome than just presenting documents to clients in meetings.3.Customer collaboration:– requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.4.Responding to change: agile development is focused on quick responses to change and continuous development.
  • #41: In practice, the principles underlying agile methods are sometimes difficult to realize: 1. Although the idea of customer involvement in the development process is an attractive one, its success depends on having a customer who is willing and able to spend time with the development team and who can represent all system stakeholders. Frequently, the customer representatives are subject to other pressures and cannot take full part in the software development. 2. Individual team members may not have suitable personalities for the intense involvement that is typical of agile methods, and therefore not interact well with other team members. 3. Prioritizing changes can be extremely difficult, especially in systems for which there are many stakeholders. Typically, each stakeholder gives different priorities to different changes. 4. Maintaining simplicity requires extra work. Under pressure from delivery schedules, the team members may not have time to carry out desirable system simplifications. 5. Many organizations, especially large companies, have spent years changing their culture so that processes are defined and followed. It is difficult for them to move to a working model in which processes are informal and defined by development teams.