SlideShare uma empresa Scribd logo
1 de 36
The Process
Chapter 2
FAQ about software engineering
2
Question Answer
What is software? Computer programs, data structures and associated
documentation. Software products may be developed for
a particular customer or may be developed for a general
market.
What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.
Essential attributes of good
software
3
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.
Dependability and security Software dependability includes a range of characteristics including
reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious
users should not be able to access or damage the system.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
Types of Software Engineering Model:
1. Waterfall Model.
2. Prototyping Model.
3. Spiral Model.
4. SDLC (Software Development Life Cycle).
a. V- shaped SDLC Model.
b. RAD (Rapid Application Model)
c. Incremental SDLC Model.
5. Agile Model.
6. Concurrent Development Model.
7. Specialized Process Model.
What is SDLC?
A Software Development Life
Cycle is essentially a series of steps, or
phases, that provide a model for the
development and lifecycle management of
an application or piece of software.
Different Phases of SDLC
 1. Initiate Phase
 2. Define Phase
 3. Design Phase
 4. Build Phase
 5. Test Phase
 6. Documentation Phase
Initiate Phase : Initiating the
project
Criteria involved in Initiate phase:
Input : Problem, strategic value added
reasoning.
Output: green signal from the Project Manager,
charter, Document, Scope and plan
document.
Who Involved in this Phase?
Business Analyst, Senior Level IT folks.
Define Phase: Defining what the
Product is? (Application,
Website…)
Input: Charter Document or Scope plan
Document.
Output: requirement document(Business
Analyst), Project Plan (Project Manager),
Test Plan(Quality Analyst Lead).
Who is Involve?
Business Analyst, Project Manager,
Quality Analyst, Developer, SME’s(Subject
Matter Experts).
Design Phase: How to Design the
Product?
Input: Requirement Document, Project Plan
worked by Quality Analyst.
Output: Functional Design Document by Business
Analyst
Technical Design Document by Developers
Project Plan by Project Manager
Updated Quality Analyst plan by Quality Test
Analyst team.
Who is involved?
Developer, Project Manager, Business
Analyst, Quality Analyst folks.
Build Phase: Building the
Product?
Coding of the Software
Input: Functional Design Document , Technical
design Document.
Output: Product, Unit Testing results.
“Test Case” : Describe step by step instruction
about to test a particular feature of the product.
With the help of design phase the
developers come up with algorithm.
Who involved?
Programmers and Quality Analyst.
Test Phase: Testing of the product
happens (Operation Feature
Testing).
Input : Test case.
Output: Test Results.
Who Test?
Quality Analyst.
UAT : User Acceptance Testing (High
Level Testing).
The Waterfall Model
12
It is the oldest paradigm for SE. When requirements are
well defined and reasonably stable, it leads to a linear
fashion.
(problems: 1. rarely linear, iteration needed. 2. hard to state all
requirements explicitly. Blocking state. 3. code will not be released until
very late.)
The classic life cycle suggests a systematic, sequential
approach to software development.
The waterfall model is a
sequential design process, often used
[citation needed] in software
development processes, in which
progress is seen as flowing steadily
downwards through the phases of
Conception, Initiation, Analysis,
Design, Construction, Testing,
Production/Implementation, and
Maintenance.
Water Fall Flow:
Advantages and Disadvantages
Advantage: Easy to explain to the user·
Structures approach.· Stages and activities are
well defined· Helps to plan and schedule the
project· Verification at each stage ensures early
detection of errors / misunderstanding and Each
phase has specific deliverables.
Disadvantage: Assumes that the requirements of
a system can be frozen· Very difficult to go back to
any stage after it finished.· Little flexibility and
adjusting scope is difficult and expensive.· Costly
and required more time, in addition to detailed
plan
Evolutionary Models: Prototyping
 When to use: Customer defines a set of general objectives but does
not identify detailed requirements for functions and features. Or
Developer may be unsure of the efficiency of an algorithm, the form
that human computer interaction should take.
 What step: Begins with communication by meeting with stakeholders
to define the objective, identify whatever requirements are known,
outline areas where further definition is mandatory. A quick plan for
prototyping and modeling (quick design) occur. Quick design focuses
on a representation of those aspects the software that will be visible
to end users. ( interface and output). Design leads to the construction
of a prototype which will be deployed and evaluated. Stakeholder’s
comments will be used to refine requirements.
 Both stakeholders and software engineers like the prototyping
