Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Lecture Preview  In this lecture, we will study: Systems Software Application Software How software applications are developed How software has evolved and where it’s headed Software for the enterprise 1 The Software Crisis Computer System  New software applications cannot be developed fast enough to: Hardware Software  Keep up with dynamic business environment  Keep pace with rapid hardware advances  Lag in software development limits IS capabilities 2 The Software Crisis (continued)  In addition to new application development, existing software must also be maintained (80% IT personnel effort towards maintenance).  Increasing complexity leads to the increased potential for “bugs.”  Testing and “debugging” software is expensive and time-consuming. 3 Software Fundamentals  Some basic terms… Computer programs - sequences of instructions for the computer Stored program concept – instructions written in programs are stored and executed by CPU when needed Programming - process of writing (or coding) programs Programmers - individuals who perform programming 4 Software Fundamentals (continued) Computer Software Systems Software Application Software Makes the computer function Does something interesting  Systems Software  Instructions that manage the hardware resources  Application Software  Instructions that perform specific user tasks 5 System Software  System software is software that: Controls and supports the computer system’s activities Supports application software by directing the computer’s basic functions Facilitates program development, testing, and debugging Is independent of any specific type of application 6 Systems Software (continued) Systems Software  System Control Programs System Control Programs Systems Support Programs  Control use of all system resources (hardware, software, data); operating system  System Support Programs  Specialized support capabilities 7 System Control Programs  Operating System - main system control program supervises the overall operation of the computer allocates CPU time and main memory to programs running on the computer provides an interface between the user and the hardware 8 Operating System Services  Process management – manage program(s) running on processor  Multitasking or Multiprogramming - managing two or more tasks, or programs, running on the computer system at the same time  Multithreading – type of multitasking; run two or more tasks from the same application simultaneously  Timesharing - many users share same CPU, each using a different input/output terminal  Multiprocessing – simultaneous processing with multiple CPUs 9 Operating System Services (continued)  Virtual memory - simulates more main memory than actually exists in the computer system  File management and security - managing the arrangement of, and access to, files held in secondary storage  Fault tolerance - system can produce correct results and continue to operate even in the presence of faults or errors  User interface - allows users to have direct control of visible objects (icons) and actions that replace complex command syntax 10 Types of Operating Systems  Major Desktop Operating Systems Microsoft Products: MS-DOS Windows 95 Windows 98 Windows ME Windows NT Windows 2000 Windows XP Other Products: UNIX Linux Java Operating System (JavaOS) IBM O/S 2 Macintosh Operating System 11 Types of Operating Systems (continued)  Departmental Server Operating Systems Support hundreds of concurrent users UNIX, Linux, Windows 2000, Windows XP, Novell NetWare  Enterprise Operating Systems Support thousands of concurrent users; millions of transactions per day IBM’s OS/390, IBM’s VM (Virtual Machine), IBM’s VSE (Virtual Storage Extended), and IBM’s OS/400 12 System Support Programs  Support the operations, management, and users of a computer system  Examples: System Utilities • Perform common tasks: sorting records, checking disk integrity, creating directories and subdirectories, restoring accidentally erased files, locating stored files, managing memory usage, and redirecting output. 13 System Support Programs (continued)  Examples (continued) Performance monitors • monitor job processing • produce statistical reports on system resource usage Security monitors • monitor the use of a computer system to protect it and its resources from unauthorized use, fraud, or destruction 14 Application Software  Programs performing specific information processing activities and user functionality  Types of Application Software  Proprietary application software • Addresses a specific or unique business need for a company  Off-the-shelf application software • Vendor developed programs sold to many organizations • May be standard package or may be customizable 15 Application Software (continued) Personal Application Software - off-the-shelf application programs supporting general types of processing  Spreadsheets  Data management  Word processing  Desktop publishing  Graphics  Presentation; Analysis; CAD  Multimedia  Communication  Speech-recognition  Groupware 16 Software Issues  Software Evaluation and Selection Selection factors • Size and location of the user base • System administration tools • Initial and subsequent costs • Current and future system capabilities • Existing computing environment • In-house technical skills 17 Software Issues (continued)  Software Licensing  Copyright - exclusive legal right to reproduce, publish, and sell the software  Licenses - permission granted under the law to engage in an activity otherwise unlawful  Software Upgrades  May or may not offer valuable enhancements  Risk that revised software may contain bugs  Upgrading in a large organization is a major undertaking, so must assess the merits of the new release 18 Software Issues (continued)  Open Systems A model of computing products that work together Empower designers to choose the best computer hardware, operating system, and application software without compatibility concerns  Open Source Software Software code offered freely to developers 19 Programming Languages  Various programming languages enable people to tell computers what to do  Foundation for developing applications 20 How are Programs Understood by the Computer? (The Language Translation Process) Program written in programming language (source code) Translator program  Assembler  Compiler  Interpreter Program written in machine language (object code) Processed By CPU 21 Programming Languages  Machine Language (first generation of programming languages)  The computer’s ‘native language’  Composed of binary digits (0s, 1s)  The only language that computers understand  Assembly Language (second generation of programming languages)  One-to-one correspondence to machine language  Somewhat more user-friendly than machine language (mnemonic rather than binary digits)  Assembler – program that translates an assembly language program into machine language 22 Programming Languages (continued …)  Procedural Languages (third generation languages)  One instruction translates into many machine language instructions  Programs describe the computer’s processing step-bystep  Closer to natural language; uses common words rather than abbreviated mnemonics  Examples: Cobol, C, Fortran, QuickBasic  Compiler - translates the entire program at once  Interpreter - translates and executes one source program statement at a time 23 Programming Languages (continued)  Nonprocedural Language (fourth generation languages)  Allows the user to specify the desired result without having to specify the detailed procedures needed for achieving the result  Example – data base query language - SQL  Can be used by non technical users  Natural Language Programming Languages (fifth generation (intelligent) languages)  Translates natural languages into a structured, machine-readable form  Are extremely complex and experimental 24 Current Programming Languages  Visual Programming Languages Used within a graphical environment Example : Visual Basic and Visual C++ Popular to non technical users  Hypertext Markup Language (HTML) standard language used in World Wide Web contains text, images, and other types of information such as data files, audio, video, and executable computer programs 25 Current Programming Languages  Extensible Markup Language (XML) Improved on web document functionality  Componentware Software components that may be assembled by developer as needed “Plug and Play” software development 26 Current Programming Languages (continued)  Virtual Reality Modeling Language (VRML)  a file format for describing three-dimensional interactive worlds and objects  can be used with the World Wide Web  Object-Oriented Programming Languages (OOP)  based on objects – packaging data and the instructions about what to do with that data together  Examples: Java, C++  Unified Modeling Language (UML)- modeling tool for object-oriented systems 27 Enterprise Software  Problem faced in many organizations…  Competitive pressures require change in organizational procedures, however  all the different types of software and hardware in use cause so much complexity that change is difficult  Solution options  Software packages with integrated functional modules (i.e., human resource, operations, marketing, finance, accounting, etc.)  Use of middleware to link disparate applications  Enterprise software that manages all organizational operations 28 Lecture Summary  Software can be broadly categorized as Systems software     and Applications software Systems software provides an interface between the hardware and the application software Application software performs specific business functions Programming languages provide the means for humans to give computers instructions Organizations seek enterprise wide software solutions to provide integrated organizational systems 29