History
JSD was first presented by Michael A. Jackson in 1982, in a paper called "A System Development Method".A System development methodPrinciples of operation
Three basic principles of operation of JSD is that: * Development must start with describing and modelling the real world, rather than specifying or structuring the function performed by the system. A system made using JSD method performs the simulation of the real world before any direct attention is paid to function or purpose of the system. * An adequate model of a time-ordered world must itself be time-ordered. Main aim is to map progress in the real world on progress in the system that models it. * The way of implementing the system is based on transformation of specification into efficient set of processes. These processes should be designed in such a manner that it would be possible to run them on available software and hardware.JSD steps
When it was originally presented by Jackson in 1982, the method consisted of six steps: # Entity/action step # Initial model step # Interactive function step # Information function step # System timing step # System implementation step Later, some steps were combined to create a method with only three steps.Decision systems Inc. (2002)Modeling stage
In the modeling stage the designer creates a collection of ''entity structure diagrams'' and identifies the entities in the system, the actions they perform, the time-ordering of the actions in the life of the entities, and the attributes of the actions and entities. Entity structure diagrams use the diagramming notation of Jackson Structured Programming ''structure diagrams''. Purpose of these diagrams is to create a full description of the aspects of the system and the organisation. Developers have to decide which things are important and which are not. Good communication between developers and users of the new system is very important. This stage is the combination of the former entity/action step and the entity structures step.Network stage
In the network stage a model of the system as a whole is developed and represented as a ''system specification diagram'' (SSD) (also known as a ''Implementation stage
In the implementation stage the abstract network model of the solution is converted into a physical system, represented as a ''system implementation diagram'' (SID). The SID shows the system as a ''scheduler'' process that calls modules that implement the processes. Datastreams are represented as calls to inverted processes. Database symbols represent collections of entity state-vectors, and there are special symbols for file buffers (which must be implemented when processes are scheduled to run at different time intervals). The central concern of implementation step is optimization of the system. It is necessary to reduce the number of processes because it is impossible to provide each process that is contained in specification with its own virtual processor. By means of transformation, processes are combined in order to limit their number to the number of processors.Designing the diagrams
;Entity structure diagram (ESD) The diagram shows how the action entities cooperate with the system. Entity structure diagram (ESD) notations: * ''Entity'': An entity is an object that is used on the system and by the system. * ''Action'': The actions that are carried out by entities and the actions that affect other entities. * ''Construct-sequence'': The JSD construct is identical to the SSADM Entity Life History construct. Use a SequenceConstruct to illustrate actions that are applied from left to right. * ''Construct-selection'': To reflect a choice between two or more actions. Mark the options in the topright corner with a "o" (option). * ''Construct-recurrence'': When an action repeats, place a small asterisk (*) in the topright corner. Normally there would be only one action underneath a RecurringConstruct. * '' Null component'': A Null component can make sure nothing happens in an IF-ELSE statement. ;Network diagram (ND) Network diagrams show the interaction between the processes. Sometimes they are referred to as system specification diagrams (SSDs). Network diagram (ND) notations: * ''Process'': Processes represent system functions. A process model represents the primary system functions. It generally has a relation with an outside entity through the datastream. * ''Datastream connection'': In a datastream connection, process A (the entity that writes the datastream) actively sends information to another process B. * ''State vector inspection'': In a state vector connection, process B (the entity that reads the state vector information) reads the state vector information of another entity A. The difference between a state vector connection and a data stream connection lies in which process is active. In a datastream connection, the process with the information, A, is the active process; it actively sends a message to the datastream reader B at a time that it (A, the sender) chooses. In a state vector inspection, the process with the information, A, is passive; it does nothing but let the reader process B inspect its (A's) state vector. B, the process doing the inspection, is the active process; it decides when it will read information from A. Roughly speaking, datastream connection is an abstraction of message passing, while state vector inspection is an abstraction for polling (and for database retrieval).References
{{ReflistFurther reading
* John R. Cameron (1989).''The Jackson Approach to Software Development'', IEEE Computer Society Press, Silver Spring.External links