SPM Unit 2
SPM Unit 2
SPM Unit 2
UNIT II
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Software process and Process Models – Choice of Process models - mental delivery – Rapid
Application development – Agile methods – Extreme Programming – SCRUM – Managing
interactive processes – Basics of Software estimation – Effort and Cost estimation techniques –
COSMIC Full function points - COCOMO II A Parametric Productivity Model - Staffing
Pattern.
------------------------------------------------------------------------------------------------------------
--------------------
16 MARKS QUESTIONS
Agile methods
Emphasis on speed of delivery rather than documentation
RAD Rapid application development emphasized use of quickly developed prototypes
A major pat of the planning will be the choosing of the development methods to
be used and the slotting of these into an overall process model.
The planner needs not only to select methods but also to specify how the method is
to be applied. With methods such as SSADM. there is a considerable degree of
choice about how it is to be applied: not all pats of SSADM are compulsory.
SSADM is to be used: in the event, all that is produced as a few SSADM
fragments such as a top level data low diagram and a preliminary logical data
structue diagram. If this is all the paticular poject equies, it should be stated
at the outset.
Definition.
A (software/system) process model is a description of the sequence of activities carried out in an
SE project, and the relative order of these activities.
It provides a fixed generic framework that can be tailored to a specific project.
Project specific parameters will include:
• Size, (person-years)
• Budget,
• Duration.
The waterfall model is the classic process model – it is widely known, understood and used.
• In some respect, waterfall is the ”common sense” approach.
the „classical‟ model imposes structure on the project every stage needs to be checked and signed
off.
BUT limited scope for iteration
V model approach is an extension of waterfall where different testing phases are identified which
check the quality of different development phases
Advantages
Disadvantages
1. Doesn‟t reflect iterative nature of exploratory development.
2. Sometimes unrealistic to expect accurate requirements early in a project
3. Software is delivered late, delays discovery of serious errors.
4. No inherent risk management
4. Incremental Model
Incremental delivery
Disadvantages
On the other hand these disadvantages have been put forward:
• 'softwae breakage‟, that is, later incements might requie the earlier
incements to be modified;
• developers might be moe poductive working on one large system than on a
seies of smaller ones.
Plan increments
Having defined the overall objectives, the next stage is to plan the
incements using the following guidelines:
5. Evolutionary Development
Types
Type 1: Exploratory Development:
customer assisted development that evolves a product from ignorance to insight, starting from
core, well understood components (e.g. GUI?).
Spiral model
Advantages
1. Realism: the model accurately reflects the iterative nature of software development on projects
with unclear requirements
2. Flexible: incoporates the advantages of the waterfall and evolutionary methods
3. Comprehensive model decreases risk
4. Good project visibility
Disadvantages
1. Needs technical expertise in risk analysis and risk management to work well.
2. Model is poorly understood by nontechnical management, hence not so widely used
3. Complicated model, needs competent professional management. High administrative
overhead.
What is RAD?
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.
In RAD model the functional modules are developed in parallel as prototypes and are integrated
to make the complete product for faster product delivery.
Since there is no detailed preplanning, it makes it easier to incorporate the changes within the
development process. RAD projects follow iterative and incremental model and have small
teams comprising of developers, domain experts, customer representatives and other IT
resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the prototypes
developed are reusable.
F
RAD Model Design
RAD model distributes the analysis, design, build, and test phases into a series of short, iterative
development cycles. Following are the phases of RAD Model:
Business Modeling: The business model for the product under development is designed in terms
of flow of information and the distribution 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: The information gathered in the Business Modeling phase is reviewed and
analyzed to form sets of data objects vital for the business. The attributes of all data sets is
identified and defined. The relation between these data objects are established and defined in
detail in relevance to the business model.
Process Modeling: The data object sets defined in the Data Modeling phase are converted to
establish the business information flow needed to achieve specific business objectives as per the
business model. The process model for any changes or enhancements to the data object sets is
defined in this phase. Process descriptions for adding ,deleting, retrieving or modifying a data
object are given.
Application Generation: The actual system is built and coding is done by using automation
tools to convert process and data models into actual prototypes.
Testing and Turnover:The overall testing time is reduced in RAD model as the prototypes are
independently tested during every iteration. However the data flow and the interfaces between all
the components need to be thoroughly tested with complete test coverage. Since most of the
programming components have already been tested, it reduces the risk of any major issues.
Advantages
1. Reduces risk of incorrect user requirements
2. Good where requirements are changing/ uncommitted
3. Regular visible progress aids management
4. Supports early product marketing
Disadvantages
1. An unstable/badly implemented prototype often becomes the final product.
2. Requires extensive customer collaboration
– Costs customers time/money
– Needs committed customers
– Difficult to finish if customer withdraws
– May be too customer specific
Agile Principles
• Incremental delivery of software
• Continuous collaboration with customer
• Embrace change
• Value participants and their interaction
• Simplicity in code,
Agile methods
XP is also a process framework because it can be (and most likely will be) tailored to the specific
needs of teams, projects, companies etc.
To date, XP has been applied to business problems only, e.g. projects with a external customer
that wants a specific product. The projects usually ranged from 6 to 15 months. XP was used by
small teams ranging from two to twelve members (and it is likely to be limited to teams of this
size).
Communication
Good communication is one of the key factors necessary for the success of software projects.
Customers need to communicate the requirements to the developers. Developers communicate
ideas and design to each other and so on.
Simplicity
XP strives for simple systems. This means, they should be as simple as possible but they must
work.
XP also strives for simplicity in the methodology. It reduces the amount of artifacts to an
absolute minimum – the requirements (User Stories), plans (Planning Game) and the product
(code). The practices and techniques can be learned in a matter of hours (although mastering
them of course takes more time).
The main reason for the desire for simplicity is that XP tries to cope with changes and other
risks.
Feedback
XP is a feedback-driven process. You need feedback at all scales, whether you are a customer,
manager or developer. While coding you gets immediate feedback from whitebox testing (Unit
Tests). The customer defines blackbox tests (Functional Tests) and the team delivers releases
frequently. From these practices, both the customers and the developers get feedback about the
status of the system.
Courage
This is a somewhat vague value. It includes courage as well as a certain amount of
aggressiveness. Courage is needed because a lot of the rules and practices are “extreme” in the
way that they go against “tradition” or “wisdom” of software engineering.
Process:
Practices:
Advantages
1. Lightweight methods suit small-medium size projects
2. Produces good team cohesion
3. Emphasises final product
4. Iterative
14. Scrum
Process:
Macro process-related to water fall model. Within macro process there will be micro
activities . System testing done here.
Micro process. It is possible for agile projects using XP practices to exist within a more
traditional stage –gate project environment.
Measure of work
It is normally not possible to calculate directly the actual cost or time
equired to implement a project. The time taken to wite a pogram might
vary according to the competence or experience of the pogrammer.
Implementation times might also vary because of envionmental factors
such as the softwae tools available. The usual practice is therefoe to
express the work content of the system to be
implemented independently of effort, using a measue such as source lines
of code (SLOC). The eader might also come across the abbreviation
Barry Boehm. in his classic work on softwae effort models, identiied the main
ways of deiving estimates of software development effort as:
• top-down - where an overall estimate is formulated for the whole poject and
is then boken down into the effort requied for component tasks.
Clearly, the 'Parkinson' method is not really an effort prediction method, but a
method of setting the scope of a project. Similarly, 'price to win' is a way of
deciding a pice and not a prediction method.
1.Bottom-up estimating
1. Break project into smaller and smaller components
[Stop when you get to what one person can do in one/two weeks]
2. Estimate costs for the lowest level activities
3. At each higher level calculate estimate by adding estimates for lower levels
For example, system size might be in the form 'thousands of lines of code'
(KLOC) and the productivity rate 40 days per KLOC. The values to be used will
often be matters of subjective judgement.
3.Expert judgement
4.Estimating by analogy
effort that has been recorded for the matching source case can then be
used as a base estimate for the target. The estimator should then try to
identify any difeences between the target
and the source and make adjustments to the base estimate for the new
project.
The new project is known to requie 7 inputs and 15 outputs. One of the past cases.
Project A. has 8 inputs and 17 outputs. The Euclidean distance between the souce
and the target is therefoe the squae-root of ((7-8)2+(l7-l5)2). that is 2.24.
– Post architecture – once detailed design in place and construction has started.
• Uses different methods at different stages.
• Takes account of innovation, flexibility of approach, fixed or variable scope etc.
9. Delphi technique
• Several estimators are given specification of work and asked for estimates.
• Summarized anonymously and results circulated to estimators.
• Can revise estimates in the light of others‟ ideas.
• Method reduces personal disagreements and ego-based issues.
The measurement method must be applicable for estimating the effort for developing and
maintaining software in various software domains. Not only business business software (MIS)
but also real‐time software (avionics, telecom, process control) and embedded software (mobile
phones, consumer electronics) can be measured.
The basis for measurement must be found, just as in FPA, in the user requirements the software
must fulfil.
The result of the measurement must be independent of the development environment and the
method used to specify these requirements. Sizes depend only on the user requirements for the
ultimately delivered software product.
COSMIC Concepts
The Functional User Requirements (FUR) are, according to the definition of a functional size
measurement method, the basis for measurement. They specify user‟s needs and procedures that
the software should fulfil.
The FUR are analysed to identify the functional processes. A Functional Process is an
elementary component of a set of FUR. It is triggered by one or more events in the world of the
user of the software being measured. The process is complete when it has executed all that is
required to be done in response to the triggering event.
Each functional process consists of a set of subprocesses that are either movements or
manipulations of data. Since no‐one knows how to measure data manipulation, and since the aim
is to measure „datamovement‐ rich‟ software, the simplifying assumption is made that each
functional process consists of a set of data movements.
A Data Movement moves one Data Group. A Data Group is a unique cohesive set of data
(attributes) specifying an „object of interest‟ (i.e. some thing that is „of interest‟ to the user. Each
Data Movement is counted as one CFP (COSMIC function point).
The benefits
The COSMIC method:
• Is based on fundamental software engineering principles, so „future‐proof‟;
• supports realistic scheduling and budgeting;
• is objective, simple to learn and easy to use;
• supports communication between principal, user and supplier;
• increasing complexity is rated;
• is applicable in most software domains;
• is applicable for complete applications and for components, in any layer;
• complies with ISO 14143.
Organic:
Relatively small groups
working to develop well-understood applications.
Semidetached:
Project team consists of a mixture of experienced and inexperienced staff.
Embedded:
The software is strongly coupled to complex hardware, or real-time systems.
Organic:
Tdev = 2.5 (Effort)0.38 Months
Semi-detached:
Tdev = 2.5 (Effort)0.35 Months
Embedded:
Tdev = 2.5 (Effort)0.32 Months
Multipliers
Multipliers reflect capability of developers, nonfunctional requirements, familiarity with
development platform, etc.
RCPX - product reliability and complexity
3. Post-Architecture Level
Uses same formula as early design estimates
Estimate of size adjusted to account for:
Requirements volatility
Rework required to support change
Extent of possible reuse
Norden’s work
After the effort required to complete a software project has been estimated, the
staffing requirement for the project can be determined.
Norden’s work suggested that starting of R and D project, the activities of the
project are planned and investigations are made. At this time the man power
requirements are low. As the project progress man power requirements increases
until it reach peak.
Rayleigh Curve
Very small number of engineers are needed at the beginning of a project carry out
planning and specification.
As the project progresses: more detailed work is required, number of engineers slowly
increases and reaches a peak.
Putnam’s Work:
observed that the level of effort required in software development efforts has a similar
envelope.found that the Rayleigh-Norden curve
relates the number of delivered lines of code to effort and development time.
After the effort required to complete a software project has been estimated, the staffing
requirement for the project can be determined.
Putnam suggested that starting from a small number of developers, there should be a
staff build up and after a peak size has been achieved, staff reduction is required.
Putnam analyzed a large number of army projects, and derived the expression:
L=CkK1/3td4/3
Putnam estimation model works reasonably well for very large systems, but seriously
overestimates the effort for medium and small systems.
Solved problems
UNIT – II
1- Scoping. You need first to scope the project even if you do not have the full detailed
requirements but you can assume some of them or add margins later. ...
2- Decomposition. ...
3- Sizing. ...
4- Expert and Peer Review. ...
5- Estimation Finalization.
The key with travel requests is keeping tight control over adherence to policies. There‟s usually a
lot of chaos surrounding travel. Even if the finance team has set a detailed policy, some
departments might find ways around it. That‟s where building an application in Kissflow with
RAD principles can help keep things in order.
The finance team can create a form that displays the written travel policy, and validates key data
to make sure everything is correct before getting a manager‟s approval. It‟s important for the
finance team to be able to do a budget and/or cash flow check as well before the travel is
arranged.
By using RAD principles, the finance team can quickly create a prototype of the application and
get feedback from various departments before going live. With a no-code platform like Kissflow,
they can also take responsibility to maintain the app and make changes along the way
4. What is RAD?
One response to the structured methods is rapid application development. This puts
emphasis on quickly producing the prototypes of the software for users to evaluate.
7. What is time-boxing?
It is associated with an incremental approach. The scope of deliverables for an increment
is rigidly constrained by an agreed deadline. This deadline has to be met, even at the
expense of dropping some of the planned functionality.
8. What is gold-plating?
It is requesting of features that are unnecessary and not in fact used, is less as users know
that if a feature is not in the current increment then it can be included in the next.
16. What are the four core values presented as the foundations of XP?
1. Communication and feedback
2. Simplicity
3. Responsibility
4. Courage
Micro process. It is possible for agile projects using XP practices to exist within a more
traditional stage –gate project environment.
Entries(E)
Exits (X),
Read (R),
Write (W)
25. What are the COCOMO models mode and common equation of COCOMO model.
Organic mode:-system being developed as small.
Embedded mode: Product developed within very tight constraints.
Semi detached: combined elements of organic and embedded mode.
Equation : Effort= c(size)k
Putnam suggested that starting from a small number of developers, there should be a
staff build up and after a peak size has been achieved, staff reduction is required.
Norden’s work suggested that starting of R and D project, the activities of the project are
planned and investigations are made. At this time the man power requirements are low.
As the project progress man power requirements increases until it reach peak.