Object Oriented Software Engineering - Software Process and SDLC Models

Software Process

  • Definition: A software process consists of activities and associated outcomes that produce a software product, primarily executed by software engineers.

  • Key Process Activities:

  • Software Specifications: Define what the software should do and any constraints on its operation.

  • Software Development: Craft the software that meets the requirements defined in specifications.

  • Software Validation: Ensure the software meets customer expectations and functions as intended.

  • Software Evolution: Adapt and modify the software as client needs change over time.


Software Process Models

  • Definition: A software process model is an abstract representation of the actual software process viewed from a specific perspective.

  • Types of Models:

  • Workflow Model: Shows sequences of activities, inputs, outputs, and dependencies. Focuses on human actions.

  • Dataflow/Activity Model: Represents the process through activities that transform data; can involve individual or automated actions.

  • Role/Action Model: Highlights the roles of individuals involved in the software process and their associated activities.


Need for Process Model

  • A process model ensures systematic software development, helping team members understand their roles and the activities preceding their tasks.
  • Benefits:
  • Enforces discipline and clarity in the development process.
  • Facilitates effective monitoring of project progress.
  • Establishes clear entry and exit criteria for each phase, minimizing chaos during development.
  • Essential for avoiding failures in software projects due to uncoordinated efforts.

Software Development Life Cycle (SDLC) Models

  • Definition: SDLC is a structured model outlining the phases of developing an information system from feasibility studies to software maintenance.

  • Phases of SDLC:

  • Requirement Analysis

  • Designing

  • Coding

  • Testing

  • Deployment

  • Maintenance

  • Types of SDLC Models:

  • Waterfall

  • Rapid Application Development (RAD)

  • Spiral

  • V-Model

  • Incremental

  • Agile

  • Iterative

  • Big Bang


Waterfall Model

  • Introduction: Proposed by Winston Royce in 1970, this model outlines a linear sequence of five phases.

  • Phases of Waterfall Model:

  1. Requirements Analysis and Specification: Documenting software requirements, creating a Software Requirement Specification (SRS) document.
  2. Design: Transforming requirements into a detailed software design documented in a Software Design Document (SDD).
  3. Implementation and Unit Testing: Coding based on the design, followed by testing of individual components.
  4. Integration and System Testing: Validating the integration of various modules and overall system testing to ensure quality.
  5. Operation and Maintenance: Ongoing support and updates post-delivery to meet evolving user needs.
  • Advantages:

  • Simple and easy to manage, especially suitable for small projects with well-understood requirements.

  • Fixed phases allow clear progress tracking and deliverables management.

  • Customer clarity due to strict reporting.

  • Disadvantages:

  • Limited customer interaction; feedback is late in the project.

  • Difficulty in changing requirements once development starts.

  • High risk with complex projects where requirements may change.

  • When to Use Waterfall Model:

  • Requirements are clear, fixed, and understood.

  • The project is short and well-defined with minimal changes expected.

  • Examples:

  • Construction projects, where stages are linear (requirements, design, construction, testing).

  • Software applications development, similarly reflecting a stepped process.


Practice Questions

  • Describe the phases in a typical SDLC process.
  • How does the Waterfall Methodology differ from other SDLC methodologies?
  • Explain each stage of the waterfall methodology.
  • What applications suit the Waterfall Model?
  • Discuss the pros and cons of the Spiral model.
  • Assess the feasibility of reverting to an earlier phase after transitioning to later ones in the Waterfall Model.