Today, complex, high quality computer based-systems must be
built in a very short time period. This results in an organized approach to
reuse. Sometime the potential gains from reusing specifications may be greater
than reusing code component because code contains low level details. There are
various features distinguishing between different cost models. Investment cycle
which has four distinct cycles as corporate, domain engineering, application
engineering and component engineering investment cycle. Economic function
having five different functions as Net Present Value, Payback Value, Average
Return on Book Value, Internal Rate of Return, Profitability Index. Cost
factors which specifies what aspects of reuse decision we want to consider. Reuse
organization- the organizational structure has some impact on how costs are
determined, charged, and accounted for. Scope where some models consider a
short-term decision whereas others consider a long-term investment cycle. Some
cost models neglect integration costs. Some cost models fail to take into
account the discount rate of resources and so on. There are variety of viewpoints involved in
software reuse initiatives like corporate executives, the producer staff, the
consumer staff, library managers, and component providers. A generic software
reuse model can be classified as Variety of investment cycles, Variety of cost
factors, Variety of economic functions, Variety of viewpoints, Variety of
hypotheses. Variety of investment cycles involve four different cycles as Corporate
level decides Whether to introduce reuse in the practice of software
development, Domain engineering decides whether to initiate a domain
analysis/domain engineering initiative, Application engineering decides whether
to introduce reuse practices for development project, Component engineering
decides whether it is worthwhile to develop a specific component to serve a
group of project teams. Variety of cost factors include investment Cycle,
denoted by Y, measured in number of years, typically ranging between 3 and 5,
discount Rate, denoted by d, is an abstract quantity, that typically ranges
between 0.10 and 0.20. It reflects the time value of money, investment Costs, denoted by IC, and measured in
person months because most costs that arise can best be quantified as personnel
effort, episodic Benefits, at year y, for 1 <= y <= Y , denoted by B(y),
and measured in person months, episodic Costs, at year y, for 1 <= y <= Y
, denoted by C(y), and measured in person months. Variety of economic function
include Net Present Value, denoted by N P V, measured in person months, Return
on Investment, denoted by ROI. ROI recognizes that investments involve risks,
Profitability Index, denoted by PI. This quantity allocates the potential
profit with respect to the investment cost. An investment is worthwhile
whenever P I exceed 1. Internal Rate of Return, denoted by IRR, and defined as
the value of d that makes the net present value zero. Payback Value, denoted by
P B and defined as the shortest investment cycle that makes the net present
value non-negative. Average Rate of Return, denoted by ARR. It prorates the
profitability index by the number of years in the investment cycle. Variety of
viewpoint includes Component Engineering Viewpoint where We are deal with here
is whether or not to develop a reusable asset to satisfy a tentatively
specified set of requirements. Application Engineering Viewpoint where we deal
whether or not to adopt reuse in a given development project. Domain
Engineering Viewpoint where we deal whether or not to initiate a domain
engineering effort in a tentatively specified application domain. Corporate
Viewpoint where the investment decision we deal with is whether or not to
initiate a corporate software reuse program. Variety of hypotheses includes
Non-Linear Cost Effects, Integration Costs, Quantifying Quality Gains, Code
Inflation. In automated support, the proposed has two main functions. In
archival function, the purpose of this function is to keep track of costs and
benefits as they arise. In analytical function, the purpose of this function is
analyze investment cycles by producing any combinations of functions. There are
various existing cost models. The model proposed by Ganey and Cruickshank
combines domain engineering costs and application engineering costs in a single
equation, it does not take into account considerations and assumes that the
number of applications that make up the domain engineering effort is
predetermined. Kain proposes a return on investment model that is especially
geared towards ob ject oriented programming (where reusable assets are objects
at various levels of abstraction). There are various other models.
AITB International Conference, 2019
Kathmandu, Nepal
My Youtube Channel
Please Subscribe
Flag of Nepal
Built in OpenGL
World Covid-19 Data Visualization
Choropleth map
Word Cloud in Python
With masked image
Friday, September 27, 2019
Summary of NO silver bullet
There are two types of complexity in software development process. They are essence and accidents complexity. Essence complexity are inherent in the nature of the software whereas accident complexity is such, that today attend its production but that are not inherent. Accidental complexity arises due to hardware constraints, awkward programming languages. Most of the programmers are still devoted towards solving accidental problem but now the time has come to address essential complexity. Essential complexity include conformity, changeability, flexibility, invisibility. In conformity, the challenge is to run new software on a system where other software systems were running. Changeability makes software dependent on the technological advancement of its surroundings. Because software is invisible, it becomes very difficult to sketch the clear idea of how the final product looks or perform. The development of high level languages like Fortran, C, C++ have solved the accidental difficulties to a great extent. There is no one silver bullet but a series of innovations could lead to a significant improvement. Ada language, object-oriented programming, artificial intelligence could play vital role to achieve those improvements and are hopes for the silver. Building expert systems is not an easy task but systems like graphical programming, program verification, automatic programming play vital role in software development. As large number of software engineers are involved in software development, large number is developed daily. It leads to an attack on conceptual essence and sometime it is more reliable to buy the already built software rather than developing the new one. There is difference between good designers and great designers. There is as much as tenfold difference between an ordinary designer and great one so they should be treated well and provided with higher status.