PSE Unit 1 part 2
PSE Unit 1 part 2
Presenting by:
B.Pranalini
INDEX
Unit 1 Part 2: Process Models
o Prescriptive Process Models
• The Waterfall Model
• Incremental Model
o Evolutionary Process Models
• The Prototyping Model
• The Spiral Model
o The Concurrent Development Model
o Specialized Process Models
o The Unified Process
o Personal and Team Process Models
o Agile Development.
PROCESS MODEL
• Help in the software development
5
Merits :
• It is systematic sequential approach for Software
Development
Demerits:
• The model requires requirements to be
explicitly spelled out in the beginning, which
is often difficult
• All Customer Requirements at the start of project may be
difficult
• Problems remain uncovered until testing phase
• Customer patience is needed, working version of the
software is delivered too late
V-MODEL
• A variation in the representation of the waterfall
model is called the V-model.
• The V-model depicts the relationship of quality assurance
actions to the actions associated with communication,
modeling, and early construction activities.
• As a software team moves down the left side of the V,
basic problem requirements are refined into progressively
more detailed and technical representations of the
problem and its solution.
• Once code has been generated, the team moves up the
right side of the V, essentially performing a series of tests
(quality assurance actions) that validate each of the
models created as the team moved down the left side.
• In reality, there is no fundamental difference between the
classic life cycle and the V-model. The V-model provides a
way of visualizing how verification and validation actions
are applied to earlier engineering work
INCREMENTAL MODEL:
• Each linear sequence produces deliverable “increments” of
the software.
(Ex: a Word Processor delivers basic file mgmt., editing, in
the first increment; more sophisticated editing, document
production capabilities in the 2 increment; spelling and
grammar checking in the 3 increment).
Business ● On basis of the flow of information and distribution between various business
Modeling channels, the product is designed
Data Modeling ● The information collected from business modeling is refined into a set of data
objects that are significant for the business
Process ● The data object that is declared in the data modeling phase is transformed to
Modeling achieve the information flow necessary to implement a business function
Application ● Automated tools are used for the construction of the software, to convert
Generation process and data models into prototypes
Testing and ● As prototypes are individually tested during every iteration, the overall testing
Turnover time is reduced in RAD.
Advantages of RAD Model Disadvantages of RAD Model
● It is useful when you have to reduce ● Not all application is compatible with RAD
the overall project risk
● It is adaptable and flexible to changes ● When technical risk is high, it is not suitable
● Due to code generators and code ● Reduced features due to time boxing, where
reuse, there is a reduction of manual features are pushed to a later version to finish a
coding release in short period
● Each phase in RAD delivers highest ● Progress and problems accustomed are hard to
priority functionality to client track as such there is no documentation to
demonstrate what has been done
Evolutionary Process Models:
• Software like all complex systems evolves over a period of
time.
• Business and product requirements often change
as development proceeds, making a straight-line
path to an end product unrealistic
• Some of the core product or system requirements are well
understood but the details of product or system extensions
have yet to be defined.
• Solution is to adapt Evolutionary Model which is
Iterative
• Types of evolutionary models
– Prototyping
– Spiral model
The Prototyping Model:
Merits:
• Prototyping helps in requirement gathering & can be
applied at any stage of the project.
Demerits:
• Customer insists to convert prototype in working version
by applying “few fixes”
• Developer may become comfortable with the
compromises done. “The-less-than-ideal-choice” may
become integral part of the system
• Use of inappropriate OS or PL
• Use of inefficient algorithm
Evolutionary Models: Spiral
Demerits:
• It is difficult to convince customers that the
evolutionary approach is controllable
• Considerable risk assessment expertise required
• If major risk is uncovered, problems will occur
Concurrent Development Model:
Merits:
• Applicable to all types of Software development & provides an
accurate picture of the current state of project.
Demerits:
• Problem to Project planning. How many number of iterations
are to be planned? Uncertainty…
• Process may fall in chaos if the evolutions occurs too fast
without a period of relaxation. On the other hand if the speed is
too slow productivity could be affected.
• Software processes are focussed on flexibility & extendability,
rather than on high quality.
Specialized Process Models:
Specialized process models use many of the characteristics of
one or more of the conventional models presented so far, however
they tend to be applied when a narrowly defined software
engineering approach is chosen. They include,
inception
PHASES OF UNIFIED PROCESS
• The figure above depicts the phases of the UP and relates them to
the generic activities.
• The Inception phase of the UP encompasses both customer
communication and planning activities.
⮚ By collaborating with the customer and end-users, business requirements
for the software are identified, a rough architecture for the system is
proposed, and a plan for the iterative, incremental nature of the ensuing
project is developed.
• The elaboration phase encompasses the planning and modeling
activities of the generic process model.
⮚ Elaboration refines and expands the preliminary use-cases that were
developed as part of the inception phase and expands the architectural
representation to include five different views of the software - the use-
case model, the analysis model, the design model, the implementation
model, and the deployment model.
• The construction phase of the UP is identical to the construction
activity defined for the generic software process.
⮚ Using the architectural model as input, the construction phase
develops or acquires the software components that will make each
use-case operational for end-users.
Yielding …
• Rapid, incremental delivery of software
• The development guidelines stress delivery over
analysis and design although these activates are not
discouraged, and active and continuous communication
between developers and customers.
Agility and the Cost of Change
• The conventional wisdom in software development (supported by
decades of experience) is that the cost of change increases
nonlinearly as a project progresses (Figure, solid black curve).
• It is relatively easy to accommodate a change when a software team
is gathering requirements (early in a project)
•XP Design
–Follows the KIS principle
–Encourage the use of CRC cards (see Chapter 8)
–For difficult design problems, suggests the creation of
spike solutions — a design prototype
–Encourages refactoring — an iterative refinement of
the internal program design
•XP Coding
–Recommends the construction of a unit test for a store
before coding commences
–Encourages pair programming
•XP Testing
–All unit tests are executed daily
–Acceptance tests are defined by the customer and
executed to assess customer visible functionality
Extreme Programming (XP)
Other Agile Processes
1. Speculation:
• project is initiated and adaptive cycle planning is
conducted.
• Adaptive cycle planning uses project initiation
information- the customer’s mission statement, project
constraints (e.g. delivery date), and basic requirements to
define the set of release cycles (increments) that will be
required for the project.
• Based on the information obtained at the completion of
the first cycle, the plan is reviewed and adjusted so that
planned work better fits the reality.
Three Phases of ASD
2. Collaborations are used to multiply their talent and creative output
beyond absolute number (1+1>2). It encompasses communication
and teamwork, but it also emphasizes individualism, because
individual creativity plays an important role in collaborative
thinking.
It is a matter of trust. 1) criticize without animosity, 2) assist without
resentments, 3) work as hard as or harder than they do. 4) have the
skill set to contribute to the work at hand, 5) communicate problems
or concerns in a way that leas to effective action.
3. Learning: As members of ASD team begin to develop the
components, the emphasis is on “learning”. Highsmith argues that
software developers often overestimate their own understanding of
the technology, the process, and the project and that learning will
help them to improve their level of real understanding. Three ways:
focus groups, technical reviews and project postmortems.
Adaptive Software Development (ASD)
Scrum
• A software development method Originally proposed by
Schwaber and Beedle (an activity occurs during a rugby
match) in early 1990.
• Scrum—distinguishing features
• Development work is partitioned into “packets”
• Testing and documentation are on-going as the product is
constructed
• Work units occurs in “sprints” and is derived from a “backlog” of
existing changing prioritized requirements
• Changes are not introduced in sprints (short term but stable) but in
backlog.
• Meetings are very short (15 minutes daily) and sometimes
conducted without chairs ( what did you do since last meeting?
What obstacles are you encountering? What do you plan to
accomplish by next meeting?)
• “demos” are delivered to the customer with the time-box allocated.
May not contain all functionalities. So customers can evaluate and
give feedbacks.
Scrum
Feature Driven Development
• Originally proposed by Peter Coad et al as a object-oriented
software engineering process model.
• FDD—distinguishing features
• Emphasis is on defining “features” which can be organized
hierarchically.
• a feature “is a client-valued function that can be
implemented in two weeks or less.”
• Uses a feature template
• <action> the <result> <by | for | of | to> a(n) <object>
• E.g. Add the product to shopping cart.
• Display the technical-specifications of the product.
• Store the shipping-information for the customer.
• A features list is created and “plan by feature” is conducted
• Design and construction merge in FDD
Feature Driven Development
THANK YOU