LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming Christopher Scaffidi 1, Andrew Dove 2, Tahmid Nabi 1 1 Oregon State University.

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
Tutorial 12: Enhancing Excel with Visual Basic for Applications
UML (Sequence Diagrams, Collaboration and State Chart Diagrams) Presentation By - SANDEEP REDDY CHEEDEPUDI (Student No: ) - VISHNU CHANDRADAS (Student.
MotoHawk Training Model-Based Design of Embedded Systems.
Introduction To System Analysis and Design
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Component and Deployment Diagrams
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS 432 Object-Oriented Analysis and Design
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
CSC230 Software Design (Engineering)
Chapter 13: Designing the User Interface
An Introduction to Rational Rose Real-Time
Understanding and Managing WebSphere V5
The Client/Server Database Environment
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Chapter 6: The Traditional Approach to Requirements
Presented by…. Group 2 1. Programming language 2Introduction.
CS102 Introduction to Computer Programming
Home controlling system based on Galileo Final Semester Presentation Started at: Winter 2015 Project supervised by: Mony Orbach Project performed by: Khalid.
Project Rickshaw SEARCH - FIND - GO. Project Rickshaw TEAM MEMBERS KEVIN AUGUSTINO – MATT FOX – DAVID MOORE SPONSORS KARASU TECHNOLOGIES - ERIK PAUL -
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Submitted by: Madeeha Khalid Sana Nisar Ambreen Tabassum.
Chapter 10 Architectural Design
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Microsoft Visual Basic 2005: Reloaded Second Edition
Managing the development and purchase of information systems (Part 1)
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
14 Chapter 11: Designing the User Interface. 14 Systems Analysis and Design in a Changing World, 3rd Edition 2 Identifying and Classifying Inputs and.
1 Web Basics Section 1.1 Compare the Internet and the Web Compare Web sites and Web pages Identify Web browser components Describe types of Web sites Section.
Python: An Introduction
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
ASP.NET.. ASP.NET Environment ASP.NET is Microsoft's programming framework that enables the development of Web applications and services. It is an easy.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
THOMAS RANDOLPH KYLE SMITH STUART FELDT NICK PARKER What: Restaurant Management System. Why: Improve customer experience. Makes us better: Ours is personal.
CS 4720 Dynamic Web Applications CS 4720 – Web & Mobile Systems.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
Network Monitoring Through Mobile (MOBTOP) Developed By : Akanksha Jain. (102199) Shikha Arora (101319) Team Name: Beans Course: CS532 Guided By:Prof.
Activiti Dima Ionut Daniel. Contents What is Activiti? Activiti Basics Activiti Explorer Activiti Modeler Activiti Designer BPMN 2.0 Activiti Process.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
PhoneGap, Processing.
Avraham Leff James T. Rayfield IBM T.J. Watson Research Center
Unified Modeling Language
Christopher Scaffidi Center for Applied Systems and Software
1 Oregon State University
Ch 15 –part 3 -design evaluation
CIS16 Application Development – Programming with Visual Basic
Presentation transcript:

LondonTube: Overcoming Hidden Dependencies in Cloud-Mobile-Web Programming Christopher Scaffidi 1, Andrew Dove 2, Tahmid Nabi 1 1 Oregon State University 2 National Instruments

2 Health scientists have often requested help with creating cloud-mobile-web apps How to make creation of simple cloud-mobile-web apps so easy that non-CS researchers could do it?

3 Status quo: Creating cloud-mobile-web apps by writing programs that exchange data App code Server code Browser code

4 A major problem: Hidden dependencies Component-to-component App-to-server Server-to-browser Within-component Functions that asynchronously call functions that asynchronously call functions

5 Cognitive Dimensions A useful tool for discussing design tradeoffs A key issue in that code example… Hidden dependencies : Important relationships not made obvious by the language and/or tools Most general available solution? Secondary notation : Embed comments explaining what the language and tools fail to make obvious

6 Object-oriented, Java-like A language idea inspired by home health-monitoring proposal

7 Object-oriented, Java-like A language idea inspired by home health-monitoring proposal Potential benefits -Role expressiveness (An API or language element for each purpose) Potential liabilities -Hidden dependencies -High abstraction gradient (Need to learn many concepts, e.g., OO classes)

8 Event-oriented, English-like A language idea inspired by asthma-monitoring project

9 Event-oriented, English-like A language idea inspired by asthma-monitoring project Potential benefits -Lower abstraction gradient than Java-like Potential liabilities -Dependencies are still fairly hidden

10 Visual dataflow, LabVIEW-like A language idea inspired by proposal to study impacts of vitamin C

11 Visual dataflow, LabVIEW-like A language idea inspired by proposal to study impacts of vitamin C Potential benefits -No more hidden dependencies -Potentially low abstraction gradient Potential liabilities -Diffuseness, verbosity (May need many symbols and space to display code)

12 LondonTube example program

13 Structured Dataflow Nodes represent pieces of executable code Wires represent passing data from one node to the next A node executes when all of its inputs are ready and when it is finished produces it outputs Structured data flow adds flow control elements on top of that For loop executes its contents n times o Shift registers pass data from one iteration of the loop to the next Case structures represent branching Inherently parallel because any node can run as soon as its inputs are ready

14 LondonTube Hybrid paradigm Structured dataflow with actors Distinctive language elements Device structures Event structures Sensor nodes Database nodes UI Diagram structures

15 Server (cloud, intranet, etc) After a scientist draws LondonTube code and hits "Run" on the code editor menu… Editor Compiler Deployment subsystem Browser- based runtime Browser- based runtime In-memory runtime App-based runtime Java-based execution stack: Tomcat (J2EE) JRE MySQL backend Desktop browsers Embedded browser Player BP and FP files (JSON) Generated JavaScript Data exchange facility Serialized messages (JSON) Mini-Player

16 Empirical evaluation 6 participants, 2 in each of 3 conditions Session #1: CS students using traditional tools Session #2: CS students using LondonTube Session #3: Non-CS students using LondonTube Each condition: 1 undergraduate, 1 graduate student All CS students had completed a 1-term course on mobile+cloud development and/or mentorship All conditions started with a 3-hour tutorial o Reviewing material from the cloud+mobile course (Session #1) o OR training in comparable LondonTube concepts (Sessions #2, #3)

17 Programming task Specification Read accelerometer’s magnitude every few minutes Send to cloud for storage in database Display all values in chart on browser Session #1 participants could use any tools they liked Undergraduate chose o Google App Engine in Java o iOS Simulator (w/ via 3 rd party accel. library) in Swift Master’s student chose o Google App Engine in Java o Android device in Java

18 Time taken on the task (minutes) Traditional tools LondonTube CS undergraduate 240 * 9 CS graduate 240 * 8 Non-CS under-graduate N/A ** 8 Non-CS graduate N/A ** 8 * = didn't finish** = didn't attempt

19 Examples of time-consuming difficulties encountered by students with traditional tools Accelerometry-read not occurring Incorrectly registered asynchronous callback Data not flowing through to server Sending data to incorrect URL parameter Compare to LondonTube Blue wires: automatically handle asynchronous callback between functions on the mobile device Green wires: automatically match up the client to the server endpoint

20 Proportions of questions asked by participants during tutorial or task Networking, 29%

21 Survey (5-point agree/disagree Likert items) How well the notation made hidden dependencies visible “It is easy to see how pieces of code interact with one another” “It is easy to understand a system by looking at its code” “Pieces of code sometimes can affect one another in surprising ways.” Notational consistency among cloud/mobile/browser code “Pieces of code have a similar overall structure to one another” “Pieces of code have a similar visual appearance to one another” “Pieces of code use similar functions (or APIs) to carry out their purpose” Error-proneness of the notation and supporting tools “It is easy to create this code without making errors” “It is easy to tell when this code is correct” “These tools involved making many errors along the way” Learnability of the notation, tools and related concepts “Learning these tools required learning many new concepts” “Learning these tools required learning many new functions (or APIs)” “Learning these tools required thinking in new ways” Usability of the tools Speed of using the tools “Rate the overall usability of these tools” “Rate the overall speed with which these tools can be used”

22 Survey results

23 Related Work Other work with features similar to LondonTube Annotations in text-based environments Visual languages for cloud & web applications "One step" operations in languages for mobile apps Other work suggesting ideas to improve LondonTube Data manipulation Sketching user interfaces Triggering code Reading sensors

24 Future directions Enhanced discoverability of language elements By tools that guide scientists as they create code Easy replication of studies Through whitebox reuse of LondonTube code New forms of debugging support Indicators of where code isn't running well

25 Takeaways Potential to ease creation of cloud-mobile-web apps through integration of dataflow + visual elements Need for apps that monitor sensors, store on cloud, display on browser Students who took a course encountered time-consuming problems when creating a simple app Students using LondonTube were faster, more satisfied, and also less puzzled by dependencies

26 Thank you… To Kyle Sweeney and Laxmi Ganesan, who tested an early version. To USDA (AFRI ) and NIH (R21-ES024718), which funded the creation of components reused as part of LondonTube