7.1 LEARNING OBJECTIVES • DESCRIBE MAJOR TYPES OF SOFTWARE • EXAMINE SYSTEM SOFTWARE & OPERATING SYSTEMS • EXPLAIN SOFTWARE EVOLUTION • ANALYZE MAJOR APPLICATION LANGUAGES • DESCRIBE APPROACHES TO SOFTWARE DEVELOPMENT • IDENTIFY SOFTWARE ISSUES * 7.2 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 * 7.3 SOFTWARE APPLICATION SOFTWARE SYSTEM SOFTWARE HARDWARE OPERATING SYSTEM: SCHEDULED COMPUTER EVENTS ALLOCATES COMPUTER RESOURCES MONITORS EVENTS LANGUAGE TRANSLATORS: INTERPRETERS COMPILERS UTILITY PROGRAMS: PROGRAMMING LANGUAGES: ROUTINE OPERATIONS MANAGE DATA ASSEMBLY LANGUAGE; FORTRAN; COBOL; PL / 1; QBASIC; PASCAL; C; C++; “FOURTH GENERATION” LANGUAGES 7.4 OPERATING SYSTEM MANAGES & CONTROLS ACTIVITIES • ALLOCATION & ASSIGNMENT • SCHEDULING • MONITORING • SYSTEM RESIDENCE DEVICE: SECONDARY STORAGE DEVICE STORING OPERATING SYSTEM * 7.5 MULTIPROGRAMMING 7.6 PROGRAM 1 UNUSED MEMORY MULTIPROGRAMMING ENVIRONMENT OPERATING SYSTEM OPERATING SYSTEM TRADITIONAL SINGLEPROGRAM SYSTEM PROGRAM 1 PROGRAM 2 PROGRAM 3 UNUSED MEMORY MULTITASKING MULTIPROGRAMMING ON A SINGLE-USER SYSTEM SUCH AS A MICROCOMPUTER * 7.7 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 * 7.8 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 7.9 * MULTIPROCESSING • TWO OR MORE PARALLEL PROCESSORS IN SYSTEM • PROGRAM CAN BE DIVIDED TO BE PROCESSED BY MULTIPLE CPUs • CAN PROCESS LARGE PROGRAMS MORE RAPIDLY * 7.10 LANGUAGE TRANSLATION • SOURCE CODE: HIGH-LEVEL LANGUAGE INSTRUCTIONS • COMPILER: TRANSLATES HIGHLEVEL CODE INTO MACHINE LANGUAGE • OBJECT CODE: TRANSLATED INSTRUCTIONS READY FOR COMPUTER * 7.11 COMPILER OBJECT CODE LINKAGE EDITOR LOAD MODULE 7.12 OTHER OBJECT CODE MODULES TRANSLATION PROCESS SOURCE CODE PROGRAM GRAPHICAL USER INTERFACE (GUI) OPERATING SYSTEM USES: • GRAPHIC ICONS (Icons, Buttons, Bars, Boxes) • MOUSE • TO ISSUE COMMANDS • MAKE SELECTIONS * 7.13 MICROCOMPUTER OPERATING SYSTEMS OPERATING SYSTEM Windows 98 & 95 FEATURES 32-bit operating system; GUI; Multitasking. Networking Windows NT & 2000 32-bit operating system not limited to Intel chips. Multitasking; Multiprocessing; Networking Windows CE Paired-down for handheld computers, wireless communication devices OS/2 32-bit. Developed for IBM PS/2. Multitasking; Networking 7.14 MICROCOMPUTER OPERATING SYSTEMS OPERATING SYSTEM FEATURES UNIX For powerful Microcomputers, Workstations, Minicomputers. Multitasking; Multi-user Processing; Networking. Portable to various Computer Platforms Mac OS For Macintosh computers. Multitasking. Powerful Graphics; Multimedia DOS 7.15 For IBM (PC-DOS) and PC (MS-DOS). Program Memory: 640K 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 7.16 * HIGH-LEVEL LANGUAGES • FORTRAN (FORmula TRANslator). Scientific, Engineering applications • COBOL (COmmon Business Oriented Language). Predominant for Transaction Processing • BASIC (Beginners All-purpose Symbolic Instruction Code). General Purpose PC Language * 7.17 HIGH-LEVEL LANGUAGES • PASCAL. Used to Teach Structured Programming Practices. Weak in File Handling, Input / Output • C and C++. Powerful PC Language for Developing Applications. Efficient Execution; Cross Platform • PL/1 (Programming Language 1). Powerful IBM Language for Business & Science • ADA. Designed for Weapon Systems. Can be used on many Platforms. Structured. Can be used for Business * 7.18 ARTIFICIAL INTELLIGENCE LANGUAGES • LISP (LISt Processor). Began late ‘50s at MIT. Preferred in US. Require Specially Configured Machines • PROLOG. Began in early ‘70s. Preferred outside US. Cross Platform CREATE MEANINGFUL LISTS OF SYMBOLS (Operations; Variables; Data) * 7.19 FOURTH GENERATION LANGUAGES (4GL) • CAN BE EMPLOYED BY END USERS • NONPROCEDURAL • CAN DEVELOP APPLICATIONS QUICKLY • NATURAL LANGUAGES • SIX CATEGORIES * 7.20 FOURTH GENERATION LANGUAGES (4GL) 1. QUERY LANGUAGES: • rapidly retrieve data • interactive/ on-line • may use NATURAL LANGUAGE • support special requests for data from relational databases * 7.21 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 * 7.22 FOURTH GENERATION LANGUAGES (4GL) 4. APPLICATION GENERATORS: • user specifies computer needs • generator creates logic and code for application • greatly reduces development time * 7.23 FOURTH GENERATION LANGUAGES (4GL) 5. VERY HIGH-LEVEL PROGRAMMING LANGUAGES: • professional programmer productivity tool • uses fewer instructions • reduces development time * 7.24 FOURTH GENERATION LANGUAGES (4GL) 7. 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 7.25 * SOFTWARE TOOLS • • • • • • • • WORD PROCESSING SPREADSHEETS DATA MANAGEMENT PRESENTATION GRAPHICS INTEGRATED SOFTWARE SUITES E-MAIL WEB BROWSERS GROUPWARE * 7.26 GROUPWARE CAPABILITIES • GROUP WRITING & COMMENTING • ELECTRONIC MAIL DISTRIBUTION • SCHEDULING MEETINGS, APPOINTMENTS • SHARED FILES & DATABASES • SHARED TIMELINES, PLANS • ELECTRONIC MEETINGS & CONFERENCES 7.27 * 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 7.28 * 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 7.29 * OBJECT-ORIENTED PROGRAMMING JAVA: Sun Microsystems OBJECT-ORIENTED • • • • • 7.30 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 * OBJECT-ORIENTED PROGRAMMING ActiveX: CONTROLS FOR WINDOWS SOFTWARE ENVIRONMENT to enable • • • • 7.31 OBJECTS: e.g., CHARTS TABLES ANIMATIONS to be EMBEDDED IN A WEB PAGE * Connect to the INTERNET PRESS LEFT MOUSE BUTTON ON ICON TO CONNECT TO THE LAUDON & LAUDON WEB SITE FOR MORE INFORMATION ON THIS CHAPTER 7.32 7.33