the process of creating a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject constraints.
is the activity of specifying the nature and composition of software products that satisfy the clients needs and desires, subject to constraints
when a computer performs tasks immediately