13.07.2015 Views

Software Design 2e - DIM

Software Design 2e - DIM

Software Design 2e - DIM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

31615.1 The JSD modelJackson System Development (JSD)Unlike the methods described in the preceding two chapters, which were devised in theearly 1970s, JSD can be considered as a ‘second-generation’ software design method,since its development took place during the late 1970s and early 1980s. As a method,it encompasses both analysis and design activities, directed towards constructing amodel of a system in terms of a set of ‘long-running’ interacting concurrent processesfor its description, which is then transformed into a ‘physical realization’ of the model(namely, the detailed design).Although originally intended for designing ‘data-processing’ systems, in a fairlygeneral sense of the term, the JSD design model can potentially be applied to otherproblem domains, and especially those where time-ordering of actions may be adominant characteristic. JSD is also concerned with modelling processes ratherthan objects, and hence its use usually results in a design that has an interactingprocesses architectural style (communicating processes). Arguably, JSD is also wellsuited to the design of client–server systems, with its emphasis upon long-term interactionsand its explicit modelling of state information.JSD is generally regarded as having its roots in the thinking that stems fromHoare’s ideas on communicating sequential processes (Hoare, 1978). In contrast to theSSA/SD design method described in Chapter 13, JSD places emphasis on modelling theactions of the system in terms of their effects on the input and output data streams,rather than on using the direct functional tasks as the basis for the design model. Assuch, it is compositional rather than top-down in its form, and in some aspects it alsocomes close to the object-based paradigm that is described in the next chapter. Indeed,Henderson-Sellers and Edwards (1990) have argued that JSD occupies a midway pointbetween these strategies.JSD has undergone a certain amount of evolution since the original description inJackson (1983). The form of the design process as described in Cameron (1986;1988a) contains some revisions to the design steps, while the description in Sutcliffe(1988) shows a rather different view of the structure of the method. This chapterexamines both the original form of the method and the revisions it has undergone,together with some of the reasons for these.JSD shares a number of major structural features with JSP, although its muchlarger problem domain means that it is correspondingly less prescriptive in nature.One of these common threads is the importance ascribed to incorporating timeorderingin the modelling process. JSD also shares with JSP the philosophy of using amodel of the real world as the basis for system structure, meaning that changes in theexternal world can be mirrored as changes in the structure of the model, and eventuallyemerge as changes in the structure of the program(s).The best framework for describing the broad process of JSD design is that providedby Sutcliffe (1988) and also used in Cameron (1988a), where it is described interms of the following three stages:na modelling stage, in which the problem is analysed and modelled in terms of theconstituent entities and the actions that they perform, and where these entities arerepresented by ‘long-running’ sequential processes in the model itself;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!