Software engineering diversity.

  • The most significant factor in determining which software engineering methods and techniques are most important is the type of application that is being developed. There are many different types of application including: 
  •  Stand-alone applications:These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network. Examples of such applications are office applications on a PC, CAD programs, photo manipulation software, etc.  
  • Interactive transaction-based applications:These are applications that execute on a remote computer and that are accessed by users from their own PCs or terminals. Obviously, these include web applications such as e-commerce applications where you can interact with a remote system to buy goods and services. Interactive applications often incorporate a large data store that is accessed and updated in each transaction. 
  •  Embedded control systems:These are software control systems that control and manage hardware devices. Examples of embedded systems include the software in a mobile (cell) phone, software that controls anti-lock braking in a car, and software in a microwave oven to control the cooking process. 
  •  Batch processing systems:These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. Examples of batch systems include periodic billing systems, such as phone billing systems, and salary payment systems.  
  • Entertainment systems:These are systems that are primarily for personal use and which are intended to entertain the user. The quality of the user interaction offered is the most important distinguishing characteristic of entertainment systems. 
  •  Systems for modeling and simulation:These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects. These are often computationally intensive and require high-performance parallel systems for execution. 
  • Data collection systems:These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing. The software has to interact with sensors and often is installed in a hostile environmentsuch as inside an engine or in a remote location.  
  • Systems of systems:These are systems that are composed of a number of other software systems. 
Posted on by