paradigm. Users get a feel for the actual system, and developers get
to build something immediately. However, engineers may make
compromises in order to get a prototype working quickly. The less-
than-ideal choice may be adopted forever after you get used to it.
16
Advantages of Prototype model:
 Users are actively involved in the development
 Since in this methodology a working model of
the system is provided, the users get a better
understanding of the system being developed.
 Errors can be detected much earlier.
 Quicker user feedback is available leading to
better solutions.
 Missing functionality can be identified easily
 Confusing or difficult functions can be identified
Requirements validation, Quick implementation
of, incomplete, but functional, application.
Disadvantages of Prototype model:
 Leads to implementing and then repairing
way of building systems.
 Practically, this methodology may increase
the complexity of the system as scope of
the system may expand beyond original
plans.
 Incomplete application may cause
application not to be used as the full
system was designed Incomplete or
inadequate problem analysis.
When to use Prototype model:
 Prototype model should be used when the
desired system needs to have a lot of interaction
with the end users.
 Typically, online systems, web interfaces have a
very high amount of interaction with end users,
are best suited for Prototype model. It might
take a while for a system to be built that allows
ease of use and needs minimal training for the
end user.
 Prototyping ensures that the end users
constantly work with the system and provide a
feedback which is incorporated in the prototype
to result in a useable system. They are excellent
for designing good human computer interface
systems.
Evolutionary Models:
Prototyping
20
Construction
of prototype
communication
Quick
plan
Modeling
Quick design
Construction
of prototype
Deployment
delivery &
feedback
Evolutionary Models: The Spiral
 It couples the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model and is a risk-driven process model generator that is
used to guide multi-stakeholder concurrent engineering of software intensive
systems.
 Two main distinguishing features: one is cyclic approach for incrementally growing
a system’s degree of definition and implementation while decreasing its degree of
risk. The other is a set of anchor point milestones for ensuring stakeholder
commitment to feasible and mutually satisfactory system solutions.
 The first circuit in the clockwise direction might result in the product specification;
subsequent passes around the spiral might be used to develop a prototype and
then progressively more sophisticated versions of the software. Each pass results
in adjustments to the project plan. Cost and schedule are adjusted based on
feedback. Also, the number of iterations will be adjusted by project manager.
 Good to develop large-scale system as software evolves as the process progresses
and risk should be understood and properly reacted to. Prototyping is used to
reduce risk.
 However, it may be difficult to convince customers that it is controllable as it
demands considerable risk assessment expertise.
21
Evolutionary Models: The Spiral
 Objective setting Specific objective for that phase of the project are defined.
Constraints on the process & the product are defined & a detailed management plan
is drawn up.[project risks are identified. Alternative strategies, depending on these
risks, may be planned].
 Risk Assessment & reduction for each of the identified project risk, a detailed
analysis is carried out. Steps are taken to reduce the risk.
 Development & Validation after risk evaluation, a development model for the
system is chosen.
 Planning the project is reviewed & a decision made whether to continue with the
further loop of the spiral. If the decided to continue, plans are drawn up for the
next phase of the project.
22
Advantages of Spiral model:
 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.
 Software is produced early in the software
life cycle.
When to use Spiral model:
 When costs and risk evaluation is important
 For medium to high-risk projects
 Long-term project commitment unwise
because of potential changes to economic
priorities
 Users are unsure of their needs
 Requirements are complex
 New product line
 Significant changes are expected (research
and exploration)
Disadvantages of Spiral model:
 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.
Typical Spiral Model Diagram:
Agile Methodology
• AGILE methodology is a practice that
promotes continuous iteration of development and
testing throughout the software development lifecycle
of the project.
• Both development and testing activities are concurrent
unlike the Waterfall model.
Agile Methodology
The agile software development emphasizes on four core values.
 Individual and team interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
Agile Methodology Principles
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
Agile Development:
• In Agile development, Design and Implementation are
considered to be the central activities in the software process.
• Design and Implementation phase also incorporate other
activities such as requirements gathering and testing into it.
• In an agile approach, iteration occurs across activities.
Therefore, the requirements and the design are developed
together, rather than separately.
Agile Development:
• The allocation of requirements and the design planning and
development are executed in a series of increments.
• In contrast with the conventional model, where requirements
gathering needs to be completed in order to proceed to the design
and development phase, it gives Agile development an extra level
of flexibility.
• An agile process focuses more on code development rather than
documentation.
Agile Methodology
Agile Software Development Life Cycle:
Agile Software Development Life Cycle
Concept: Scope Out and Prioritize Projects:
 The team scopes out and prioritizes projects.
 For each concept, you should define the business opportunity and
