2. SOFTWARE MODELING:
Software models are ways of expressing a
software design. Usually some sort of abstract
language or pictures are used to express the
software design.
For object-oriented software, an object
modeling language such as UML is used to
develop and express the software design.
3.
4. SOFTWARE MODELS:
• Waterfall model
• V model
• Incremental model
• RAD model
• Agile model
• Iterative model
• Spiral model
• Prototype model
7. WATERFALL STRENGTHS:
• Easy to understand, easy to use
• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff, track)
• Works well when quality is more important than cost or schedule
8. WATERFALL DEFICIENCIES:
• All requirements must be known upfront
• Deliverables created for each phase are considered frozen
– inhibits flexibility
• Can give a false impression of progress
• Does not reflect problem-solving nature of software
development – iterations of phases
• Integration is one big bang at the end
• Little opportunity for customer to preview the system (until
it may be too late)
9. WHEN TO USE THE WATERFALL
MODEL
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
10. 2.V-SHAPED MODEL
• A variant of the Waterfall that emphasizes the
verification and validation of the product.
• Testing of the product is planned in parallel with a
corresponding phase of development
11.
12. V-SHAPED STEPS
• Project and Requirements Planning – allocate resources
• Product Requirements and Specification Analysis – complete
specification of the software system
• Architecture or High-Level Design – defines how software functions
fulfill the design
• Detailed Design – develop algorithms for each architectural
component
13. • Production, operation and maintenance – provide for
enhancement and corrections
• System and acceptance testing – check the entire
software system in its environment
• Integration and Testing – check that modules
interconnect correctly
• Unit testing – check that each module acts as expected
• Coding – transform algorithms into software
14. V-SHAPED STRENGTHS
• Emphasize planning for verification and validation of the product in early stages of
product development
• Each deliverable must be testable
• Project management can track progress by milestones
• Easy to use
15. V-SHAPED WEAKNESSES
• Does not easily handle concurrent events
• Does not handle iterations or phases
• Does not easily handle dynamic changes in requirements
• Does not contain risk analysis activities
16. WHEN TO USE THE V-SHAPED
MODEL
• Excellent choice for systems requiring high reliability – hospital patient control
applications
• All requirements are known up-front
• When it can be modified to handle changing requirements beyond analysis phase
• Solution and technology are known
17. 3.INCREMENTAL MODEL
• In incremental model the whole requirement is divided into
various builds.
• Each module (independent units) passes through the
requirements, design, implementation and testing phases.
• The incremental build model is a method of software
development where the product is designed, implemented
and tested incrementally until the product is finished.
22. INCREMENTAL MODEL WEAKNESSES
Requires good planning and design
Requires early definition of a complete and fully functional
system to allow for the definition of increments
Well-defined module interfaces are required (some will be
developed long before others)
Total cost of the complete system is not lower
23. INCREMENTAL MODEL STRENGTHS
Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Uses “divide and conquer” breakdown of tasks
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early
Risk of changing requirements is reduced
24. WHAT IS IT ?
The Spiral Development ( or Lifecycle) Model is a systems
development method used in information technology.
It combines the features of the prototyping model and the waterfall
model.
It is favored for large, expensive, and complicated models.
4.Spiral Model (SDLC)
25.
26. ADVANTAGES (STRENGTHS)
Estimates of the budget and schedule become more realistic as work
progresses because of the questions that have been raised
Easier to cope with the changes inherent to software development
Software engineers can start working on the project earlier rather than
wading through a lengthy early design process.
27. SPIRAL QUADRANT
DETERMINE OBJECTIVES,
ALTERNATIVES AND CONSTRAINTS
Objectives: functionality, performance,
hardware/software interface, critical success
factors, etc.
Alternatives: build, reuse, buy, sub-contract,
etc.
Constraints: cost, schedule, interface, etc.
28. SPIRAL MODEL STRENGTHS
Provides early indication of insurmountable
risks, without much cost
Users see the system early because of rapid
prototyping tools
Critical high-risk functions are developed first
The design does not have to be perfect
Users can be closely tied to all lifecycle steps
Early and frequent feedback from users
Cumulative costs assessed frequently
29. DISADVANTAGES
(WEAKNESSES)
Time spent for evaluating risks too large for small or low-risk projects.
Time spent planning, resetting objectives, doing risk analysis and prototyping
may be excessive.
The model is complex.
Risk assessment expertise is required.
30. WHEN TO USE SPIRAL
MODEL
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).
32. DEFINITION
Rapid application development (RAD) is a software development
methodology that uses minimal planning in favor of rapid
prototyping . A prototype is a working model that is functionally
equivalent to a component of the product.
33. The phases in the rapid application development (RAD) model are:
Business modeling: The information flow is identified between various business
functions.
Data modeling: Information gathered from business modeling is used to define
data objects that are needed for the business.
Process modeling: Data objects defined in data modeling are converted to achieve
the business information flow to achieve some specific business
objective. Description are identified and created for CRUD of
data objects.
Application generation: Automated tools are used to convert process models into
code and the actual
Testing and turnover: Test new components and all the interfaces.
34.
35. Advantages of the RAD model:
• Reduced development time.
• Increases reusability of components
• Quick initial reviews occur
• Encourages customer feedback
• Iteration time can be short with use of powerful RAD tools.
36. Disadvantages of RAD model:
• Depends on strong team and individual performances for
business requirements.
• Only system that can be modularized can be built using RAD
• Requires highly skilled developers/designers.
• High dependency on modeling skills
• Inapplicable to cheaper projects as cost of modeling and automated
code generation is very high.
37. When to use RAD model:
• RAD should be used when there is a need to create a system that
can be modularized in 2-3 months of time.
• It should be used if there’s high availability of designers for
modeling and the budget is high enough to afford their cost along
with the cost of automated code generating tools.
• RAD SLDC model should be chosen only if resources with high
business knowledge are available and there is a need to produce
system in a short span of time (2-3 months).
38. 6.WHAT IS PROTOTYPE?
Prototyping is the process of quickly putting together a working
model (a prototype) in order to test various aspects of a design,
illustrate ideas or features and gather early user feedback.-
40. PROTOTYPING OBJECTIVES
• The objective of evolutionary prototyping is to deliver a working system to end-users
• The development starts with those requirements which are best
understood.
• The objective of throw-away prototyping is to validate or derive the system requirements
• The prototyping process starts with those requirements which are
poorly understood
42. ADVANTAGES OF PROTOTYPING
Reduces development time.
Reduces development costs.
Requires user involvement.
Developers receive quantifiable user feedback.
Facilitates system implementation since users know what to expect.
Results in higher user satisfaction.
Exposes developers to potential future system enhancements.
43. DISADVANTAGES
• This method can be used to avoid documenting the requirements of the system.
• Management is required
• Long term maintenance can be expensive
• Uncertain design idea’s
• Information can be lost through so many improvement changes
46. Iterative models
It starts with implementation of a
small set of the software
requirements
Development begins by specifying
and implementing just part of the
software
Produces a new version of the
software at the end of each iteration
of the model.
47. Iterative Model design
Requirements
Design &
Development
Testing Implementation
Testing
Testing
Design &
Development
Design &
Development
Build 1
Build 2
Build 3
Implementation
Implementation
51. WHY CHOOSE AGILE MODELING?
Customer satisfaction by rapid,
continuous delivery of useful
software.
Frequent interaction between
clients, developers & testers
Working software is delivered
frequently
Face-to-face conversation is the
best form of communication.
Continuous attention to technical
excellence & good design.
Regular adaptation to changing
circumstances.
53. WHEN TO USE AGILE MODELING?
Management’s support
is available
The Product Owners
has been trained?
The team has been
provided with proper
training
Good preparation
of Support Teama
Face-to-face
communication,
including informal
discussion is
essential
Environment for teamwork
& team communication
Supports from
middle & top
managers are
needed
… in courses like Certified
Scrum Master, Certified
Scrum Product Owner, &
group self-study
They must be able to
work with clients, dev
team, maximize ROI,
& bring big wins
Include database
& system admin,
or configuration
manager