Introduction to Software Processes in Object Oriented Software Engineering


Software Processes

Software processes, also known as software methodology, can be described as a set of activities or tasks performed as a part of procedure of development of a software leading to production. 

Software processes are not limited to only development processes from the scratch, these can even include modifying the existing software.

Irrespective of the kinds of software processes, each and every process includes the following fundamental activities. 

  • Software specification (also, requirements engineering) – It tells the specifications of the software, revolves around what the system (Software) do, and states its main functionalities.
  • Software design and implementation – As the name suggests, this activity revolves around designing the architecture of the software and implementing the same by the means of programming. 
  • Software verification and validation – Performs a check that the software is capable as per the specifications documents and the customer’s needs. 
  • Software evolution (also, software maintenance) – Modifies the system (software) based on the changes in market requirements and customer needs.

Software Process Models

Software process models can be described as an abstract representation of any software process, having the following specifications – 

  • Products – A product can be described as the outcome of a process activity. 
  • Roles –  Responsibilities of the people, or team involved in a process.
  • Pre and Post Conditions – Statements that are true before and after the process respectively. 

Types of Software Process Models 

  • Waterfall Model – It is a plan driven model having different or separate phases of software process activities. (requirements, design and implementation,validation, evolution). 
  • Incremental Development – The software is developed as a series of different versions or increments. Each version adds a specific functionality to the software.
  • Integration and Configuration – Integrates and configures the already developed components to develop a final product. Avoids developing components from scratch. 

Software process is a complex scenario, and generally relies on decision making. Each company uses its own software process that best suits their needs.