0% found this document useful (0 votes)
65 views6 pages

2.0 The Origins of Software

Uploaded by

wangui macharia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views6 pages

2.0 The Origins of Software

Uploaded by

wangui macharia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

2.

0 The Origins of Software


Introduction
• In the past software development for organizations was done mostly in-house and from
scratch
• Today, there are many different sources of software
• Now focus is on where you can obtain the many pieces and components that you will
combine into an application that you have been asked to create
Outsourcing
• Outsourcing – turning over responsibilities for some or all of an organization’s
information systems applications and operations to an outside firm
• Reasons for outsourcing:
– Freeing up internal resources
– Increasing the revenue potential of the organization
– Reducing time to markets
– Increasing process efficiencies
– Outsourcing noncore activities
Sources of Software
• Sources of software can be categorized into six major groups:
– Information technology services firms
– Packaged software producers
– Enterprise solutions software
– Cloud computing
– Open-source software
– In-house development
Figure 2-1: Sources of Application Software

1
Information Technology Service Firms
• I T service firms help companies develop customer information systems for internal use
• These firms employ skilled I T people
Table 2-1: Leading Software Firms and Their Development Specializations

Package Software Producers


• Serve many markets segments
• Prepackaged software is off-the-shelf and is not customizable
– Examples include Quicken, QuickBooks, Microsoft Word, TurboTax
– Meets 70% of an organization’s needs
• Documents created in Microsoft Word is another example

Enterprise Solutions Software


• Enterprise resource planning (E R P) systems integrate individual traditional business
functions into a series of modules so that a single transaction occurs seamlessly within a
single information system rather than several separate systems
• Benefits include:
– A single repository resulting in more consistent and accurate data
– Less maintenance
• SAP AG is the leading vendor of E R P systems
Cloud Computing
• Cloud computing – the provision of computing resources, including applications, over
the Internet, so customers do not have to invest in the computing infrastructure needed to
run and maintain the resources
• Users pay on a per-use system or license the software
• Global market, based on cloud computing, was estimated at $209.2 billion and estimated
to grow to $383.3 billion by 2020

2
• Cloud computing examples include:
• Google docs, Sheets, and Slides
• Share, create docs, spreadsheets, presentations
• SalesForce.com (Customer relationship management)
• Allows software as a service (S a a S)
• Benefits include:
• Freeing internal staff
• Faster access to applications
• Lower-cost to corporate-quality applications
• Concerns include security and reliability
Open-Source Software
• Freely available, including source code
• Developed by a community of interested people
• Performs the same functions as commercial software
• Examples: Linux, my S Q L, Firefox
• Two ways to make money with open-source software:
– Provide maintenance and services
– Sell a more full-featured version of the free software
In-House Development
• Involves using an organization’s staff to create systems
• Can lead to more maintenance needs
• Not unusual to incorporate a hybrid of in-house and purchased components as seen in the
table on the next slide
Table 2-2 Comparison of Six Different Sources of Software Components

3
Choosing Off-the-Shelf Software
• Criteria to consider when choosing off-the shelf software:
– Cost (compare developing in-house versus. purchasing or licensing the software
package)
– Functionality (the tasks that the software can perform and the mandatory,
essential, and desired system features)
– Vendor Support (can vendor provide support and how much it can provide)
Validating Purchased Software Information
• Request for Proposal (R F P) – document provided to vendors asking them to propose
hardware and system software that will meet the requirements of a new system
• If soliciting R F Ps from more than one vendor be sure to:
– Create a scoring value for each item requested
– Calculate a total score for each vendor after R F Ps are received
– Select a vendor with a high score
Reuse
• Reuse – the use of previously written software resources, especially objects and
components, in new applications
• Reuse is commonly applied to two different development technologies:
– Object-oriented development
▪ Object class encapsulates data and behavior of common organizational
entities (e.g., employees)
– Component-based development
▪ Components can be as small as objects or as large as pieces of software
that handle single business functions
• Reuse has become a standard part of corporate development
• Factors relating to successful reuse include:
– Knowledge of the domain in which reuse is to occur
– Customer support
– Commitment and understanding of senior management
– Sound organizational processes
– Skilled and experienced developers

4
Figure 2-4: Investments Necessary to Achieve Reusable Components

Source: Royce, Walker, Software Project Management: A Unified Framework, 1 st ed., ©1998. Reprinted and
electronically reproduced by permission of Pearson Education, Inc. Upper Saddle River, New Jersey)

Three Basic Steps of Software Reuse


◼ Abstraction – design of reusable piece of software
o The design could be from scratch, but very often it is based on reuse of other
existing objects and components.
◼ Storage – making software assets available for others
o Storage isn’t as simple as it may seem. It requires correctly labeling and
cataloguing assets so that others can find them.
◼ Recontextualization – making the software understandable to developers
o Just because the software is easily accessible doesn’t mean people will use it. It
needs to be easy to use and understand. That’s where recontextualization comes
in. Part of that involves providing good documentation
Approaches to Reuse
• Ad-hoc – Individuals are free to find or develop reusable assets on their own
• Facilitated – developers are encouraged to practice reuse
• Managed – the development, sharing, and adoption of reusable assets is mandated
• Designed – assets mandated for reuse as they are being designed for specific applications

5
Table 2-3: Four Approaches to Reuse

(Source: Based on Griss, 2003.)


3 Steps of Software Reuse
◼ Abstraction – design of reusable piece of software
o The design could be from scratch, but very often it is based on reuse of other
existing objects and components.
◼ Storage – making software assets available for others
o Storage isn’t as simple as it may seem. It requires correctly labeling and
cataloguing assets so that others can find them.
◼ Recontextualization – making the software understandable to developers
o Just because the software is easily accessible doesn’t mean people will use it. It
needs to be easy to use and understand. That’s where recontextualization comes
in. Part of that involves providing good documentation
Approaches to Reuse
◼ Ad-hoc: individuals are free to find or develop reusable assets on their own
◼ Facilitated: developers are encouraged to practice reuse
◼ Managed: the development, sharing, and adoption of reusable assets is mandated
◼ Designed: assets mandated for reuse as they are being designed for specific applications

You might also like