Reusable Software Resources-1
Reusable Software Resources-1
• Off-the-shelf components:
• These are pre-built, ready-to-use software components or modules
that are available for purchase or free download. They are designed
to meet common needs across different applications and industries.
• Examples: A pre-built payment gateway, logging libraries, or
authentication modules.
• Full-experience components:
• These components are more comprehensive and are designed to provide a
complete functionality for a specific task or use case. They may require
minimal integration and can be quickly added to a project to handle
complex features.
• Examples: An entire customer relationship management (CRM) system or a
full e-commerce solution.
• Partial-experience components:
• These components provide only a part of the required functionality for a
specific task or use case. They typically need to be combined with other
components or custom code to form a complete solution.
• Examples: A component for handling user authentication but requiring
additional code to integrate with a user profile management system.
• New components:
• These are custom-built or newly developed components that don't
exist off-the-shelf or as full/partial experience components. These are
often developed in-house or through collaboration and are tailored to
the specific needs of a project.
• Examples: A proprietary algorithm for data analysis or a custom API
for integrating with a unique internal system.
Environmental Resources
1. Cost : Project will fail if you don’t have sufficient funds to complete it.
So, at early stage , ensure that you have enough money to comple
work.
2. Time : Estimate overall project duration and time for individual task. It
help to manage client expectations.
3. Size and scope : All the tasks must be completed in order to deliver
product on time. For that, you should have right materials and
expertise on the project by estimating how much work is involved and
exactly what tasks must be completed.
4. Risk : Estimating predicting risks. Create risk management plans.
5. Resources : Ensure that you have all the resources (like tools, people,
material, hardware, software etc)you require and make best use of
them.
• To achieve reliable cost and effort estimates, there are different
approaches that you can follow.
• Delay Estimation Until Late in the Project (Achieving 100% Accuracy After
Completion)
This approach suggests postponing the estimation until the project is almost
complete, as you can then have a 100% accurate estimate of the cost and
effort based on the actual work done.
• Use One or More Empirical Models for Software Cost and Effort Estimation
Empirical models are data-driven estimation techniques that rely on historical
project data and statistical analysis to predict the cost and effort of a new
project. Well-known models include COCOMO (Constructive Cost Model),
Function Point Analysis (FPA), and other parametric models. These models use
parameters such as project size, complexity, and the development
environment to generate estimates.
Decomposition techniques
• These take a "divide and conquer" approach.
• Cost and effort estimation are performed in a stepwise fashion by breaking
down a project into major functions and related software engineering
activities.
• Software project estimation is a form of problem solving.
• The problem to be solved is too complex to be considered in one piece.
• Two different points of view for the decomposition approach
Decomposition of the problem
Decomposition of the process
• But first, the project planner must
Understand the scope of the s/w to be built
Generate an estimate of its “size”
Different decomposition techniques
are :
1. Software sizing
Software sizing is used to estimate the size of a software application or
component to support cost estimating, progress tracking, and other software
project management activities.
• Estimation Accuracy:
• (1) the degree to which you have properly estimated the size of the product to
be built.
• (2) the ability to translate the size estimate into human effort, calendar time,
and dollars .
• (3) the degree to which the project plan reflects the abilities of the software
team.
• (4) the stability of product requirements and the environment that supports the
software engineering effort.
• In the context of project planning, size refers to a quantifiable
outcome of the software project.
▪ size can be measured in lines of code (LOC)
▪ size is represented as function points (FP)