1 CIS 551 What is software? • Processor needs instructions that tell it what to do – these instructions are called software • When NOT in use, almost all software stored on mass storage devices (e.g., a floppy or hard disk) How does it get there? • When IN use, software stored in processor’s memory (in RAM)
56
Embed
1 CIS 551 What is software? Processor needs instructions that tell it what to do –these instructions are called software When NOT in use, almost all software.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
CIS 551
What is software?
• Processor needs instructions that tell it what to do– these instructions are called software
• When NOT in use, almost all software stored on mass storage devices (e.g., a floppy or hard disk) How does it get there?
• When IN use, software stored in processor’s memory (in RAM)
2
CIS 551
Software is costly
• Businesses typically spend more on software than on hardware
• This trend is too easy to miss
3
CIS 551
SOFTWARESOFTWARE
DETAILED INSTRUCTIONS TO CONTROL COMPUTER OPERATION
• PROGRAM: SET OF INSTRUCTIONS TO THE COMPUTER• STORED: PROGRAM MUST BE IN PRIMARY STORAGE• SYSTEM SOFTWARE: MANAGES COMPUTER
RESOURCES• APPLICATION SOFTWARE: SPECIFIC BUSINESS
• High-level languages (3rd)– Ada, BASIC, C, C++, COBOL, FORTRAN,
LISP, Pascal, PL/1, etc.– Java, Visual BASIC, C#, etc.
• Fourth- and fifth-generation– SQL, Prolog, query languages, etc.
17
CIS 551
18
CIS 551
GENERATIONS OF PROGRAMMING LANGUAGES
GENERATIONS OF PROGRAMMING LANGUAGES
1st. Since 1940s. MACHINE LANGUAGE: binary code
2nd. Since early ’50s. ASSEMBLY LANGUAGE: mnemonics for numeric code
3rd. Since mid ‘50s. HIGH-LEVEL LANGUAGES
4th. Since late ‘70s. MODERN APPLICATION PACKAGES
*
19
CIS 551
• Lower level– more control over how program works
– can be more efficient
• Higher level– easier and faster to develop and debug
programs
• Clear trend to higher levels (3 or up)
Which level is for me?
20
CIS 551
21
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
• CAN BE EMPLOYED BY END USERS
• NONPROCEDURAL
• CAN DEVELOP APPLICATIONS QUICKLY
• NATURAL LANGUAGES
• SIX CATEGORIES
*
22
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
1. QUERY LANGUAGES:
• RAPIDLY RETRIEVE DATA
• INTERACTIVE
• ON-LINE
• SUPPORT SPECIAL REQUESTS FOR DATA FROM RELATIONAL DATABASES
*
23
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
2. REPORT GENERATORS:• CREATE CUSTOMIZED REPORTS• WIDE RANGE OF FORMATS
3. GRAPHICS LANGUAGES:• CAN MANIPULATE DRAWINGS,
GRAPHS, PHOTOS, VIDEOS• PRESENTATION MANAGERS
*
24
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
4. APPLICATION GENERATORS:
• USER SPECIFIES COMPUTER NEEDS
• GENERATOR CREATES LOGIC AND CODE FOR APPLICATION
• GREATLY REDUCES DEVELOPMENT TIME
*
25
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
5. VERY HIGH-LEVEL PROGRAMMING LANGUAGES:
• PROFESSIONAL PROGRAMMER PRODUCTIVITY TOOL
• USES FEWER INSTRUCTIONS
• REDUCES DEVELOPMENT TIME
*
26
CIS 551
FOURTH GENERATION LANGUAGES (4GL)FOURTH GENERATION LANGUAGES (4GL)
6. SOFTWARE PACKAGE: COMMERCIALLY AVAILABLE SET OF PROGRAMS...
• WORD PROCESSING• SPREADSHEETS• DATA MANAGEMENT• PRESENTATION MANAGEMENT
INTEGRATED SOFTWARE PACKAGES NOW COMBINE THESE TO SIMPLIFY
LEARNING AND USE
*
27
CIS 551
Types of software
• Applications software» satisfies specific user need
• Systems software– Operating system
» makes hardware more usable
– Language translators» translates human readable to machine
language
– Utilities
28
CIS 551
Operating system functions (1/2)
• Manage resources– memory
» implement “virtual memory” which allows a computer to pretend that it has more memory than it actually does (see next slide)
29
CIS 551
30
CIS 551
Task 4
Example: Memory management
Heavy line–actual RAM, thin–perceived memory, dotted–one program
Single space Partitions Virtual memory
Task 3
Task 2
Task 1
Task 1
Task 3
Task 2
Task 1
Task 6
Task 5
Task 7
31
CIS 551
Operating system functions (2/2)
• Coordinator for application programs– Manage resources
» memory» devices
– Coordinate activities
– Manage files
• User interface (GUI)
32
CIS 551
Why do operating systems matter?
• They provide different features– e.g., memory management, GUI
• Programs are written for an O/S– choose applications, then choose O/S
• O/S used to be proprietary– choice of O/S dictated choice of hardware
33
CIS 551
Trends in operating systems
• Multi-programming• Multi-processing• Virtual memory• Interprocess communications• More features
– new kinds of I/O supported– better integration of programs
• Require more powerful hardware• Cathedrals vs. Bazaars…
34
CIS 551
Types of user interfaces
• Command-oriented interfaces – prompt the user to type in a command that is translated into
an instruction for the program to follow
• Menu-driven interfaces – offer a list of choices or options, called a menu, as a way of
letting a user choose from several different commands or functions
– Graphical User Interfaces (GUI’s) – use pictures and graphic symbols to represent commands,
choices or actions
• Natural Language interfaces – allow the user to input simple English statements that are
translated into commands by the program.
35
CIS 551
Object Linking & Embedding
Object Linking & Embedding (OLE) allows user to copy text/graphics from one document to another or to embed text/graphics from one program into another program/document Server Application supplies objects user places in
other applications Client application accepts objects from other
applications Copy copies data from one application & places it
in another Link is used when user wants changes made to
the server object to appear automatically in all linked client objects
Embed is used when user wants an object to become part of the client document
36
CIS 551
OBJECT-ORIENTED PROGRAMMING
OBJECT-ORIENTED PROGRAMMING
• COMBINES DATA & PROCEDURES INTO A SINGLE OBJECT
• PROGRAM SENDS MESSAGE TO OBJECT TO PERFORM EMBEDDED PROCEDURE
• OBJECT’S DATA ENCAPSULATED FROM REST OF SYSTEM
• CREATES REUSABLE CODE• REDUCES TIME AND COST OF WRITING
SOFTWARE
*
37
CIS 551
OBJECT-ORIENTED PROGRAMMING
OBJECT-ORIENTED PROGRAMMING
VISUAL PROGRAMMING: SELECT AND ARRANGE OBJECTS RATHER THAN WRITE CODE
CLASS: ALL OBJECTS OF A CLASS HAVE ALL FEATURES OF THAT CLASS
INHERITANCE: SPECIFIC CLASS RECEIVES FEATURES OF A MORE GENERAL CLASS
OVERRIDE: SUBCLASS MAY OVEERRIDE INHERITED METHOD (e.g.: Printout of an HOURLY worker Pay Check
may differ from that of a WEEKLY worker
*
38
CIS 551
OBJECT-ORIENTED PROGRAMMING
OBJECT-ORIENTED PROGRAMMING
JAVA: Sun Microsystems OBJECT-ORIENTED PROGRAMMING LANGUAGE
• APPLET: TINY PROGRAM TO EXECUTE SMALL FUNCTION
• APPLETS DOWNLOADED FROM NETWORK• RUN ON ANY COMPUTER & OPERATING SYSTEM• RESULT SAVED ON NETWORK, NOT ON PC
• ONLY NETWORK VERSION OF SOFTWARE NEEDS
UPGRADE
*
39
CIS 551
JAVA
• Write Once Run Anywhere (!?)
• Object Oriented Programming Language
• Using applets allows:– elimination of need for large & expensive
hardware
– elimination of lots of storage and maintenance overhead
40
CIS 551
JAVA (what we will still see...)
• It IS neither entirely compiled nor entirely interpreted (BYTECODE)
• It IS comparatively easy to learn• It IS capturing everyone’s attention
• Will it be (a) standard?• Will it be secure?• Will it be fast enough? WHAT
ABOUT C#?
41
CIS 551
.NET (dot Net)
• .NET is Microsoft's next-generation Visual Studio development environment, yet another new programming language (C#), and a new data-exchange and messaging framework, based on XML and SOAP.
• While java promises platform portability, .NET promises language portability.
42
CIS 551
Multi-programming, tasking…
• Multiprogramming: groups of programs take turns
• Multitasking: single user, numerous uses
• Time sharing: fixed-time multiprogramming
• Multiprocessing: parallel, multiple processors.
43
CIS 551
44
CIS 551
MULTIPROGRAMMINGMULTIPROGRAMMINGO
PE
RA
TIN
G S
YS
TE
MO
PE
RA
TIN
G S
YS
TE
M
UNUSED MEMORYUNUSED MEMORY
PROGRAM 1PROGRAM 1
TRADITIONAL SINGLE-TRADITIONAL SINGLE-PROGRAM SYSTEMPROGRAM SYSTEM
45
CIS 551
MULTIPROGRAMMINGMULTIPROGRAMMINGO
PE
RA
TIN
G S
YS
TE
MO
PE
RA
TIN
G S
YS
TE
M
UNUSED MEMORYUNUSED MEMORY OP
ER
AT
ING
SY
ST
EM
OP
ER
AT
ING
SY
ST
EM
UNUSED MEMORYUNUSED MEMORY
PROGRAM 1PROGRAM 1
PROGRAM 1PROGRAM 1
PROGRAM 2PROGRAM 2
PROGRAM 3PROGRAM 3
TRADITIONAL SINGLE-TRADITIONAL SINGLE-PROGRAM SYSTEMPROGRAM SYSTEM
METHOD OF HANDLING SEVERAL PROGRAMS IN PRIMARY STORAGE:
• PROGRAM DIVIDED INTO– FIXED LENGTH PORTIONS (PAGES) OR
– VARIABLE LENGTH (SEGMENTS)
• CURRENT PORTIONS RESIDE IN PRIMARY STORAGE
• PORTIONS SWAPPED OUT WHEN DONE
*
48
CIS 551
TIME SHARINGTIME SHARING
MANY USERS SHARE LARGE CPU:
• TIME IN CPU DIVIDED INTO SLICES (e.g.: 2 MILLISECONDS)
• EACH USER HAS ACCESS TO CPU DURING SLICE
• SINCE CPU IS FAST, CAN DO MUCH DURING TIME SLICE
• USER’S JOB SWAPPED OUT AT END OF SLICE
*
49
CIS 551
MULTIPROCESSINGMULTIPROCESSING
• TWO OR MORE PARALLEL PROCESSORS IN SYSTEM
• PROGRAM CAN BE DIVIDED TO BE PROCESSED BY MULTIPLE CPUs
• CAN PROCESS LARGE PROGRAMS MORE RAPIDLY
*
50
CIS 551
Applications
51
CIS 551
Groupware
52
CIS 551
ASP – application service providers
53
CIS 551
Web Services
• A group of closely related, emerging technologies that describe a service-oriented, component-based application architecture that is based on an open, Internet-centric infrastructure. Web services represent a model in which discrete tasks within e-business processes are distributed widely throughout a value net.
• Not a specific technology, but rather a group of established and emerging communication protocols that include HTTP, XMLXML, Simple Object Application Protocol (SOAP), Universal Description Discovery and Integration (UDDI), and Web Services Description Language (WSDL). A web service can be developed on any computer platform and in any development on any computer platform and in any development environmentenvironment, as long as it can communicate with other web services using these common protocols.
54
CIS 551
Web Services
The Generic Web Service Architecture
55
CIS 551
Web Services
• Although ASPs and web services both implement the concept of "software as a service," the similarities end there. ASPs deliver entire applications from a central hosting location, while web services are distributed components. ASPs form a closed "black box," while web services are inherently extensible. ASPs are as much business model as technology solution; web services may enable new forms of business models, but are fundamentally a technology solution.
• IBM and Microsoft have taken the early leadership mantle in establishing the web services stack. Hewlett-Packard, an early proponent of a proprietary services model, now is reorienting towards web services (NetAction). Oracle, Sun (ONE), and a host of smaller companies (e.g. BEA, Bowstreet, and others) have also put hats into the ring.
56
CIS 551
Summary
• Many features of a computer determine how fast it actually is
• Computers are very fast and are getting faster for the foreseeable future
• An operating system can make it easier to create more powerful and easy-to-use programs