software design

process by which an agent creates a specification of a software artifact