write on board in advance: handouts, names, Hoare quote

Slides:



Advertisements
Similar presentations
Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.
Advertisements

1 Introduction to Computability Theory Lecture15: Reductions Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Describing Syntax and Semantics
TR1413: Discrete Mathematics For Computer Science Lecture 1: Mathematical System.
Problem Analysis and Structure II Multi-frame problems.
CSCI-383 Object-Oriented Programming & Design Lecture 4.
Problem Analysis and Structure Models and Frames.
The student will demonstrate an understanding of how scientific inquiry and technological design, including mathematical analysis, can be used appropriately.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Class 4: Part 1 Common Core State Standards (CCSS) Class April 4, 2011.
1 Institute for Software Research, International Methods of Software Development Problem Frames 2 (This lecture is largely based on material graciously.
Chapter 2 Introducing Interfaces Summary prepared by Kirk Scott.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Bloom’s Taxonomy Benjamin S. Bloom February 21, September 13, 1999.
Design Model Lecture p6 T120B pavasario sem.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Problems and Frames III Recap and More Concepts. Definition “A problem frame is a kind of pattern. It define an intuitively identifiable problem in terms.
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
Mathematical Practice Standards
Spaces 3 Sat, 26th Feb 2011.
PROCESSING DATA.
Advanced Algorithms Analysis and Design
Databases: What they are and how they work
The NP class. NP-completeness
Formal Specification.
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Evaluation through user participation
Unified Modeling Language
Types for Programs and Proofs
Finite State Machines Dr K R Bond 2009
Data Types Variables are used in programs to store items of data e.g a name, a high score, an exam mark. The data stored in a variable is entered from.
Great Theoretical Ideas in Computer Science
Unified Modeling Language
Object-Oriented Static Modeling of the Banking System - I
Teaching design techniques to design efficient solutions to problems
Principles of Computing – UFCFA Lecture-1
Chapter 25 Comparing Counts.
LESSON 12 - Loops and Simulations
Modelling Dr Andy Evans In this lecture we'll look at modelling.
CSCE 411 Design and Analysis of Algorithms
Objective of This Course
7th Grade Science State Assessment Review
Patterns.
Chapter 4 Entity Relationship (ER) Modeling
Fractal Wallhanging.
KS4 Mathematics Linear Graphs.
4. Computational Problem Solving
write on board in advance: handouts, names, Hoare quote
write on board in advance: handouts, names, Hoare quote
Requirements Engineering Processes
Chapter 26 Comparing Counts.
Loops.
Psych 231: Research Methods in Psychology
Principles of Computing – UFCFA Week 1
Psych 231: Research Methods in Psychology
Chapter 26 Comparing Counts Copyright © 2009 Pearson Education, Inc.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
Chapter 26 Comparing Counts.
Scatter Diagrams Slide 1 of 4
A8 Linear and real-life graphs
The Pigeonhole Principle
Chapter 1 The Science of Biology
Lesson Overview 1.1 What Is Science?.
Presentation transcript:

6894 · workshop in software design lecture 13 · november 25, 1998 · problem frames write on board in advance: handouts, names, Hoare quote do first 6 slides quickly remember to leave time for students to fill in info sheet: 5m? don't dwell on first abstraction slide might not have time for last two abstraction slides

motivation two steps of software development recognize problem as instance of familiar class select solution method appropriate to class realistic problems combine different elementary problems typically need several methods at once measure of complexity count the elementary problems what makes a system hard is heterogeneity 5/17/2019 daniel jackson

example: dynamic information system solution method build a model of the real world: including how events change structure describe queries, spontaneous reports as functions of the model implement model as a data structure, events as updates, etc what kinds of problem is this good for? banking system (yes) stock portfolio tracker (yes) biblical concordance (no) nuclear reactor control (no) what characterizes the problems it suits? real world is dynamic (rules out concordance) real world is autonomous (rules out reactor) what happens if you apply it to the wrong problem? may still manage, but tool doesn’t fit job reactor’s feedback loop is not addressed: can’t analyze safety set up of concordance is kludged 5/17/2019 daniel jackson

desiderata analysis of problems given a problem, want to identify its class identifying misfits crucial what do the edges look like? details of how problem doesn’t quite fit are crucial what won’t work informal taxonomy too subjective, hard to use doesn’t address the edges solution repertoire ie, define classes by their solutions GOF design patterns does this to some extent but circular, and doesn’t cover wide variety of problems what’s needed general and abstract way to describe problems can describe individual problems can show relationships between problems 5/17/2019 daniel jackson

polya’s book a great little book G. Polya, How To Solve It, Princeton, 1957 a manual for solving mathematical problems largely based on the work of the Greeks (eg, Pappus) many of our words related to problem solving are Greek analysis, synthesis, method, system, theorem, heuristic, etc basic insight first you must know what kind of problem you face then you can apply a systematic approach Greeks divided problems into problems to prove problems to find each kind of problem has principal parts, related in a structure (or “problem frame”) a solution task posed in terms of the parts 5/17/2019 daniel jackson

problems to prove example prove that if the four sides of a quadrilateral are equal, then its diagonals bisect each other principal parts hypothesis the 4 sides of a quad are equal conclusion its diagonals bisect each other solution task demonstrate the conclusion from the hypothesis recommended methods try to think of a problem with the same conclusion ask whether the problem is more likely to be true or false, given the hypothesis consider what other conclusions follow from the hypothesis 5/17/2019 daniel jackson

problems to find example given: three lengths a, b and c construct: a triangle whose sides are of those lengths principal parts unknown a triangle data three lengths: a, b and c condition the three sides of the triangle are of the three lengths solution task find the unknown recommended methods split the condition into parts think of a problem with a similar unknown check that you’re using all the data think of a variation of the unknown, or of the data, or both, so that the new unknown and the new data are nearer to each other 5/17/2019 daniel jackson

problem frames idea use Polya’s approach to characterize software problems principal parts, solution tasks, recommended methods basic elements domains may represent real world phenomena, machines, descriptions conditions may represent know invariants, requirements, etc frames particular structures of domains and conditions elementary & composite elementary frames very simple composite frames parallel compositions of elementary frames 5/17/2019 daniel jackson

the general software development problem elements two domains the machine the world one condition the requirement method describe the requirement R (optative) describe the world W (indicative) design a specification S (optative) show that W & S implies R more radical than it seems. why? Requirement The Machine The World 5/17/2019 daniel jackson

domains domains divide the world into domains Created each domain has phenomena characteristics domains are linked by sharing of phenomena domain roles domains may be given (exist independently of system) created (by system) descriptions (of other domains maybe) Created Domain Given Domain Condition 5/17/2019 daniel jackson

classifying phenomena individuals values strings, social security numbers entities people, bicycles events pressing of elevator button relations truths: unchanging 5 > 3 states: may change Likes (DJ, Thanksgiving) roles: indicate participation of individual in event IsButtonPress (b, p) control +p domain initiates phenomenon p - p domain inhibits p = t domain establishes truth t 5/17/2019 daniel jackson

simple control frame sets of phenomena C1 controlled by M C2 controlled by C C3 described by R why C must be described generally C1 != C3 when this frame breaks down C1 cannot be determined from C2 alone M: +C1 Required Behaviour R Machine M Controlled Domain C C3 C: +C2 5/17/2019 daniel jackson

information display frame basic problem machine maintains display about a connected part of the real world note again, note that S1 and S2 not the same as C1, C2 M: +C1 Display Rules R Machine M Information Display D S1 S2 Real World R R: +C2 5/17/2019 daniel jackson

domain characteristics domain controls its shared phenomena? yes, all: domain is autonomous no, none: domain is passive some: domain is reactive domain has state phenomena? yes: dynamic no: static other terms inert: reacts, but never initiates controllable: phenomena can be controlled from outside biddable: controllable to some degree tangible: phenomena are physical 5/17/2019 daniel jackson

example: Parnas’s 4-variable model MACHINE INPUT: +IN MACHINE: +OUT INPUT OUTPUT WORLD OUTPUT: +CONTROLLED WORLD: +MONITORED REQMT 5/17/2019 daniel jackson

example: package router PACKAGES CORRECT ROUTING INFORMANT ROUTER TOPOLOGY SWITCHES & SENSORS MATCH MACHINE ROUTER TOPOLOGY MODEL MACHINE 5/17/2019 daniel jackson

CTAS frame? domains PLANES AIRSPACE CONFIG CONTROLLERS HOST conditions DISPLAY (tracks, etc) COMPUTE (etas, rtas) 5/17/2019 daniel jackson

critique are frames at right level of granularity? is phenomenological viewpoint the right one? what’s omitted from a problem frame? are frames composable? can frame be constructed easily by domain expert? should machine appear in frame? 5/17/2019 daniel jackson

references M. Jackson. Software Development Method. In A Classical Mind, Essays in Honour of C.A.R. Hoare, ed. Roscoe, Prentice Hall 1994. M. Jackson. Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices. Addison-Wesley, 1995. C. Gunter, M. Jackson, P. Zave. A Reference Model for Requirements and Specifications. see http://www.cis.upenn.edu/~gunter/home.html G. Polya. How To Solve It, Princeton, 1957 Lakatos. Proofs and Refutations, Cambridge, 1976 5/17/2019 daniel jackson