Introduction to Program Design Introduction to Program Design Using Jackson Structured Programming (JSP) and Jackson Workbench.

Slides:



Advertisements
Similar presentations
CSE594 Fall 2009 Jennifer Wong Oct. 14, 2009
Advertisements

How the University Library can help you with your term paper
Dave Tucker Edinboro University of Pennsylvania. What will be covered  Are Serious games useful?  Examples.
Designing Multimedia with Fuzzy Logic Enrique Diaz de Leon * Rene V. Mayorga ** Paul D. Guild *** * ITESM, Guadalajara Campus, Mexico ** Faculty of Engineering,
Understanding your reading list and using the Library catalogue Birkbeck Library.
Lecture Notes goes Online: E-Book Series from Springer Verlag ANKOS Conference, Ankara 6 June 2003 David Elek Springer-Verlag.
PUBLISH OR PERISH Skills Building Workshop. Journal of the International AIDS Society Workshop Outline 1.Journal of the International.
Technical Tips and Tricks for User Support Mike Gardner
Internet Supported Distance Learning Brian Mulligan IT Sligo, September 2003.
introduction to MSc projects
Computer Vision for Interactive Computer Graphics Mrudang Rawal.
Web Printing Continue on Web Usability It is a good idea that web sites can provide a printing version and browsing version for the same document.
Revision Control Practices in Software Engineering Surekha, Kotiyala Madhuri, Komuravelly Suchitra, Yerramalla.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Engineering Design Process
How the University Library can help you with your term paper Computer Science SC Hester Mountifield Science Library x 8050
Multimedia Workshop EDUC 8847 Orit Hirsh Easy steps to generate a web or a blog for learning.
Exploring Microsoft Excel 2002 Chapter 8 Chapter 8 Automating Repetitive Tasks: Macros and Visual Basic for Applications By Robert T. Grauer Maryann Barber.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Ryann Kramer EDU Prof. R. Moroney Summer 2010.
Kosovo (Under UNSCR 1244) Statistical Training Prosecution / Courts Session 6, October 7 th, – Overview of the Criminal Justice System and.
An Introduction to Content Management. By the end of the session you will be able to... Explain what a content management system is Apply the principles.
Chapter 15 Designing Effective Output
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Introduction to WordPress with SiteControl By: Web Services.
Educator’s Guide Using Instructables With Your Students.
Lecture 1: Introduction Lecture series based on the text: Essential MATLAB for Engineers and Scientists By Hahn & Valentine
WRITING A REVIEW ARTICLE STRUCTURE AND STYLE OF A REVIEW ARTICLE Saleem Saaed Qader MBChB, MD, MSc, MPH, PhD, SBGS Consultant General Surgeon, Lecturer.
INTRODUCTION TO FRONTPAGE. TOPICS TO BE DISCUSSED……….  Introduction Introduction  Features Features  Starting Front Page Starting Front Page  Components.
IL Step 1: Sources of Information Information Literacy 1.
USING AN INTEGRATED 3D AND ROBOTICS ENVIRONMENT TO TEACH COMPUTATIONAL THINKING EFFECTIVELY Stephanie Graham Shiloh Huff Sabyne Peeler * This research.
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
Integrating Information Literacy Into the Classroom TLM Institute Technology & Information Literacy Mount Mary College May 30, 2002.
Chapter 6 : Software Metrics
Chapter 1 Introduction.
Introduction to Programming Design School of Business Eastern Illinois University © Abdou Illia, Spring 2003 (Week1, Wednesday 01/15/2003)
Thomas HeckeleiPublishing and Writing in Agricultural Economics1 Publishing and Writing in Agricultural Economics Promotionskolleg Agrarökonomik 1Introduction.
Department of Chemical Engineering Project IV Lecture 3: Literature Review.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
REPORT WRITING WHAT IS A REPORT?  A report is a very formal document that is written for a variety of purposes in the sciences, social sciences, engineering.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
ICOM 6115: COMPUTER SYSTEMS PERFORMANCE MEASUREMENT AND EVALUATION Nayda G. Santiago August 16, 2006.
20 Oct - Overview Homework #1 Group-Id rule Notes on Java text file input/output –Scanner class –Printf (like C)
Intro to Jackson Software Engineering Oct 6, 2005.
Software Engineering 2003 Jyrki Nummenmaa 1 EXAMPLE PROJECT / SE 2003 Each year the software engineering (SE) course uses an example project to.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
CS 345 – Software Engineering Nancy Harris ISAT/CS 217
Library training, Part II Justin Hodds Subject Librarian for Education Psychology.
CSE470 Software Engineering Fall Tools - Overview LaTeX – Tool to create documents RCS – Revision Control System, to maintain multiple versions.
Time-Space Trust in Networks Shunan Ma, Jingsha He and Yuqiang Zhang 1 College of Computer Science and Technology 2 School of Software Engineering.
1-1 Copyright © 2014, 2011, and 2008 Pearson Education, Inc.
Petter Nielsen Information Systems/IFI/UiO 1 Systems development Methodologies IN364.
Animation Vladimir Savchenko
Ethics and Computer Science Most of the material for these lectures was taken from an EXCELLENT text on the subject: Ethics for the Information Age Michael.
Do Now You have 10 minutes to finish your About Me essay. When you are done, print out both your new About Me Ad and your typed essay.
Using Microsoft Office Word Assignment Layout. Target Create a Cover Page (Front Page) Create a Table of Contents Page Create a Table of Figures Page.
WR 121 [Librarian name] [Instructor name] [Section number]
CSCD 433/533 Advanced Computer Networks Lecture 1 Course Overview Spring 2016.
Understanding reading lists Birkbeck Library. Outline Understand the references on your reading list. How to find the items in the Library. Citing references.
2016 Cengage Learning Computing Conference Lisa Friedrichsen, Professor Web Development & Digital Media Johnson County Community College HTML 5 / CSS 3.
 Problem Analysis  Coding  Debugging  Testing.
