140 likes | 284 Views
Introduction to Program Design. Using Jackson Structured Programming (JSP) and Jackson Workbench. Why good design is important. “There is a difference between getting a program to work and getting it right!”
E N D
Introduction to Program Design Using Jackson Structured Programming (JSP) and Jackson Workbench
Why good design is important “There is a difference between getting a program to work and getting it right!” • A poorly designed program may be difficult to read, may not model the problem to be solved, may be difficult to maintain • A program that corresponds to the problem’s structure is easier to read, test and maintain Multiplication Table Example • Output requirement • Bad Multiplication Table • To make simple changes, we need to rewrite the program! • Good Multiplication Table designed using JSP • Modifications to Good Multiplication Table are easy to make and test.
JSP: Basic Design Method • Draw system diagram • Draw data structure(s) for input(s) and output(s), showing correspondences, if any • Form basic program structure from data structures • List operations needed, and allocate to form elaborated program structure • Produce structure text or program text
Basic JSP Method • Draw system diagram • Draw data structure(s) for input(s) and output(s), showing correspondences • Form basic program structure from data structures • List operations needed, and allocate to form elaborated program structure • Produce structure text or program text
Using Jackson Workbench • Web publishing • Structure & text • Structure diagram only • Hands-on
Jackson Workbench ExercisesConstructing Data Structures “A simple book consists of pages; a page consists of lines of text; a line consists of words.” Model a simple book with a structure diagram Demonstration of Jackson Workbench
Jackson Workbench ExercisesConstructing Data Structures(cont.) “A regular book consists of a front and back cover with pages in between. Each page consists of lines of text; each line consists of words. At the bottom of each page is a page number.” Model a regular book with a structure diagram Demonstration of Jackson Workbench
Jackson Workbench Exercises Modifying basic multiplication table • Use JSP to design the multiplication table • Use JSP to design the three modifications of the multiplication table
A Short Bibliography On-line Resources: Michael Jackson Home Page (articles) The Jackson Software Development Methods (Steve Ferg) My Home Page [1] Cameron, J. JSP&JSD: The Jackson Approach to Software Development. IEEE Computer Society Press. 1983, 1989. [2] Jackson, M.A. Principles of Program Design. Academic Press, New York, 1975. [3] Jackson, M.A. Constructive Methods of Program Design. In Proc 1st ECI Conference 1976, pp 236-262, Springer Verlag LNCS 44, Heidelberg 1976. (Reprinted in Cameron 1983/89) [4] Jackson, M.A. A System Development Method. Tools and notions for program construction: An advanced course; Nice 1981; pages 1-25; Cambridge University Press, 1982. [5] Jackson, M.A. System Development. Prentice-Hall International, Chichester, U.K., 1983. [6] Jackson, M.A. Software Requirements and Specification. Addison-Wesley, 1996. [7] Jackson, M.A. The Origins of JSP and JSD: a Personal Recollection. IEEE Annals of Software Engineering Volume 22 Number 2, pages 61-63, 66, April-June 2000. [8] Jackson, M.A . JSP in Perspective. sd&m Pioneers’ Conference, Bonn, June 2001. [9] Jackson, M.A. Problem Frames. Addison-Wesley Longman Publishing Co., Inc. , 2001. [10] Ourusoff, Nicholas. Using Jackson Structured Programming (JSP) and Jackson Workbench to Teach Program Design. (Proceedings of 2003 Informing Science and Information Technology Education, Pori, Finland, June 24-27, 2003. (Accessible at http://ecommerce.lebow.drexel.edu/eli/2003Proceedings/PaperPage106.html) [11] Ourusoff, Nicholas. Reinvigorating the Software Engineering Curriculum with Jackson’s Methods and Ideas - ACM SIGCSE Quarterly Bulletin, June 2004. [12] Ourusoff, Nicholas. Towards a CASE Tool for Jackson's JSP, JSD an Problem Frames - 1st International Workshop on Applications and Advances in Problem Frames, ICSE May 24, 2004.
Appendix 1: About Michael Jackson (an English computer scientist, not the pop star!) Design Methods: • JSP (program design method) • JSD (systems development method) • Problem Frames (problem analysis and decomposition)
Appendix 1: About Michael Jackson (continued) Original ideas: • Design reflects problem structure • Begin with model of the real-world • structure diagrams • patterns (anticipated later work on patterns in OOAD) • Constructive (not top-down) • Composition of models • Object-based (not functional) Note: See Appendix 1 & 2 for remarks on design method and methodology and for critical appraisal of JSP
Appendix 2: About JSP • JSP was arguably the best program design method during the 1970’s and 1980’s. • The UK Government chose JSP as the national program design standard in 1974.[1] • A 1978 survey of methods concluded that JSP “is closer to a true methodology than any of the other design methodologies currently available…it is repeatable, teachable, reliable, and results in a program structure which is an excellent model of reality.”[2] • In 1987, ACM’s Literate Programmer column concluded that JSP leads “apparently automatically to the best structure for the program.”[3] • JSP remains a sound method for designing the class of simple programs that read and produce serial data streams.
Appendix 3: Method versus methodology • The distinction between method and methodology is often blurred. According to Jackson, a method is a way of doing something, whereas a methodology discusses the principles of one or more methods. • Underlying Jackson’s methods are the following methodological principles:[1] • Easier decisions should be made before difficult decisions. • Error-prone decisions should be deferred. • Implicit decisions should be avoided. • Error-prone decisions should be subjected at the earliest possible moment to confirmation or refutation. • Whenever possible, decisions should be independent of each other (orthogonal).
Appendix 4: Jackson Workbench Jackson Workbench is a CASE tool for JSP and JSD • Keyword Computer Services Limited. 2002. Version 2.04. Contact: KCSL@BTInterent.com or Jim.Newport@BTInternet.com or +44 1494 870427 • Structure Editor • intuitive editing via “hot spot” images that appear at different locations on a tree structure diagram indicating an operation that can be performed at that point simply by left-clicking • Generates code (C++, Java, Visual BASIC, COBOL) and documentation • Under development: • JSP works well; JSD not complete