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