Software

From StudyWiki

Jump to: navigation, search

Contents

Overview

Software
  1. Instructions (computer programs) that when executed provide desired features, functions, and performance
  2. Data structures that enable the programs to adequately manipulate information
  3. Documents that describe the operation and use of the program


Key points
What is it? The product built and supported by software professionals.

Includes executables for any architecture/systems of all sizes, the content presented by the software, and all electronic media

Who makes it? Software Engineers
Why is it Important? it affects all aspects of our live, and is pervasive through society
What are the steps involved in creating it? A software engineering approach. It requires an agile, adaptable process that leads to a high quality result that meets the user's needs
What is the work product? Software Engineers: programs, content/data, and supporting documents

User: program function or output that benefits user

The Role of Software

Software has a dual role:

  • Product
  • means of delivering a product
    • it is a means of interacting with hardware

Software Characteristics

  1. Software is developed or engineered; it is not manufactured in the classical sense
  2. Software doesn't wear out
  3. Most software is custom built, although component-based construction is gaining popularity

Software Categories

System Software
Collection of programs to service other programs.
Characterised by:
heavy interaction with hardware
heavy use by multiple users
concurrent operations using scheduling
resource sharing
process management
complex data structures
multiple external interfaces
Application Software
Stand-alone programs to solve a specific business need
Engineering/Scientific Software
resources intensive programs for simulations, CAD, and research
Embedded Software
Software residing in a product or system, to control hardware for the user and system
Product Line Software
Provides specific capability for use by many customers
Web Applications
Software designed to operate across the internet
Artificial Intelligence Software
Software that uses complex non-numerical algorithms to solve complex problems and mimic intelligence

Legacy Software

Legacy software is old or outdated software that is still in use.

Often suffers from poor quality (missing/out dated documentation, complicated, badly coded) due to ongoing updates to meet new needs.

Legacy software must often be:

  • adapted to new computing environments/technologies
  • enhanced due to new business requirements
  • extended for interoperability with newer systems (including the internet)
  • redesigned so the architecture supports networking

which all leads to re-engineering

Software Failure Rates

Hardware deteriorates rapidly and the beginning and end of its lifecycle.

Image:HardwareFailureRate.gif

Infant Mortality
failure due to design/manufacturing defects
Wear Out
failure due to deterioration caused by use as hardware reaches the end of its lifespan

Image:SoftwareFailureRate.gif

Initially, failure rate is high due to undiscovered defects, then failure rate drops and stabilises. Software doesn't deteriorate, hence the idealised curve.

As changes are made, errors requiring correction are introduced causing failure rate to rapidly increase and gradually decrease.

Another change is made before the failure rate recovers requiring further corrections preventing the rate from returning to its former level.

As the failure rate is never able to return to its previous level, failure increases. The software is deteriorating due to change.

See Also

Personal tools