Se Unit3
Se Unit3
Scheduling
• Overview : Estimation and Scheduling : Estimation for Software Projects:
● The Project Planning Process
● Defining Software Scope and Checking Feasibility
● Resources management,
Human Resources
Reusable Software Resources,
Environmental Resources,
● Software Project Estimation,
● Decomposition Techniques,
Software Sizing,
Problem-Based Estimation,
LOC-Based Estimation
FP-Based Estimation
Object Point (OP)-based estimation,
Process- Based Estimation,
Estimation with Use Cases,
● Reconciling Estimates,
Empirical Estimation Models,
The C O C OM O II Mode,
Preparing Requirement
• Traceability Matrix **
● Project Scheduling,
● Scheduling
• Suggested Free Open Source Tools:
• Gantt Project, Agantty, Project Libre.
• Case Studies:
• Write SRS in I EEE format for selected Project Statement/ case study,
• Study SRS of Online Voting system, Library management System
• 1-4
ESTIMATION FOR SOFTWARE PROJECTS
Introduction:
• Software project management begins with a set of activities that are collectively called project
planning.
• Project planning is a crucial phase in software project management and involves a set of
activities aimed at defining the project(goals and tasks), estimating resources(people,time,cost),
creating schedules(timeline), and establishing the overall approach to be taken.
• Before the project can begin, the software team should estimate the work to be done, the
resources that will be required, and the time that will elapse from start to finish.
• it's like making a plan to understand what needs to be done, what you need to do it, and how
much time it will take.
• Once these activities are accomplished, the software team should establish a project schedule
that defines software engineering tasks and milestones, identifies who is responsible for
conducting each task, and specifies the inter task dependencies(one task depends on another)
that may have a strong bearing on progress
PROJECT ESTIMATION : OBSERVATION
• Estimation of resources, cost, and schedule for a software engineering effort
requires experience, access to good historical information (metrics).
Estimate
cost and
efforts
Develop
project
PROJECT ESTIMATION : PROJECT PLANNING
PROCESS
• The objective of software project planning is to provide a framework that enables
the manager to make reasonable estimates of resources, cost, and schedule.
• Estimates should attempt to define best-case and worst-case scenarios so that project
outcomes can be bounded.
• The best-case scenario represents an optimistic view, assuming everything goes
exceptionally well, while the worst-case scenario accounts for potential challenges and
difficulties.
• Finance
• Is it financially feasible?
• Can the development be finished at a cost that the software organization, its client, or the
market can bear?
• Time
• Will the project be completed and launched to the market faster than the competition?
• Resources
• Does the organization possess the necessary resources for achieving success?
Solution:
Effort(E)= a*(KLOC)b =3.0*(300)1.12 =1784.42 PM(per month)
Development Time(D)= c(E)d=2.5(1784.42)0.35= 34.35 Months(M)
Person required (P)=E/D= 1784.42/34.35 =51.9481 Persons~52 Persons
Type 2: Intermediate COCOMO Model
• Extension of Basic COCOMO model which enhance more accurately to
cost estimation model result.
• It include cost drivers(product, hardware, resource and project
parameter) of project.
• Formula:
Effort(E)=a*(KLOC)b*EAF MM
Schedule Time(D)= c*(E)d Months(M)
Where,
E= total effort required for the project in Man-Months(MM).
D= total time required for project development in Months(M).
KLOC= the size of the code for the project in Kilo line of code.
a, b, c, d=the constant parameters for the software project.
EAF: effort adjustment factor, which is calculated by multiplying the parameter
values of different cost driver parameters. For ideal , the values is 1.
1. Problem statement:
For a given semidetached project was estimated with size of 300 k loc .
Calculate the Effort, scheduled time for development by considering
developer having high application experience and very low experience
in programming.
Solution:
EFA= 0.82*1.14=0.9348
Effort(E)= a*( KLOC)b*EAF= 3.0*(300)1.12*0.9348=1668.07 MM
Scheduled time(D)=c*(E)d=2.5*(1668.07)0.35=33.55 months(M)
Typed 3:Detailed/ Complete COCOMO Model
• The model in corporates all qualities of both basic COCOMO and
intermediate COCOMO strategies on each software engineering process.
• The whole software is divided into different modules and then apply
COCOMO in different modules to estimate effort and then sum the effort.
• The six phases of detailed COCOMO model are:
- planning and requirements
- System design
- Detailed design
- Module code and test
- Integration and test
- Cost constructive model
• Problem statement:
A distributed management information system(MIS) product for an
organization having offices at several places across the country can
have the following sub-components: database part, graphical user
interface(GUI)part, Communication Part
Solution:
Detailed model First identified type of project.
The communication part can be considered as Embedded software.
The database part could be semi-detached software.
The GUI part Organic software.
The costs for these three components can be estimated separately and
summed up to give the overall cost of the system.
Advantages of COCOMO Model
• Provides a systematic way to estimate the cost and effort of a
software project.
• Estimate cost and effort of software project at different stages of the
development process.
• Helps in identifying the factors that have the greatest impact on the
cost and effort of a software project.
• Provide ideas about historical projects.
• Easy to implement with various factors.
Advantages of COCOMO Model
• It ignores requirements ,customer skills and hardware issues.
• It limits the accuracy of the software costs.
• It is based on assumptions and averages.
• It mostly depends on time factors.
• Assumes that the size of the software is the main factor that
determines the cost and effort of a software projects, which may not
always be the case.
Software Measurements
• Software measurements is indicator of size , quality amount or
dimension of particular attributes of a product or process.
• It helps the project manager and entire software team to take
decisions that lead to successful completion of the project by
generating quantity result.
• Software measurements are two categories:
1) Direct measures: it include software processes like cost and effort
applied. Lines of code produced , execution speed and total no of
errors that have been reported.
2) Indirect measures: it include products like functionality, quality,
complexity, reliability, maintainability and many more.
Software Metrics
• Software metrics provide measures ,functions or formula for various
aspects of software process and product.
• It including measuring software performance , planning work items,
measuring productivity other uses.
• Software metrics are of three categories:
1) Product Metrics: it estimates size, Complexity, quality and reliability
of software.
2) Process Metrics: it estimate faults rate during development, pattern
of testing defect arrival, time it takes for a fixed operation.
3) Project Metrics: It estimate number of software development ,cost,
scheduling and productivity of software
Software Measurement Principles
1) Formulation: The derivation of software measures and metrics
appropriate for the representation of the software that is being
considered.
2) Collection: the mechanism used to accumulate data required to
derive the formulated metrics.
3) Analysis: The computation of metrics and the application of
mathematical tools.
4) Interpretation: The evaluation of metrics resulting in insight into
the quality of the representation.
5) Feedback: Recommendation derived from the interpretation of
product metrics transmitted to the software team.
Project Scheduling
• Issues in project management:
- Project is not completed on scheduled.
- Technical difficulties are generate.
- Changing customer requirements affect on schedule.
- Miscommunication among project management.
- Essential software and hardware may be delivered late.
- In large project , software engineer perform multiple tasks parallel.
- Task interdependencies are in project.(complex project)
- Risks is not considered at beginning of project.
Project scheduling
• Project scheduling is responsible activity of project manager.(planning
phase)
• Project schedule is a mechanism that is used to communicate and
know about tasks are needed and has to be performed in project.
• Project manager separate total work task in project into different
activities.
• Project manager estimate the time and resources required to
complete activities and organize them into coherent sequence.
• Effective project scheduling leads to success of project , reduced cost
and increased customer satisfaction .
Project scheduling process
• Identify all the functions/ modules required to complete the project.
• Break down large functions into small activities.
• Determine the dependency among various activities.(eg SRS)
• Allocate resources to activities.
• Assign people to conduct different activities.
• Plan the beginning and ending dates for different activities.
• Create Activity Network and Bar or Gantt chart.
Basic principles of Project Scheduling
1) Compartmentalization: project divide into number of manageable
activities and tasks.
2) Interdependency: certain tasks occur in sequence whereas other
tasks occur in parallel.
3) Time allocation: each task has to be assigned specific time period ie
a start date and a completion date.
4) Effort validation: Project Manager measures that allocated number
of people work on given number.
5) Defined responsibilities: each task is assigned to specific member
of the software team.
6) Defined outcomes: each task has a defined outcome ie work
product.(requirement gathering having a outcome SRS)
7) Defined milestones: every task should be associated with a project
milestone. A milestone is accomplished when one or more work
products has been reviewed for quality. (feedback)
Project scheduling Techniques
1) Critical path method:
- It help you determine both longest and shortest possible time take to
complete a project.
- There are three essential elements. The tasks required to complete
the project, which tasks depend on the completion of others, a time
estimates for each activity.
Example:
• There are four tasks in the project- A, B, C, and D.
• Task B and D can only begin after task A completes, whereas tasc C
has no such restriction.
• Task A will be time- sensitive as any delay in its completion cab delay
in task B and D.
• It is called as critical task.
• This helps in identifying and separating the independent task.
• Finally, it adds milestones to the project.
2. Program Evaluation and Review Techniques
(PERT):
• It is a way to scheduled flow of tasks in project and estimate total
time taken to complete it.
• PERT charts offer a visual representation of the major activities(and
dependencies) in a project.
• It calculate
- Optimistic Time(O): quickest time you can complete a project
- Pessimistic time(P): longest time it will take to complete your project
- Most likely time(M):how long it will take to finish your project if
there are no problems.
• (O+4M+P)/6
PERT chart:
3. Gantt Chart
• A gantt chart is a type of bar graph that project managers use for
planning and scheduling in complex project.
• It represents each task horizontally on a bar chart, which shows the
start and end dates and they frequently include deadlines and
dependencies of tasks.
• It easier to visualize the progress of a project and see how different
tasks interact with one another.
4. Task List
• One of the simplest project scheduling techniques is the creation of a
task list.
• Create task list using a word processor or spreadsheet software.
• It create a list of tasks and include important information like the task
manager , start date, deadline and completion status.
5. Fast Tracking
• In fast tracking , project is being implemented by either
simultaneously executing many tasks or by overlapping many tasks to
each other.
6. Crashing
• Crashing deals with involving more resources to finish the project on
time.
• Example: add more developer in project, paying overtime to
employee.
• Crashing can only be applied when it fits your project budget.
THANK YOU…