Unit 3
Unit 3
• Step 4: the estimation for cost and efforts is made, In this stage the
problem is first decomposed, then using the size , function point use
cases the estimates are made.
Step 5: Using the scheduling tool or task networks the schedule for the
project is prepare.
Defining Software Scope and
Checking Feasibility
• Software scope describes -
the functions and features that are to be delivered to end-users
the data that are input and output
the “content” of the software that is presented to users.
the performance, constraints, interfaces, and reliability that bound the system.
4. Resource
Does the organization have the resources needed to succeed?
• Once the scope is understood, and feasibility have been identified the
next task is estimation of the resources required to accomplish the
software development effort.
Resources management
• The first task in project planning is to identified the scop and
feasibility of the project and the second task is to estimate the
recourses required to accomplished the software development
efforts.
• There are three major categories of software engineering resources –
1. People
2. Reusable software components
3. Development environment that is hardware and software tools.
Project Resources
• Characteristics of resources:
1. Description of resources
2. A statement of availability
3. Time when resources will be required.
4. Duration of the time that resource will be applied.
1. Human Resources(People)
• The project planner begins by evaluating software scope and selecting
the “skills” require to complete development.
• Both organizational position (such as manager, senior software and so
on) and the specialty (Database telecommunication, client-server ect.)
are specified for a relatively small project .
• A single individual may perform all software engineering task, by
consulting with the specialist whenever needed.
• For a large projects, software team may be geographically at different
locations. Hence the location of human resource is specified.
• The number of people required for a software project can be
determined only after an estimate of development effort is made.
2. Reusable software components
• The effort required to calculate source lines of code. This may not be
the same for all languages.
Function Point
• Function points were developed as an alternative to lines of codes to
measure the size of software.
• Where,
FP: Total Function Points
CT: Count Total
Example of FP- Based
Estimation
• Decomposition for FP-based estimation focuses on information
domain, thus function point calculation table is created-
• Each of the complexity weighting factors is estimated, and the value
adjustment factor is computed
• The estimated number of adjusted FP is derived using following
formula:
FP estimation= (320*1.18)=378
• A review of historical data indicates –
Average Productivity for systems of this type is 6.5 FP/pm.
Average labour rate of $8000 per month.
Calculation for cost per function point, total estimated project cost and
total effort
1. The cost per function point= (8000/6.5)=$1230.
2. The total estimated project cost =(378* 1230)=$464,940.
3. Total Estimated effort=(378/6.5)=58 person-months.
Example for counting function
point
• The weighting factors are identified for all functional units and
multiplied with the functional units accordingly. The procedure for the
calculation of Unadjusted Function Point (UFP) is given in table shown
.
• The procedure for the calculation of UFP in mathematical form is
given below:
5 3
UFP Z ij wij
i 1 J 1
• Where i indicate the row and j indicates the column of Table
• Wij : It is the entry of the ith row and jth column of the table
• Zij : It is the count of the number of functional units of Type i that
have been classified as having the complexity corresponding to
column j.
• function point methods develop a criterion for determining whether a
particular entry is Low, Average or High.
FP = UFP * CAF
• Where CAF is complexity adjustment factor and is equal to [0.65 +
0.01 x ΣFi].
• UFP is Unadjusted Function Point (UFP)
Example 1:
5 3
UFP Z ij wij
i 1 J 1
UFP = 10 * 3 + 12 * 7 + 20 *7 + 15 * 10 + 12 * 4
= 30 + 84 +140 + 150 + 48
= 452
FP = UFP *CAF
= 452 x*1.10 = 497.2.
Example 2:
• Consider a project with the following functional units:
Number of user inputs = 50
Number of user outputs = 40
Number of user enquiries = 35
Number of user files = 06
Number of external interfaces = 04
• value of complexity adjustment factor 1.07 and weighting factors are
average. Compute the function points for the project.
• Solution
5 3
UFP Z ij wij
i 1 J 1
UFP = 50 x 4 + 40 x 5 + 35 x 4 + 6 x 10 + 4 x 7
= 200 + 200 + 140 + 60 + 28 = 628
FP = UFP x CAF
= 628 x 1.07 = 672
Example: 3
Consider a project with the following parameters.
(i) External Inputs:
(a) 10 with low complexity
(b)15 with average complexity
(c) 17 with high complexity
(ii) External Outputs:
(d)6 with low complexity
(e) 13 with high complexity
(iii) External Inquiries:
(a) 3 with low complexity
(b) 4 with average complexity
(c) 2 high complexity
48
(iv) Internal logical files:
(a) 2 with average complexity
(b)1 with high complexity
(v) External Interface files:
(c) 9 with low complexity
In addition to above, system requires
i. Significant data communication
ii. Performance is very critical
iii. Designed code may be moderately reusable
iv. System is not designed for multiple installation in different
organizations.
Other complexity adjustment factors are treated as average. Compute
the function points for the project.
49
Solution: Unadjusted function points may be counted using table 2
Functional Count Complexity Complexity Functional
Units Totals Unit Totals
External 10 Low x 3 = 30
Inputs 15 Average x 4 = 60
(EIs) 17 High x 6 = 102 192
External 6
Low x 4 = 24
Outputs 0 Average x 5 = 0
(EOs) 13 High x 7 = 91 115
External 3
Low x 3 = 9
Inquiries 4 Average x 4 = 16
(EQs) 2 High x 6 = 12 37
External 0 Low x 7 = 0
logical 2 Average x 10 = 20
Files (ILFs) 1 High x 15 = 15 35
External 9
Low x 5 = 45
Interface 0 Average x 7 = 0
Files (EIFs) 0 High x 10 = 0 45
424
Total Unadjusted Function Point Count
50
14
F 3+4+3+5+3+3+3+3+3+3+2+3+0+3=41
i 1
i
Hence FP = 449
51
Process Based Estimation
• For instance we get the total for the task Design as 20.50
• The percentage efforts for all the software engineering tasks are
computed, based on average labor cost of $8000 per month
1. total estimated project efforts= 46 persons –month
2. Total estimated project cost(8000* 46)=$368000
Estimation with Use Case
• A Use-Case is a series of related interactions between a user and a
system that enables the user to achieve a goal.
• Use-Cases are a way to capture functional requirements of a system.
The user of the system is referred to as an ‘Actor’. Use-Cases are
fundamentally in text form.
• Use-Case Points – Definition: Use-Case Points (UCP) is a software
estimation technique used to measure the software size with use
cases. The concept of UCP is similar to FPs.
• The number of UCPs in a project is based on the following −
The number and complexity of the use cases in the system.
The number and complexity of the actors on the system.
Various non-functional requirements (such as portability,
performance, maintainability) that are not written as use cases.
The environment in which the project will be developed (such as the
language, the team’s motivation, etc.)
• Difficulties in developing estimations using use cases:
1. variety of ways
2. external view
3. complexity
4. Complex behaviour
Step-2:
For screens,
Number of views = 4
Number of data tables = 7
Number of servers = 3
Number of clients = 4
by using above given information and table (For Screens),
Complexity level for each screen = medium
• For reports,
Number of sections = 6
Number of data tables = 7
Number of servers = 2
Number of clients = 3
by using above given information and table (For Reports),
Complexity level for each report = difficult
• Step-3:
By using complexity weight table we can assign complexity weight to
each object instance depending upon their complexity level.
Complexity weight for each screen = 2
Complexity weight for each report = 8
Step-4:
Object point count
= (Number of object instances) * (its Complexity weight)
= 4 * 2 + 2 * 8 = 24
Step-5:
%reuse of object points = 10% (given)
NOP = [object points * (100 - %reuse)]/100
= [24 * (100 -10)]/100 = 21.6
Step-6:
Developer’s experience and capability is low (given)
Using information given about developer and productivity rate table
Productivity rate (PROD) of given project = 7
Step-7:
Effort
= NOP/PROD
= 21.6/7
= 3.086 person-month
• Test Case:
Test Case is a document, which has a set of test data,
preconditions, expected results and postconditions, developed for a
particular test scenario in order to verify compliance against a specific
requirement.
Test Case Example
• to check an input field that can accept maximum of 10 characters
Traceability Matrix
• A Traceability Matrix is a document that co-relates any two-baseline
documents that require a many-to-many relationship to check the
completeness of the relationship.
• It is used to track the requirements and to check the current project
requirements are met.
Requirement Traceability Matrix
• Requirement Traceability Matrix is a document that maps and traces
user requirement with test cases.
• It captures all requirements proposed by the client and requirement
traceability in a single document, delivered at the conclusion of the
Software development life cycle.
• The main purpose of Requirement Traceability Matrix is to validate
that all requirements are checked via test cases such that no
functionality is unchecked during Software testing.
Template of RTM
SOFTWARE PROJECT
SCHEDULING
• Software project scheduling is an action that distributes estimated
effort across the planned project duration by allocating the effort to
specific software engineering tasks.
• The manager needs to estimate time and resources of project while
scheduling project.
Compartmentalization:
The project must be compartmentalized into a number of
manageable activities and tasks. To accomplish compartmentalization,
both the product and the process are refined.
Interdependency:
The interdependency of each compartmentalized activity or
task must be determined. Some tasks must occur in sequence, while
others can occur in parallel.
Time allocation.
Each task to be scheduled must be allocated some number of work units (e.g.,
person-days of effort). In addition, each task must be assigned a start date and a
completion date that are a function of the interdependencies and whether work
will be conducted on a full- time or part-time basis.
Effort validation.:
Every project has a defined number of people on the software team. As time
allocation occurs, you must ensure that no more than the allocated number of
people has been scheduled at any given time.
Defined responsibilities:
Every task that is scheduled should be assigned to a specific team
member.
Defined outcomes:
Every task that is scheduled should have a defined outcome. For
software projects, the outcome is normally a work product (e.g., the
design of a component) or a part of a work product. Work products are
often combined in deliverables.
Defined milestones:
Every task or group of tasks should be associated with a project
milestone.
A milestone is accomplished when one or more work products has
been reviewed for quality and has been approved.
Defining a Task for the Software
Project
• A task set is the work breakdown structure for the project
• No single task set is appropriate for all projects and process models
• It varies depending on the project type and the degree of rigor (based
on influential factors) with which the team plans to work
• The task set should provide enough discipline to achieve high
software quality
• But it must not burden the project team with unnecessary work
Types of Software Projects
• Concept development projects: Explore some new business concept
or application of some new technology
• Reengineering projects:
These are a project in which legacy systems are rebuilt
partly or completely.
A legacy system is outdated computing software and/or hardware that
is still in use.
Factors that influence the Project schedule
• Planning: It include estimates for the schedule, cost and people for
completing the desire concepts.
Establish Schedule –
It simply establishes initial project schedule in which it mentions who is going to do
what, when, and how much time it will take to complete it.
Provide Efficiency –
It brings efficiency in planning and allows team to better coordinate project activities.
Emphasize on scope –
It helps in emphasizing i.e., gives importance to scope of individual tasks.
Ease at understanding –
It makes it easy for stakeholders to understand timeline and brings clarity
of dates.
Visualize project –
It helps in clearly visualizing project management, project tasks involved.
Organize thoughts and Highly visible –
It organizes your thoughts and can be highly visible so that everyone in
enterprises can have basic level of understanding and have knowledge
about what’s happening in project even if they are not involved in
working.