Professional Documents
Culture Documents
Software Process
Project Phases and the Project Life
Cycle
• A project life cycle is a collection of project phases
that defines
– what work will be performed in each phase
– what deliverables will be produced and when
– who is involved in each phase, and
– how management will control and approve work produced
in each phase
• A deliverable is a product or service produced or
provided as part of a project
More on Project Phases
• In early phases of a project life cycle
– resource needs are usually lowest
– the level of uncertainty (risk) is highest
– project stakeholders have the greatest opportunity to
influence the project
• In middle phases of a project life cycle
– the certainty of completing a project improves
– more resources are needed
• The final phase of a project life cycle focuses on
– ensuring that project requirements were met
– the sponsor approves completion of the project
Phases of the Traditional Project Life
Cycle
Product Life Cycles
Convert to Operational
System
Problem
Implement and Use Revise and Enhance
Prototype Prototype
Next Version
Prototyping
Prototyping can be problematic for the following reasons :
Engineering
Customer
evaluation
Construction & release
Application
generation
Testing
&
Turnover
60-90 days
Phases of RAD
• Business Modeling
– The business model for the product is designed in terms of
flow of information between various business channels.
– A complete business analysis is performed to find the vital
information for business, how it can be obtained, how and
when is the information processed and what are the factors
driving successful flow of information.
• Data Modeling
– Information gathered in the business modelling phase is
refined and analyzed to form a set of data objects that are
needed to support the business.
– The characteristics of each object is defined and the
relationship between these objects defined
Phases of RAD
• Process Modeling
– Data objects defined in the previous phase are transformed to
achieve the information flow necessary to implement a business
functions.
– Process model for any changes or enhancements to the data
objects sets is defined in this phase.
– Process descriptions for adding, deleting, retrieving or
modifying a data object are given.
• Application Generation
– RAD uses fourth generation technology.
– RAD process works to reuse existing program component or
create reusable components.
– Actual system is build and coding is done by using automation
tools to convert process and data models into actual prototypes.
Phases of RAD
• Testing & Turnover
– RAD process emphasizes on reuse, many of the program
components have already been tested.
– This reduces overall testing time.
– Also, it reduces the risk of any major issues
– However the data flow and interfaces between all the
components need to be thoroughly tested with complete
test coverage.
Advantages of RAD
• Changing requirements can be accommodated
• Progress can be measured
• Iteration time can be short with use of powerful RAD
tools
• Productivity with fewer people in short time
• Reduced development time
• Increases reusability of components
• Quick initial reviews occur
• Encourage customer feedback
• Integration from very beginning solves a lot of integration
issues
Limitations of RAD
1. For large but scalable projects RAD requires sufficient
human resources to create the right number of RAD teams.
2. If developers and customers are not committed to the rapid
fire activities necessary to complete the system in a much
abbreviated time frame, RAD projects will fail.
3. If a system cannot be properly modularized, building the
components necessary for RAD will be problematic.
4. If high performance is an issue and performance is to be
achieved through tuning the interfaces to system
components the RAD approach may not work.
5. RAD may not be appropriate when technical risks are high
(e.g., when a new application makes heavy use of new
technology).
Agile Methodologies
• Aims for customer satisfaction through early and
continuous delivery of components developed by an
iterative process.
• Small teams work together with stakeholders to
define quick prototypes, proof of concepts, or other
visual means to describe the problem to be solved.
• The team defines the requirements for the iteration,
develops the code, and defines and runs integrated
test scripts, and the users verify the results.
Agile Methodologies
• Verification occurs much earlier in the development
process than it would with waterfall, allowing
stakeholders to fine-tune requirements while they’re
still relatively easy to change.
• The most widely used methodologies based on the
agile philosophy are
– XP and
– Scrum
• These differ in particulars but share the iterative
approach.
Agile Process
• Any Agile software process is characterized in a
manner that addresses number of key assumptions
– It is difficult to predict in advance which software
requirements will persists and which will change. Similarly,
it is difficult to predict how customer priorities will change
as project proceeds.
– For many types of software, design and construction are
interleaved. That is both activities should be performed in
tandem so that design models are proven as they are
created. It is difficult to predict how much design is
necessary before construction is used to prove the design.
Agile Process
– Analysis, design, construction and testing are not as
predictable as we might like.
• How do we create a process that can mange
unpredictability?
• Therefore, agile process must be adaptable.
• But continual adaptation without forward progress
accomplish little.
• Therefore, agile process must adapt incrementally.
• For this, an agile team requires customer feedback.
Agile Process
• An effective catalyst for customer feedback is an
operational prototype.
• Hence, incremental development strategy should be
institute.
• Software increments must be delivered in short
period of time so that adaptation keeps pace with
change.
• This iterative approach enables the customer to
evaluate the software increment regularly, provide
necessary feedback to the team and influence the
process adaptations that are made to accommodate
the feedback.
Agility Principles
• Highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
• Welcome changing requirements, even late in development.
• Deliver working software frequently, from a couple of weeks
to a couple of months, with a preference to the shorter
timescale.
• Business people and developers must work together daily
throughout the project.
• Build project around motivated individuals. Give them
environment and support they need and trust them to get the
job done.
Agility Principles
• Most efficient and effective method of conveying information
to and within a development team is face-to-face conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a
constant pace indefinitely.
• Continuous attention to technical excellence and good design
enhances agility.
• Simplicity-the art of maximizing the amount of work not done
–is essential.
• Best architectures, requirements, and designs emerge from self
organizing teams.
• At regular intervals, the team reflects on how to become more
effective, then tunes and adjust its behavior accordingly.
Agile Methodologies
XP
• XP stands for Extreme Programming.
• Integrate often:
– Development teams must integrate changes into the
development baseline at least once a day.
– This concept is also called continuous integration.
• Project velocity:
– Velocity is a measure of how much work is getting done on
the project.
– This important metric drives release planning and schedule
updates.
XP Concepts
• Pair programming:
– All code for a production release is created by two people
working together at a single computer.
– XP proposes that two coders working together will satisfy
user stories at the same rate as two coders working alone,
but with much higher quality.
• User story:
– A user story describes problems to be solved by the system
being built.
– These stories must be written by the user and should be
about three sentences long.
– User stories do not describe a solution, use technical
language, or contain traditional requirements.
XP Process
• XP uses an object-oriented approach as its preferred
development paradigm and encompasses a set of rules
and practices that occur within the context of four
framework activities:
– Planning
– Design
– Coding
– Testing
XP Process
XP Process
• Planning
– Begins with listening
• A requirement gathering activity that enables the technical member
to understand the business context for the software and to get a feel
for required output and major features and functionality.
– Listening leads to the creation of stories
• Describe required output, features and functionality for software to
be built.
– Each story written by the customer and placed on the index
card with assigned value based on the overall business
value of the feature or function.
– XP team members assess each story and assign a cost
measured in development weeks.
XP Process
– If the estimated time for a story is more than three weeks
then the customer is asked to split story into smaller stories
• Again assign the value and cost
– Customers and developers work together to decide how to
group stories into the next release
– Once the basic commitment is made for release, XP team
orders the stories that will be developed in one of three
ways:
• All stories will be implemented immediately
• Stories with highest value will be moved up in the schedule and
implemented first
• Riskiest story will be moved up in schedule and implemented first
XP Process
– After the first project release has been delivered, XP team
computes project velocity.
– Project velocity is the number of customer stories
implemented during the first release.
– Project velocity can then be used to
• Help estimating delivery dates and schedule for subsequent release
• Determine whether an overcommitment has been made for all
stories across the entire development project.
– If yes, the content of release is modified or end delivery dates are changed