Oct 14, 2001OOPSLA’01- DSVL1 Experiences with Visual Programming Languages for End-Users and Specific Domains Philip T. Cox Trevor J. Smedley Dalhousie.

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Advertisements

Systems Software.
Computer Software & Software Development H&K Chapter 1 Instructor – Gokcen Cilingir Cpt S 121 (June 20, 2011) Washington State University.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/15 EICE team Model-Level Debugging of Embedded Real-Time Systems Wolfgang Haberl, Markus.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Program Flow Charting How to tackle the beginning stage a program design.
Introduction to Computer Programming CSC 1401: Introduction to Programming with Java Lecture 2 Wanda M. Kunkle.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
1 THE USER INTERFACE Interface Design. 2 Requirements for a good HCI appropriate for the level and domain of expertise good interface mechanics –menus,
Program Development and Programming Languages
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Digital Image Processing Lecture3: Introduction to MATLAB.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Computer for Health Sciences
Programming In C++ Spring Semester 2013 Programming In C++, Lecture 1.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
An Introduction to Software Architecture
CSCI 588 – FA05David Woollard - Peter Tipton - Andrew Hart Team 6 Status Review October 18, 2005 David Woollard (ID: 8735) Andrew Hart (ID: 4152) Peter.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Programming Fundamentals How to Program in C++ How to Program in C++
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
 Programming - the process of creating computer programs.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
Chapter 1 An Overview of Computers and Programming Languages.
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
1 INTRODUCTION TO COMPUTER GRAPHICS. Computer Graphics The computer is an information processing machine. It is a tool for storing, manipulating and correlating.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
T.R.I.D.E Simon Overell (seo01) Supervisor: Keith Clark.
Introduction to Programming and App Inventor. Introduction What is a computer program? Introducing App Inventor Getting hands on with App Inventor.
CST 1101 Problem Solving Using Computers
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Introduction to Visual Basic 2008 Programming
Systems Analysis and Design With UML 2
Software Design and Architecture
An Introduction to Visual Basic .NET and Program Design
VISUAL BASIC – CHAPTER ONE NOTES An Introduction to Visual Basic
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
An Introduction to Software Architecture
Chapter 7 –Implementation Issues
Implementation support
Programming Logic and Design Eighth Edition
Implementation support
Chapter 1: Introduction to Computers and Programming
Presentation transcript:

Oct 14, 2001OOPSLA’01- DSVL1 Experiences with Visual Programming Languages for End-Users and Specific Domains Philip T. Cox Trevor J. Smedley Dalhousie University Halifax, Canada Philip T. Cox Trevor J. Smedley Dalhousie University Halifax, Canada

Oct 14, 2001OOPSLA’01- DSVL2 Introduction Spreadsheets –Domain - tabular arithmetic –End-user - accountant –Metaphor - paper ledger Why are they successful? –They employ a well-understood, concrete representation in a specific domain (“Closeness of Mapping” - Green & Petre ‘96) General principles –Rely on concepts/actions familiar to the intended user –The more specific the domain, the more concrete the programming language Three projects … Spreadsheets –Domain - tabular arithmetic –End-user - accountant –Metaphor - paper ledger Why are they successful? –They employ a well-understood, concrete representation in a specific domain (“Closeness of Mapping” - Green & Petre ‘96) General principles –Rely on concepts/actions familiar to the intended user –The more specific the domain, the more concrete the programming language Three projects …

Oct 14, 2001OOPSLA’01- DSVL3 1. Autonomous Robots Have sensors and effectors React to changing conditions Operate in partly unknown & changing environments Require problem-solving abilities Exhibit reactive behaviour Programming –Direct coding of sensor/effector feedback –High-level planning - mechanical deduction (eg STRIPS ) –Logic programming based systems –Layered control architectures (eg Brooks subsumption architecture) Have sensors and effectors React to changing conditions Operate in partly unknown & changing environments Require problem-solving abilities Exhibit reactive behaviour Programming –Direct coding of sensor/effector feedback –High-level planning - mechanical deduction (eg STRIPS ) –Logic programming based systems –Layered control architectures (eg Brooks subsumption architecture) Examples: Mars Rover; Lego car and Handyboard