determine the time and work it’ll take to complete the project.
Inception: Diagram requirements for the initial sprint(iteration)
When the project is identified, stakeholders need to determine
requirements. High-level UML diagrams can help to demonstrate
the new feature.
Agile Software Development Life Cycle
Construction/iteration
UX designers and developers begin work on their first iteration of the
project, with the goal of having a working product to launch at the
end of the sprint.
The product will undergo various rounds
of revisions, so this first iteration might only include the bare
minimum functionality.
Release the iteration into production
Software iteration is finished with the following steps:
 Test the system.
 Address any defects.
 Finalize system and user documentation.
 Release the iteration into production.
Agile Software Development Life Cycle
Production and ongoing support for the software release
This phase involves ongoing support for the software release.
The production phase ends when support has ended or when the
release is planned for retirement.
Retirement
During the retirement phase, the system is released from
production, typically the system is replaced with a new release or
when the system becomes redundant, obsolete, or contrary to the
business model.
Agile Software Development Life Cycle
Sprint:
The Sprint is a timebox of one month or less during which the team
produces a potentially shippable product Increment.
Scrum:
Scrum is a process framework used to manage product
development and other knowledge work. Scrum is empirical in that
it provides a means for teams to establish a hypothesis of how they
think something works, try it out, reflect on the experience, and
make the appropriate adjustments.

Mais conteúdo relacionado

Mais procurados

Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
vladimir zaremba
 
Software life-cycle
Software life-cycleSoftware life-cycle
Software life-cycle
gnesoni
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
Vaska Shefteroska
 

Mais procurados (20)

Software process
Software processSoftware process
Software process
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
MODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENTMODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENT
 
Software Development Techniques
Software Development TechniquesSoftware Development Techniques
Software Development Techniques
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
 
Software Development Methodologies
Software Development MethodologiesSoftware Development Methodologies
Software Development Methodologies
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Sdlc 4
Sdlc 4Sdlc 4
Sdlc 4
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
 
Software life-cycle
Software life-cycleSoftware life-cycle
Software life-cycle
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software process
Software processSoftware process
Software process
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
(Software development-life-cycle)
(Software  development-life-cycle)(Software  development-life-cycle)
(Software development-life-cycle)
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
 
CSC426 - SDLC Models
CSC426 - SDLC ModelsCSC426 - SDLC Models
CSC426 - SDLC Models
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Software developement life cycle ppt
Software developement life cycle pptSoftware developement life cycle ppt
Software developement life cycle ppt
 
1.sdlc
1.sdlc1.sdlc
1.sdlc
 

Semelhante a Software engineering the process

61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
SuhleemAhmd
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Models
tahir iqbal
 

Semelhante a Software engineering the process (20)

System Development
System  DevelopmentSystem  Development
System Development
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software life cycle models
Software life cycle modelsSoftware life cycle models
Software life cycle models
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Software Process Model.ppt
Software Process Model.pptSoftware Process Model.ppt
Software Process Model.ppt
 
Lecture - 11-15.pptx
Lecture - 11-15.pptxLecture - 11-15.pptx
Lecture - 11-15.pptx
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Models
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basic
 
Process models
Process modelsProcess models
Process models
 
Software models
Software modelsSoftware models
Software models
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
2-models.pptx
2-models.pptx2-models.pptx
2-models.pptx
 

Último

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Philosophy of china and it's charactistics
Philosophy of china and it's charactisticsPhilosophy of china and it's charactistics
Philosophy of china and it's charactistics
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 

