Chapter 2 - The Origins of Software
Chapter 2 - The Origins of Software
1
Learning Objectives
2
Introduction
3
Systems Acquisition: Outsourcing
4
Outsourcing (Cont.)
Reasons to outsource
Cost-effectiveness
Take advantage of economies of scale
Make up for lack of in-house knowledge
Free up internal resources
Reduce time to market
Increase process efficiencies
System development is a non-core activity for the organization
5
Sources of Software
Information technology services firm
Packaged software producers
Enterprise-wide solutions
Enterprise Resource Planning (ERP)
Cloud computing
Open source software
In-house developers
6
Sources of Software (Cont.)
7
Sources of Software (Cont.)
8
Information Technology (IT) Services Firms
9
Packaged Software Producers
Microsoft Project
11
Enterprise Solutions Software
12
Enterprise Solutions Software
13
Cloud Computing
14
Cloud Computing
16
In-House Development
17
Sources of Software Components
18
Selecting Off-the-Shelf Software
Cost: comparing the cost of developing the same system in-house with the cost
of purchasing or licensing the software package
Functionality: the tasks that the software can perform and the mandatory,
essential, and desired system features
Vendor support: whether and how much support the vendor can provide and
at what cost
Viability of vendor: can vendor continue to adapt/update software to changes
in systems software and hardware
19
Selecting Off-the-Shelf Software(Cont,)
20
Validating Purchased Software Information
Software documentation
21
Request For Proposal (RFP)
22
Information Sources For RFP
Vendor’s proposal
Running software through a series of tests
Feedback from other users of the vendor’s product
Independent software testing services
Articles in trade publications
23
23
Reuse
The use of previously written software resources, especially objects
and components, in new applications
24
Reuse (Con. )
Component-based development
Components can be as small as objects or as large as pieces of software that
handle single business functions
Object-oriented development reuse is the use of object classes in more
than one application (e.g. Employee).
Component-based development reuse is the assembly of an application
from many different components at many different levels of complexity and
size (e.g. Currency conversion).
25
Summary
In this chapter you learned how to:
Explain outsourcing.
Describe six different sources of software.
Discuss how to evaluate off-the-shelf software.
Explain reuse in software development.
26