sub-processes of the software development process