Re-factoring grid computing for usability Bruce Beckles University of Cambridge Computing Service.

Slides:



Advertisements
Similar presentations
Chapter 5 Development and Evolution of User Interface
Advertisements

P5, M1, D1.
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
An approach to teaching it. Jacqueline is purchasing her first car and feels torn as she balances conflicting desires and messages. She yearns to be seated.
Supporting education and research E-learning tools, standards and systems Sarah Porter Head of Development, JISC.
CSCD 555 Research Methods for Computer Science
1 CSc Senior Project Software Testing. 2 Preface “The amount of required study of testing techniques is trivial – a few hours over the course of.
Frequently asked questions about software engineering
Lecture 1.
Software Development Unit 6.
User requirements for UK e-Science grid environments Bruce Beckles University of Cambridge Computing Service.
Software Construction and Evolution - CSSE 375 Software Documentation 1 Shawn & Steve Right – For programmers, it’s a cultural perspective. He’d feel almost.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
CSC271 Database Systems Lecture # 20.
UNIT 21 Software Engineering.
Karen Y & Enzo Silvestri Fayetteville Technical Community College
1 CS101 Introduction to Computing Lecture 24 Design Heuristics.
Value Assessment by Potential Tool Adopters: Towards a Model that Considers Costs, Benefits and Risks of Adoption Timothy C. Lethbridge SITE, University.
Common Assessment 2 review
Level 2 IT Users Qualification – Unit 1 Improving Productivity
Managing Software Quality
The First step to successful data collection is what I call the buy in. You have to have everyone’s support of supplying required data or it will not.
What if you suspect a security incident or software vulnerability? What if you suspect a security incident at your site? DON’T PANIC Immediately inform:
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Unit 1 – Improving Productivity Louis Price Instructions ~ 100 words per box.
1 UNIT 20 Software Engineering Lecturer: Ghadah Aldehim.
Introduction to Programming Lecture 1 – Overview
Feasibility Study.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
[ §5 : 1 ] 5. Summary of Requirements Products 5.1 Requirements Definition Document 5.2 Software Requirements Specification.
Unit 1 – Improving Productivity Instructions ~ 100 words per box.
Usability Testing Chapter 6. Reliability Can you repeat the test?
Requirements Validation CSCI 5801: Software Engineering.
Project Deliverables CEN Engineering of Software 2.
Software Development Life Cycle (SDLC)
Physical Science Pitsco Science The focus of this stage will be the recognition, development, and revision of valid hypotheses. A hypothesis (plural:
Security Vulnerability Identification and Reduction Linda Cornwal, JRA1, Brno 20 th June 2005
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
WHAT IS THE APPROPRIATE MATHEMATICS THAT COLLEGES STUDENTS SHOULD KNOW AMATYC Conference November 20, 2015 Phil Mahler & Rob Farinelli.
E-Science Security Roadmap Grid Security Task Force From original presentation by Howard Chivers, University of York Brief content:  Seek feedback on.
Example projects using metadata and thesauri: the Biodiversity World Project Richard White Cardiff University, UK
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Directions: Use this template to create your Powerpoint presentation about your rocket experiment. You may personalize this as much as you want, but please.
LAMS: Yesterday, Today, Tomorrow James Dalziel Professor of Learning Technology & Director, Macquarie University E-learning Centre of Excellence (MELCOE)
Software Design and Development Development Methodoligies Computing Science.
OGSA-DAI.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Technical Communication: Concepts and Features
Chapter 1- Introduction
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 1- Introduction
CS101 Introduction to Computing Lecture 24 Design Heuristics
Iterative design and prototyping
Systems Analysis and Design
Frequently asked questions about software engineering
DESIGN THINKING IN TASK ANALYSIS
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Intro To Design 1 Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department.
Chapter 2 – Software Processes
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Object oriented analysis and design
CS385T Software Engineering Dr.Doaa Sami
Chapter 13: Construction
GUI Design 24-Feb-19.
Human Computer Interaction Lecture 14 HCI in Software Process
Chapter 7 Software Testing.
Presentation transcript:

Re-factoring grid computing for usability Bruce Beckles University of Cambridge Computing Service

First things first: an apology This presentation may seem off-topic: –All I had to work with was the workshop title: Making e-Science Usable –That title implies that e-Science currently isnt usable –So whats the problem? Re-factoring for usability: –Impossible –If usability not at heart of product design, tinkering with finished product cannot solve this… painting the corpse

So what am I going to talk about? Not: –a catalogue of usability complaints –lecturing you on the seriousness of the current problems Instead: –Talk about how usable software might be designed, and… –How not to design unusable software

Some definitions Usability: anything that affects the users ability to use the product for their stated purpose (also their perception of the product and their abilities in relation to it) Computer science: The application of the scientific method to the study of computing and related activities

Designing for whom? Only one group can say for certain whether a product is usable: –Users –(Not funding agencies, politicians, heads of departments, computer scientists or middleware developers) So, who are the users? Users of what? –What: grid middleware –Who: application developers and the end-users of those applications

Why middleware? Middleware underlies the grid effort: –plumbing –If plumbing wrong, bathroom design is irrelevant. So, middleware developers need to design for usability –Considering application developers as their users, who are the arbiters of this usability –This also means considering the application developers users: What are the application developers using the middleware for?

Designing for usability (1) Usability: –Not a feature –An aspect of every part of the product that affects the users experience So must be considered at every stage Iterative design loop: Requirements => Analysis => Design => Prototyping => User assessment (At every stage of product development)

Designing for usability (2) User engagement API design User interface (UI) design Security Documentation Deployment

User engagement Programmers are people, too: –Human factors –User-centred design methodologies Requirements capture: –Who is the user community? –Large, diverse community = differing requirements Requirements may conflict: –Partition user community into non-conflicting sets; separate design for each –Explain to user community that requirements conflict and let them make choose what takes precedence.

API design APIs = user interface for programmers Good APIs feature: –Suitability of functionality: Functionality must be user-driven –Standards compliance (where possible) –Progressive disclosure –Simplicity: Make common sequences of function calls atomic –Appropriateness of interface: Language bindings Development tool support –Error prevention: Forcing functions –Literate design (after literate programming) –Support rapid application development & prototyping

User interface (UI) design Hey, for middleware isnt that just API design? Not quite: –Every aspect of the middleware with which the user interfaces, so: Installation procedures Administrative procedures Documentation, etc. Must not force an adversarial conceptual model onto the user: –Abandoning the system in disgust because it is too hard to install and get working should not be a conceptual model of the grid we encourage…

Security No conflict with usability Unusable security is insecure Meeting security requirements is a usability requirement: –If security requirements not met, will not be allowed to use system –If security compromised, cannot use system Use a user-centred security methodology (e.g. AEGIS)

Documentation Accurate Appropriate level for intended audience Literate documentation (after literate programming) Progressive disclosure Numerous examples Templates for frequently used tasks

Deployment Why consider deployment?: –Too hard to deploy = wont be used –Rapid application development / prototyping has deployment implications Good deployment features: –Re-use system libraries –Use existing packaging / installation mechanisms –Small footprint –Support incremental adoption –Able to run in user-space

What does usable middleware look like? (1) Not like anything we have now Domain specific: –A truly general grid middleware would be unusable –Maybe solution is multiple domain- specific middlewares More like WSRF::Lite or Googles MapReduce than the Globus Toolkit

What does usable middleware look like? (2) CONVERT DATA TO GRID FORMAT CONNECT TO GRID SEND CONVERTED DATA TO SERVICE GET RESULT WHEN AVAILABLE DISCONNECT CONVERT RESULT TO SENSIBLE FORMAT …should be just 6 API function calls

Conclusion Two choices: –Hire professional software developers for every single project that wants to use grid computing –Design new, usable middleware from scratch and gradually retire the existing middleware to the museum of catastrophic failures Whats hard about this?: –Admitting what we already know: we have no grids worth the name, and £250+ million, almost 5 years wasted –Not designing usable software, but making the paradigm shift that only users can determine whether software is usable

My challenge to you e-Science should be science: –If you dont agree with me, prove me wrong –Conduct your own usability trials of the current middleware (please let me know your results) If you agree, at least in part, then: –Start demanding usable software. Its your right as a user. –Lets stop colluding and tell the Emperor that hes naked… Politics is the art of preventing people from taking part in affairs which properly concern them. (Paul Valéry)