SlideShare ist ein Scribd-Unternehmen logo
1 von 43
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?
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

Weitere ähnliche Inhalte

Was ist angesagt?

Software estimation
Software estimationSoftware estimation
Software estimationMd Shakir
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)Simran Kaur
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Software Engineering unit 3
Software Engineering unit 3Software Engineering unit 3
Software Engineering unit 3Abhimanyu Mishra
 
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 Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleA Subbiah
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering modelManish Chaurasia
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringZahoor Khan
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 

Was ist angesagt? (20)

Software estimation
Software estimationSoftware estimation
Software estimation
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Software Engineering unit 3
Software Engineering unit 3Software Engineering unit 3
Software Engineering unit 3
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
What is waterfall
What is waterfallWhat is waterfall
What is waterfall
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering model
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 

Andere mochten auch

Methodologies of Software Engineering
Methodologies of Software EngineeringMethodologies of Software Engineering
Methodologies of Software EngineeringKaya Ota
 
Luxoft Seminar Planning Big Project
Luxoft Seminar Planning Big ProjectLuxoft Seminar Planning Big Project
Luxoft Seminar Planning Big ProjectMaxim Dorofeev
 
Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Babu Kanikicharla (K Y Babu Setty)
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeFadi Stephan
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsDavid De Roure
 
Software Engineering Ethics
Software Engineering EthicsSoftware Engineering Ethics
Software Engineering EthicsKapil Rajpurohit
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMNana Sarpong
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringAndy Maleh
 
Software Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesSoftware Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesKiran Munir
 
SE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsAmr E. Mohamed
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development MethodologiesDevon Ravihansa
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
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
 
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...Dr. Khaled Bakro
 

Andere mochten auch (20)

Methodologies of Software Engineering
Methodologies of Software EngineeringMethodologies of Software Engineering
Methodologies of Software Engineering
 
Luxoft Seminar Planning Big Project
Luxoft Seminar Planning Big ProjectLuxoft Seminar Planning Big Project
Luxoft Seminar Planning Big Project
 
Lesson 02.2
Lesson 02.2Lesson 02.2
Lesson 02.2
 
Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
TIAD 2016 : Ethics in software development
TIAD 2016 : Ethics in software developmentTIAD 2016 : Ethics in software development
TIAD 2016 : Ethics in software development
 
Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2Testing Throughout the Software Life Cycle - Section 2
Testing Throughout the Software Life Cycle - Section 2
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower Scientists
 
Software Engineering Ethics
Software Engineering EthicsSoftware Engineering Ethics
Software Engineering Ethics
 
software engineering ethics
software engineering ethicssoftware engineering ethics
software engineering ethics
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADM
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
 
Software Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesSoftware Requirements Engineering Methodologies
Software Requirements Engineering Methodologies
 
SE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of Ethics
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
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 Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
software engineering
 software engineering software engineering
software engineering
 
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
Introduction to Engineering and Profession Ethics Lecture3-Introduction to En...
 

Ähnlich wie Software Engineering Methodologies

Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineeringMadhav Suratkar
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03YousefYassin5
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringKanchanPatil34
 
Software process model
Software process modelSoftware process model
Software process modelUmar Farooq
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1Samura Daniel
 
Module1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfModule1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfGerard Alba
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 

Ähnlich wie Software Engineering Methodologies (20)

Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
 
ppt chapter 1.ppt
ppt chapter 1.pptppt chapter 1.ppt
ppt chapter 1.ppt
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
Software process model
Software process modelSoftware process model
Software process model
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
The process
The processThe process
The process
 
Agile software process
Agile software processAgile software process
Agile software process
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
Module1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfModule1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdf
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 

Software Engineering Methodologies

  • 1.
  • 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?
  • 10.
  • 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

Hinweis der Redaktion

  1. 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.
  2. Software engineering is a proud of achievement, without it we wouldn’t have explored space, internet and modern telecommunications
  3. . 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.
  4. 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.
  5. 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
  6. - 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.
  7. 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.
  8. 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.
  9. 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
  10. 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
  11. 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.
  12. 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.