Jackson system development (JSD) is a linear software development methodology developed by Michael A. Jackson and John Cameron in the 1980s.
JSD was first presented by Michael A. Jackson in 1982, in a paper called "A System Development Method". and in 1983 in System Development. Jackson System Development (JSD) is a method of system development that covers the software life cycle either directly or, by providing a framework into which more specialized techniques can fit. Jackson System Development can start from the stage in a project when there is only a general statement of requirements. However, many projects that have used Jackson System Development actually started slightly later in the life cycle, doing the first steps largely from existing documents rather than directly with the users. The later steps of JSD produce the code of the final system. Jackson’s first method, Jackson Structured Programming (JSP), is used to produce the final code. The output of the earlier steps of JSD are a set of program design problems, the design of which is the subject matter of JSP. Maintenance is also addressed by reworking whichever of the earlier steps are appropriate.
JSD continued to evolve, and a few new features were introduced into the method. These are described in a 1989 collection of papers by John Cameron, JSP and JSD, and in the 1992 version (version 2) of the LBMS JSD manual.
Development of the JSD method came to an end in the early 1990s as Jackson's thinking evolved into the Problem Frames Approach with the publication of Software Requirements and Specifications (1995) and Problem Frames: Analyzing and Structuring Software Development Problems (2000).
Three basic principles of operation of JSD is that:
When it was originally presented by Jackson in 1982, the method consisted of six steps:
Later, some steps were combined to create a method with only three steps.
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.