Information Systems Software: Software, Systems and Applications Software Term: 2010/2009 Week 5 Index – Information Systems Software: Software, Systems and Applications Softwares 1. General Inf o on Sof tware 1. Definition of Software 2. Issues and Trends 3. Ownership and Licencing – Discussion and Facts 2. Types of Sof tware 1. Software Concepts 2. Systems Software 3. Operating Systems 4. Utility Software 5. Application Software 3. Sof tware Development Tools 1. Programmin Languages Terminology 2. Object Oriented Languages 3. Visual Programming Languages 4. Fifth Generation Languages 5. CASE 6. IDEs 7. Shell 8. Testing 4. Application Software 1. Sources of Application Software 2. Office Programs – Word Processing, Spreadsheets etc. 3. Databases 4. Graphics 5. Software Suites 6. OLE 7. ERP 8. Business Intelligence Software 9. Middleware What is „Software‟? No computer can work without software! A series of detailed statements/instructions that control the operation of a computer system. Software exists as programs or a set of programs that are developed by computer programmers. Programs carry out special tasks, they are formed by command lines. In order to execute or have its instructions performed by the computer, a program must be stored in the computer‟s primary storage along with the required data. “Stored program” Once a program finishes executing, the computer hardware can bu used for another task by loading a new program into primary storage. The Importance of Software in Business High Software $ Hardware Low 1950 today time Spheres of Influence Personal Softwares that serve the needs of an individual user Workgroup Two or more people who work together to achieve a common goal Enterprise Softwares that support the firm in its interaction with its environment. Commercial Terms of Software Software licensing Protection by software vendors to prevent unauthorized use Question: Should software have licences? Article Reading on Stallman‟s Free Software Movement Software upgrades A revised version of software that usually includes fixes of known problems, plus enhancements to existing capabilities - Global software support Software that is distributed around the globe may require unique support mechanisms due to local political and economic conditions Ownership Freeware: Copyrighted software given away for free by the author. Although it is available for free, the author retains the copyright, which means that you cannot do anything with it that is not expressly allowed by the author. Usually, the author allows people to use the software, but not sell it. Shareware: Software distributed on the basis of an honor system. Most shareware is delivered free of charge, but the author usually requests that you pay a small fee if you like the program and use it regularly. By sending the small fee, you become registered with the producer so that you can receive service assistance and updates. You can copy shareware and pass it along to friends and colleagues, but they too are expected to pay a fee if they use the product. Shareware is inexpensive because it is usually produced by a single programmer and is offered directly to customers. Thus, there are practically no packaging or advertising expenses. Note that shareware differs from public-domain software in that shareware is copyrighted. This means that you cannot sell a shareware product as your own. Public-domain software: Refers to any program that is not copyrighted. Public-domain software is free and can be used without restrictions. The term public-domain software is often used incorrectly to include freeware, free software that is nevertheless copyrighted. FLOSS Free/Libre Open Source Software (FLOSS) has reshaped software technology through the creation of developer/user communities that enabled the collaboration of different parties Served as “learning, reviewing, and testing” environments for developer acted as innovation networks that improve the innovative capabilities of developers Acted as user communities with a pattern of user innovation, with their abilities for enabling product development, creating, sustaining, consuming and supporting innovations, “without manufacturer involvement “ FLOSS Communities: A valuable platform for the collaboration of high-tech professionals and researchers in similar fields of technology. No limitation for taking part in innovation process - no national, regional, cultural borders (Internet) Replacing the traditional closed cathedral model with the new open bazaar model (Metaphors of Raymond: Cathedral for proprietary software development with hidden codes, Bazaar for FLOSS development). Peer review process: Code is available for all to review and contribute to-Direct, specific and immediate feedback on the software code that others write and submit FLOSS Development and Adoption in Developing Countries Benefits: - Benefits Low total cost of ownership Good performance and flexibility for localization Open Knowledge base- Collaborative development as a learning platform- Knowledge base creation/skills development in programming - improving the innovation capacity of local software producers National security and transparency (critical for government and public sector) Prevents the widespread “unauthorized copying of software” Reduces barriers to competition that threaten the local software industries Requirements: the appropriate infrastructures financial technical human resource FLOSS Communities as Innovative Networks – User collaboration Two dimensions of innovativeness for community 1. Innovative producer/developer networks 2. Function as innovative user networks Information Information Development FLOSS FLOSS communities Innovation Development Projects communities User/ consumer communities Feedback - Bugs, usability reporting Information Become End Contributors Users or developers Act as Feedback - Bugs, usability reporting Open Source Software Companies producing computer software face the problem that their products can easily be copied and sold by others. Therefore, many software companies have licencing agreements that allow others to use the software and modify it. However, licenced users do not have the right either to copyright their modified versions or to transfer the software to someone else. Ownership of any software derived from the original product remains with the original producer. Computer software licencing agreements often contain the following provisions (Stephenson 1994, p. 183): An annual licencing fee, payable by the licencee in exchange for the right to use its modified versions; Consulting fees, by which software owners have an on-going advisory relationship with their licencees. Licencing agreements based on such a model could enable a traditional community to gain an income by sharing its knowledge with outsiders, while at the same time preventing unwanted commercial exploitation. One way to adopt the model would be as a confidentiality clause of a contract involving the transfer of the indigenous knowledge. Contracting parties receiving this knowledge would have to pay fees to the community providing it and to undertake not to transfer the knowledge to others. Open Source Software Open source software produced by a community of several hundred thousand programmers around the world. According to the leading open soırce professional community, OpenSource.org, open source software is free and can be modified by users. Works derived from the original code must also be free, and the software can be redistributed by the user without additional licensing. OSS is by definition not restricted to any specific operating system or hardware technology, although most open source software is currently based on a Linux or Unix operating system. OSS is based on the premise that it is superior to commercially produced proprietary software. Because thousands of programmers working for no pay can read, perfect, distribute, and modify the source code much faster, an with reliable results, than small teams of programmers working for a single software company. The open source movement has been evolving for more than 30 years and has demostrated after many years of effort that it can produce commercially acceptable, high quality software. Thousands of OSS are available from websites including Linux OS, Apache HTTP Server, Mozilla Firefox web browser, OpenOffice desktop suite. Read Open Source Initiative… Linux and Open Source Software Linux is the most famous OSS. Linux is related to UNIX. Created by the Finnish Programmer Linus Torvalds and first posted to Internet in August 1991. Linux applications are embedded in cell phones, smartphones, netbooks, and other handheld devices. Linux is available in free versions downloadable from the internet or in low cost commercial versions that include tools and support from vendors such as Red Hat. Linux is currently a small but rapidly growing presence on the desktop, especially as an operating system for netbooks. Has a major role in back office running LAN(local area networks), Web servers, high-performance computings. (20% of server operating system) More than 24 countries in Asia, Europe and Latin America have adopted open source software and Linux. Have implications for corporate software platforms: cost reduction, reliability, integration. Major hardware and software vendors like IBM, HP, Dell, Oracle, SAP now offer Linux compatible versions of their products. Types of Software Systems software Set of programs that coordinates activities and functions of the hardware and various other programs Application software Programs that help users solve particular computing problems Operating Application and software systems software Users Hardware Types of Software Software A) Systems B) Applications Software Software A-1) Operating B-1) General Purpose Systems Software A-2) Utility B-2) Application Programs Specific Software A-3) Development Programs A) Systems Software An interface or buffer between application software and hardware Controls the computer hardware and acts as an interface with applications programs Manages and controls the operation of the computer as it performs tasks on behalf of the user Manager of computer resources lke Central Processing Unit (CPU), printers, terminals, telecom links, and other peripheral equipments. İntermediary between the software used by end users and the computer itself. System software provides the platform on which applications sofware runs. A-1) Operating System Functions Perform common computer hardware functions Provide a user interface Provide a degree of hardware independence Manage system memory Manage processing tasks Provide networking capability Control access to system resources Manage files A-1) Commercial operating systems Windows ( Unix Linux Solaris 10 OS/2 Many others, more than 80 TCO is important A-1) Commercial operating systems Windows (At the client level, 95% of PCs and 45% of handheld devices use MS Windows OS) Windows comprises 70% of the server operating market. Windows Server 2008 is capable of providing enterprise-wide operating system and network services. Unix Linux Unix or Linux servers are 30%. Unix and Linux are scalable, reliable, less expensice than mainframe operating systems.They can also run on different processors. (IBM, HP, Sun) Solaris 10 OS/2 Many others, more than 80 TCO is important A-1) Network Operating System Provide the majority of facilities required to support workgroup computing; Centralized storage space can be created for the excusive use of workgroup members Security features can be used to restrict access the data by those outside of workgroup The network group can be given network privileges that allow individual members access that are not normally available to others. Tasks of the Operating System Allocate/Assign -Supervisor Manages work -Command Language Translator Reads instructions A-2) Utility Programs Programs used to merge and sort sets of data, keep track of computer jobs being run, compress files of data before they are stored or transmitted over a network, and perform other important tasks Also monitor system performance and provide security controls In network manage the data traffic. Systems Software Concepts User interface A function of the operating system and other softwares that allows individuals to access and command the computer Command-based user interface A particular user interface that requires text commands be given to the computer to perform basic activities E.g., unix, DOS Graphical user interface (GUI) A UI that uses pictures (icons) and menus displayed on the screen to send commands to the computer system Systems Software Concepts Hardware independence Operating system (OS) provides hardware independence for application software Application software interfaces with the operating system which interfaces with the hardware When the hardware is changed, the operating system is changed so that the application software is not required to be changed System Software Concepts OS Fetch A S Application from hard Software disk, track 1, sector 7 Memory Management : Controls how memory is accessed and maximizes available memory and AS storage System Software Concepts Virtual memory Memory that allocates space in secondary storage to supplement the immediate, functional memory capacity of RAM An imaginary memory area supported by some operating systems (for example, Windows but not DOS) in conjunction with the hardware. You can think of virtual memory as an alternate set of memory addresses. Programs use these virtual addresses rather than real addresses to store instructions and data. When the program is actually executed, the virtual addresses are converted into real memory addresses. The purpose of virtual memory is to enlarge the address space, the set of addresses a program can utilize. When the page is needed, the operating system copies it from disk to main memory, translating the virtual addresses into real addresses. For example, virtual memory might contain twice as many addresses as main memory. A program using all of virtual memory, therefore, would not be able to fit in main memory all at once. Nevertheless, the computer could execute such a program by copying into main memory those portions of the program needed at any given point during execution. To facilitate copying virtual memory into real memory, the operating system divides virtual memory into pages, each of which contains a fixed number of addresses. Each page is stored on a disk until it is needed The process of translating virtual addresses into real addresses is called mapping. The copying of virtual pages from disk to main memory is known as paging or swapping. Paging A function of virtual memory allowing the computer to store currently needed pages in RAM while the rest of the pages wait in secondary storage System Software Concepts Virtual Memory & Paging Memory Disk Program 1 (a few pages) Program 2 (a few pages) Program 3 (a few pages) Operating system and Programs Program 4 (a few pages) system and other software software Program 5 (a few pages) Program 6 (a few pages) Other memory requirements System Software Concepts Multiprogramming A processing activity that allows a user to run more than one application at the same time Uses the CPU (Central Processing Unit) more efficiently. Allows CPU to work on several programs simultaneously. Early computers could execute only one software program at a time. CPU had to stop processing while outputing. Now computer still can process only one program at a time, but it can perform input and output functions on other programs Multitasking: Multiprogramming on single user PC System Software Concepts Multithreading A processing activity that is basically multitasking within a single application Time-sharing A processing activity that allows more than one person to use a computer system at the same time System Software Concepts Network capability Aids in connecting the computer to a network Access to system resources Provides security for unauthorized access File management Ensures that files in secondary storage are available when needed, and they are protected against unauthorized usage A-3) Development Tools/ Programs Allows users to develop their own software in order to carry out processing tasks using programming languages. Programming Languages: Terminology (1) Programming Language: Coding schemes used to write both systems and application software Language translator Systems software that converts a programmer‟s source code into its equivalent in machine language Source code High-level program code written by the programmer Object code Another name for machine language code Programming Languages: Terminology (2) Interpreter A language translator that translates one program statement at a time into machine code Machine Program Interpreter language statement statement Statement execution Programming Languages: Terminology (3) Compiler A language translator that converts a complete program into machine language to produce a program that the computer can process in its entirety Step 1: Translate program Machine Computer Compiler language program program Step 2: Execute program Machine language program Program execution Programming Languages (1) Machine Language 1st generation programming language Considered a low-level language because it involves basic coding using the binary symbols 1 and 0 Assembly Language 2nd generation language Replaced binary digits with mnemonics (e.g., “ADD”) programmers could more easily understand Programming Languages (2) Third Generation Languages Continued trend to more symbolic code (e.g. COBOL, JAVA…) Fourth Generation Languages (4GLs) Languages that are less procedural and even more English-like than third- generation languages (e.g. FOCUS) Programming Languages (3) Query languages Used to ask the computer questions in English-like sentences Also known as database languages Structured query language (SQL) A standardized language often used to perform database queries and manipulations Objects An object combines data structures with any functions needed to manipulate the data it holds. Ex: an object called “Employee” might be created to store details of staff. As a data structure it contains name, adress, age, wage… Benefit: 1. changes can be made on the object without altering any other part of the system 2. new objects can be created quickly and easily from existing ones 3. objects can be copied into new systems with little difficulty. Object Oriented Languages (1) Languages that allow interaction of programming objects, including data elements and the actions that will be performed on them. Object Oriented Languages (2) Encapsulation The process of grouping items into an object Polymorphism A process allowing the programmer to develop one routine or set of activities that will operate on multiple objects Object-oriented languages (OOL) Languages that allow interaction of programming objects, including data elements and the actions that will be performed on them Object Oriented Languages (3) Inheritance Property used to describe objects in a group of objects taking on characteristics of other objects in the same group or class of objects Reusable code The instruction code within an object that can be reused in different programs for a variety of applications Examples Smalltalk, C++, Java Visual Programming Languages Visual programming languages… Languages that use a mouse, icons, or symbols on the screen and pull-down menus to develop programs Examples Visual Basic Visual C++ PC COBOL Fifth-Generation Languages 5th generation languages… Combines rule-based code generation, component management, visual programming techniques, and reuse management Knowledge-based management Anapproach to the development of computer programs in which you do not tell a computer how to do a job, but what you want it to do Development of different programming languages Generation Characteristics &advantages Main disadvantages First Machine language that Programs were consisted of strigs of binary expensive to develop digits as they took long periods Second Development is simplified, Large scale data symbols and abreviations are processing was used for instructions. A low relatively slow. level language is used to translate the program into machine codes Development of different programming languages Generation Characteristics & advantages Main disadvantages Third Commands are made up of Resulting applications were english like of statements sometimes slow and inefficient Fourth Greater ease of use, even non Some programming technical users develop their own knowledge is still necessary applications Fifth Programming system accept a Artificial intelligence spoken question from a user then techniques are still not generate program intended to sufficiently developed to produce the required info make it a practical reality CASE (Computer Aided Software Engineering) Tools CASE is the use of computer based support in the software development process This definition includes all kinds of computer based support for any of the managerial, admnistrative or technical aspects of any part of a software project. Ex: document production, version control of source code, debugging, design method support… IDE‟s: Integrated development environments Combine the features of many tools, into one complete package They are simpler and easier to do simple tasks, such as searching for content only in files in the project. They are often used for development of enterprise level applications. Shell Special tools used for development of expert and knowledge based systems Tests Validation: whether the program achieves intented purpose? Verification: whether the program contains no error Types of Application Software Proprietary: Designed to solve a unique and specific problem In-house: Development of application software using the company‟s resources Contract: Developed for a particular company Off-the-shelf: An existing software program that can be used without considerable changes expected Customized package: Blend of external and internal software development In-house customized Contract customization Standard Package Types of Application Software Application software Proprietary Off-the-shelf software software In-house Customized Standard Contract developed package package In-house Contract customized customization B-1) General-purpose applications Document production Graphics (drawing, photo editing, diagramming) Spreadsheets (for processing numerical info) Databases (for storage and retrieval of info) Multimedia Software for using the Internet: Online Services Management application of the productivity software: Software Suites Document Production - Word Processing Word Processing Provides assistance in formulating, formatting, and printing documents such as letters, memos, and papers. 53 26 Graphics Graphics Program Helps make a presentation; develops brochures, illustrations, etc. Usually called Presentation Graphics 54 Spreadsheet Spreadsheet Provides a wide range of built-in functions for statistical, financial, logical, database, graphics, and data and time calculations. 55 27 Spreadsheets are used for Financial applications Modelling and simulation Modelling: Creating a numerical representation of an existing situation or set of circumstances What if? Analysis: describes the ability see the predicted effect of a change made to a numerical model Statistical analysis Goal seeking: describes a way of automatically changing the values in a formula until a desired result is achieved Database Database Stores, manipulates, and retrieves data. 57 28 On-Line Services On-Line Services Provide access to various information resources. (Figure 4.12) 58 30 Software Suite Software Suite Collection of personal productivity software such as word processor, spreadsheet, and database. 59 31 Software Concepts – OLE- Object Linking and Embedding A compound document standard developed by Microsoft Corporation. Support for OLE is built into the Windows and Macintosh operating systems. A competing compound document standard developed jointly by IBM, Apple Computer, and other computer firms is called OpenDoc. A software feature that allows you to copy text from one document to another or embed graphics from one program into another program or document (you can create objects with one (Server) application and then link or embed them in a second (Client) application). Embedded objects retain their original format and links to the application that created them. Server Application The application that supplies objects you place into other applications Client application The application that accepts objects from other applications OLE Concepts Copy Copy data from one application and place it in another Link Changes made to the server object to automatically appear in all linked client objects Embed An object to become part of the client document OLE Concepts Client Application Word Processing Program Graphics Program Server Application Team photo Team photo Spreadsheet Program Server Application Copy Actual vs. budget Actual vs. Budget Link ------------- ------------- --- --- --- --- - -------------- --- --- --- -- -- -- - - - --- --- - --- --- --- --- -- Project Management Program Chart Server Application Chart ==== == == == == == = --- ------- === == == ------- --- --- -------- ==== ==== = Embed B-2) Application-specific software Programs that are intented to serve a specific purpose or carry out a clearly defined information processing task eg. Payroll processing, ERP… Productivity software Describes a category of computer software that aims to support users in performing a variety of common tasks Workgroup Application Software Groupware Software that helps groups of people work together more efficiently and effectively Collaborative computing software Software that helps teams of people work together toward a common goal Enterprise Application Software Enterprise application software… Software that benefits the entire organization Examples Accounts receivable Sales ordering Accounts payable Order entry Cash-flow analysis Check processing Manufacturing control Receiving General Ledger Retail Operations Example Integrated Supply Chain Management Software Enterprise Resource Planning (ERP) US firms spent about 250 billion USD in 2008 on software for enterprise applications. A set of integrated programs that manage a company‟s vital business operations for an entire multi-site, global organization Short for enterprise resource planning, a business management system that integrates all facets of the business, including planning, manufacturing, sales, and marketing. As the ERP methodology has become more popular, software applications have emerged to help business managers implement ERP. Vendor examples SAP 1st Oracle (2nd and acquired PeopleSoft) Axapta by MS QAD JD Edwards Ross Systems Enterprise Resource Planning (ERP) US firms spent about 250 billion USD in 2008 on software for enterprise applications. Vendor examples: SAP 1st, Oracle (2nd and acquired PeopleSoft), Axapta by MS, SSA, QAD, JD Edwards, Ross Systems Since most large firms already use ERP and have developed long term contacts with vendors, Microsoft is heading for lower levels of the market. ERP Vendors Market in 2005 (ref. GartnerQuest) Vendor Revenue (million $) Market share(%) SAP 1949 30.332 Oracle Applications 1374 21.383 The Sage Group 1121 17.444 Microsoft Dynamics 916 14.255 SSA Global Technologies 464 7.22 Middlewares Special type of softwares which aim to integrate various application softwares They are also known as enterprise application integration. Used for achieving firmwide integration by linking the firm‟s existing application systems. Major Vendor BEA was acquired by Oracle.