Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • What good would a supercomputer do without software? Imagine our daily productivity rate without software programs such as those included in MSOffice. Examples: Header Die & Tool; Caterpillar – Realized lower costs in the long run; Enhanced Differentiation Can software development keep pace with changes in business environment? With advances in hardware technology?; Y2K; Common Currency in Europe(Euro Dollar)
  • Contrastingly, software development has not kept up pace with hardware developments, and satisfying business needs. Takes more people/time to develop and test software compared to yester years. Hence it is more expensive. Large applications may contain millions of lines of code, written by hundreds of people over several years. For every 1000 lines of code there are about 5 – 15 software bugs (mistakes). Outsourcing IS/CS professionals from other countries.
  • A software program is a set of step-by-step instructions that enable a computer to perform a specific task. 1. The process of writing/coding these instructions is called programming . 2. The person who programs is called the programmer . Systems programmer vs. Application Development Programmer. Application Software Examples Word Processing; Spreadsheet; Presentation; Data Management; E-mail; Groupware; Integrated s/w packages; CAD/CAM Non-technical end-user interacts with application software. Application software interacts with system software. System software interacts with hardware.
  • Utility Programs (System Support Software – Definition and examples on next slide); Operating System (Traffic Cop); Language Translators (Will be discussed during discussion about software evolution
  • Examples: Sorting records; Copying programs from disk to magnetic tape for archival purpose; Opening files; Deleting files; Saving files These operations could be used by different users using different application software programs.
  • 2. Example functions: Resource Management: Allocation, scheduling, optimizing and monitoring of computer resources; File Management: Loading/reading/writing/organizing data and programs into memory User Interface Management: Providing a graphical user interface (GUI); Resolve and track errors, conflicts and security features – and notify users about the same; Manage multi-user environments Examples of OS – On next slide
  • DOS : Disk Operating System; IBM PCs used PC-DOS; IBM-compatible PCs used MS-DOS. DOS does not support multitasking. Was not very user-friendly; Single-user environment; Today it is used sometimes by IS/IT folks even from within Windows environments; e.g., Run – Tracert; Ping function IBM’s OS/2 : Used with 32-bit IBM microcomputers; Recent upgrade is OS/2 Warp – has speech recognition capability; IBM’s OS/400 is another OS example typically used in AS/400 computers; OS/390 : New name for MVS –multiple virtual storage – an OS commonly installed on IBM’s S/390 mainframe servers. (Novell) Netware – Famous for its networking capabilities UNIX (Bell Labs) – Initially designed for minicomputers (1969); Now, famous for being portable across different models/types of h/w; Powerful but complex; Not very popular with regard to some security features, and has different versions – which could be viewed as a possible disadvantage too. LINUX : Available on the Internet for free; Can be customized because OS code is available; Windows is not a shareware OS; It is not an Open-Source software; (Wall Street Journal – In April 2000 Chinese government was very seriously considering customizing LINUX and having it widely adopted in their nation; One-third of desktop computers and 50% of China’s Internet Servers use LINUX; In Spring 2002 – China’s Govt. encourages usage of Red Flag Linux to avoid domination by Microsoft, and to reduce vulnerability to hackers. Do Businesses use LINUX? – Yes; Burlington Coat Factory; 60% of Days Inn, Howard Johnson and Super 8 motels are connected to a Unix based reservation management system; Saves them money; Very reliable – useful feature to have especially when IS experts are not around; No undetected vulnerabilities). It is Unix-like w.r.t to its capability, reliability, compatibility with different h/w platforms, except that it is either free or has relatively lower cost even for commercial versions (Red Hat Linux). Not very good for desktop productivity yet. Burlington Coat Factory still uses MS Windows for desktop productivity of employees (MS Office). Different versions in market could discourage its widespread adoption in business. Linux standards base is working on rules to keep different versions compatible. MAC OS : Famous for its multimedia capabilities; One of the first OS to adopt GUI; Allows users to connect to, explore and publish on Internet; Load Chinese, Japanese, Korean, Indian, Hebrew, and Arabic fonts for use in Web browser software. Mac OS X version 10.3 : Panther. Windows : Not command based operations; More of GUI; Earlier versions (Windows 3.1) of Windows supported limited forms of multitasking – but some folks complained that the computer crashed more frequently when multitasking; Windows 95 and 98 upgrades worked better. Windows CE ( Compact Edition/Environment - Suitable for portable computers – wireless computing environment); Windows Me (Millennium Edition) – Tools for editing and working with videos, photos, music and home networking; Windows NT : NT – New Technology: Used in networking environments; Windows NT Workstations ; Windows NT 4.0 Server ; Windows 2000 (not limited to Intel processors) and XP (Windows Experience; Xceptional? Or Xtremely Poor?; XP - reliable, robust, fast, variety of multimedia) are recent upgrades Lindows – Founder of is also founder of; Can run s/w prgms in both Linux and Windows environment.
  • Costs: S/w licensing fee for each machine; Development costs (e.g., Improvements in Linux); H/w upgrade costs; Training costs; Learning costs (During/immediately after training productivity may suffer due to employee spending more time on becoming proficient with new OS). Tech Support Costs (Business Size): Ability to deal with a wide variety of problems efficiently and quickly. Example: Anheuser Busch Company – 15,000 users; 700 Windows NT based machines; Ended up having 15 experts instead of 5 experts as originally planned. Still, that was not enough to keep up with maintenance/help requests from users. (Windows NT is C2 certified – highest security certification given by government); These days, Z/OS is supposed to have very high security. New OS does not necessarily imply better/appropriate security; Are the new security features appropriate/necessary for your business needs? Software upgrades – Part of TCO
  • Windows 98 System Requirements : 486 or better processor; Processor speed – 66 Mhz or higher; Minimum memory 24 MB; Web applications – Pentium processor or better Windows 2000 Professional System Requirements : Pentium or better processor; 64MB RAM is minimum recommended; More memory improves the responsiveness of the system; Max recommended: 4 GB RAM 2 GB hard disk with at least 650 MB free space. If installing in a network environment, more free space is recommended for better performance. Windows XP - Minimum: 233 Mhz – 300 Mhz (Single CPU for Home Edition; Dual CPU for Professional Edition; 64 MB RAM – 128 MB RAM; 1.5 GB Hard disk space; Super VGA card (800 X 600); CD-ROM/DVD peripheral devices; Some websites recommend a 600 Mhz CPU, 256 MB RAM, 15 GB free space; and a higer resolution VGA card (1024 X 768) to better utilize XP.
  • Multithreading and Multitasking can be accomplished with 1 CPU. See next slide for examples on Multithreading and Multitasking.
  • OS allows computer to work on several programs simultaneously Processes only one program at a time; Performs input/output functions on other programs. Advantage : Cuts down on the amount of idle time between CPU tasks. Enables efficient usage of computers. User can display more than one program on the computer screen and work with them at the same time.
  • Single Program Environment Traditionally - 1 CPU executes 1 software program at a time. Disadvantage : CPU has to stop and wait whenever a program has to read input or write output. This implies CPU is idle for some time.
  • Multitasking vs. Time Sharing: In multitasking, the computer works on one program until it reaches a logical stopping point, such as an I/O event. Then the computer starts processing another program. In time-sharing, the computer starts processing another program after a fixed amount of time irrespective of whether a logical stopping point has been reached or not .
  • The process of writing/coding the instructions is called programming . The person who programs is called the programmer .
  • Assembler - Similar to compiler but is used only for translating assembly languages to machine language.
  • Another example of a subclass could be: Salaried Employee Subclass could have their own (children) subclasses. Example: Salaried employee subclass can have temporary non-salaried and permanent non-salaried subclasses. Only the pay is calculated differently. Name and ID can be borrowed from Employee Class/Object.

    1. 1. Chapter 4 - Software – Part 2 Dr. V.T. Raja Oregon State University
    2. 2. IS Software - Outline <ul><li>Introduction </li></ul><ul><li>Some details on System Software </li></ul><ul><li>Application Software </li></ul><ul><li>Selecting an OS </li></ul><ul><li>Evolution of Software </li></ul><ul><li>Recent past and current trends </li></ul>
    3. 3. Introduction <ul><li>Why study about software? </li></ul><ul><ul><li>To make use of hardware effectively </li></ul></ul><ul><ul><li>To improve productivity of individual employees </li></ul></ul><ul><ul><li>To facilitate, sustain or improve competitive advantage of organization; To help meet strategic goals of organization </li></ul></ul><ul><ul><li>To be aware of and to understand business implications of: </li></ul></ul><ul><ul><ul><li>Current software developments/trends </li></ul></ul></ul><ul><ul><ul><li>Software crisis situations </li></ul></ul></ul><ul><ul><li>Relatively higher investments in software (compared to investments in hardware) by businesses in the United States </li></ul></ul><ul><ul><ul><li>1960-70: Hardware costs: 75%; Software costs: 25% </li></ul></ul></ul><ul><ul><ul><li>1990-00: Hardware costs: 25%; Software costs: 75% </li></ul></ul></ul><ul><ul><ul><li>Why this change? </li></ul></ul></ul>
    4. 4. Why higher investments in software? <ul><li>Advances in hardware technology have drastically reduced hardware costs </li></ul><ul><li>Software has become increasingly complex and error prone </li></ul><ul><li>Testing software is difficult and costly. </li></ul><ul><ul><li>High demand for skilled IS/CS professionals </li></ul></ul><ul><ul><li>Employees from every functional area often are involved in testing software products for bugs because they are experts in the area and can spot functional area specific bugs even more quickly than IT programmers can. </li></ul></ul>
    5. 5. Introduction <ul><li>Software program; Programming; Programmer </li></ul><ul><li>Application Software and System Software </li></ul><ul><li>What is system software? </li></ul><ul><li>Examples/types of system software? </li></ul>
    6. 6. System Software <ul><li>System Software </li></ul><ul><li>Programs that manage computer resources such as the processor, communications links, and peripheral devices </li></ul><ul><li>Types of System Software: </li></ul><ul><ul><li>Operating Systems </li></ul></ul><ul><ul><li>Utility Programs </li></ul></ul><ul><ul><li>Language Translators </li></ul></ul>
    7. 7. Utility Programs <ul><li>Programs that perform common, routine, repetitive tasks </li></ul><ul><ul><li>Examples: </li></ul></ul><ul><li>Utility programs are stored in system libraries where they can be shared by all users of computer system </li></ul>
    8. 8. Operating Systems (OS) <ul><li>OS - System software that manages and controls the activities of the computer </li></ul><ul><li>Example functions of an OS? </li></ul><ul><li>Examples of OS? </li></ul>
    9. 9. OS - Examples <ul><li>DOS (Disk Operating Systems) </li></ul><ul><li>OS/2; OS/400;Z/OS (IBM environment) </li></ul><ul><li>Unix (Portable to different models of h/w) </li></ul><ul><li>Linux (Free OS; Open Source Software) </li></ul><ul><li>Mac OS (OS for the Macintosh computer) </li></ul><ul><li>Novell Netware </li></ul><ul><li>Microsoft Windows OS </li></ul><ul><ul><li>Windows 95/98/NT/Me/CE </li></ul></ul><ul><ul><li>Windows 2003; 2000; Windows XP </li></ul></ul><ul><li>Lindows </li></ul>
    10. 10. Is selecting/upgrading an OS a technical or a managerial/non-technical decision? <ul><li>Non-technical issues </li></ul><ul><ul><li>Single-user/networked environment? (Licensing Issue); </li></ul></ul><ul><ul><li>Budget/Cost: </li></ul></ul><ul><ul><ul><li>Upgrade; Development; Maintenance (Affordable downtime?); Training How easy is it to learn and use? Availability of system support; </li></ul></ul></ul><ul><ul><li>Why the upgrade? </li></ul></ul><ul><ul><ul><li>Platform/hardware independence vs. Standardization </li></ul></ul></ul><ul><ul><ul><li>Security issues </li></ul></ul></ul><ul><ul><ul><li>Enterprise-wide involvement; Suitable for satisfying business needs; Compatibility with appropriate application software </li></ul></ul></ul>
    11. 11. Is selecting an OS a technical or a managerial/non-technical decision? <ul><li>Technical issues : </li></ul><ul><li>What kind of computer hardware is required? </li></ul><ul><li>How much processing power and storage capacity are required? </li></ul><ul><li>Speed of OS: More memory - Better performance </li></ul><ul><li>What application software programs does it support? </li></ul><ul><li> Functions supported by OS </li></ul>
    12. 12. Some OS Terminologies/Functions <ul><ul><li>Graphical User Interface (Pull down menus, icons etc.) </li></ul></ul><ul><ul><li>Social Interface (animated characters used for displaying info on screen/used for narrating commands) </li></ul></ul><ul><ul><li>Multithreading </li></ul></ul><ul><ul><li>Multitasking </li></ul></ul><ul><ul><li>Multiprocessing </li></ul></ul><ul><ul><li>Virtual Storage </li></ul></ul><ul><ul><li>Time Sharing </li></ul></ul><ul><ul><li>PnP capability </li></ul></ul>
    13. 13. Multithreading vs. Multitasking <ul><li>Multithreading : Ability of an OS to run multiple tasks within a same application program simultaneously </li></ul><ul><ul><li>Example : MS Word : User prints one document and spell checks another document while the first document is being printed. </li></ul></ul><ul><li>Multitasking : Method of executing 2 or more programs concurrently. Allows user to display and work with 2 or more programs simultaneously. </li></ul><ul><ul><li>Example: Sales rep., searches database (MS Access) for all clients in a certain city; While the computer is processing this database request, the sales rep., uses MS Word for typing a letter to a client. </li></ul></ul>
    14. 14. Multiprocessing <ul><li>Use of two or more CPUs linked together to work in parallel. </li></ul><ul><li>Two or more CPUs may be assigned to execute different instructions from the same program simultaneously. </li></ul><ul><li>OS is responsible for scheduling and coordinating the tasks of the various processors. </li></ul>
    15. 15. Virtual Storage <ul><li>Programs divided into small fixed- or variable-length portions with only a small portion stored in primary memory at one time. </li></ul><ul><li>Fixed-length portion - e.g., 4kbytes - Page </li></ul><ul><li>Variable-length portion - Segment </li></ul><ul><li>Pages/Segments are stored in secondary storage and shuttled into and out of main memory as needed for processing. </li></ul>
    16. 16. Virtual Storage (Continued) <ul><li>CPU executes the instructions from each page, then moves on, either to the next page of the program or to a page from a different program. </li></ul><ul><li>Advantages : </li></ul><ul><li>CPU can process different parts of different programs - better utilization of CPU. </li></ul><ul><li>Large programs can be run on smaller computers. </li></ul>
    17. 17. Time-Sharing <ul><li>Enables many users to share computer resources simultaneously. </li></ul><ul><li>Each user is allocated a fixed amount of time. </li></ul><ul><li>Computer performs whatever operations it can for that user in the allocated time and then releases the next slot of time for the next user. </li></ul>
    18. 18. Plug and Play (PnP) Capability <ul><li>Ability to automatically install and configure different computer components without having to perform any technical procedures </li></ul>
    19. 19. Evolution of software <ul><li>Generations of software </li></ul><ul><ul><li>First Generation: Machine language </li></ul></ul><ul><ul><li>Second Generation: Assembly language </li></ul></ul><ul><ul><li>Third Generation: High-level languages </li></ul></ul><ul><ul><li>Fourth Generation: Outcome-oriented languages </li></ul></ul><ul><ul><li>Fifth Generation: Natural languages </li></ul></ul><ul><ul><li>Visual, Markup, and Object Oriented languages </li></ul></ul>
    20. 20. Evolution of software <ul><li>Machine languages: Used only bits (0;1) </li></ul><ul><li>Assembly language: Symbols used (e.g.,Add/Subtract) </li></ul><ul><li>High-level language : Used English-like sentences; Instructed the computer the desired outcome, and on how to achieve the desired outcome. </li></ul><ul><li>Outcome-oriented language : Used English-like sentences: Instructed the computer - what was the desired outcome; Does not necessarily specify the detailed procedures needed for achieving the result. </li></ul><ul><li>Natural language : AI-based applications. </li></ul>
    21. 21. Language Translators <ul><li>Translate high-level language programs into machine language so that they can be executed by the computer. </li></ul><ul><li>Program statements in the high-level language are called source code , and the machine language version is called object code . </li></ul><ul><li>Compiler : Translates entire high-level language program into machine language. </li></ul><ul><li>Interpreter : Translates each source code statement one at a time into machine code. </li></ul>
    22. 22. Recent/Current Trends in Software <ul><li>Object Oriented Programming </li></ul><ul><ul><li>Java; Small talk; C++ </li></ul></ul><ul><li>Other Trends </li></ul><ul><ul><li>Visual and Markup Languages </li></ul></ul><ul><ul><li>ASP Model </li></ul></ul>
    23. 23. Object Oriented Programming <ul><li>Encapsulation </li></ul><ul><ul><li>The process of grouping variables, procedures and data into objects (Classes) is called encapsulation. </li></ul></ul><ul><li>Inheritance </li></ul><ul><ul><li>Child objects inherit from parent object </li></ul></ul><ul><li>Reusability of code (Advantage) </li></ul><ul><li>UML – Unified Modeling Language: </li></ul><ul><ul><li>A language for modeling a complex object-oriented software system – think of it as a blueprint (for the entire system) that documents the objects, variables, and the relationship between different objects. </li></ul></ul>
    24. 24. Object Oriented Programming Employee (Object/Class) Name (Variable) ID (Variable) Pay (Method) Non-Salaried Employee (Subclass of employee) Name (Inherited variable) ID (Inherited variable) Hourly rate (variable) Pay (Method Adaptation/Override)
    25. 25. Java <ul><li>Benefits of Java: </li></ul><ul><ul><li>Platform independent; Microprocessor independent </li></ul></ul><ul><ul><li>Suitable for creating applications that can run on both internal and external networks </li></ul></ul><ul><ul><li>Interactive capabilities for Web pages (Java applets) </li></ul></ul><ul><ul><li>Robust (can handle text, data, graphics, sound, video – all within one program if needed) </li></ul></ul><ul><li>Disadvantage </li></ul><ul><ul><li>Runs slower than native programs written for a particular OS </li></ul></ul><ul><ul><li>Needs to be standardized further. </li></ul></ul>
    26. 26. Other Trends <ul><li>Visual Programming Languages </li></ul><ul><ul><li>Examples: Visual Basic, Visual C++ </li></ul></ul><ul><li>Markup Languages </li></ul><ul><ul><li>Examples: HTML and XML </li></ul></ul>
    27. 27. HTML and XML <ul><li>XML is a language for representing contents (compare with HTML which is a language for representing formatting instructions). </li></ul><ul><li>HTML example: </li></ul><ul><ul><li><title>this is an example</title> </li></ul></ul><ul><ul><li><h3>this is a header of level three</h3> </li></ul></ul><ul><ul><li><b>this is in bold</b> </li></ul></ul><ul><ul><li><i>this is in italics</i> </li></ul></ul><ul><ul><li><b><i>this is in bold italics</i></b> </li></ul></ul>
    28. 28. XML <ul><li>XML example: This is a person, whose first name is 'Joe,' and whose last name 'Smith.' This person is a teacher. </li></ul><ul><li><person> </li></ul><ul><ul><li><name> </li></ul></ul><ul><ul><li><first>Joe</first> </li></ul></ul><ul><ul><li><last>Smith</last> </li></ul></ul><ul><ul><li></name> </li></ul></ul><ul><ul><li><profession>teacher</profession> </li></ul></ul><ul><ul><li></person> </li></ul></ul><ul><li>Note how the syntax of HTML and XML are similar. </li></ul><ul><li>XML is meant to represent contents. Therefore you can define your own tags. </li></ul><ul><ul><li>Easier to transfer data between different systems – because it is text based content </li></ul></ul>
    29. 29. Other Trends <ul><li>Integration of hardware, software and telecommunications </li></ul><ul><ul><li>Examples: Car navigation systems </li></ul></ul><ul><ul><ul><ul><ul><li> Smart Cards </li></ul></ul></ul></ul></ul><ul><li>Enterprise Software </li></ul><ul><ul><li>Software that manage and integrate vital operations of an enterprise </li></ul></ul><ul><ul><ul><li>(e.g., Integrate Operations, Inventory Replenishment, Outbound Logistics, Customer Service) </li></ul></ul></ul><ul><ul><li>Examples: SAP R/3; PeopleSoft; Oracle </li></ul></ul><ul><li>Application Service Provider (ASP) Model </li></ul><ul><li>Open Source Software – Refer to Guest Lecture Notes </li></ul>
    30. 30. Selecting software for an organization <ul><li>Some factors to consider: </li></ul><ul><li>Business need satisfied? </li></ul><ul><li>Platform independence/compatibility (Open Systems; middleware tools) </li></ul><ul><li>Availability of documentation support </li></ul><ul><li>Cost/Budget? </li></ul><ul><ul><li>End-user training </li></ul></ul><ul><ul><li>Maintenance/Upgrades </li></ul></ul><ul><ul><li>Shareware/Freeware? </li></ul></ul><ul><li>Reliability </li></ul><ul><li>Vendor Support </li></ul><ul><li>Open Source/Proprietary </li></ul><ul><li>Off-the-shelf/Custom software </li></ul><ul><li>ASP Model </li></ul>