Jackson structured programming: Difference between revisions

Content deleted Content added
m Reverting possible vandalism by White devil199 to version by MER-C. Report False Positive? Thanks, ClueBot NG. (3458037) (Bot)
Citation bot (talk | contribs)
m Add: isbn, doi, citeseerx. Removed parameters. | You can use this bot yourself. Report bugs here. | User-activated.
Line 1:
[[Image:JSP RLE output1.png|thumb|240px|Example of a JSP diagram.]]
'''Jackson structured programming''' ('''JSP''') is a method for [[structured programming]] based on correspondences between data stream structure and program structure. JSP structures programs and data in terms of sequences, iterations and selections, and as a consequence it is applied when designing a program's detailed control structure. The method applies to processing of any data structure or data stream that is describable as a hierarchical structure of sequential, optional and iterated elements. This could be a stream of messages that a process reads to invoke and coordinate other modules or objects, or it could be a string of characters in parameters passed to a single operation on an "object" coded in an object-oriented programming language. In other words, it could be either above or below the level where [[Object-oriented programming|object-oriented methods]] are applied <ref>{{Citation | first = R | last = Wieringa | title = A survey of structured and object-oriented software specification methods and techniques | publisher = ACM | journal = Comput Surv | volume = 30 | issue = 4 |date=Dec 1998 | pages = 459–527 | url doi= http://doi.acm.org/10.1145/299917.299919 | doiciteseerx = 10.1145/2999171.2999191.107.5410 }}.</ref><ref>{{Citation | first1 = Brian | last1 = Henderson-Sellers | author1-link = Brian Henderson-Sellers | first2 = JM | last2 = Edwards | title = The object-oriented systems life cycle | journal = Commun | publisher = ACM | volume = 33 | issue = 9 |date=Sep 1990 | pages = 142–59 | url = http://doi.acm.org/10.1145/83880.84529 | doi=10.1145/83880.84529}}.</ref>
 
== Introduction ==
[[Michael A. Jackson]] originally developed JSP in the 1970s. He documented the system in his 1975 book ''Principles of Program Design''.<ref name="PoPD">{{Citation | first = MA | last = Jackson | title = Principles of Program Design | publisher = Academic | year = 1975}}.</ref> In a 2001 conference talk,<ref name="perspective">{{Citation | first = MA | last = Jackson | title = JSP in Perspective | place = sd&m Pioneers’ Conference, Bonn, June 2001 | year=2001 | url = http://mcs.open.ac.uk/mj665/JSPPers1.pdf | access-date = 2017-01-26}}</ref> he provided a retrospective analysis of the original driving forces behind the method, and related it to subsequent software engineering developments. Jackson's aim was to make [[COBOL]] batch file processing programs easier to modify and maintain, but the method can be used to design programs for any [[programming language]] that has structured control constructs, languages such as [[C (programming language)|C]], [[Java (programming language)|Java]] and [[Perl]]. Despite its age, JSP is still in use and is supported by diagramming tools such as Microsoft's Visio and CASE tools such as Jackson Workbench.<ref name= "Ourusoff 2003">{{Cite web|url=http://www.proceedings.informingscience.org/IS2003Proceedings/docs/091Ourus.pdf|title = Using Jackson Structured Programming (JSP) and Jackson Workbench to Teach Program Design | accessdate = 2017-01-16 | publisher =Informing Science|year= 2003| first =Nicholas | last = Ourusoff|work= InSite 2003 | format = PDF}}</ref>
 
Jackson Structured Programming was seen by many as related<ref>{{Citation | first = KT | last = Orr | year = 1980 | contribution = Structured programming in the 1980s | title = Proceedings of the ACM 1980 Annual Conference | publisher = ACM Press | place = New York, NY | pages = 323–26 | urldoi = http://doi.acm.org/10.1145/800176.809987 | isbn = 978-0897910286 }}.</ref> to [[Warnier/Orr Diagrams|Warnier structured programming]],<ref>{{Citation | first = JD | last = Warnier | year = 1974 | title = Logical Construction of Programs | publisher = Van Nostrand Reinhold | place = NY}}.</ref> but the latter method focused almost exclusively on the structure of the output stream. JSP and Warnier's method both structure programs and data using only sequences, iterations and selections, so they essentially create programs that are [[parser]]s for [[regular expression]]s which simultaneously match the program's input and output data streams.
 
Because JSP focuses on the existing input and output data streams, designing a program using JSP is claimed to be more straightforward than with other structured programming methods, avoiding the leaps of intuition needed to successfully program using methods such as top-down decomposition.<ref>{{Citation | last1 = Sorensen | first1 = K | last2 = Verelst | first2 = J | title = On the conversion of program specifications into pseudo code using Jackson structured programming | journal = Journal of Computing and Information Technology | volume = 9 | issue = 1 | year = 2001 | pages = 71–80 | doi=10.2498/cit.2001.01.06}}.</ref>