the process of developing a software application
the process of developing a software specification -- software specs are for communicating customer needs to the system developers
establishing customer requirements and the constraints of the system