CIS 123 - Software

Software Overview

This week we explore information systems software. As an MIS manager you would have to know what various software packages are expected to do and what types of specifications to look for. Your job would include having to analyze and recommend the appropriate software for various tasks. This week's topic should help prepare you for that task. The outline presented here is intended to help point out important topics and terms covered in lecture this week. It is not intended to replace the lecture.

Objectives

  • Explain the difference between application software and system software
  • Describe the differences between generations of programming languages
  • Cite the latest major developments in application and system software
  • Describe the differences between proprietary software and open source software
  • List characteristics that are important in evaluating packaged software applications for business use
  • Describe issues involved with software piracy
  • Discuss the current intellectual property controversy in the United States

Terminology

  • algorithm: a finite step-by-step process for solving a problem
  • software: equivalent term to program; a set of instructions that control a computer's operation
  • program: see software
  • application software: software that allows a user to perform a particular task
  • system software: software which manages the hardware of a computer and allows application software to run
  • programming: the process of writing programs; a programmer converts an algorithm into a language that can then be converted into instructions that a computer can execute
  • mnemonic: an abbreviation that is easy to remember
  • user interface: how the user interacts with the computer; presented by the operating system
  • virtual memory: a computer can pretend to have more RAM than it actually does by using the hard drive to store some data and swapping it with other data in RAM when needed - this is virtual memory
  • plug-and-play: the ability of an OS to automatically detect and start using devices attached to the computer without user intervention
  • GUI: graphical user interface
  • SaaS: Software as a Service; software provided by a third party for a recurring fee, often via the Internet
  • ASP: Application Service Provider; provides software access to customers for a recurring fee, often via the internet

Programming languages

  • language levels
    • machine language: very low level; first generation; native language of machines; machine dependent; made up of ones and zeroes; this is what the CPU knows how to run; programs have to be converted into machine language to run on a computer
    • assembly language: second generation; uses mnemonics in place of the ones and zeroes of machine language; easier to use than, but equivalent to, machine language; programmers used to write code in assembly and then have it converted to machine language, but most code is written in a high-level language these days
    • high-level language: more like a natural language; problem-oriented; much easier to use than machine and assembly languages; often available on different types of computers and operating systems; third generation; this (or above) is the level that programmers usually write programs in
    • fourth generation language: even more like a natural language; many built-in functions; includes database features
  • visual programming languages: designed to make programming easier for those programmers creating graphical programs
  • debugging: finding and fixing errors in software
  • high-level language advantages
    • easier to learn
    • easier to program
    • shorter source code than lower-level languages
    • easier to debug
    • easier to maintain
  • high-level language disadvantages
    • less control over hardware
    • less efficient memory-wise
    • slower
  • object-oriented programming (OOP): a modular programming approach where tasks and data are modeled as real world objects
  • OOP advantages
    • enhances modularity
    • easier to reuse code
    • easier to maintain
    • well-suited for graphical applications
    • can speed development process
  • more than 50% of programmer time is spent maintaining software; in fact, that figure can be over 80%
  • source code: the actual text that the programmer writes
  • object code: the code that results from compiling the source code; the object code is in machine language
  • compiling: turning source code into object code
  • compiler: a program that turns source code into object code a whole application at a time
  • interpreter: a program that turns source code into machine language and runs it one line at a time
  • applet: one type of program which is designed to be run in a web browser

Application software

  • application-specific software: software designed to perform a specific job (such as payroll)
  • general purpose software: more general than application-specific (such as word processing)
  • packaged software: software which is pre-made and comes ready to install
  • productivity software (often packaged together as suites)
    • word processing: Word, OpenOffice.org Writer
    • spreadsheets: Excel, OpenOffice.org Calc
    • presentation tools: PowerPoint, OpenOffice.org Impress
    • file and data management: Access, OpenOffice.org Base
    • graphics: OpenOffice.org Draw
    • desktop publishing: Publisher, Scribus
    • project management: Project
  • hypermedia: name given to documents that have clickable links like the Web
  • multimedia: having many different formats available: video, text, music, etc.
  • groupware: software that allows a group of people to collaborate on tasks and/or projects
  • virtual reality (VR): simulates reality using software (and possibly hardware)

System software

  • manages the computer hardware
  • manages resources between programs: memory, hard drive, CPU time, etc.
  • schedules programs
  • designed to support application software
  • carries out general, routine operations (such as copying or deleting files, antivirus, backup software)
  • acts as interface between user and computer
  • operating system (OS): the system software in charge of handling the actual hardware and managing all system resources: Windows, Linux, Unix, Mac OSX
  • client: a machine requesting services from another machine
  • server: a machine fulfilling client requests

Open source vs. proprietary software

  • proprietary: program source code not made public
  • open source: program source code made public
  • Open source software is usually available for free.
  • Proprietary software often costs money to "buy" - but not always.
  • Open source software may not be free to use (see licensing for each application).
  • Proprietary software may be free to use (see licensing for each application).
  • You can often "buy" open source software - but you are usually purchasing technical support rather than the software itself.
  • Some "free" software (both proprietary and open source) has limitations that can be overcome, or special additional software made available, for a price.
  • Contrary to popular opinion, open source software is often high quality, relatively secure, and often has no limitations imposed upon the user.

Licensing and intellectual property laws

  • IP: intellectual property
  • Check licensing carefully for terms of use.
  • Copyright and patent law were intended to promote the common good.
  • Most people think that copyright and patent law are designed to enrich inventors, and they are indeed designed that way now - but that was not the original goal.
  • The original goal of intellectual property laws was to promote innovation, but they are largely used now to raise market barriers, and therefore tend to lessen innovation.
  • DMCA: (Digital Millennium Copyright Act) drastic expansion of copyright law which was partially designed to strip the public of rights they previously enjoyed, such as the ability to make a copy of a work for personal use
  • IP laws have been used in many cases to stifle competition and suppress innovation
  • Software, music, and movie piracy figures are notoriously inaccurate and often accused of being grossly inflated.
  • The best advice is to be very careful to follow IP laws since penalties may be worse than the penalties for many other crimes.

Purchasing considerations

  • How well will the software do the job it is intended to perform?
  • How easy will the software be to learn?
  • How easy will the software be to use?
  • How much does the software cost? Consider one-time AND ongoing costs.
  • Can the software be shared across a network?
  • Does the software share data over the network?
  • How easily can the software be integrated into existing hardware and software systems?
  • How easily can the software be integrated into future hardware and software systems?
  • Is support available? If so, how good is it and what does it cost?
  • Is the vendor trustworthy?
  • Does the software have a proven track record of success?