Maya Sharsheeva, reference-librarian AUCA Library Effective information search in the Library e-Resources.
Scopus - Elsevier (Advanced Course Module 8)
Scopus - Elsevier (Advanced Course Module 8)
Lecture 1: Introduction
Scopus - Elsevier (Advanced Course: Module 8)
Presentation transcript:

Introduction to Program Design 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 requirementOutput Bad Multiplication Table To make simple changes, we need to rewrite the program!simple changes Good Multiplication Table designed using JSPGood Multiplication Table designed using JSP Modifications to Good Multiplication Table are easy to make and test.Modifications to Good Multiplication Table

JSP: Basic Design Method 1. Draw system diagram 2. Draw data structure(s) for input(s) and output(s), showing correspondences, if any 3. Form basic program structure from data structures 4. List operations needed, and allocate to form elaborated program structure 5. Produce structure text or program text

Basic JSP Method 1. Draw system diagramsystem diagram 2. Draw data structure(s) for input(s) and output(s), showing correspondencesdata structure(s) 3. Form basic program structure from data structuresbasic program structure 4. List operations needed, and allocate to form elaborated program structure List operationselaborated program structure 5. Produce structure text or program textprogram text

Using Jackson Workbench Web publishing –Structure & text –Structure diagram only Hands-on

Jackson Workbench Exercises Constructing 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 Exercises Constructing 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 PageMichael 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, [2] Jackson, M.A. Principles of Program Design. Academic Press, New York, [3] Jackson, M.A. Constructive Methods of Program Design. In Proc 1st ECI Conference 1976, pp , Springer Verlag LNCS 44, Heidelberg (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, [5] Jackson, M.A. System Development. Prentice-Hall International, Chichester, U.K., [6] Jackson, M.A. Software Requirements and Specification. Addison-Wesley, [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 [8] Jackson, M.A. JSP in Perspective. sd&m Pioneers’ Conference, Bonn, June [9] Jackson, M.A. Problem Frames. Addison-Wesley Longman Publishing Co., Inc., [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, (Accessible at [11] Ourusoff, Nicholas. Reinvigorating the Software Engineering Curriculum with Jackson’s Methods and Ideas - ACM SIGCSE Quarterly Bulletin, June 2004.Reinvigorating the Software Engineering Curriculum with Jackson’s Methods and Ideas [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.Towards a CASE Tool for Jackson's JSP, JSD an Problem Frames

Appendix 1: About Michael Jackson (an English computer scientist, not the pop star!) Design Methods: 1. JSP (program design method) 2. JSD (systems development method) 3. Problem Frames (problem analysis and decomposition)

Appendix 1: About Michael Jackson (continued) Original ideas: 1. Design reflects problem structure 2. Begin with model of the real-world structure diagrams patterns (anticipated later work on patterns in OOAD) 3. Constructive (not top-down) Composition of models 4. 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][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][2] –In 1987, ACM’s Literate Programmer column concluded that JSP leads “apparently automatically to the best structure for the program.”[3][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 1. 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. 2. Underlying Jackson’s methods are the following methodological principles:[1][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 Version Contact: or or 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