Introduction to Software Engineering

New Version for Fall 2014

References:

  1. Bernd Bruegge and Allen H. Dutoit, "Object-Oriented Software Engineering", Third Edition, Chapter 1, with some additional material from chapters 14 and 15.

 

Three Approaches to Software Engineering:

  1. Ad-Hoc
  2. Traditional - Modelled after other fields of Engineering. Slow, methodical, and averse to change.
  3. Agile - Rapid, dynamic, expects and embraces change.

1.3 Software Engineering Concepts

 

1.4 Software Engineering Development Activities ( Traditional Approach )

Activities and deliverables, as shown in an activity diagram, with references to Bruegge & DuToit chapters:

Or more specifically for CS 440 at UIC: ( Also available as a 3-page PDF file )

Project Management Activities by Project Phase ( Traditional Approach, from Chapter 14 )

Agile Development, Based on the Agile Manifesto:

Life Cycle Modelling, from Chapter 15

IEEE standard 1074describes in detail the activities that can be conducted in a software engineering process, broken down by processes and process groups:

Different approaches to software engineering differ in the amount of time and effort spent on each activity ( if any at all ), the order in which the activities are performed, how much iteration takes place, and the extent to which one activity must be completed before another can commence..

Waterfall Model

This is THE classic model of traditional software engineering, in which each activity must be completed before the next can begin. ( Water only flows downhill. Once you have started activity N+1, you can't go back to activity N. )

V-Model

This variation of the waterfall model emphasizes the relationship between test planning and development stages:

Boehm's Spiral Model

A classic iterative model:

Unified Software Development Process

A.k.a. the Unified Process, this approach was developed by Booth, Jacobson, and Rumbaugh, the original developers of UML, this is also an iterative model:

Real Processes

In practice real software development never follows any of the idealized models exactly, but rather blends ideas from the different models.

1.6 ARENA Case Study