a systematically designed method of developing and maintaining a software system through its lifecycle.
a set of actions/tasks that results in the specification, development, validation, and/or evolution of a software product.
a structured set of activities required to develop a software system