PART I Introduction to the Foundation of Information Technologies Session 7 Computer Software HUANG Lihua, Fudan University SOFTWARE “ 软件是计算机的灵魂” • • • PROGRAM: Set of instructions to the computer STORED: Program must be in primary storage Software: Detailed instructions to control computer operation of a computer systems. Without software, the computer hardware could not perform any tasks.The functions of software are to – – – (1) manage the computer resources of the organization, (2) provide tools for human beings to take advantage of the these resources (3) act as intermediary between organizations and stored information. HUANG Lihua, Fudan University SOFTWARE APPLICATION SOFTWARE SYSTEM SOFTWARE Generalized programs that manage the resources of the computer, including -Operating System: HARDWARE •Scheduled computer event •Allocates computer resources •Monitors events -Language translators: •Interpreters •Compilers -Utility Programs: •Routine operations •Manage data Programs written for a specific application to perform functions specified by end users. -Programming Language -software package HUANG Lihua, Fudan University Operating system • Allocates and assigns: – memory » e. g., file system, virtual memory – processor time » e. g., multitasking, multiprocessing – input- output devices » e. g., printer, keyboard, etc. • May also provide other capabilities useful to many users or programs – Graphical User Interface (GUI) capabilities – Fonts, network protocols, ... HUANG Lihua, Fudan University Operating system as magician(魔术师) • The four illusions – Many separate computers, one for each process – “Multitasking” – Large memory – “Virtual memory” – Disks and other secondary storage are organized as collections of files – “File systems” – Windows and menus – “Graphical User Interface (GUI)” HUANG Lihua, Fudan University Operating Systems Capabilities: Multiprogramming, Multitasking PROGRAM 1 MULTIPROGRAMMING ENVIRONMENT OPERATING SYSTEM OPERATING SYSTEM TRADITIONAL SINGLEPROGRAM SYSTEM UNUSED MEMORY HUANG Lihua, Fudan University PROGRAM 1 PROGRAM 2 PROGRAM 3 UNUSED MEMORY Operating Systems Capabilities: Virtual Storage • Virtual Storage is the 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. HUANG Lihua, Fudan University Operating Systems Capabilities: time sharing MANY USERS SHARE LARGE CPU: • Time in CPU divided into slices (e.g.: 2 microseconds) • Each user has access to CPU during slice. • Single CPU is fast, can do much during time slice • User’s job swapped out at end of slice HUANG Lihua, Fudan University Operating Systems Capabilities: Multiprocessing • Links together two or more CPUs to work in parallel in a single computer systems to execute two or more instructions. – Program can be divided to be processed by multiple CPUs. – Can process large programs more rapidly * HUANG Lihua, Fudan University Operating Systems Capabilities: File Systems • Reality: – Disks are sets of tracks(磁道) – Tracks are sets of sectors(扇区) – Sectors can store fixed- sized byte blocks • Illusion: – Disks are sets of directories (目录) – Directories contain other directories or files – Files are variable- size byte sequences – Directories and files have names HUANG Lihua, Fudan University Operating Systems Capabilities: Windows and Menus • Reality: Screen is an array of pixels(象素数组) • Illusion 1: Menus – Depending on where you click, different action happens – Technique: OS looks up location where mouse was clicked, executes appropriate action • Illusion 2: Overlapping windows – A window may cover part or all of another – When a window is uncovered, its contents are redisplayed – Technique: OS saves bitmap(位图) of covered windows HUANG Lihua, Fudan University » Application does not need to know how to redraw the contents of its window MICROCOMPUTER OPERATING SYSTEMS OPERATING SYSTEM FEATURES Windows 98 & 95 32-bit operating system, GUI, multitasking, networking Windows NT, Me & 2000 & XP, 2003 Windows CE 32-bit operating system not limited to Intel chips. Multitasking, multiprocessing, networking OS/2 Paired-down for handheld computers, wireless communication devices 32-bit. Developed for IBM PS/2. Multitasking, networking HUANG Lihua, Fudan University MICROCOMPUTER OPERATING SYSTEMS OPERATING SYSTEM FEATURES Unix For powerful microcomputers, workstations, minicomputers. Multitasking, multi-user processing, networking. Portable to various computer platforms Linux Free, reliable alternative to Unix, Windows. Runs on many Platforms. Open-source Mac OS For Macintosh computers. Multitasking. Powerful graphics, multimedia DOS For IBM (PC-DOS) and PC (MS-DOS). Program memory: 640K HUANG Lihua, Fudan University Selecting an Operating System • Is our existing software compatible with the OS? • Does the OS have a large base of compatible software? • How reliable is the OS? Does it crash frequently? • Is the OS available for a wide variety of hardware? • How quickly does it run? • How easy it is to learn and use? • How easy is it to install and configure? • How much does it cost? HUANG Lihua, Fudan University SOFTWARE APPLICATION SOFTWARE SYSTEM SOFTWARE Generalized programs that manage the resources of the computer, including -Operating System: HARDWARE •Scheduled computer event •Allocates computer resources •Monitors events -Language translators: •Interpreters •Compilers -Utility Programs: •Routine operations •Manage Programs written for a specific application to perform functions specified by end users. -Programming Language HUANG Lihua, Fudan University Computer System Operating Process How to operate in computer ? 7+10=17 ? HUANG Lihua, Fudan University EXAMPLE: 7+10=? Machine Language Assembly language Program: LD A, 7 ADD A,10 HALT Instruction Program: 0011 1110 操作码(LD A) 0000 0111 操作数(7) 1100 0110 操作码(ADD A) 0000 1010 操作数(10) 0111 0110 操作码(HALT) HUANG Lihua, Fudan University INSTRUCTION & EXECUTION CYCLE Address Program 0000 0000 0011 1110 0000 0001 0000 0111 0000 0010 1100 0110 ADD A 0000 0011 0000 1010 10 0000 0100 0111 0110 HALT HUANG Lihua, Fudan University LD A 7 SOURCE CODE PROGRAM COMPILER TRANSLATION PROCESS High-level language instructions Translates high-level code into machine language UTILITY PROGRAMS OBJECT CODE LINKAGE EDITOR Ready for computer OTHER OBJECT CODE MODULES LOAD MODULE HUANG Lihua, Fudan University GENERATIONS OF PROGRAMMING LANGUAGES • 1st. Since 1940s. MACHINE LANGUAGE: – • 2nd. Since early ’50s. ASSEMBLY LANGUAGE: – • • binary code mnemonics for numeric code 3rd. Since mid ‘50s. HIGH-LEVEL LANGUAGES 4th. Since late ‘70s. HUANG Lihua, Fudan University SOFTWARE APPLICATION SOFTWARE SYSTEM SOFTWARE Generalized programs that manage the resources of the computer, including -Operating System: HARDWARE •Scheduled computer event •Allocates computer resources •Monitors events -Language translators: •Interpreters •Compilers -Utility Programs: •Routine operations •Manage data Programs written for a specific application to perform functions specified by end users. -Programming Language - software package HUANG Lihua, Fudan University Utility Programs • Routine operations – Eg., Sort, list, print,……. • Manage data – Eg., create file, merge file, ……. HUANG Lihua, Fudan University Application Software and Programming Languages • Programming languages: – evolved from machine language to high-level languages for business and scientific work • Important programming languages for business today: COBOL, C, C++, and Visual Basic, so on HUANG Lihua, Fudan University Programming Languages C Operating systems; application software C++ Object-oriented; application software COBOL Business administration; alphanumeric processing Visual Basic Visual tool; Windows applications FORTRAN Processing numeric data; scientific, engineering programs BASIC Used for teaching Pascal UsedHUANG primarily for teaching programming Lihua, Fudan University Fourth-Generation Languages • Fourth-generation language: – Can help end users develop software with little or no assistance from IS specialists, less procedural – 6 CATEGORIES • Natural languages: – Close to human language HUANG Lihua, Fudan University FOURTH GENERATION LANGUAGES (4GL) eg. Query language/ Report generators Graphic language Application generators SQL RPG-III SAS Graph Systat Power Builder Microsoft FrontPage Application software package SAP R/3 PC tools Lotus 1-2-3 Internet Explore Access HUANG Lihua, Fudan University Very high-level Programming language GPSS APL Nomad2 CONTEMPORARY TOOLS FOR SOFTWARE DEVELOPMENT • Object-oriented programming – Approach to software development that combines data and procedures into a single object • Objects are independent, reusable building blocks • Based on concepts of class and inheritance • Visual programming – Construction of software programs by selecting and arranging programming objects HUANG Lihua, Fudan University Class and inheritance HUANG Lihua, Fudan University CONTEMPORARY TOOLS FOR SOFTWARE DEVELOPMENT • Java – Object-oriented Programming language, – Delivers the software functionality needed for a particular task – Runs on any computer and operating system, Platform-independent • Hypertext Markup Language (HTML): – Page description language, creates Web pages and other hypermedia documents • XML (eXtensible Markup Language): – Describes the structure of a document, supports links to multiple documents, allowing data HUANG Lihua, Fudan University Application Software Packages and Productivity Software • PC software tools: – Word processing software: Create, format, print documents – Desktop publishing software: Produce professional-quality documents with greater formatting, design capabilities – Spreadsheets: Display data in grid for recalculating numerical data – Data management software: Store, manipulate data in lists and databases – Presentation graphics: Create professional-quality graphics and multimedia presentations – Integrated Software Packages and Suites: Combine two or more applications; easy data transfer • Other productivity software: – E-mail software: Computer exchange of messages – Web browsers: Access and display Web, Internet resources HUANG Lihua, Fudan University – Groupware: Support activities of workgroups Software Package for Enterprise Integration • Enterprise (business) software – Eg., ERP, SCM, CRM, ……. – Set of integrated modules for major business functions – Allows data to be used by multiple functions and business processes • Legacy system: – System in place for long time HUANG Lihua, Fudan University SELECTED EXAMPLES OF APPLICATION Software Packages ENTERPRISE RESOURCE PLANNING; MATERIAL REQUIREMENT PLANNING; MNAUFACTURING RESOURCE PLANNING; E-COMMERCE, CUSTOMER RELATIONSIP MANAGEMENT; BUSINESS INTELLIGENCE;ACCOUNTS PAYABLE/RECEIVABLE; ARCHITECTURAL DESIGN; BANKING; SUPPLY CHAIN MANAGEMENT; COMPUTERAIDED-DESIGN; DOCUMENT IMAGING; TRAVEL AGENCY; EMAIL; FINANCIAL CONTROL; FORECASTING; FORMS DESIGN; GRAPHICS; HOTEL MANAGEMENT; HUMAN RESOURCES; INSTALLMENT LOANS; INVENTORY CONTROL; JOB COSTING/SCHEDULING; LIFE INSURANCE; HOTEL MANAGEMENT SYSTEM; MATHEMATICAL / STATISTICAL MODELING; ORDER ENTRY; PAYROLL; PROCESS CONTROL; REAL ESTATE MANAGEMENT; SALES & DISTRIBUTION; SAVINGS SYSTEMS; STOCK MANAGEMENT; TAX Lihua,CONTROLS; Fudan University WORD PROCESSING ACCOUNTING;HUANG UTILITY * Software for Enterprise Integration • Middleware – Allows two disparate applications to communicate to exchange data • Enterprise application integration (EAI) software – Ties together multiple applications to support enterprise integration HUANG Lihua, Fudan University Enterprise application integration (EAI) software versus traditional integration HUANG Lihua, Fudan University Software for Enterprise Integration • Web services: – Universal standards using Internet technology for exchanging data between systems • Web server: – Manages requests for Web pages on computer where they are stored • Application server: – Middleware software handling application operations between user and back-end business systems HUANG Lihua, Fudan University A multitiered architecture for ecommerce and e-business HUANG Lihua, Fudan University 软件的发展趋势 • 硬件和软件的发展是不对称的。 • 硬件是以等比的速度增长 – (每1.5年增长一倍), • 而软件是等差级数增长 – (每年增长4-7%). HUANG Lihua, Fudan University 软件危机 • “软件危机”在六十年代已经存在 – – • 一些过来人把软件人员形容为“陷入泥潭中的一群野兽” 七十年代后期愈演愈烈:根据美国政府统计局1979年公布的统计数 字表明,几个联邦软件计划共投资6.8百万美元,47%($3.2M)交 付但从来未使用,29%($2.0M)投资了但未交付,19%($1.3M)被 费弃或返工,3%(0.2M)经过某种改变后被使用,仅2%(0.1M)交付 后被使用。 90年代,软件危机尚未过去 – 如Widows 2000的发行,根据微软一份备忘录显示:微软共 发现63000个“潜在问题”,可能影响Windows 2000的运行 • • – 逾21000“延迟性”设计缺陷,其中相当多部分被微软公司认定 为“真正的问题”, 逾27000条“Bug”,在微软看来,这代表“尚未完成的工作” 或“久被遗忘的问题”。 实力最强大的软件公司尚如此,何况其他软件产 品呢? HUANG Lihua, Fudan University Software Trends • • • • 使用更方便 与人的交流方法更广泛 软件的集成性增加 自然语言,多目标,图形接口,专家辅 助 • Open Source Development HUANG Lihua, Fudan University Open Source Development • There is an increasing trend toward using this as a method of software development. • In this method source code is distributed and developers can improve and add to code as they see fit, good ideas are then included into the product. • This method allows software products to grow and improve in a natural organic way. HUANG Lihua, Fudan University Moving your company from products to services • • • • Supporting the software Improving the software Integrating the software Problems with open source – anybody, nobody responsible HUANG Lihua, Fudan University Total Cost of Ownership (TCO) of Technology Assets • Includes both direct and indirect costs • Hardware and software acquisitions account for only 20% of TCO • TCO for a PC may run to three times original purchase price • Hidden costs can make distributed architecture more expensive than centralized mainframes HUANG Lihua, Fudan University Total Cost of Ownership (TCO) Cost Components • • • • • • • • • Hardware acquisition Software acquisition Installation Training Support Maintenance Infrastructure Downtime Space and energy Managing Hardware and Software Assets HUANG Lihua, Fudan University Rent or Build Decisions: Using Technology Service Providers • Storage service provider: SSP, SAN – Provides online access to storage devices and storage area network technology • Application service provider: ASP – Delivers applications over networks on subscription basis • Management service provider: – Manages applications, systems, security, storage, Web sites, system performance HUANG Lihua, Fudan University Managing Hardware and Software Assets Model of an Application Service Provider (ASP) Figure 6-15 HUANG Lihua, Fudan University Assignment for Session 7 • Individual Review for session 7 – • Reading Materials: Textbook: chapter 4 Individual Prepare for session 8 – – Reading Materials: Textbook: chapter 5 P206-207. Review Quiz • • Write down in your book, not submit Group Assignment: bring to class – – – Please design the software architecture for Mr. Wang’s Pottery Company, including system software, application software. Prepare for the CASE QUESTIONS on P.121. Prepare for the CASE on P.139. HUANG Lihua,QUESTIONS Fudan University