Module 1 Process Model
Module 1 Process Model
A
Implementation etc.
model
Each s/w engg action is
defined by a task set
4
Process Flow
Process Flow
Process Flow
Process patterns
9
Process Assessment and Improvement
Standard CMMI Assessment Method for Process Improvement (SCAMPI) — provides a five step
process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and
learning.
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—provides a diagnostic
technique for assessing the relative maturity of a software organization; uses the SEI CMM as the
basis for the assessment
SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for software process
assessment. The intent of the standard is to assist organizations in developing an objective
evaluation of the efficacy of any defined software process
ISO 9001:2000 for Software—a generic standard that applies to any organization that wants to
improve the overall quality of the products, systems, or services that it provides. Therefore, the
standard is directly applicable to software organizations and companies.
11
SEI-CMM
❑ Level 1: Initial
S/w process is adhoc & occasionally even chaotic
Few processes are defined
Success depends on individual effort
❑ Level 2: Repeatable
Basic project management processes are established to track cost,
schedule & functionality
Necessary process discipline is in place to repeat successes on similar
applications, but they are not defined or documented
SEI-CMM
❑ Level 3: Defined
The s/w process is documented, standardized & integrated into an
organization wide s/w processes.
It includes all characteristics defined for level 2.
❑ Level 4: Managed
Measures are collected
The software process & products are understood & controlled using
detailed measures
It includes all characteristics of level 3
SEI-CMM
❑ Level 5: Optimizing
Continuous process improvement is enabled by quantitative feedback
Innovative ideas & technologies are implemented
It includes all characteristics of level 4
Software Process Models
1. Communication
Understand information domain, functionality, behavior, performance &
interface
Requirements are documented & reviewed with the customer
2. Planning
Estimating
Scheduling
Tracking
Waterfall model
3. Modeling
It translates requirements into a representation of the software
Design is documented & becomes part of the s/w configuration
Focusses on data structures, s/w architecture, interface representation &
procedural detail
4. Construction
Design is translated into a machine readable format
After code generation testing begins
Testing is done to uncover errors & to check the functionality
Waterfall model
5. Deployment
s/w is deployed
s/w will undergo change because
Errors will be encountered
Change required because of external environment e.g. change required
because of new OS or peripheral device or some government policy
Because customer requires functional or performance enhancements
s/w support reapplies each of the preceeding phases to an existing program.
The Waterfall Model
22
Waterfall Model
Disadvantages/ Problems
Real projects rarely follow the sequential flow.
Difficult for customers to state all requirements upfront
Doesn’t support iterations, so changes can cause confusion
Working version is available late in the project time span
A major blunder if undetected can be disastrous
Linear nature leads to “blocking states” where some team members must
wait for others to complete dependent task.
The V-Model
24
The V-Model
The
Incremental
Model
Incremental Model
E.g.Word-processing software
First increment- basic file management, editing, and document
production functions
Second increment - more sophisticated editing and document production
capabilities
Third increment - spelling and grammar checking
Fourth increment - advanced page layout capability
RAD Model
Drawbacks
Human Resource
Commitment from human resource
Not all applications are appropriate for RAD i.e. modularization is required
New technology – RAD not useful
Evolutionary Models
Process Models
1. Prototyping
2. Spiral
3. Concurrent
Prototyping Model
Often customer & developer both are unsure of certain things like:
Customer unsure of i/p or o/p requirements, processing, etc
In some cases developer is unsure of certain algorithms, adaptability of an
OS or how human machine interaction should take place
Quick
Qu ick p lan
plan
Com m unicat ion
communication
Prototyping MoModeling
d e lin g
Deployment
Deployment
De live r y&
delivery
feedback
& Fe e dback Const r uct ion
Construction
ofof prototype
pr ot ot ype
Disadvantages/Problems
Customer & developer both agree that the prototype is built to serve as a
mechanism for defining requirements
It is then discarded at least in part & actual s/w is engineered
Spiral Model
communication
modeling
analysis Spiral
Model
design
start
deployment
construction
delivery code
feedback test
Spiral Model
Each pass through the planning phase might result in adjustments to the
project plan.
Cost & schedule are adjusted based on feedback derived from the
customer after delivery
Even the no. of iterations may be adjusted
Spiral model doesn’t end when the s/w is delivered
It is adapted throughout the life of the s/w
Spiral Model
Realistic approach
Prototyping is used as a risk reduction mechanism
Disadvantages
represent s t he st at e
Under of a sof t ware engineering
act ivit y or t ask
development
Concurrent
Model
A wait ing
changes
Baselined
Done
Concurrent Model
For example,
The communication activity has completed its first iteration and exists in
the awaiting changes state.
The modeling activity which existed in the none state while initial
communication was completed now makes a transition into
underdevelopment state.
If, however, the customer indicates the changes in requirements must be
made, the modeling activity moves from the under development state into
the awaiting changes state.
SPECIALIZED PROCESS MODELS
➢ Component-Based Development
➢ Aspect-Oriented Software Development
Component-Based Development
Object
OO Programming Abstraction
Function
Abstraction
Procedural Programming
It isolates secondary or supporting functions from the main program’s business logic
Aspect Oriented Software Development
Concern
➢ A specific requirement or consideration that must be
addressed in order to satisfy the overall system goal
Core concerns
Central functionality of a Business logic
Customer and Account management, Inter-banking transactions,
ATM transactions
Crosscut concerns
System-level, peripheral requirements (multiple modules)
Persistence of all entities, Transaction integrity, Authorization of
access to various services, Logging, Security, Error checking, Policy
enforcement
Aspect Oriented Software Development
1. Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness
change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months,
with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face–to–face conversation.
Agility Principles - II
Key traits must exist among the people on an agile team and the team itself:
➢ Competence.
➢ Common focus.
➢ Collaboration.
➢ Decision-making ability.
➢ Fuzzy problem-solving ability.
➢ Mutual trust and respect.
➢ Self-organization.
Extreme
Programming
1. Communication
For effective communication: XP emphasizes close, informal collaboration
between customers & developers
Use of metaphors (a story that everyone, customers, programmers &
managers, can tell about how the system works)
XP Values
2. Simplicity
To achieve simplicity, XP restricts developers to design only for immediate
needs rather than future needs
Idea is to create a simple design that can be easily implemented in code
Refactoring should be used: refactoring is to improve the internal structure
of a design w/o changing its external functionality or behavior
XP Values
3. Feedback
Feedback is derived from 3 sources
1)The implemented software itself, 2)the customer, and 3)other software team
members.
S/w – using effective testing strategies
The rest results provides the team with feedback
Unit testing is the primary testing strategy
As an increment is delivered, the user stories or use cases that are implemented by
the increment are used as a basis for acceptance tests.
The degree to which the s/w implements the o/p function, behavior of the use case
is a form of feedback
As new requirements are added(iterative planning), the team provides the
customer with rapid feedback regarding cost & schedule impact
XP Values
4. Courage
Beck says that strict adherence to XP practices demands courage
(discipline).
There is often pressure to design for future requirements.
Most software teams succumb, arguing that “designing for tomorrow” will
save time and effort in the long run.
An agile XP team must have the discipline (courage) to design for today
As future requirements may change dramatically, thereby demanding
substantial rework
XP Values
5. Respect
By following each of these values, the agile team inculcates respect
among it members, between other stakeholders and team members, for
the software and for the XP process.
The Manifesto for Agile Software Development
“We are uncovering better ways of developing software by doing it and helping
others do it. Through this work we have come to value:
•Individuals and interactions over processes and tools
•Working software over comprehensive documentation
•Customer collaboration over contract negotiation
•Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the
left more.”
Kent Beck et al
74
The XP
Process
Uses OO approach
4 framework activities:
Planning
Design
Coding
Testing
Extreme Programming (XP)
76
Extreme Programming (XP)
XP Design
Follows the KIS(keep it simple) principle
Encourage the use of CRC(Class –Responsibility- Collaborator) cards
CRC cards are the only design work product produced as part of the XP
process
For difficult design problems, suggested is creation of “spike solutions”—a
design prototype
XP develops few work products(CRC, Spike Solution)
XP encourages “refactoring”—an iterative refinement of the internal
program design
A central notion in XP is that design occurs both before & after coding.
79
Extreme Programming (XP)
XP Coding
Recommends the construction of a unit test for a story before coding
commences
It helps the developers to better focus on the task
Encourages “pair programming”
2 people working together at one computer workstation to create code for a
story(real time problem solving) the code is reviewed as it is created(real time
quality assurance)
Each person takes on slightly different role
1 person might think about coding details & other might take part in coding
standards)
Code is then integrated with the work of others
Extreme Programming (XP)
XP Testing
All unit tests are executed daily
Unit test should be automated
Regression testing should be done, whenever code is modified
Integration & validation testing
“Acceptance tests” are defined by the customer and executed to assess
customer visible functionality
Other Agile process models
Conceived by Jeff Sutherland and his development team in the early 1990s
Further development by Schwaber and Beedle
Scrum—distinguishing features
Work occurs in “sprints” and is derived from a “backlog” of existing
requirements
Sprint is basic unit of development in SCRUM
Sprints are no longer than 1 month & most commonly 2 weeks
Meetings are very short and sometimes conducted without chairs
Stand up meetings- track progress and re-plan
“demos” are delivered to the customer with the time-box allocated
Testing and documentation are on-going as the product is constructed
85
SCRUM
Backlog
A prioritized list of project requirements or features that provide business
value
Items can be added to the backlog at any time( this is how changes are
introduced)
The manager assess the backlog & updates priorities as required
SCRUM
Sprint
Consist of work units that are required to achieve a requirement defined in
the backlog
Predefined time-box (usually 30 days)
Changes are not introduced during the sprint
Hence the sprint allows team members to work in a short-term but stable
environment
SCRUM
SCRUM meetings
They are short(15 min) meetings, held daily by the SCRUM team (called as
stand up meetings)
Questions asked & answered
1. What did you do since the last team meeting?
2. What obstacles are you encountering?
3. What do you plan to accomplish by the next team meeting?
A team leader called a SCRUM master leads the meeting & assess the
responses
These meetings helps to uncover problem as early as possible
SCRUM
Demos
Deliver the s/w increment to the customer
It is demonstrated & then evaluated by the customer