Oct 14, 2001OOPSLA’01- DSVL4 Generality vs. Concreteness Want “closeness of mapping” of language to domain –include representation of robot and environment in the programming language –programming involves realistic interaction with this representation Also want generality –applicable to a large class of robots (eg free-ranging, autonomous robots requiring reactive control mechanisms) Apparently contradictory criteria –generality vs. closeness to specific domain Want “closeness of mapping” of language to domain –include representation of robot and environment in the programming language –programming involves realistic interaction with this representation Also want generality –applicable to a large class of robots (eg free-ranging, autonomous robots requiring reactive control mechanisms) Apparently contradictory criteria –generality vs. closeness to specific domain

Oct 14, 2001OOPSLA’01- DSVL5 Two-phase process Specification phase –Hardware Definition Module ( HDM ) –editing environment for specifying “syntax and semantics” of target robot and environment –builds visual representation of robot and environment –specifies interactions between robot and environment –specifies relationship between “software” robot and “hardware” robot –outputs hardware specification structure Realisation phase –Software Definition Module ( SDM ) –inputs hardware specification structure –user builds control programs by interacting with “software” robot Specification phase –Hardware Definition Module ( HDM ) –editing environment for specifying “syntax and semantics” of target robot and environment –builds visual representation of robot and environment –specifies interactions between robot and environment –specifies relationship between “software” robot and “hardware” robot –outputs hardware specification structure Realisation phase –Software Definition Module ( SDM ) –inputs hardware specification structure –user builds control programs by interacting with “software” robot

Oct 14, 2001OOPSLA’01- DSVL6 HDM - building the environment Build “tiles” –Region of any shape corresponding to specific value for a property Combine tiles into components Define classes from components Build “tiles” –Region of any shape corresponding to specific value for a property Combine tiles into components Define classes from components

Oct 14, 2001OOPSLA’01- DSVL7 HDM - building the robot: sensors Defines appearance of sensor in simulated world Relates simulated sensor to real world sensor Defines interaction between simulated sensor and simulated environment Defines appearance of sensor in simulated world Relates simulated sensor to real world sensor Defines interaction between simulated sensor and simulated environment

Oct 14, 2001OOPSLA’01- DSVL8 HDM - building the robot: effectors Defines appearance of effector in simulated world Relates simulated effector to real world effector Defines effect of simulated effector on simulated environment Defines appearance of effector in simulated world Relates simulated effector to real world effector Defines effect of simulated effector on simulated environment

Oct 14, 2001OOPSLA’01- DSVL9 SDM - programming by demonstration Build an environment from instances of environment components Build a robot from sensors, effectors and inert pieces Program behaviours (finite state machines) by running simulated robot in simulated environment Build an environment from instances of environment components Build a robot from sensors, effectors and inert pieces Program behaviours (finite state machines) by running simulated robot in simulated environment

Oct 14, 2001OOPSLA’01- DSVL10 2. Design of Structured Objects Electronic devices Mechanical devices Biological structures Buildings Software - a special case –algorithms –data structures Electronic devices Mechanical devices Biological structures Buildings Software - a special case –algorithms –data structures

Oct 14, 2001OOPSLA’01- DSVL11 Design Activities Building, editing –software: coding, building data structures –other: drafting, maybe coding Testing, debugging –software: interpreting –other: simulation, trial assembly Generating production model –software: compilation –other: generating such things as numerical control codes Building, editing –software: coding, building data structures –other: drafting, maybe coding Testing, debugging –software: interpreting –other: simulation, trial assembly Generating production model –software: compilation –other: generating such things as numerical control codes

Oct 14, 2001OOPSLA’01- DSVL12 Tools: Design vs Programming Design environments –Highly graphical –Evolved from drawing applications –Parametrisation requires programming - leads to dichotomy between design and coding Programming languages –Traditionally dominated by textual expression –Evolved from machine-level coding –Recent move toward visualisation –Effectiveness of visual languages Design environments –Highly graphical –Evolved from drawing applications –Parametrisation requires programming - leads to dichotomy between design and coding Programming languages –Traditionally dominated by textual expression –Evolved from machine-level coding –Recent move toward visualisation –Effectiveness of visual languages

