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) 39 19 19
Software is costly Businesses typically spend more on software than on hardware This trend is too easy to miss
SOFTWARE 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 APPLICATION *
SOFTWARE OPERATING SYSTEM: APPLICATION SOFTWARE OPERATING SYSTEM: SCHEDULED COMPUTER EVENTS ALLOCATES COMPUTER RESOURCES MONITORS EVENTS LANGUAGE TRANSLATORS: INTERPRETERS COMPILERS UTILITY PROGRAMS: ROUTINE OPERATIONS MANAGE DATA SYSTEM SOFTWARE HARDWARE
SOFTWARE OPERATING SYSTEM: APPLICATION SOFTWARE OPERATING SYSTEM: SCHEDULED COMPUTER EVENTS ALLOCATES COMPUTER RESOURCES MONITORS EVENTS LANGUAGE TRANSLATORS: INTERPRETERS COMPILERS UTILITY PROGRAMS: ROUTINE OPERATIONS MANAGE DATA SYSTEM SOFTWARE HARDWARE PROGRAMMING LANGUAGES: ASSEMBLY LANGUAGE; FORTRAN; COBOL; PL / 1; QBASIC; PASCAL; C; C++; “FOURTH GENERATION” LANGUAGES
HTML is not a programming language, neither is XML
A play: Scene 1 ? ! 9
What’s on that disk? … p := x + y; write(‘dfile.dat’, p); ... 10 10
Scene 2 : Act 1 … p := x + y; write(‘dfile.dat’, p); ... Machine instructions Compiler 11
Compilers vs. interpreters translates the whole program into machine language at one time will run faster Interpreter translates and executes the program one statement at a time generally easier and faster program development may be easier to debug 13
Scene 2 : Act 2 Saved to Machine instructions 13
Scene 2 : Act 3 Use the program 14
Scene 3 Machine instructions Copied to RAM Begins to execute 15
Programming Languages Specialized Fortran - Science & Engineering (1957) LISP - Artificial Intelligence (1958) COBOL - Business (1959) Generalized PL/I - developed by IBM (1964) C - developed by AT&T (1972) Teaching 10
Generations of programming languages Machine language (1st) Assembler language (2nd) 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. 11
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 *
Which level is for me? Lower level Higher 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) 12
FOURTH GENERATION LANGUAGES (4GL) CAN BE EMPLOYED BY END USERS NONPROCEDURAL CAN DEVELOP APPLICATIONS QUICKLY NATURAL LANGUAGES SIX CATEGORIES *
FOURTH GENERATION LANGUAGES (4GL) 1. QUERY LANGUAGES: RAPIDLY RETRIEVE DATA INTERACTIVE ON-LINE SUPPORT SPECIAL REQUESTS FOR DATA FROM RELATIONAL DATABASES *
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 *
FOURTH GENERATION LANGUAGES (4GL) 4. APPLICATION GENERATORS: USER SPECIFIES COMPUTER NEEDS GENERATOR CREATES LOGIC AND CODE FOR APPLICATION GREATLY REDUCES DEVELOPMENT TIME *
FOURTH GENERATION LANGUAGES (4GL) 5. VERY HIGH-LEVEL PROGRAMMING LANGUAGES: PROFESSIONAL PROGRAMMER PRODUCTIVITY TOOL USES FEWER INSTRUCTIONS REDUCES DEVELOPMENT TIME *
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 *
Types of software Applications software Systems software satisfies specific user need Systems software Operating system makes hardware more usable Language translators translates human readable to machine language Utilities 40 20 20
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) 41 21 21
Example: Memory management Heavy line–actual RAM, thin–perceived memory, dotted–one program Single space Partitions Virtual memory Task 1 Task 1 Task 4 Task 5 Task 2 Task 2 Task 1 Task 6 Task 3 Task 3 Task 7 42 22 22
Operating system functions (2/2) Coordinator for application programs Manage resources memory devices Coordinate activities Manage files User interface (GUI) 43 23 23
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 46 25 25
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… 47 26 26
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. 45 24 24
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
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 *
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 *
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 *
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
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#?
.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.
Multi-programming, tasking… Multiprogramming: groups of programs take turns Multitasking: single user, numerous uses Time sharing: fixed-time multiprogramming Multiprocessing: parallel, multiple processors.
TRADITIONAL SINGLE-PROGRAM SYSTEM MULTIPROGRAMMING TRADITIONAL SINGLE-PROGRAM SYSTEM OPERATING SYSTEM UNUSED MEMORY PROGRAM 1
TRADITIONAL SINGLE-PROGRAM SYSTEM MULTIPROGRAMMING ENVIRONMENT OPERATING SYSTEM UNUSED MEMORY OPERATING SYSTEM UNUSED MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 1 PROGRAM 3
MULTITASKING MULTIPROGRAMMING ON A SINGLE-USER SYSTEM SUCH AS A MICROCOMPUTER *
VIRTUAL STORAGE 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 *
TIME 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 *
MULTIPROCESSING TWO OR MORE PARALLEL PROCESSORS IN SYSTEM PROGRAM CAN BE DIVIDED TO BE PROCESSED BY MULTIPLE CPUs CAN PROCESS LARGE PROGRAMS MORE RAPIDLY *
Applications
Groupware
ASP – application service providers
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, XML, 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 environment, as long as it can communicate with other web services using these common protocols.
The Generic Web Service Architecture Web Services The Generic Web Service Architecture
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.
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 49 27 27