In JSD, the principles of JSP are extended into the areas of systems analysis, specification, design and implementation In JSP, a simple program describes a sequential process that communicates by means of sequential data streams; its structure is determined by the structure of its input and output data stream. JSD models the real world as a set of sequential model processes that communicate with the real world and with each other by sequential data streams (as well as by a second read-only communication called state vector connection). The structure of a model process is determined by the structure of its inputs and outputs. The JSD implementation step embodies the JSP implementation technique, program inversion, in which a program is transformed into a procedure. Other JSP techniques, such as the single read-ahead rule and backtracking, and principles, such as implementation through transformation, are used in JSD.