the method and system of this invention assist a user in the achievement of a task according to a set of procedures such as those used in the design of software products . a functional description of the process of designing the software is instantiated by the system whereupon the system provides the user with a series of choices relating to the software development . the choices selected , in turn , permit a variety of system tools , each operating in parallel and concurrently , to be used in the development of the software . the system automatically monitors and checks the process during any manipulation and provides error analysis as well as suggested courses of action to the user . the system provides flexible support without requiring the user to follow a rigid development pattern .