MBARARA UNIVERSITY OF SCIENCE AND TECHNOLOGY.
FACULITY OF COMPUTING AND INFORMATICS.
COURSE UNIT: Systems Analysis and Design
NAME: OKELLO JAMES
REGNO: 2021/BCS/060/PS
ASSIGNMENT TWO
1. Describe the six sources of software.
2. Discuss the factors used to evaluate off the shelf software.
3. Explain reuse and its role in software development.
SOLUTIONS:
Sources of software refers to the different areas in which a software can be
obtained. The following are the six sources of software:
• Open-source. This is where the software is freely available on the internet
for free use and all its source codes can be freely accessed by the user. Some
of the open-source softwares include linux operating system, firefox web
browser.
• Cloud computing. This refers to the delivery of computing services like
software, servers, databases, networking and storage to offer faster
innovation for the subscribers. So these softwares are accessed by those who
have subscribed to the cloud and can be used for a given period of time
before the expiry of the subscription.
• Packaged softwares. Refers to a collection of programs that perform many
similar functions or have similar features. For example Microsoft Office
contains many applications like Excel, Word, Powerpoint
• Information Technology Service Firms. In this case a given organization is
in need of a certain software but cannot afford to develope it on her own due
to some factors, it approaches the Information Technology Service Firms
and hire that given software and use it for a specified period of time as
agreed with the Information Technology Service Firms.
• In-house development. Refers to the organization developing software with
its own Information Technology assets, rather than purchasing software
elsewhere. This can occur when a system must be built from scratch as long
as the resources are available for the development of the software.
• Enterprise Solutions Software. This refers to where a firm chooses a
complete software solutions to support their operations and business
processes. These software solutions consist of a series of integrated modules
that support specified functions.
Off the shelf software refer to the standardised software applications that are mass
produced, available to the general public and fit for immediate use. The following
are the factors used for evaluating these softwares:
• User Experience. One must take into consideration of how friendly the
software is to the users. Also know whether it requires extensive user
training or it is intuitive enough to use such that the training costs are
minimised.
• Platform support. When evaluating, one must put into consideration on
whether the software supports the platforms that he or she uses for example
Windows, Linux, Mac because not all softwares can be supported by all the
platforms.
• Technology support. One must also consider the kind of technology the
software uses whether it is in line with the kind of technology he wants more
especially the modern technology and also see whether that technology will
continue to be supported and provide future flexibility.
• Process flow. One should know how the software works in line with the kind
of operations he or she performs and know whether it will require substantial
changes to his or her processes. If so, he must know whether the changes are
favourable or he is going to incur additional hidden costs inform of
inefficiency.
• Installation and implementation support. The ability to get the software up
and running promptly while minimizing the degree to which the customer's
operations are disrupted during the implementation process.
• Cost. This involves comparing the cost of developing the same system in-
house with the cost of purchasing or licensing the software package so that
he can determine the best option he can take which is of a lower cost.
• Documentation. This includes the user’s manual as well as technical
documentation on how understandable and up-to-date the documentation is.
So one should always look for a software with a clear documentation.
• Response time. This refers to how long it takes the software package to
respond to the user's requests in an interactive session. So due to this, one
should always check for the software that takes a shorter time to process the
user's demands.
Software reuse is the process of creating software systems from existing software
rather than building it from scratch. The following are the roles of reuse in
software develoment:
• It reduces costs. Software costs are huge when being created from scratch,
but costs are almost reduced to nothing when one reuses the existing
software to come up with another one.
• It increases programmer productivity. This is because the programmer has
the source codes on which he can easily adjust and come up with any kind of
software that he wants in a short period of time.
• It reduces time for development. This is because the programmer has the
codes readily available that he just needs to change some things for him to
achieve the kind of software he wants to obtain not like the other
programmer who will start from scratch.
• It reduces bugs. When a software is being developed from scratch, the
programmer tends to have alot of bugs due to misuse of some syntaxes but
when he reuses a software, most of the codes will be already in the correct
order whereby he just needs to remove or add in a few lines of codes in
order to achieve what he wants.
• It results into a higher quality software. This is because the programmer
already knows how the existing software operates which makes it easy for
him to adjust on what is not working properly and come out with a software
of improved functionality.
• It reduces the process risks. This is because the cost of reuse component is
alrready known besides the development cost which is always untransparent.
So reuse helps the development team to reduce the error margin in project
cost estimation.