Software engineering the process

  • 2. FAQ about software engineering 2 Question Answer What is software? Computer programs, data structures and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software? Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
  • 3. Essential attributes of good software 3 Product characteristic Description Maintainability Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment. Dependability and security Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system. Efficiency Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc. Acceptability Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.
  • 4. Types of Software Engineering Model: 1. Waterfall Model. 2. Prototyping Model. 3. Spiral Model. 4. SDLC (Software Development Life Cycle). a. V- shaped SDLC Model. b. RAD (Rapid Application Model) c. Incremental SDLC Model. 5. Agile Model. 6. Concurrent Development Model. 7. Specialized Process Model.
  • 5. What is SDLC? A Software Development Life Cycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software.
  • 6. Different Phases of SDLC  1. Initiate Phase  2. Define Phase  3. Design Phase  4. Build Phase  5. Test Phase  6. Documentation Phase
  • 7. Initiate Phase : Initiating the project Criteria involved in Initiate phase: Input : Problem, strategic value added reasoning. Output: green signal from the Project Manager, charter, Document, Scope and plan document. Who Involved in this Phase? Business Analyst, Senior Level IT folks.
  • 8. Define Phase: Defining what the Product is? (Application, Website…) Input: Charter Document or Scope plan Document. Output: requirement document(Business Analyst), Project Plan (Project Manager), Test Plan(Quality Analyst Lead). Who is Involve? Business Analyst, Project Manager, Quality Analyst, Developer, SME’s(Subject Matter Experts).
  • 9. Design Phase: How to Design the Product? Input: Requirement Document, Project Plan worked by Quality Analyst. Output: Functional Design Document by Business Analyst Technical Design Document by Developers Project Plan by Project Manager Updated Quality Analyst plan by Quality Test Analyst team. Who is involved? Developer, Project Manager, Business Analyst, Quality Analyst folks.
  • 10. Build Phase: Building the Product? Coding of the Software Input: Functional Design Document , Technical design Document. Output: Product, Unit Testing results. “Test Case” : Describe step by step instruction about to test a particular feature of the product. With the help of design phase the developers come up with algorithm. Who involved? Programmers and Quality Analyst.
  • 11. Test Phase: Testing of the product happens (Operation Feature Testing). Input : Test case. Output: Test Results. Who Test? Quality Analyst. UAT : User Acceptance Testing (High Level Testing).
  • 12. The Waterfall Model 12 It is the oldest paradigm for SE. When requirements are well defined and reasonably stable, it leads to a linear fashion. (problems: 1. rarely linear, iteration needed. 2. hard to state all requirements explicitly. Blocking state. 3. code will not be released until very late.) The classic life cycle suggests a systematic, sequential approach to software development.
  • 13. The waterfall model is a sequential design process, often used [citation needed] in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance.
  • 15. Advantages and Disadvantages Advantage: Easy to explain to the user· Structures approach.· Stages and activities are well defined· Helps to plan and schedule the project· Verification at each stage ensures early detection of errors / misunderstanding and Each phase has specific deliverables. Disadvantage: Assumes that the requirements of a system can be frozen· Very difficult to go back to any stage after it finished.· Little flexibility and adjusting scope is difficult and expensive.· Costly and required more time, in addition to detailed plan
  • 16. Evolutionary Models: Prototyping  When to use: Customer defines a set of general objectives but does not identify detailed requirements for functions and features. Or Developer may be unsure of the efficiency of an algorithm, the form that human computer interaction should take.  What step: Begins with communication by meeting with stakeholders to define the objective, identify whatever requirements are known, outline areas where further definition is mandatory. A quick plan for prototyping and modeling (quick design) occur. Quick design focuses on a representation of those aspects the software that will be visible to end users. ( interface and output). Design leads to the construction of a prototype which will be deployed and evaluated. Stakeholder’s comments will be used to refine requirements.  Both stakeholders and software engineers like the prototyping paradigm. Users get a feel for the actual system, and developers get to build something immediately. However, engineers may make compromises in order to get a prototype working quickly. The less- than-ideal choice may be adopted forever after you get used to it. 16
  • 17. Advantages of Prototype model:  Users are actively involved in the development  Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed.  Errors can be detected much earlier.  Quicker user feedback is available leading to better solutions.  Missing functionality can be identified easily  Confusing or difficult functions can be identified Requirements validation, Quick implementation of, incomplete, but functional, application.
  • 18. Disadvantages of Prototype model:  Leads to implementing and then repairing way of building systems.  Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.  Incomplete application may cause application not to be used as the full system was designed Incomplete or inadequate problem analysis.
  • 19. When to use Prototype model:  Prototype model should be used when the desired system needs to have a lot of interaction with the end users.  Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model. It might take a while for a system to be built that allows ease of use and needs minimal training for the end user.  Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. They are excellent for designing good human computer interface systems.
  • 20. Evolutionary Models: Prototyping 20 Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  • 21. Evolutionary Models: The Spiral  It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model and is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software intensive systems.  Two main distinguishing features: one is cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.  The first circuit in the clockwise direction might result in the product specification; subsequent passes around the spiral might be used to develop a prototype and then progressively more sophisticated versions of the software. Each pass results in adjustments to the project plan. Cost and schedule are adjusted based on feedback. Also, the number of iterations will be adjusted by project manager.  Good to develop large-scale system as software evolves as the process progresses and risk should be understood and properly reacted to. Prototyping is used to reduce risk.  However, it may be difficult to convince customers that it is controllable as it demands considerable risk assessment expertise. 21
  • 22. Evolutionary Models: The Spiral  Objective setting Specific objective for that phase of the project are defined. Constraints on the process & the product are defined & a detailed management plan is drawn up.[project risks are identified. Alternative strategies, depending on these risks, may be planned].  Risk Assessment & reduction for each of the identified project risk, a detailed analysis is carried out. Steps are taken to reduce the risk.  Development & Validation after risk evaluation, a development model for the system is chosen.  Planning the project is reviewed & a decision made whether to continue with the further loop of the spiral. If the decided to continue, plans are drawn up for the next phase of the project. 22
  • 23. Advantages of Spiral model:  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.  Software is produced early in the software life cycle.
  • 24. When to use Spiral model:  When costs and risk evaluation is important  For medium to high-risk projects  Long-term project commitment unwise because of potential changes to economic priorities  Users are unsure of their needs  Requirements are complex  New product line  Significant changes are expected (research and exploration)
  • 25. Disadvantages of Spiral model:  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. Agile Methodology • AGILE methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. • Both development and testing activities are concurrent unlike the Waterfall model.
  • 28. Agile Methodology The agile software development emphasizes on four core values.  Individual and team interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 29. Agile Methodology Principles Principle Description Customer involvement Customers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system. Incremental delivery The software is developed in increments with the customer specifying the requirements to be included in each increment. People not process The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes. Embrace change Expect the system requirements to change and so design the system to accommodate these changes. Maintain simplicity Focus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.
  • 30. Agile Development: • In Agile development, Design and Implementation are considered to be the central activities in the software process. • Design and Implementation phase also incorporate other activities such as requirements gathering and testing into it. • In an agile approach, iteration occurs across activities. Therefore, the requirements and the design are developed together, rather than separately.
  • 31. Agile Development: • The allocation of requirements and the design planning and development are executed in a series of increments. • In contrast with the conventional model, where requirements gathering needs to be completed in order to proceed to the design and development phase, it gives Agile development an extra level of flexibility. • An agile process focuses more on code development rather than documentation.
  • 32. Agile Methodology Agile Software Development Life Cycle:
  • 33. Agile Software Development Life Cycle Concept: Scope Out and Prioritize Projects:  The team scopes out and prioritizes projects.  For each concept, you should define the business opportunity and determine the time and work it’ll take to complete the project. Inception: Diagram requirements for the initial sprint(iteration) When the project is identified, stakeholders need to determine requirements. High-level UML diagrams can help to demonstrate the new feature.
  • 34. Agile Software Development Life Cycle Construction/iteration UX designers and developers begin work on their first iteration of the project, with the goal of having a working product to launch at the end of the sprint. The product will undergo various rounds of revisions, so this first iteration might only include the bare minimum functionality. Release the iteration into production Software iteration is finished with the following steps:  Test the system.  Address any defects.  Finalize system and user documentation.  Release the iteration into production.
  • 35. Agile Software Development Life Cycle Production and ongoing support for the software release This phase involves ongoing support for the software release. The production phase ends when support has ended or when the release is planned for retirement. Retirement During the retirement phase, the system is released from production, typically the system is replaced with a new release or when the system becomes redundant, obsolete, or contrary to the business model.
  • 36. Agile Software Development Life Cycle Sprint: The Sprint is a timebox of one month or less during which the team produces a potentially shippable product Increment. Scrum: Scrum is a process framework used to manage product development and other knowledge work. Scrum is empirical in that it provides a means for teams to establish a hypothesis of how they think something works, try it out, reflect on the experience, and make the appropriate adjustments.