Chapter 2 Computer Software MIS 311 Jakob Iversen
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
Software Model: A Layered View
Software Classifications
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
Operating Systems Functionality Common Hardware Functions User Interface Hardware Independence Memory Management File Management Processing Tasks Multitasking and time-sharing Networking Capability Access to System Resources Security
Major Desktop OS MS-DOS Windows 3.xx Windows 98 Windows 95 Windows NT Windows XP IBM’s OS/2 Macintosh Operating System Linux UNIX Java Operating System (JavaOS)
Windows 3.11
Windows 95
Windows XP
Linux (KDE 3)
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
Direct a computer system to perform specific information processing activities and provide functionality for users (lets you do real work) Application Software
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 Publishing Word processing Communications Graphics Multimedia Speech recognition software GroupWare
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
Enterprise Application Software
Supply Chain Management
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/pr18june2003a.jsp
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
Programming Languages … .. …… Different languages for different purposes Tradeoff between easy to program (programmer-friendly) vs. Efficiency in execution (computer-friendly)
Example: Assembly Language (2GL) SUB AX, CX LP: 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
Procedural Language (Pascal), 3GL Program MyAddition; 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. Sequence Conditions Loops Procedures/functions Other 3GL Languages C, COBOL, Fortran, ...
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
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!
Programming Languages (continued …) Object-Oriented Programming Languages (OOP) Objects model real-world phenomena by combining data and instructions Java, C++, Eiffel, Smalltalk
Object Oriented Programs Inheritance Instantiation Class -> Object Communication
Message Passing in Objects
Reusable Code in Object- Oriented Programming
How an Interpreter Works
How a Compiler Works
Coming up... Need more detail? Thursday Tuesday Go to www.howstuffworks.com and check out the Computer section. Thursday Due: Lab 3 Tuesday Networks (Internet, Intranet, Extranet, …) Stair, Chapter 4