Lecture_Software_Part2_Nov 7.ppt

Download Report

Transcript Lecture_Software_Part2_Nov 7.ppt

Chapter 4 - Software – Part 2
Dr. V.T. Raja
Oregon State University
Outline


Importance of Software
Evolution of Software





System Software and Application Software
Advantages/Disadvantages of Open Source Software
Programming Languages and Language Translators
Java
Other Trends – (see Software – Part 3)
Introduction

Why study about software?




To make use of hardware effectively
To improve productivity of individual employees
To facilitate, sustain or improve competitive advantage of
organization; To help meet strategic goals of organization
To be aware of and to understand business implications of:



Current software developments/trends
Software crisis situations (e.g., Y2K, Eurodollar)
Relatively higher investments in software (compared to
investments in hardware) by businesses in the United States



1960-70: Hardware costs: 75%; Software costs: 25%
1990-00: Hardware costs: 25%; Software costs: 75%
Why this change?
Why higher investments in software?



Advances in hardware technology have drastically
reduced hardware costs
Software has become increasingly complex and error
prone (hence the need for Open Source Software (OSS)
Community)
Testing software is difficult and costly.


High demand for skilled IS/CS professionals (hence the need for
outsourcing IS/CS professionals from other countries)
Employees from every functional area often are involved in
testing software products for bugs because they are experts in
the area and can spot functional area specific bugs even more
quickly than IT programmers can.
System Software and
Application Software

Examples of System Software:


Operating Systems (e.g., Windows, Linux,
Unix, Mac OS X), and Utility Programs
Examples of Application Software:

Word Processors, Spreadsheet Programs,
Database Programs, PowerPoint etc.
Operating Systems (OS)






Guest Lecture on Software: Dr. Reitsma
http://classes.bus.oregonstate.edu/spring07/ba471/reitsma/software.html
Example functions of an OS?
Examples of OS?
Programming Languages (Compiled vs.
Interpreted)
Proprietary vs. Open Source Software
Advantages of Open Source Software

Less Expensive



E-Trade switched from Sun 4500 Servers
running Solaris (a version of Unix) to Linux
on IBM servers with Intel processors
$250K for one Sun 4500 server that can
handle up to 400 simultaneous users vs.
$12000 for 3 IBM servers, each of which can
handle up to 180 simultaneous users.
Saved $13 million annually
Advantages of Open Source Software

Access to Source Code


Easier to customize and integrate with existing
business applications (especially with CRM apps. run
by MySAP, Web server run by Apache, and database
run by MySQL)
Reliable


Works on different hardware platforms (desktops,
servers, mainframes, supercomputers)
Penetration in desktop market? Sun’s Star Office;
Google’s Web based Office Software Suite
Disadvantages of Open Source Software


Customers modify code – Linux support
technicians fix problems without being aware of
why customers modified code and which parts of
the code were modified.
More expenditure on support/maintenance


Microsoft sends an army of technicians to support its
Fortune 1000 customers for no fee
No control over the Open Source Community
(Decentralized/Unregulated)
Disadvantages of Open Source Software

Exposes customers to legal costs


Lack of knowledge in OSS (Microsoft shop)


Not all OSS are GPL
Easier to migrate from Unix to Linux as opposed to
migrating from Windows
Disappearance of mission critical features in
future upgrades

Developers determined these features lacked value
Evolution of software

Generations of software






First Generation: Machine language
Second Generation: Assembly language
Third Generation: High-level languages
Fourth Generation: Outcome-oriented languages
Fifth Generation: Natural languages
Visual, Markup, and Object Oriented languages
Evolution of software



Machine languages: Used only bits (0;1)
Assembly language: Symbols used (e.g.,Add/Subtract)
High-level language: Used English-like sentences;
Instructed the computer the desired outcome, and on how
to achieve the desired outcome.

Outcome-oriented language: Used English-like
sentences: Instructed the computer - what was the desired
outcome; Does not necessarily specify the detailed
procedures needed for achieving the result.

Natural language: AI-based applications.
Language Translators



Translate high-level language programs into machine
language so that they can be executed by the computer.
Program statements in the high-level language are called
source code, and the machine language version is called
object code.
Compiler: Translates entire high-level language program
into machine language. (Translation saved and executed).
Interpreter: Translates each source code statement one at a
time into machine code; Passes to CPU for execution.
(Need to be translated during each execution).
See Dr. Reitsma’s Guest Lecture Notes for examples of
compiled and interpreted languages.
Java

Both Compiled and Interpreted (Java Virtual Machines – JVM)

Benefits of Java:






Platform independent; Microprocessor independent
Suitable for creating applications that can run on both internal and
external networks
Can run on cell phones, automobiles, music players, game machines,
cable TV etc.
Interactive capabilities for Web pages (Java applets)
Robust (can handle text, data, graphics, sound, video – all within one
program if needed)
Disadvantages


Runs slower than native programs written for a particular OS
Needs to be standardized further. Microsoft JVM versus Sun JVM.