Software Engineering

Software Development Lifecycle Models

Primary functions of a software process model
  • Determine the order of activities involved in software development and evolution
    What shall we do next?
  • Establish the transition criteria for progressing from one stage to the next
    When shall we move on to the next activity?
Why are software process models useful?
  • They provide guidance on what a software development project should do at any given time.

Spiral (Model Generator)



Rational Unified Process (RUP)


Software Quality

  • Establishing the fitness or worth of a product for its intended mission
  • valere = to be worth
  • “Are we building the correct product?”
  • Establishing the truth of correspondence between a product and its specification
  • veritas = truth
  • “Are we building the product correctly?”

Quality Engineering Practices

Requirements Engineering

Software Architecture & Design

Design Guidance



Software Development Tools

Software Configuration Management / Revision Control

Build Management

Continuous Integration

Overview of Continuous Integration [Fowler]
  • CruiseControl Information CruiseControl: a continuous integration tool and an extensible framework for creating a custom continuous build process
  • Jenkins Information Jenkins: monitors executions of repeated tasks, such as building a software project or jobs run by cron (previously: Hudson)

Project Management / Issue Tracking

Code Analysis

Source Code Beautification


Project Resource Estimation

Copyright © 1995–2016 Dr. Jody Paul, All Rights Reserved