a systematically designed method of developing and maintaining a software system through its lifecycle.
framework for the tasks that are required to build quality software
is a structured set of activities required to/involved in developing a software system - specification; - design; - validation; - evolution.