WHAT IS SOFTWARE ECONOMICS?
Software economics is the study of how scarce project
resources are allocated for software projects. Software
economics helps software managers allocate those
resources in the most efficient manner.
Most software cost models can be abstracted into a function of
five basic parameters:
Size
Process
Personnel
Environment
Required quality.
Size: The size of the end product (in human-generated
components), which is typically quantified in terms of the
number of source instructions AND usually measured in:
Function Points – a better metric earlier in project
LOC (SLOC, KLOC…) a better metric later in project
PROCESS:
Used to guide all activities.
Support heading toward target and eliminate non-essential / less
important activities
Process critical in determining software economics
ENVIRONMENT:
The tools / techniques / automated procedures used to support
the development effort.
REQUIRED QUALITY:
The functionality provided like performance, reliability, maintainability,
scalability, portability, user interface utility, usability etc.
7 STEPS FOR EFFECTIVE DECISION MAKING
Identify the decision
Gathering the relevant information
Identify the alternatives
Weigh the evidence
Choose among alternatives
Take action
Review your decision and its consequences.
1. Identify the decision:
This first step is very important. You realize that you need to
make a decision. Try to clearly define the nature of the decision
you must make.
2.GATHERING RELEVANT INFORMATION :
Collecting relevant information through self-assessment and
external sources before making a decision.
3.Identify the alternatives:
You can also use your imagination and additional
information to construct new alternatives. In this
step, you will list all possible and desirable
alternatives.
4.WEIGH THE EVIDENCE: Evaluating alternatives based
on their potential to meet the need and personal values to
prioritize them.
5.CHOOSE AMONG ALTERNATIVES
Once you have weighed all the evidence, you are ready to
select the alternative that seems to be best one for you. You
may even choose a combination of alternatives. Your choice in
Step 5 may very likely be the same or similar to the alternative
you placed at the top of your list at the end of Step 4.
6.TAKE ACTIONS
You’re now ready to take some positive action by beginning
to implement the alternative you chose in Step 5.
7.Review your decision and its consequences:
Evaluate the results of your decision to see if it resolves the identified need.
If not, repeat steps to gather new information and explore other
alternatives.
The Product Llife Cycle consists of four distinct stages:
1. Introduction: This is the stage where a new product is first
introduced to the market. Sales are low and the product is not yet
profitable.
2. Growth: As more consumers become aware of the product and its
benefits, sales begin to increase rapidly and the product becomes
more profitable.
3. Maturity: As sales growth begins to slow down, the product has
reached its peak in terms of profitability. Market saturation may also
occur during this stage.
4. Decline: Sales begin to decline as the product becomes less popular
and new products enter the market. The product may eventually be
phased out.
FACTORS AFFECTING THE PRODUCT LIFE CYCLE
Rate of technological change
Rate of market acceptance
Competitor’s entry
Risk bearing capacity
Government policy
EXTENSION OF PRODUCT LIFE CYCLE
Product modification.
Entry in the new market.
Promoting frequent use.
Developing different usage.
Use of modern advertising & sales promotion techniques.
ESTIMATION TECHNIQUES
1. Expert judgment
2. Comparative or analogous estimation
3. Bottom-up
4. Top Down
5. Algorithmic Methods
1.EXPERT JUDGMENT:
Expert judgment is a common technique for estimating a project's effort by using the
experience and knowledge of experts who understand the project requirements and will
be working on the project. This allows for factoring in differences between past projects
and the current one, including new techniques involved in the new project.
2.Comparative or analogous estimation:
The new requirement may be compared to an old/completed project to
understand the similarities and differences.
Before proceeding, make sure to check whether those projects were
successful.
3.Bottom UP:
Bottom-up estimation involves breaking down a project into smaller tasks and
estimating each one individually. It then rolls up the estimates to give higher-level
numbers. This method is best for projects with a detailed work breakdown structure, and
results in more accurate estimates, but also requires a greater investment of time.
4.Top Down:
Using a high-level work breakdown structure and data from previous projects,
you can add estimates for each project work item to determine the overall effort
and cost.
5. ALGORTHMIC TECHNIQUE:
These models provide one or more mathematical algorithms, which produce
software cost estimate as a function of the number of cost drivers.
“COCOMO” is an example.
WORK BREAKDOWN STRUCTURE
DEFINITION:
A work breakdown structure (WBS), as the name says, is the process or
technique of dividing complex and difficult projects into smaller units.
This smaller unit can be a data, product, service or any combination.
In other words, WBS is a hierarchical decomposition of work that must be
performed to achieve the objective.
WBS HELPS MANAGERS:
Facilitates evaluation of cost, time and technical performance of the
organization on a project.
Improves the efficiency of the project.
Helps manager plan, schedule and budget.
Easy to identify risk in the given project.
Gives a better understanding of the project to stakeholders
SOFTWARE MAINTENANCE
Its NEEDS:
Software Maintenance must be performed in order to:
Correct faults.
Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different hardware, software, system
features, and other facilities can be used.
Retire software.
IMPORTANCE
Software maintenance includes error correction, enhancement of capabilities,
deletion of obsolete capabilities, and optimization.
The purpose of software maintenance is to preserve the value of software over
time.
The value of software can be enhanced by expanding the customer base, meeting
additional requirements, becoming easier to use, more efficient and employing
newer technology.
CATEGORIES
Maintenance can be divided into the following:
Corrective maintenance:
of a software product may be essential either to rectify some bugs
observed while the system is in use, or to enhance the performance of the
system.
Adaptive maintenance:
This includes modifications and updates when the customers need the
product to run on new platforms.
Perfective maintenance:
A software product needs maintenance to support the new features that
the users want or to add/change different types of functionalities of the
system according to the customer demands.
Preventive maintenance:
This type of maintenance includes modifications to prevent future problems of the
software. Its goals is to attend problems, which are not significant at this moment but
may cause serious issues in future.