Approaches to software development
This free course, Approaches to software development, presents an engineering approach to the development of software systems a software engineering approach. The course pays particular attention to issues of software quality, in terms of both product (what is built) and process (how we build it).

Learning outcomes
- Describe the essential characteristics and identify, using examples, the connections between the characteristics of a good software system.
- Describe the elements of a basic software development process and illustrate the variety of different lifecycles.
- Understand the motivation for, and best practices of, an agile approach to software development.
- Explain the benefits of the Unified Modeling Language (UML) as a standard notation for modelling.
- Identify the different kinds of model used in the development of software and describe the relationship between models, viewpoints and software development.