Intro to Jackson Software Engineering Oct 6, 2005.

Slides:



Advertisements
Similar presentations
Models of Concurrency Manna, Pnueli.
Advertisements

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Give qualifications of instructors: DAP
Selection (decision) control structure Learning objective
Basics of Computer Programming Web Design Section 8-1.
Software Design Deriving a solution which satisfies software requirements.
Introduction to Program Design Introduction to Program Design Using Jackson Structured Programming (JSP) and Jackson Workbench.
Structure clashes and program decomposition
March 15, 2004CS WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
IMSE Lecture Week 6 - Low Level Design Summary of last week: u Transform Analysis - 4 steps: 1 annotate the DFD (without redrawing it) 2 draw the intermediate.
Jump to first page Chapter 2c System Analysis - Logic Modeling.
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 1 Program Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Data Flow Modelling II. Plan Introduction Structured Methods –Data Flow Modelling –Data Modelling –Relational Data Analysis Feasibility Maintenance.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Software Engineering 1 (Chap. 1) Object-Centered Design.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Software Development Process
Modelling information systems
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Design the program Create a detailed description of program –Use charts or ordinary language (pseudocode) Identify algorithms needed –Algorithm: a step-by-step.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 8 Slide 1 Chapter 8 Structuring System Logical Requirements.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
CSC 395 – Software Engineering Lecture 14: Object-Oriented Analysis –or– Ripping the Band-Aid Off Quickly.
Systems Analysis and Design in a Changing World, Fourth Edition
Dr.Basem Alkazemi
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Introduction to programming Carl Smith National Certificate Year 2 – Unit 4.
Introduction to C Programming CE Lecture 5 Program Design in C.
22 Nov 1.Comments on HW3 2.Java I/O – Exception handling 3.Inversion 4.JSD.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
CMSC 104, Section 301, Fall Lecture 18, 11/11/02 Functions, Part 1 of 3 Topics Using Predefined Functions Programmer-Defined Functions Using Input.
Modern Systems Analysis and Design Fourth Edition Chapter 8 Structuring System Logical Requirements (process description)
Integrating Algorithms and Coding into the Mathematics Classroom
Learning outcomes 5 Developing Code – Using Flowcharts
Component 1.6.
Tools Of Structured Analysis
2008/09/22: Lecture 6 CMSC 104, Section 0101 John Y. Park
Problem Solving How do we attack a large problem?
CS1001 Programming Fundamentals 3(3-0) Lecture 2
Software Design Mr. Manoj Kumar Kar.
Topic: Functions – Part 2
Lecture 2 Introduction to Programming
Basics of Computer Programming
Unit# 9: Computer Program Development
Problem Solving Techniques
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 1 Introduction(1.1)
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Basic Concepts of Algorithm
ITEC 630 PowerPoint Survival Kit
Presentation transcript:

Intro to Jackson Software Engineering Oct 6, 2005

Course Preliminaries Course Home Page: Use of Jackson Workbench (CASE tool); download JWB folder from Home Page Exercise(s) each class – please do them and hand them at the start of the next class

Reference materials Jackson’s Home Page Steve Ferg’s Web Site Nick Ourusoff’s on-line text Book on JSP (translated into Russian) at Petrozavodsk State University Library by D. King, “Effective methods of Program Design”

Jackson’s Methods Jackson Structured Programming (JSP) ( ) –program design method for class of simple programs –Principles of Program Design (1975) Jackson System Development (JSD) (early 1970’s 1984) –systems development method for dynamic systems –System Development (1983) Problem Frames (1984-present) –problem analysis and decomposition –Software Requirements and Specification (1995) –Problem Frames (2000) Span the range of software engineering: –simple programs  information systems  problem description and decomposition Selected Papers: Bibliography

JSP A constructive method of design –we construct a data structure that is the composition of input and output data structures –steps are defined and at each step there are guidelines to check correctness of design so far –other methods (modular programming, stepwise refinement) do not offer a step-by-step decision procedure modular program offers no decision procedure for choice of modules step-wise refinement offers no decision procedure on how to decompose; moreover, the biggest decomposition is made at the start, before you know the problem Optimization –Don’t optimize; –If you have to, do it later Optimization is often unnecessary; and it distorts the underlying structure Flow charts versus structure diagrams –flow charts have been used to design programs –a flow chart shows the flow of control, “What happens next?”, a dynamic view of a program –Jackson tree diagram shows the static view of the program structure

Program Design Design is about structure – relation of parts to the whole Programs consist of: – elementary components – operations (statements) in a programming language –composite components sequence selection iteration

Sequence (a) sequence – a sequence is a composite component that has two or more parts occurring once each, in order.

Selection (b) A selection is a composite component that consists of two or more parts, only one of which is selected, once.

Iteration (iv) An iteration is a composite component that consists of one part that repeats zero or more times.

Example 1 A simple book A simple book consists of pages; a page consists of lines of text; a line consists of words.

Example 2 A more complicated book A 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.

Exercises Draw Jackson structure diagrams for each of the following: "For lunch you may have either soup and crackers or a salad. You may have as many servings of either as you wish." A conversation consists of messages, alternately from the user (a "user- message") and from the system (a "system-message"). The conversation always begins with a user-message and always ends with a system- message. For each of the regular expressions below, interpret the regular expression as a program. Draw the corresponding structure diagram and give the equivalent Jackson structure text and pseudo code. (a) ((a*|b*)*c)|d (b) (a*)*|b|cd

Correctness of design Not every working program is correctly designed Correct design means that –program models the real world –a correctly designed program is easy to modify (~90% of cost in software development is maintenance) easy to read