Oct 14, 2001OOPSLA’01- DSVL13 Parametrised Design Build an elastic n-tooth partial cog from elastic teeth –Build an elastic 1-tooth partial cog by adding a tooth to a 0-tooth partial cog ( ? ) –Build an elastic 2-tooth partial cog by adding a tooth to a 1-tooth partial cog –Build an elastic n-tooth partial cog by adding a tooth to an (n-1)-tooth partial cog Build an n-tooth cog by joining the open faces of the elastic n- tooth partial cog Build an elastic n-tooth partial cog from elastic teeth –Build an elastic 1-tooth partial cog by adding a tooth to a 0-tooth partial cog ( ? ) –Build an elastic 2-tooth partial cog by adding a tooth to a 1-tooth partial cog –Build an elastic n-tooth partial cog by adding a tooth to an (n-1)-tooth partial cog Build an n-tooth cog by joining the open faces of the elastic n- tooth partial cog

Oct 14, 2001OOPSLA’01- DSVL14 LSD - Language for Structured Design Extension of visual logic programming language (Lograph)

Oct 14, 2001OOPSLA’01- DSVL15 3. Visual Scripting for Handhelds Increasing power and widespread use of handheld computers Expect an evolution parallel to that which we have seen with desktop computers, where end users increasingly want access to programming abilities Significant challenges relating to relatively low processing power, small screen size and difficulty with textual input Increasing power and widespread use of handheld computers Expect an evolution parallel to that which we have seen with desktop computers, where end users increasingly want access to programming abilities Significant challenges relating to relatively low processing power, small screen size and difficulty with textual input

Oct 14, 2001OOPSLA’01- DSVL16 Component Model Particularly interested in handheld computers with expansion capabilities, such as the Handspring Visor Component-based approach to scripting –Script components User defined scripts, created on the handheld –User interface components Windows and menus, created on the handheld –External components “Glue” to connect external devices and other software to scripting environment Defined using a desktop tool by a professional programmer and imported to the handheld Particularly interested in handheld computers with expansion capabilities, such as the Handspring Visor Component-based approach to scripting –Script components User defined scripts, created on the handheld –User interface components Windows and menus, created on the handheld –External components “Glue” to connect external devices and other software to scripting environment Defined using a desktop tool by a professional programmer and imported to the handheld

Oct 14, 2001OOPSLA’01- DSVL17 Execution Model Triggers are used to cause the execution of scripts –Button press, phone ring, etc. Sources and sinks are used to extract information from and provide information to components –Accessing text fields of windows, getting the caller id information of an incoming call, etc. Specialised operations for conditional and repeated execution Reusability of components Triggers are used to cause the execution of scripts –Button press, phone ring, etc. Sources and sinks are used to extract information from and provide information to components –Accessing text fields of windows, getting the caller id information of an incoming call, etc. Specialised operations for conditional and repeated execution Reusability of components

Oct 14, 2001OOPSLA’01- DSVL18 Demo Very early in implementation Currently have: –Interface definition with a small number of interface elements –Scripting environment with Sources, Sinks, Triggers and a small number of primitive operations –No conditional or repeated execution –No external components, and only very preliminary work on tool for their definition –Undoubtedly lots of bugs, so bear with us!! Very early in implementation Currently have: –Interface definition with a small number of interface elements –Scripting environment with Sources, Sinks, Triggers and a small number of primitive operations –No conditional or repeated execution –No external components, and only very preliminary work on tool for their definition –Undoubtedly lots of bugs, so bear with us!!

Oct 14, 2001OOPSLA’01- DSVL19 Concluding Remarks The future of visual programming – application to specific domains. Three example projects – domains from concrete to more abstract. Reduces cognitive load on users required to build structures from textual encodings. No testable implementations yet. –PDA project most abstract, so likely the first to be user-tested The future of visual programming – application to specific domains. Three example projects – domains from concrete to more abstract. Reduces cognitive load on users required to build structures from textual encodings. No testable implementations yet. –PDA project most abstract, so likely the first to be user-tested