Software development processes

The life cycle of a software product - from inception of an idea for a product through

Issues with software quality

Reasons

Software development - as a black-badc process - as a white-bax procesws

lackbox whitebox

Problems with black-box approach:

Advantages of white-box approach:

Waterfall process

waterfallstepwise QA

Example of activities: activities

Strength of waterfall process:

Weakness of waterfall process:

Waterfall to be used when . . .

Iterative process

Also referred to as incremental development process. Develop system through repeated cycle (iterations)

iterative

Agile methods

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods:

The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.

MANIFESTO: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value (that is, while there is value in the items on the right, we value more the items on the left):

Principles

Description

Customer involvement

Customers should be closely involved throughout the development process. Their role is to provide and prioritize new system requirements and to evaluate the iterations of the system.

Incremental delivery

The software is developed in increments with the customer specifying the requirements to be included in each increment. - e.g. The SCRUM Process

People not process

The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes.

Embrace change

Expect the system requirements to change and so design the system to accommodate these changes.

Maintain simplicity

Focus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.

Problems with agile methods:

Future outlook

More and more activities of the software development process can be automated by using appropriate CASE tools. This course provides some introduction to some of such tools:

The following figures were presented by David Harel (the author of Hierachical State Charts) to show how he sees software development within the coming decades:

1 2

3


Course notes - Gregor v. Bochmann - University of Ottawa. Created: January 5, 2015 - Note: this page contains much material copied from the Powerpoint slides used by Dr. Hussein Al Osman for this course in 2014