Transcript Slide 1

Chapter 4

Computer Software Slide 1

Well, Sort-of

Slide 2

Chapter 4

Computer Software

What is Software??

 Various kinds of programs used to operate computers and related devices

How did it come about??

 The first software program was actually written about 1833 by Ada Augusta Lovelace (Lord Byron’s Daughter)  We can skip forward to programs, however

computer

Slide 3

Chapter 4

Computer Software 

Programming Languages

First Generation Languages (Machine Language)

 Suppose that I wanted to add two numbers together, for example 2 + 3 • First, we would have to move the values into two registers in the CPU’s Internal Storage R1 R2 2 3 • Next I would have the ALU to add the contents of the registers and store the result in Register 2 (maybe) R2 5

(Well, Kind of – It’s a little more involved)

Slide 4

Chapter 4

Computer Software 

Programming Languages

 

First Generation Languages (Machine Language)

We Actually have to do a few things. • First we have to find the operating code, or number) to move the data (let’s assume the command is number 28)

op code

(by • Of course, we have know the identifying number for each of the registers (assume R1 = 12; R2 = 13) • Finally, we have to find the

op code

(Assume it is 37). • The code I enter might be: for addition 28 2 12; 28 3 13; 37 12 13 13;

(Well, Kind of – It’s a little more involved)

Slide 5

Chapter 4

Computer Software 

Programming Languages

 

First Generation Languages (Machine Language)

Let’s not forget that the computer is just a series of light-switches (binary). Therefore we need to convert our decimal values to binary: 2 = 000000000000010 (on 16-bits) 3 = 000000000000011 (on 16-bits) 12 = 00001100 (on 8-bits) 13 = 00001101 (on 8-bits) 28 = 00011100 (on 8-bits) 37 = 00100101 (on 8-bits) Therefore, We would enter the commands: 00011100 000000000000010 00001100; 00011100 000000000000011 00001101; 00100101 00001100 00001101 00001101;

Slide 6

Chapter 4

Computer Software 

Programming Languages

Second Generation Languages (Assembly – c1948)

 The advancement over machine level languages was that it was

mnemonic

(assisting or intended to assist the memory) • We did not need to know the specific register addresses • We did not need to know the op codes • For the previous example, the code we enter might be:  MOV 2 R1; MOV 3 R2; ADD R1 R2 R2; An

Assembler

would then transfer the commands into a

machine level language

Slide 7

Chapter 4

Computer Software 

Programming Languages

Third Generation Languages (mid 1950’s)

 The advancement over assembly level languages was that programmers

did not

need to know either the op codes nor the registers used • Specific locations in RAM were referred to by a user defined name • The compiler or interpreter, as well as the operating system, kept track of the specific locations • For the previous example, the code we enter might be: X = 2 + 3 (FORTRAN)  The code would then be rewritten as either an

assembly language code

or directly to a

machine level language

Slide 8

Chapter 4

Computer Software 

Programming Languages

 

Third Generation Languages (mid 1950’s)

In the above example ‘X’ is a specific location in RAM, although we don’t have to know where it is • It is usually referred to as a

variable

• Meaning that we can change the contents of the location as we wish  • Although it can be a

constant

• Meaning that once we set its value, it

can not

changed be Either way, the address is assigned by the

operating system

at

run time

and managed by the

compiled program

(i.e., the machine-level program)

Slide 9

Chapter 4

Computer Software  

Programming Languages Third Generation Languages (mid 1950’s)

 Third generation languages are

Procedural

in nature • If, for example, we want to find the average age of a class, we need to know the procedures involved • We need to add every persons age in a class together • We then need to divide the sum of every persons age by the number of people in the class • The result is the average age of the class  Third generation languages are also known as structured programming

Slide 10

Chapter 4

Computer Software  

Programming Languages Third Generation Languages (mid 1950’s)

 Third generation languages are also referred to as ‘High-level Languages’

languages) (so are 4 th generation

 Third generation languages (as well as 4 th generation languages) may be either

interpreted

or

translated

languages (although they are generally translated)

What’s the difference??

Slide 11

Chapter 4

Computer Software  

Programming Languages Third Generation Languages (mid 1950’s)

 Think of a person who works at the United Nations  As soon as these people get a phrase of what a person is talking about, they put it into the language which they are interpreting  At the end of the day, they might not even know what the speech was about

(That is not their job)

Slide 12

Chapter 4

Computer Software  

Programming Languages Third Generation Languages (mid 1950’s)

 Now think of someone whose job is to translate a book from one language to another • S/he will read the book many times • S/he will try and find the best way to say what the author was trying to say

(That IS their job)

What does this have to do with computers??

Slide 13

Chapter 4

Computer Software 

Programming Languages

 

Third Generation Languages (mid 1950’s)

There are two classes of program languages • Those that are interpreted • BASIC started as an interpreted language • Those that are translated or compiled • The compiler makes a few ‘passes’ through the code • It first checks syntax • It next checks simple logic • It sets-up variable tables • The compiler creates a separate executable (.exe) or command file (.com) • These file are

machine language

files

Slide 14

Chapter 4

Computer Software  

Programming Languages Third Generation Languages (mid 1950’s)

 Third generation languages are also referred to as ‘High-level Languages’

languages) (so are 4 th generation

• If, for example, we want to find the average age of a class, we need to know the procedures involved • We need to add every persons age in a class together • We then need to divide the sum of every persons age by the number of people in the class • The result is the average age of the class

Slide 15

Chapter 4

Computer Software  

Programming Languages Fourth Generation Languages (4GLs)

 4GLs are non-procedural languages • If, for example, we want to find the average age of a class, we need to enter the command

Get Class Average

(or something similar)

• The procedures are built-into the commands • These end result is still the creation of

machine language

files

Slide 16

Chapter 4

Computer Software  

Programming Languages Fifth Generation Languages (5GLs)

  Maybe --- Someday The intention is have speech recognition Artificial Intelligence (AI) programs that allow speech recognition • Sounds a little like a Star Trek episode

“Computer – Save the world”

Slide 17

Chapter 4

Computer Software  

Programming Languages Programming Tools

 Help programmers identify and minimize errors while they program  Provide a computer-aided programming environment •

Graphical Programming environments

: Akin to toolbars and menus •

Program Editors

: Packages for source code creation which check key words, structures as the program is typed in •

Debuggers

: a computer program that is used to test and debug other programs.

Slide 18

Chapter 4

Computer Software  

Programming Languages Computer-Aided Software Engineering (CASE)

 Allow program development through the use of system development models  • e.g.,

E

ntity

R

elationship

D

iagrams • An ERD is a model for graphically showing the contents of a database table and its relationships to other tables Once the model has been constructed, the CASE tool constructs the data dictionary and can create the DBMS code (in SQL or any other language)

Slide 19

Chapter 4

Computer Software  

Programming Languages Web Languages

 Languages for building multi-media web applications 

Hypertext Mark-up Languages (HTML)

• Page description language that creates hypertext and hypertext linkages • Hyperlinks: allows control to be given to other parts of a document or to any document on the WWW • HTML can be created from various programs (Word, Frontpage) without formal training in HTML

Slide 20

Chapter 4

Computer Software 

Programming Languages

 

Web Languages eXtesible Markup Languages (XML)

• Describes the contents of webpages by applying identifying tags (contextual labels) to the data in web documents • Its primary purpose is to facilitate the sharing of data across different information systems, particularly systems connected via the Internet • XML supports the automatic electronic exchange of business data between companies and their customers, vendors, suppliers and partners

Slide 21

Chapter 4

Computer Software 

Programming Languages

 

Web Languages Java

• OOP language • Consists of small applets that can be connected and used on any operating system • Programmers are spared the burden of having to perform manual memory management.

• Your On-line quizzes are Javascripts

Slide 22

Chapter 4

Computer Software 

Programming Languages

Web Languages

Java

• OOP language an object-oriented programming language that is simple, secure and platform independent • Consists of small applets that can be connected and used on any operating system • Programmers are spared the burden of having to perform manual memory management.

• Your On-line quizzes are Javascripts

Slide 23

Chapter 4

Computer Software  

Programming Languages Object Oriented Programming (OOP)

 Sometimes also referred to as 5GLs (???)  An object consists of data and procedures that can be performed on the data • C++ • Java • Visual Basic

Chapter 4

Computer Software 

Programming Languages

Slide 24

Chapter 4

Computer Software 

Types of Software End Users Applications Software System Software Computer Hardware System Mgt & Development General Purpose – Application Specific

Slide 25

Chapter 4

Computer Software 

Types of Software

Slide 26

Slide 27

Chapter 4

Computer Software 

Types of Software Computer Software Systems Management Programs System Software

These have already been covered

System Management Programs System Development Programs

Slide 28

Chapter 4

Computer Software 

System Software

 Programs that manage the hardware, software, network, and data resources of computer systems

Operating Systems

• An integrated system of programs that manages the operations of the CPU, controls I/O, storage resources and provides various support services as the computer executes applications     UNIX Windows/Vista Linux Mac OS X

Chapter 4

Computer Software 

System Software Operating System Interfaces

The part of the OS that allows communication with it to load programs, access files, and accomplish other tasks Slide 29

Types:

• Command-Driven • Menu-Driven • GUI

Slide 30

Chapter 4

Computer Software 

System Software Operating System Functions

Resource Management

• Programs to manage the hardware and networking resources of a computer system, including its CPU, memory, secondary storage devices, telecommunications processors, and input/output peripherals  Memory management programs keep track of where data and programs are stored 

Swapping

of programs of programs between RAM and secondary storage  Swapping allows for

virtual memory

whereby programs can process more than RAM would normally allow

Slide 31

Chapter 4

Computer Software 

System Software Operating System Functions

File Management

• Programs to control the creation, deletion and access of data and programs  Keeping track of the physical location of files on secondary storage  Maintaining directories of information about the location and characteristics of files stored on secondary storage

Slide 32

Chapter 4

Computer Software 

System Software Operating System Functions

Task Management

• Managing the accomplishment of several programs  Your text applies that multitasking and multi programming are the same (

NOT

): 

Multitasking

: performing many applications at what

appears

to be the same time (not possible if you have you have only 1 CPU) 

Multiprocessing

: performing many applications at the same time (assumes that you have more than 1 CPU – but be careful: 2 processors does not imply you can do twice the work of 1)

Chapter 4

Computer Software 

System Software Operating System Functions

Utilities: Consider those available in XP:

Slide 33

Slide 34

Chapter 4

Computer Software 

System Software Operating System Functions

Utilities: Consider those available in XP:

Security Monitors

: Monitor and control computer usage, checking for unauthorized usage 

Character Map

: Preferred Character set 

Disk Clean-up

: Archiving/deleting infrequently used programs/data 

Disk defragmenter

: Putting fragmented files back together so they con be collected faster 

Performance Monitors:

Monitor and adjust the performance of computer systems to keep them running efficiently

Slide 35

Chapter 4

Computer Software 

System Software Operating System Functions

Other Systems Software

Middleware

: software that helps diverse software applications and networked computer systems exchange data and work together more efficiently • Web Servers • Enterprise Application Integration (EAI) • Application Servers: Software which provides an interface between an operating system and application programs of users

Slide 36

Chapter 4

Computer Software

Operating Systems

(A quick Aside)

 Linux   created by Linus Torvalds in 1991 includes system utilities & libraries from the GNU Project  • The founding goal of the GNU project was, in the words of its initial announcement, to develop "a sufficient body of free software [...] to get along without any software that is not free." Open Source Hardware: • Free • Stable • Easily fixed if bugs appear

Slide 37

Chapter 4

Computer Software

Operating Systems

 Linux

Why did Linux become popular??

 Low-cost alternative in sagging economy  Fear of Microsoft gaining a stranglehold on corporate customers  Intel loosened its relationship with Microsoft  IBM made an effort to be Linux-compatible

Slide 38

Chapter 4

Computer Software

Operating Systems

 Linux

How is Linux doing??

 Linux runs almost 15% of all servers  Growing at 23% per year  Over 10% of IBM mainframe sales run Linux  Only 1% of PCs use Linux but 30% of CIOs were considering moving their companies’ PCs to Linux

Slide 39

Chapter 4

Computer Software 

Types of Software

programs that perform common information processing jobs for end users

Application Software Computer Software Applications Software:

perform information processing tasks for end users

General Purpose Applications Application Specific Programs

support specific applications of end users in business and other fields

Slide 40

Chapter 4

Computer Software 

General-Purpose Application Software

Software Suites

: Several programs bundled together • Cheaper than cost of all individual programs • Use similar GUIs (Icons, menus, etc) • • Share similar tools (spell checkers, wizards, hot keys)

Problem

: Bloatware

Chapter 4

Computer Software  

General-Purpose Application Software Integrated Packages

the features of several programs in one software package : Provides some of • Omit some features found in software suites • Cheaper • Requires less storage 

Web Browsers

: Software interface used to point and click through the hyperlinked resources of the Internet • MS Explorer • Netscape navigator (defunct) • Mozilla Foxfire (freeware) Slide 41

Chapter 4

Computer Software  

General-Purpose Application Software Electronic Mail

: software used to send and receive electronic messages and file attachments via the Internet, intranets or extranets • MS Outlook, Yahoo!Mail, Gmail 

Instant Messaging

: software used to send and receive electronic messages instantly to facilitate real time communication and collaboration • AOL Instant Messenger • MSN Messenger • Yahoo! Messenger Slide 42

Chapter 4

Computer Software 

General-Purpose Application Software

Word Processing

: software that supports the creation, editing, revision and printing of documents • Include features such as spellchecking, thesaurus, and grammar correction 

Desktop Publication

: software that supports the production of materials that look professionally published • Professional quality publications which integrate text and graphics Slide 43

Chapter 4

Computer Software 

General-Purpose Application Software

Electronic Spreadsheets

: Software that supports the development of electronic worksheets consisting of rows and columns used for business analysis, planning and modeling 

Presentation Graphics

: Software that helps convert numeric data into graphics displays and prepare multimedia presentations including graphics, photos, animation, and video clips Slide 44

Chapter 4

Computer Software   

General-Purpose Application Software Video Software

: Software that supports the development of full video, usually along with text and audio • It usually includes the ability to import and export video, cut and paste sections of a video clip, add special effects and transitions

Personal Information Manager (PIM)

: Software for end user productivity and collaboration • Organizes data and retrieves information in a variety of forms (e.g., calendar) and allows distribution to others Slide 45

Slide 46

Chapter 4

Computer Software  

General-Purpose Application Software Groupware

: Software that helps workgroups and teams work together to accomplish group assignments • Also called collaborative software • Relies on the Internet, Intranets and Extranets on a global scale by

virtual teams

located anywhere in the world • MS Word and MS Excel keep track of who made changes to the documents • Lotus Notes • Microsoft Exchange • Microsoft’s SharePoint and IBM’s Webshare allow quick creation of websites to share information

Chapter 4

Computer Software 

Software Implementation

Custom Software

: software applications that are developed within an organization for use by that organization 

Commercial Off-the-shelf (COTS) Software

: software that is developed by a software developer with the intention of selling the software in multiple copies Slide 47

Slide 48

Chapter 4

Computer Software  

Software Implementation Application Service Providers (ASP)

companies that own, operate, and : maintain application software and the computer system resources required to offer the use of the application software for a fee as a service over the Internet • Lower cost of initial investment • Lower cost of operating and maintaining software • Reduces the need for much of the IT Infrastructure and IT Personnel

Slide 49

Chapter 4

Computer Software 

Software Implementation

Software Licensing

: Purchasing the right to use specific software under the terms of the software licensing agreement • Purchasing a piece of software does NOT mean ownership; it is a license to use the software • Intended to protects the vendor’s intellectual property right • The license prohibits duplication or resale of multiple copies of the software

Chapter 4

Computer Software Slide 50