Thursday, 27 December 2012

Computer Software Basics

Types of software


Software types
  • Application software
Performs information processing tasks for end users
  • System software
Manages and supports operations of computer systems and networks

Application software
  • General purpose
Programs that perform common information processing jobs for end users
E.g., word processing, spreadsheet, etc.
Also called productivity packages
  • Application-specific
Programs that support specific applications of end users
E.g., electronic commerce, customer relationship management, etc.

Software classifications
  • Classify based on how it was developed
  • Custom software
Software applications that are developed within an organization for use by that organization
  • COTS software
Commercial Off-the-shelf (COTS)
Software developed with the intention of selling the software in multiple copies
  • Why would you choose Custom over COTS?
  • Why would you choose COTS over Custom?
Software Suites
  • Software suites integrate software packages
Advantages:
    • Cost less than buying individual packages
    • All have a similar GUI
    • Work together well
Disadvantages
    • Features not used by all users
    • Take a lot of disk space





Integrated Packages
  • Integrated packages
- Combine the functions of several programs into one package
- E.g., Microsoft Works, AppleWorks
Advantages:
    • Many functions for lower price and smaller disk space
Disadvantage
    • Limited functionality
Web Browser
  • Software applications that support navigation through the point-and-click resources of the Web
  • Surfing the web
  • Becoming a universal software platform for Internet-based applications
  • Microsoft Explorer, Netscape Navigator, Firefox, Opera or Mozilla
E-mail, Instant Messaging and Weblogs
  • E-mail
                 - Software to communicate by sending and receiving messages and attachments via the Internet, intranet or extranet
  • Instant messaging (IM)
                  - Receive electronic messages instantly
  • Weblog or blog
                  - A personal website in dated log format
                  - Updated with new information about a subject or range of subjects

Word processing and Desktop publishing
  • Word processing
          - Create, edit, revise and print documents
          - E.g., Microsoft Word, Lotus WordPro and Corel WordPerfect
  • Desktop Publishing
          - Produce printed materials that look professionally published
          - E.g., Adobe PageMaker, Microsoft Publisher and QuarkXPress
Electronic Spreadsheets and Presentation Graphics
  • Electronic Spreadsheets
              - Worksheet of rows and columns
              - Used for calculations and charts
              - E.g., Lotus 1-2-3, Microsoft Excel, Corel QuattroPro
  • Presentation Graphics
             - Convert numeric data into graphics displays
             - Prepare multimedia presentations including graphics, photos, animation, and video clips
             - E.g., Microsoft PowerPoint, Lotus Freelance, Corel Presentations

Personal Information Manager and Groupware
  • Personal Information Manager (PIM)
               - Software for end user productivity and collaboration
               - Store information about clients, schedules, manage appointments, manage tasks
               - E.g., Lotus Organizer, Microsoft Outlook
  • Groupware
                - Software that helps workgroups collaborate on group assignments
                - E-mail, discussion groups, databases, videoconferencing
                - E.g., Lotus Notes, Novell GroupWise, Microsoft Exchange

Sources of Software

Proprietary and Off-the-Shelf Software


 Software : for sale/free/rent
  • Commercial software:
                  - proprietary software or package software 
                  - Copyright : exclusive legal right
                  - Software license : the right to use
                  - You don’t buy software: you buy a license to 
                     use the software under the terms
                    of  the licensing agreement
                  - Licensed to protect the vendor’s property right
  • Public-domain software
                 - not protected by copyright
                 - For ex: open source software

Software : for sale, for free or for rent ?
  • Shareware
                 - distributed free of charge but requires users to make a monetary contribution to
                  continue using it
  • Freeware
                  - Copyright software that is distributed free of charge
  • Rentalware
                   - The users lease software
  • Pirated software  # counterfeit software
System software
  • Software that manages and supports a computer system
  • System management programs
               - Programs that manage hardware, software, network, and data resources
               - E.g., operating systems, network management programs, 
                    database management systems, systems utilities
  • Systems development programs
               - Programs that help users develop information system 
                  programs

