paper
Chapter 7
Development Strategies
1
Learning Objectives
After this chapter, you will be able to:
Explain the differences between traditional and web-based systems development
Explain how Web 2.0, cloud computing, and mobile devices may affect systems development
Explain how to select one of the four in-house software development options
Explain outsourcing
ISt 603 - Chapter 7
2
2
Learning Objectives
Explain the main advantages and the unique concerns of offshoring
Describe the concept of Software as a Service
Explain how a systems analyst helps in selecting a development strategy
Execute the five steps in the software acquisition process
Describe a request for proposal (RFP) and a request for quotation (RFQ)
Summarize the tasks involved in completing the systems analysis phase of the SDLC
ISt 603 - Chapter 7
3
3
Web-Based Systems Development Technologies
Systems analyst must consider whether development will take place in a traditional environment or in a web-centric framework
Two representative web-based development environments
Microsoft’s .NET
MERN stack – MongoDB, Express, React, and Node
Applications using JavaScript
Technologies
There are two main categories of coding, scripting and programming for creating Web Applications:
Client Side
Server Side
ISt 603 - Chapter 7
4
4
Web-Based Systems Development Technologies
I. Client Side Scripting / Coding - Client Side Scripting is the type of code that is executed or interpreted by browsers.
Client Side Scripting is generally viewable by any visitor to a site (from the view menu click on "View Source" to view the source code).
Below are some common Client Side Scripting technologies:
HTML (HyperText Markup Language)
CSS (Cascading Style Sheets)
JavaScript
Ajax (Asynchronous JavaScript and XML)
jQuery (JavaScript Framework Library - commonly used in Ajax development)
MooTools (JavaScript Framework Library - commonly used in Ajax development)
Dojo Toolkit (JavaScript Framework Library - commonly used in Ajax development)
ISt 603 - Chapter 7
5
5
Web-Based Systems Development Technologies
II. Server Side Scripting / Coding - Server Side Scripting is the type of code that is executed or interpreted by the web server.
Server Side Scripting is not viewable or accessible by any visitor or general public.
Below are the common Server Side Scripting technologies:
PHP (very common Server Side Scripting language - Linux / Unix based Open Source - free redistribution, usually combines with MySQL database)
Zend Framework (PHP's Object Oriented Web Application Framework
ASP (Microsoft Web Server (IIS) Scripting language)
ASP.NET (Microsoft's Web Application Framework - successor of ASP)
ColdFusion (Adobe's Web Application Framework)
Ruby on Rails (Ruby programming's Web Application Framework - free redistribution)
Perl (general purpose high-level programming language and Server Side Scripting Language - free redistribution - lost its popularity to PHP)
Python (general purpose high-level programming language and Server Side Scripting language - free redistribution)
ISt 603 - Chapter 7
6
6
Traditional development considerations
Compatibility issues
Is the system being developed need to be compatible with existing hardware, software platforms?
Is the system being developed need to interface with legacy systems?
Systems need to run on local and wide-area networks (example networks shown in the next two slides)
Systems utilize Internet links and resources
Scalability is affected by network limitations and constraints
Many applications require substantial desktop computing power and resources
Security issues usually are less complex than with web-based systems
ISt 603 - Chapter 7
7
7
A Local Area Network (LAN) Scheme
ISt 603 - Chapter 7
8
https://www.conceptdraw.com/How-To-Guide/local-area-network
A Wide Area Network (WAN) Scheme
ISt 603 - Chapter 7
9
https://www.conceptdraw.com/examples/wan-diagram
Traditional development considerations
Development main paths:
In-house development
Purchase of software package with possible modification
Use of outside consultants
ISt 603 - Chapter 7
10
10
Web-Based Systems Development
Web-based development considerations
Systems are developed and delivered on an Internet-based framework
Internet-based development treats the web as the platform
Web-based systems are easily scalable and can run on multiple hardware environments
Web-based systems are often considered as a service – no one owns the software
Web-based service usually require middleware
Web-based systems require less desktop processing power
ISt 603 - Chapter 7
11
11
Web-Based Systems Development
Presentation tier
The presentation tier is the user interface and communication layer of the application, where the end user interacts with the application. Its main purpose is to display
Application tier
The application tier, also known as the logic tier or middle tier, is the heart of the application.
Data tier
The data tier, sometimes called database tier, data access tier or back-end, is where the information processed by the application is stored and managed.
ISt 603 - Chapter 7
12
12
Evolving Trends
Web 1.0
This is the Web you know and are familiar with
Vast majority of users simply act as consumers of content – created by someone else
Web 2.0
This is Web as a platform where software applications are built as opposed to upon the desktop
Enables users to participate in content creation (for example social media), to collaborate, interact, and share information
User created fresh content and profile data are being sold by businesses and internet has become a massive app store
ISt 603 - Chapter 7
13
13
Evolving Trends
Web 3.0
Initially visualized as a web where machines would process content in a humanlike way – a “Global Brain”
Web 3.0 was supposed to be a semantic web where all data would be connected and understood both contextually and conceptually
Was impossible to implement – machine cannot distinguish between a jaguar (the animal) and a Jaguar (the car)
There is still hope that original vision for Web 3.0 will materialize
ISt 603 - Chapter 7
14
14
Evolving Trends
Cloud computing
The delivery of computing services including servers, storage, databases, networking, software, analytics and intelligence over the internet (the cloud)
User/Customer typically pays for the services used
The cloud service provider manages cloud services and helps customers avoid paying for operating costs
Benefits
Cost - Customers avoid paying capital expense of buying hardware, software, power supply, cooling towers and IT expertise
Global Scale – ability to scale up
ISt 603 - Chapter 7
15
15
Evolving Trends
Cloud computing
Benefits (continued)
Performance – Biggest cloud computing services run on a worldwide network of secure datacenters. Datacenters are regularly upgraded and offer the latest generation hardware and software
Security – Offers broad set of policies and technologies that strengthens users’ overall security posture
Reliability – Cloud services provider takes the responsibility for regular backup, and disaster recovery. This can help business continuity at a relatively lesser cost.
ISt 603 - Chapter 7
16
16
Evolving Trends
Mobile devices
Smartphones and tablets
Developing apps for mobile devices
Requires many new platforms
Many of today’s development tools support web-based and mobile application development at the same time
ISt 603 - Chapter 7
17
17
Software Development Options
Software development options
Develop, purchase, lease
Most important consideration is the total cost of ownership (TCO)
Other issues such as security of data plays a role when lease of IT outsourcing are considered
Make or buy decision
Make or Buy; Build or Buy
Companies can develop user applications based on commercial software packages
ISt 603 - Chapter 7
18
18
In-House Software Development Options
ISt 603 - Chapter 7
Instead of outsourcing, a company can choose to develop a system in-house, or purchase and possibly customize a commercial package.
19
19
In-House Software Development Options
Important terms
Software package: obtained from a vendor or application service provider
Software vendors: develop software for sale
Value-added reseller: enhances a commercial package with custom features/configuration
Horizontal application: used by many different types of organizations
Vertical application: handles specific business requirements
ISt 603 - Chapter 7
20
20
In-House Software Development vs Purchasing a Package
| Reasons for In-House Development | Reasons for Purchasing a Software Package |
| Satisfy unique business requirement | Lower cost – cost shared by many customers |
| Minimize changes in business procedures and policies | Requires less time to implement |
| Meet constraints of existing system | Proven reliability and performance benchmarks |
| Meet constraints of existing technology | Requires less technical development staff |
| Develop internal IT talents and capabilities | Future upgrades provided by the vendor |
| Satisfy unique security requirements | Obtain input from other companies – public support groups and forum |
ISt 603 - Chapter 7
21
21
In-House Software Development Options
Customizing a software package
Purchase a basic package that vendors will customize to suit project requirements
Negotiate directly with the software vendor to make enhancements to meet project needs by paying for the changes
Purchase the package and make project-specific modifications
If modifications are made to match the company’s business processes, upgrades will also need potential modifications
ISt 603 - Chapter 7
22
22
In-House Software Development Options
Creating user applications
User application: utilizes standard business software
User interface: enables effective interaction with the application
Service desk: provides user support
ISt 603 - Chapter 7
23
23
Outsourcing
Transfer of information systems development, operation, or maintenance to an outside firm
Temporary of long-term
The growth of outsourcing
Service provider: offers outsourcing solutions
Application service provider (ASP): delivers application by charging a fee
Internet business services (IBSs): web-based support for transactions
ISt 603 - Chapter 7
24
24
Outsourcing
Outsourcing fees
Fixed fee model: uses a set fee based on a specified level of service and user support
Subscription model: variable fee based on the number of users or workstations that have access to the application
Usage model or transaction model: charges a variable fee based on volume of transactions or operations performed by the application
ISt 603 - Chapter 7
25
25
Outsourcing
Outsourcing issues and concerns
Mission-critical IT systems are outsourced if the result is cost-attractive and reliable
Overseas outsourcing can raise issues with control, culture communication, and security
Reviewing the outsourcing firm’s history and financial condition is vital
Outsourcing clients can be affected by mergers and acquisitions
Employee job security is a major concern
ISt 603 - Chapter 7
26
26
Offshoring
Global outsourcing
Shifting IT development, support, and operations to other countries
Lower bottom-line costs
Risks and concerns
Impact on the economy
Project control
Security issues
Disparate cultures
Effective communication
Current trend is to bring back previously offshored IT services and development
ISt 603 - Chapter 7
27
27
Software as a Service
Model of software deployment in which an application is hosted as a service provided to customers over the Internet
Reduces the customer’s need for software maintenance, operation, and support
Provides the functionality the customer needs, but without the associated development, infrastructure, and maintenance costs
Example of Software as a service: Office 365
ISt 603 - Chapter 7
28
The Systems Analyst’s Role
Based on current and future needs
Evaluation and selection of alternatives is a complicated process
Evaluation and selection team: systems analysts and users
Eliminates system alternatives that will not meet requirements, ranks the alternatives that are feasible, and presents the viable alternatives to management for a final decision
ISt 603 - Chapter 7
29
29
Analyzing Cost and Benefits
Financial analysis tools
Payback analysis
Determines time taken for an information system to pay for itself through reduced costs and increased benefits
Example: Suppose the company invests $200,000. This investment results is a positive cash flow of $40,000 per year
Payback period = Investment /annual cash flow = 200000/40000 => 5 years
Problems: cash flow may be difficult to estimate for software
Does not account for time value of money
ISt 603 - Chapter 7
30
30
Analyzing Cost and Benefits
Return on investment (ROI)
Percentage rate that compares the total net benefits (the return) received from a project to the total costs (the investment) of the project
ROI = (Net Profit/Investment) * 100
Problem: IT project may not be linked to ‘profit’
Estimated savings can be considered as profit
Net present value (NPV)
Total value of benefits minus the total costs
ISt 603 - Chapter 7
31
31
Analyzing Cost and Benefits
Net present value (NPV)
Total value of benefits minus the total costs
where: Rt = net cash inflow-outflows during a single period t
i= discount rate or return that could be earned in alternative investments
t = number of time periods
ISt 603 - Chapter 7
32
| n | Rt | ||
| NPV = | ∑ | ||
| i=0 | (1 + i)t |
32
Analyzing Cost and Benefits
Cost-benefit analysis checklist
List each development strategy considered
Identify all costs and benefits
Consider future growth and need for scalability
Include support costs for hardware and software
Analyze various software licensing options
Apply financial analysis tools to each alternative
Study the results and prepare a report
ISt 603 - Chapter 7
33
33
The Software Acquisition Process
Step 1: evaluate the information system requirements
Identify key features
Consider network and Web-related issues
Estimate volume and future growth
ISt 603 - Chapter 7
34
| Current Level | Future Growth (based on existing procedures) | Future Growth (assuming new website is operational) | |
| Customers | 36,500 | 40,150 | 63.875 |
| Daily Orders | 1,435 | 1,579 | 2,811 |
| Daily Order Lines | 7,715 | 7,893 | 12,556 |
| Sales Rep | 29 | 32 | 12 |
| Order Processing Support Staff | 2 | 4 | 3 |
| Products | 600 | 650 | 900 |
34
The Software Acquisition Process
Software and hardware need to be able to handle growth projection
Specify hardware, software, or personnel constraints
Prepare a request for proposal or quotation
Describes the company, lists IT services or products needed, and specifies features required
Unweighted Evaluation Model for a Network Project
ISt 603 - Chapter 7
35
| Rate each vendor on a scale from 1 (low) to 10 (high), then add vendor scores to calculate total points | |||
| Vendor A | Vendor B | Vendor C | |
| Price | 6 | 5 | 9 |
| Completion Date | 2 | 5 | 8 |
| Layout/Design | 8 | 8 | 5 |
| References | 10 | 6 | 3 |
| Total Points | 26 | 24 | 25 |
35
The Software Acquisition Process
Weighted Evaluation Model for a Network Project. Multiply the vendor’s score by the weight factor. Add vendor score to calculate total points.
Vendor A is at the top in unweighted model
Vendor C is at the top in the weighted model
ISt 603 - Chapter 7
36
| Weight Factor | Vendor A | Vendor B | Vendor C | |
| Price | 25 | 6 * 25 = 150 | 5 * 25 = 125 | 9 * 25 = 225 |
| Completion Date | 25 | 2 * 25 = 100 | 5 * 25 = 125 | 8 * 25 = 200 |
| Layout/Design | 35 | 8 * 35 = 280 | 8 * 35 = 280 | 5 * 35 = 175 |
| References | 15 | 10 *15 = 150 | 6 * 15 = 90 | 3 * 15 = 45 |
| Total Points | 100 | 630 | 620 | 645 |
36
The Software Acquisition Process
Step 2: identify potential vendors or outsourcing options
Internet
Consulting firm
Online forums
ISt 603 - Chapter 7
37
37
The Software Acquisition Process
Step 3: evaluate the alternatives
Existing users
Application testing
Benchmarking
Measures the time a package takes to process a certain number of transactions
ISt 603 - Chapter 7
38
38
The Software Acquisition Process
Step 4: perform cost-benefit analysis
Identify and calculate total cost of ownership (TCO) for each option being considered
Study conditions of use that come along with the software license
If a software package is purchased, consider a supplemental maintenance agreement
ISt 603 - Chapter 7
39
39
The Software Acquisition Process
Step 5: prepare a recommendation
Evaluate and describe alternatives along with:
Costs
Benefits
Advantages
Disadvantages
Submit a formal system requirements document and deliver a presentation
ISt 603 - Chapter 7
40
40
Completion of Systems Analysis Tasks
System requirements document
Contains the requirements for the new system
Describes the alternatives considered
Makes a specific recommendation to management
Similar to a contract: identifies items that system developers must deliver to users
Format and organize the systems document: easy to read and use
ISt 603 - Chapter 7
41
41
Completion of Systems Analysis Tasks
Presentation to management
Suggestions for effective presentations
Start with a brief overview
Summarize the primary viable alternatives
Explain why the evaluation and selection team chose the recommended alternative
Allow time for discussion
Obtain a final decision from management or agree on a timetable for the next step in the process
ISt 603 - Chapter 7
42
42
Completion of Systems Analysis Tasks
Depending on management’s decision, a systems analyst will do one of the following:
Implement an outsourcing alternative
Develop an in-house system
Purchase or customize a software package
Perform additional systems analysis work
Stop all further work
ISt 603 - Chapter 7
43
43
Transition to Systems Design
Preparing for systems design
Systems design requires accurate documentation
Provide detailed specifications for output, input, data, processes, and other requirements
Logical and physical design
Logical design: defines what must take place
Physical design: describes the actual process of entering, verifying, and storing data
Logical and physical designs are closely related
ISt 603 - Chapter 7
44
44
Summary
Traditional systems
Must function in various hardware and software environments, be compatible with legacy systems, and operate within the constraints of company networks and desktop computing capability
Internet-based systems
Treat the web as the platform, rather than just a communication channel
ISt 603 - Chapter 7
45
Summary
Systems analysts must consider web-based development environments and various outsourcing options
Web 2.0 is fueling the expansion of information sharing, user collaboration, and social networking applications
If a company handles its own software needs, it can create in-house systems or purchase commercial packages
ISt 603 - Chapter 7
46
46
Summary
Existing commercial software packages can be an attractive alternative
SaaS is a model of software deployment in which an application is hosted as a service provided to customers over the Internet
Offshoring, also known as offshore outsourcing or global outsourcing, refers to the practice of shifting IT development, support, and operations to other countries
ISt 603 - Chapter 7
47
47
Summary
The systems analyst’s role in the software development process depends on the specific development strategy
The most important factor in choosing a development strategy is TCO
The process of acquiring software involves a series of steps
The system requirements document is the end product of the analysis phase
ISt 603 - Chapter 7
48
48