Case
Case
CASE Tools
CASE tools are set of software application programs, which are used to automate SDLC
activities. CASE tools are used by software project managers, analysts and engineers to
develop software system.
There are number of CASE tools available to simplify various stages of Software
Development Life Cycle such as Analysis tools, Design tools, Project management tools,
Database Management tools, Documentation tools are to name a few.
Use of CASE tools accelerates the development of project to produce desired result and helps
to uncover flaws before moving ahead with next stage in software development.
CASE tools can be broadly divided into the following parts based on their use at a particular
SDLC stage:
• Central Repository - CASE tools require a central repository, which can serve as a
source of common, integrated and consistent information. Central repository is a
central place of storage where product specifications, requirement documents, related
reports and diagrams, other useful information regarding management is stored.
Central repository also serves as data dictionary.
• Upper Case Tools - Upper CASE tools are used in planning, analysis and design
stages of SDLC.
• Lower Case Tools - Lower CASE tools are used in implementation, testing and
maintenance.
• Integrated Case Tools - Integrated CASE tools are helpful in all the stages of SDLC,
from Requirement gathering to Testing and documentation.
CASE tools can be grouped together if they have similar functionality, process activities and
capability of getting integrated with other tools.
A project is a group of tasks that need to complete to reach a clear result. A project also defines
as a set of inputs and outputs which are required to achieve a goal. Projects can vary from
simple to difficult and can be operated by one person or a hundred.
Projects usually described and approved by a project manager or team executive. They go
beyond their expectations and objects, and it's up to the team to handle logistics and complete
the project on time. For good project development, some teams split the project into specific
tasks so they can manage responsibility and utilize team strengths.
Software project management is an art and discipline of planning and supervising software
projects. It is a sub-discipline of software project management in which software projects
planned, implemented, monitored and controlled.
In software Project Management, the client and the developers need to know the length, period
and cost of the project.
There are three needs for software project management. These are:
1. Time
2. Cost
3. Quality
It is an essential part of the software organization to deliver a quality product, keeping the cost
within the client?s budget and deliver the project as per schedule. There are various factors,
both external and internal, which may impact this triple factor. Any of three-factor can severely
affect the other two.
Project Manager
A project manager is a character who has the overall responsibility for the planning, design,
execution, monitoring, controlling and closure of a project. A project manager represents an
essential role in the achievement of the projects.
A project manager is a character who is responsible for giving decisions, both large and small
projects. The project manager is used to manage the risk and minimize uncertainty. Every
decision the project manager makes must directly profit their project.
Role of a Project Manager:
1. Leader
A project manager must lead his team and should provide them direction to make them
understand what is expected from all of them.
2. Medium:
The Project manager is a medium between his clients and his team. He must coordinate and
transfer all the appropriate information from the clients to his team and report to the senior
management.
3. Mentor:
He should be there to guide his team at each step and make sure that the team has an attachment.
He provides a recommendation to his team and points them in the right direction.
Activities
Software Project Management consists of many activities, that includes planning of the project,
deciding the scope of product, estimation of cost in different terms, scheduling of tasks, etc.
1. Project Planning: It is a set of multiple processes, or we can say that it a task that performed
before the construction of the product starts.
2. Scope Management: It describes the scope of the project. Scope management is important
because it clearly defines what would do and what would not. Scope Management create the
project to contain restricted and quantitative tasks, which may merely be documented and
successively avoids price and time overrun.
3. Estimation management: This is not only about cost estimation because whenever we start
to develop software, but we also figure out their size(line of code), efforts, time as well as cost.
If we talk about the size, then Line of code depends upon user or software requirement.
If we talk about effort, we should know about the size of the software, because based on the
size we can quickly estimate how big team required to produce the software.
If we talk about time, when size and efforts are estimated, the time required to develop the
software can easily determine.
And if we talk about cost, it includes all the elements such as:
o Size of software
o Quality
o Hardware
o Communication
o Training
o Additional Software and tools
o Skilled manpower
5. Project Resource Management: In software Development, all the elements are referred to
as resources for the project. It can be a human resource, productive tools, and libraries.
6. Project Risk Management: Risk management consists of all the activities like
identification, analyzing and preparing the plan for predictable and unpredictable risk in the
project.
o The Experienced team leaves the project, and the new team joins it.
o Changes in requirement.
o Change in technologies and the environment.
o Market competition.
From the planning to closure, communication plays a vital role. In all the phases,
communication must be clear and understood. Miscommunication can create a big blunder in
the project.
o Identification
o Baseline
o Change Control
o Configuration Status Accounting
o Configuration Audits and Reviews
To manage the Project management system adequately and efficiently, we use Project
management tools.
Gantt chart
Henry Gantt developed the Gantt Chart in 1917. Gantt chart is a handy tool when you want to
see the whole landscape of either one or multiple projects. It helps you to view which functions
are dependent on one another and which event is coming up.
Gantt charts are primarily used to allocate resources to activities. The funds allocated to
activities include staff, hardware, and software. Gantt charts are useful for resource planning.
A Gantt chart is a particular type of bar chart where each bar represents an activity. The bars
are drawn along a timeline. The distance of each bar is proportional to the duration of time
planned for the corresponding event. Gantt charts are used in software project management are
an enlarged version of the regular Gantt charts. In the Gantt charts used for software project
management, each bar subsists of a white part and a shaded section. The shaded part of the bar
displays the length of time every task is estimated to take. The white part displays the slack
time, that is, the current time by which a method must be completed. A Gantt chart
representation for the MIS problem, as shown in fig:
PERT chart
PERT (Project Evaluation and Review Technique) charts contain a network of boxes and
arrows. The boxes show activities, and the arrows represent function dependencies. PERT chart
represents the numerical variations in the plan estimates assuming a normal distribution. Thus,
in a PERT chart consist of making a single estimate for each function, pessimistic, likely, and
optimistic size is made. The boxes of PERT charts are generally annotated with the pessimistic,
likely, and optimistic estimates for each method. Since all possible completion times between
the minimum and maximum period for each process has to be treated, there are not one but
many critical ways, depending on the permutations of the estimates for each purpose. This
makes the analytical path method in PERT charts very complicated. A critical way in a PERT
chart is shown by utilizing thicker arrows. The PERT chart representation of the MIS problem
as shown in fig. PERT charts are a more sophisticated method of activity chart. Inactivity
diagrams only the estimated method durations are represented. Since the actual time might vary
from the estimated time, the utility of the activity diagrams is finite.
Gantt chart representation of a project record is useful in planning the usage of resources, while
PERT chart is useful for monitoring the proper progress of activities. Also, it is easier to
identify parallel operations in a project utilizing a PERT chart. Project managers use to
determine the parallel activities in a project for assignment to various engineers.
Advantage of PERT
It shows the interrelationships among the tasks in the project and, in particular, clearly
identifies the critical path of the project, thus helping to focus on it.
It exposes all possible parallelism in the activities and thus helps in allocating resources.
Logic Network
The Logic Network shows the order of activities over time. It shows the sequence in which
activities are to do. Distinguishing events and pinning down the project are the two primary
uses. Moreover, it will help with understanding task dependencies, a timescale, and overall
project workflow.
Product Breakdown Structure (BBS) is a management tool and necessary a part of the project
designing. It's a task-oriented system for subdividing a project into product parts. The product
breakdown structure describes subtasks or work packages and represents the connection
between work packages. Within the product breakdown Structure, the project work has
diagrammatically pictured with various types of lists. The product breakdown structure is just
like the work breakdown structure (WBS).
Work Breakdown Structure (WBS) is used to decompose a given function set recursively into
small activities. WBS provides a notation for representing the significant tasks that need to be
carried out to solve a problem. The problem name labels the root of the tree. Each node of the
tree is destroyed down into smaller activities that are building the children of the node. Each
activity is recursively decomposed into smaller sub-activities until at the leaf level; the
activities require approximately two weeks to develop, as shown in fig represents the WBS of
MIS (Management Information System) software. While breaking down a function into smaller
tasks, the manager has to make some hard decisions. If a task is broken down into a large
number of minimal activities, these can be carried out independently. Thus, it becomes feasible
to develop the product faster (with the help of additional workforce). Therefore, to be able to
do a project in the least amount of time, the manager needs to break the vital function into
smaller ones, expecting to find more parallelism. However, it is not useful to subdivide tasks
into units which take less than a week or two to execute. Excellent subdivision measure that a
disproportionate amount of time must be spent on preparing and revising various charts.
Resource Histogram
The resource histogram is precisely a bar chart that used for displaying the amounts of time
that a resource is scheduled to be worked on over a prearranged and specific period. Resource
histograms can also contain the related feature of resource availability, used for comparison on
purposes of contrast.
Critical path analysis is a technique that is used to categorize the activities which are required
to complete a task, as well as classifying the time which is needed to finish each activity and
the relationships between the activities. It is also called a critical path method. CPA helps in
predicting whether a project will expire on time. From the activity network representation
following method can be made. The minimum time (MT) to complete the project is the
maximum of all way from start to finish. The earliest start (ES) time of a method is the
maximum of all paths from the start to the task. The current start time is the difference between
MT and the maximum of all paths from this method to the finish. The earliest finish time (EF)
of a function is the sum of the earliest start time of the function and the duration of the function.
The latest finish (LF) time of a function can be obtained by subtracting maximum of all paths
from this method to complete from MT. The slack time (ST) is LS - EF and equally can be
indicated as LF - EF. The slack time (or float time) is the total time that a function may be
delayed before it will affect the last time of the project. The slack time means the "flexibility"
in the starting and completion of tasks. A critical method is one with a zero slack time. A path
from the begin node to the last node containing only critical tasks is called a critical path. These
parameters for various methods for the MIS problem are shown in the following table.
Task ES EF LS LF ST
Specification 0 15 0 15 0
Design database 15 60 15 60 0
For any new software project, it is necessary to know how much it will cost to develop and
how much development time will it take. These estimates are needed before development is
initiated, but how is this done? Several estimation procedures have been developed and are
having the following attributes in common.
1. During the planning stage, one needs to choose how many engineers are required for
the project and to develop a schedule.
2. In monitoring the project's progress, one needs to access whether the project is
progressing according to the procedure and takes corrective action, if necessary.
Static, Single Variable Models: When a model makes use of single variables to calculate
desired values such as cost, time, efforts, etc. is said to be a single variable model. The most
common equation is:
C=aLb
Where C = Costs
L= size
a and b are constants
The Software Engineering Laboratory established a model called SEL model, for estimating
its software production. This model is an example of the static, single variable model.
E=1.4L0.93
DOC=30.4L0.90
D=4.6L0.26
Static, Multivariable Models: These models are based on method (1), they depend on several
variables describing various aspects of the software development environment. In some model,
several variables are needed to describe the software development process, and selected
equation combined these variables to give the estimate of time & cost. These models are called
multivariable models.
WALSTON and FELIX develop the models at IBM provide the following equation gives a
relationship between lines of source code and effort:
E=5.2L0.91
In the same manner duration of development is given by
D=4.1L0.36
The productivity index uses 29 variables which are found to be highly correlated productivity
as follows:
Where Wi is the weight factor for the ithvariable and Xi={-1,0,+1} the estimator gives Xione of
the values -1, 0 or +1 depending on the variable decreases, has no effect or increases the
productivity.
Example: Compare the Walston-Felix Model with the SEL model on a software development
expected to involve 8 person-years of effort.
Solution:
Then
COCOMO Model
The initial estimate (also called nominal estimate) is determined by an equation of the form
used in the static single variable models, using KDLOC as the measure of the size. To
determine the initial effort Ei in person-months the equation used is of the type is shown below
Ei=a*(KDLOC)b
The value of the constant a and b are depends on the project type.
1. Organic
2. Semidetached
3. Embedded
1.Organic: A development project can be treated of the organic type, if the project deals with
developing a well-understood application program, the size of the development team is
reasonably small, and the team members are experienced in developing similar methods of
projects. Examples of this type of projects are simple business systems, simple inventory
management systems, and data processing systems.
2. Semidetached: A development project can be treated with semidetached type if the
development consists of a mixture of experienced and inexperienced staff. Team members may
have finite experience in related systems but may be unfamiliar with some aspects of the order
being developed. Example of Semidetached system includes developing a new operating
system (OS), a Database Management System (DBMS), and complex inventory
management system.
For three product categories, Bohem provides a different set of expression to predict effort (in
a unit of person month)and development time from the size of estimation in KLOC(Kilo Line
of code) efforts estimation takes into account the productivity loss due to holidays, weekly off,
coffee breaks, etc.
According to Boehm, software cost estimation should be done through three stages:
1. Basic Model
2. Intermediate Model
3. Detailed Model
1. Basic COCOMO Model: The basic COCOMO model provide an accurate size of the
project parameters. The following expressions give the basic COCOMO estimation model:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Where
KLOC is the estimated size of the software product indicate in Kilo Lines of Code,
Effort is the total effort required to develop the software product, expressed in person months
(PMs).
For the three classes of software products, the formulas for estimating the effort based on the
code size are shown below:
For the three classes of software products, the formulas for estimating the development time
based on the effort are given below:
Some insight into the basic COCOMO model can be obtained by plotting the estimated
characteristics for different software sizes. Fig shows a plot of estimated effort versus product
size. From fig, we can observe that the effort is somewhat superliner in the size of the software
product. Thus, the effort required to develop a product increases very rapidly with project size.
The development time versus the product size in KLOC is plotted in fig. From fig it can be
observed that the development time is a sub linear function of the size of the product, i.e. when
the size of the product increases by two times, the time to develop the product does not double
but rises moderately. This can be explained by the fact that for larger products, a larger number
of activities which can be carried out concurrently can be identified. The parallel activities can
be carried out simultaneously by the engineers. This reduces the time to complete the project.
Further, from fig, it can be observed that the development time is roughly the same for all three
categories of products. For example, a 60 KLOC program can be developed in approximately
18 months, regardless of whether it is of organic, semidetached, or embedded type.
From the effort estimation, the project cost can be obtained by multiplying the required effort
by the manpower cost per month. But, implicit in this project cost computation is the
assumption that the entire project cost is incurred on account of the manpower cost alone. In
addition to manpower cost, a project would incur costs due to hardware and software required
for the project and the company overheads for administration, office space, etc.
It is important to note that the effort and the duration estimations obtained using the COCOMO
model are called a nominal effort estimate and nominal duration estimate. The term nominal
implies that if anyone tries to complete the project in a time shorter than the estimated duration,
then the cost will increase drastically. But, if anyone completes the project over a longer period
of time than the estimated, then there is almost no decrease in the estimated cost value.
Example1: Suppose a project was estimated to be 400 KLOC. Calculate the effort and
development time for each of the three model i.e., organic, semi-detached & embedded.
(i)Organic Mode
(ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
Example2: A project size of 200 KLOC is to be developed. Software development team has
average experience on similar type of projects. The project schedule is not very tight. Calculate
the Effort, development time, average staff size, and productivity of the project.
Solution: The semidetached mode is the most appropriate mode, keeping in view the size,
schedule and experience of development time.
Hence E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM
P = 176 LOC/PM
2. Intermediate Model: The basic Cocomo model considers that the effort is only a function
of the number of lines of code and some constants calculated according to the various software
systems. The intermediate COCOMO model recognizes these facts and refines the initial
estimates obtained through the basic COCOMO model by using a set of 15 cost drivers based
on various attributes of software engineering.
Hardware attributes -
Personnel attributes -
o Analyst capability
o Software engineering capability
o Applications experience
o Virtual machine experience
o Programming language experience
Project attributes -
Project ai bi ci di
The effort is determined as a function of program estimate, and a set of cost drivers are given
according to every phase of the software lifecycle.
Software development is a sort of all new streams in world business, and there's next to no
involvement in structure programming items. Most programming items are customized to
accommodate customer's necessities. The most significant is that the underlying technology
changes and advances so generally and rapidly that experience of one element may not be
connected to the other one. All such business and ecological imperatives bring risk in software
development; hence, it is fundamental to manage software projects efficiently.
Software manager is responsible for planning and scheduling project development. They
manage the work to ensure that it is completed to the required standard. They monitor the
progress to check that the event is on time and within budget. The project planning must
incorporate the major issues like size & cost estimation scheduling, project monitoring,
personnel selection evaluation & risk management. To plan a successful software project, we
must understand:
The size is the crucial parameter for the estimation of other activities. Resources requirement
are required based on cost and development time. Project schedule may prove to be very useful
for controlling and monitoring the progress of the project. This is dependent on resources &
development time.