Operating System

Integrated system of programs that  
                  - Manages the operations of the CPU
                  - Controls the input/output and storage resources and
                    activities of the computer system
                  - Provides support services as computer executes 
                    applications programs

Operating System basic functions


User Interface
  • Part of the operating system that allows you to communicate with it
  • Three main types:
               - Command-driven
               - Menu-driven
               - Graphical user interfaces (GUI)

Resource management 
  • Part of operating system that manages the hardware and networking resources of a computer system
               - Includes CPU, memory, secondary storage device,  
                 telecommunications, and input/output peripherals

  • Virtual memory
        - Swapping parts of programs and data between memory
          and magnetic disks
File management
  • Part of the operating system that controls the creation, deletion, and access of files of data and programs
Task Management
  • Part of the operating system that manages the accomplishment of computing tasks of the end users

Multitasking

         - Task management approach that allows for several tasks to be performed in a  seemingly simultaneous fashion

    •   Assigns only one task to CPU but switches between tasks so quickly looks like executing all programs at once                                                                                                                     -  Also called multi programming or time-sharing

Popular Operating Systems
  • Windows
            - GUI, multitasking, networking, multimedia
            - Microsoft’s operating system
            - Different versions manage servers
  • Unix
            - Multitasking, multiuser, network-managing
            - Portable – can run on mainframes, midrange and PCs
  • Linux
            - Low-cost, powerful reliable Unix-like operating system
            - Open-source
  • MAC OS X
            - Apple operating system for the iMac
            - GUI, multitasking, multimedia

Other system software
  • Utilities
              - Miscellaneous housekeeping functions
              - Example, Norton utilities includes data backup, virus protection, data compression, etc.
  • Performance monitors
              - Programs that monitor and adjust computer system to keep them running efficiently
  • Security monitors
              - Programs that monitor and control use of computer systems to prevent unauthorized 
                 use of resources
Programming Languages



Machine Languages
  • First-generation languages
  • All program instructions had to be written using binary codes unique to each computer
  • Programmers had to know the internal operations of the specific type of CPU
Assembler Languages
  • Second-generation languages
  • Symbols are used to represent operation codes and storage locations
  • Need language translator programs to convert the instructions into machine instructions
  • Used by systems programmers (who program system software)
High-Level Languages
  • Third-generation languages
  • Instructions that use brief statements or arithmetic expressions
  • Macro instructions:  each statement generates several machine instructions when translated by compilers or interpreters
  • Easier to learn than assembler
  • Machine independent
  • Less efficient than assembler

Fourth-Generation Languages
  • Variety of programming languages that are non procedural and conversational
  • Non procedural – users specify results they want while computer determines the sequence of instructions that will accomplish those results
  • Natural Language – very close to English or other human language
Object-Oriented Languages
  • Combine data elements and the procedures that will be performed upon them into Objects
  • E.g., an object could be data about a bank account and the procedures performed on it such as interest calculations

  • Most widely used software development languages today
  • Easier to use and more efficient for graphics-oriented user interfaces
  • Reusable:  can use an object from one application in another application
  • E.g., Visual Basic, C++, Java
Web Languages
  • HTML 
    • A page description language that creates hypertext documents for the Web
  • XML
    • Describes the contents of Web pages by applying identifying tags or contextual labels to the data in Web documents
  • Java
    • Object-oriented programming language that is simple, secure and platform independent
    • Java applets can be executed on any computer
Web Services
  • Software components 
  • based on a framework of Web and object-oriented standards and technologies 
  • for using the Web 
  • to electronically link the applications of different users and different computing platforms
Language Translator Programs
  • Translate instructions written in programming languages into machine language
  • Assembler
              - translates assembler language statements
  • Compiler 
             - translates high-level language statements
  • Interpreter
             - compiler that translates and executes each statement in a program one at a time
             - Java is interpreted

No comments:

Post a Comment