Chapter 2 Computer Software MIS 311 Jakob Iversen 1 Software History and Significance 1950’s: Hardware was expensive. Software was less important and less expensive. Today: software comprises a much larger percentage of the cost of modern computer systems The Software Crisis: Many software projects are delivered late, over budget with inferior quality, and does not meet requirements/expectations • • • • software applications can’t keep up with rapidly changing business conditions and rapidly evolving technologies new applications must be developed quickly, and existing software must also be maintained (est. 80% effort on maintenance) more complexity, leads to more “bugs” testing and “debugging” software is expensive and takes time 2 Software Model: A Layered View 3 Software Classifications 4 System Software Programs that control and support the computer system Supports application software by directing the basic functions of the computer Facilitates programming, testing, and debugging of computer programs Usually independent of any specific type of application 5 Operating Systems Functionality Common Hardware Functions User Interface Hardware Independence Memory Management File Management Processing Tasks • Multitasking and timesharing Networking Capability Access to System Resources • Security 6 Major Desktop OS MS-DOS Windows 3.xx Windows 98 Windows 95 Windows NT Windows 2000 Windows XP IBM’s OS/2 Macintosh Operating System UNIX Linux Java Operating System (JavaOS) 7 8 9 Windows 3.11 10 Windows 95 11 Windows XP Linux (KDE 3) 12 Other Systems Control Program (Helps you use the computer) Backup software Antivirus software Uninstaller software File handling Drivers (for various peripherals) Performance monitors Security monitors 13 Application Software Direct a computer system to perform specific information processing activities and provide functionality for users (lets you do real work) 14 15 Personal Application Software An off-the-shelf application program not linked to any specific business function, but instead supports general types of processing Data management Spreadsheet Desktop publishing Graphics Publishing Multimedia Speech recognition software Word processing Communications GroupWare 16 Software Suites Collections of application software packages that integrate the functions of the packages Examples: Microsoft Office, Star Office, Corel Word Perfect Office, and Lotus SmartSuite Generally include: spreadsheet, word processor, database, and graphics package Ability to move data and diagrams among individual application 17 Enterprise Application Software 18 Supply Chain Management 19 Enterprise Resource Planning Vendors 25.1% SAP 7.0% Oracle (trying to buy PeopleSoft) 6.5% PeopleSoft ??% JD Edwards (bought by PeopleSoft) 5.4% Sage 4.9% Microsoft 51.1% Other Total revenue in 2002: $5 billion, down from $5.5 billion Source: Gartner Dataquest (June 2003) http://www4.gartner.com/5_about/press_releases/pr18june2003 a.jsp 20 Problems with ERP Very complex systems Require changes to all/most parts of the organization Very long implementation process • 12-24 months Systems require customization Customizations may make it difficult to upgrade Difficult to move to different vendor Customization experts in short supply More info: http://www.du.edu/~atanner/whatiserp.htm 21 … .. Programming Languages …… Different languages for different purposes Tradeoff between easy to program (programmerfriendly) vs. Efficiency in execution (computer-friendly) 22 Example: Assembly Language (2GL) LP: SUB AX, CX ADD AX, [BX] ADD BX, 2 CMP DX, BX JNS LP Mnemonics Need to know how the CPU works Typically no OS Still in use where speed is very important – often embedded systems 23 Procedural Language (Pascal), 3GL Program MyAddition; Sequence Conditions Loops Procedures/functions Other 3GL Languages Var a, b, c: int; Begin Writeln (This is fun’); a:=2; b:=5; While a<b do begin a := a + 1; end; c := a + b; Writeln (a,’+’,b,’=’,c); End. • C, COBOL, Fortran, ... 24 4GL: Non-procedural (SQL) Stating an outcome: SELECT (Customer_Name and Customer_Address) FROM Customer_Table WHERE Credit_Limit > 5000 Other languages state facts and rules Fact 1: Jane is Alan’s Mother Fact 2: Mary is Jane’s sister Rule 1: An aunt is the sister of one’s mother or the sister of one’s father • Inference engine: Is Mary Alan’s aunt? Languages • PL/1, Lisp, SQL 25 Programming Languages (continued …) Visual Programming Languages • • • used within a graphical environment example : Visual Basic and Visual C++ popular with non technical users Hypertext Markup Language (HTML) • • • standard language used in World Wide Web Plain text file describes page layout, references other files to be displayed (images, audio, video, and executable computer programs) Example! 26 Programming Languages (continued …) Object-Oriented Programming Languages (OOP) • Objects model real-world phenomena by • combining data and instructions Java, C++, Eiffel, Smalltalk 27 Object Oriented Programs Inheritance Instantiation Communication • Class -> Object 28 Message Passing in Objects 29 Reusable Code in ObjectOriented Programming 30 How an Interpreter Works 31 How a Compiler Works 32 Coming up... Need more detail? • Go to www.howstuffworks.com and check out the Computer section. Thursday Tuesday • Due: Lab 3 • Networks (Internet, Intranet, Extranet, …) • Stair, Chapter 4 33