1 End User Software Engineering Mary Shaw Carnegie Mellon University.

Slides:



Advertisements
Similar presentations
Building a Knowledge Management System as a Life Cycle
Advertisements

Integration of MBSE and Virtual Engineering for Detailed Design
Notes from WEUSE IV Discussions. Notes Carolyn Seaman, UMBC. Bioinformatics, big spectrum, part of it is EUP. Interested in EUSE. Malea Umarji, UMBC,
1 End-User Tools for Creating Dependable Software Brad Myers Carnegie Mellon University Fourth Workshop on End-User Software Engineering WEUSE IV May 12,
1 INCOSE Chesapeake Chapter Enterprise SE Panel Discussion L. Mark Walker/LMC 21 March 2007.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Prescriptive Process models
Visual Scripting of XML
Enhancing Spotfire with the Power of R
User Driven Modelling and Systematic Interaction for End-User Programming Modelling for Engineering Processes Peter Hale UWE.
Systems Development Environment
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
Object-Oriented Analysis and Design
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Who Are the “End Users”? Mary Shaw Carnegie Mellon University.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Chapter 1 Assuming the Role of the Systems Analyst
Accelerate Business Success With CRM CRM Interoperability.
1 Institute for Software Research, International BEHOLD, WE HAVE SIGNAL.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
Beyond EUP to EUSE Mary Shaw Carnegie Mellon University.
Chapter 1 Assuming the Role of the Systems Analyst
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
CIS 321—IS Analysis & Design
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 1 The Systems Development Environment
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 1 Assuming the Role of the Systems Analyst Systems Analysis and Design Kendall & Kendall Sixth Edition.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
An Introduction to Software Engineering. Communication Systems.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Introduction Infrastructure for pervasive computing has many challenges: 1)pervasive computing is a large aspect which includes hardware side (mobile phones,portable.
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Software Prototyping Rapid software development to validate requirements.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CoScripter and Topes: Putting Data into Usable Formats Christopher Scaffidi Carnegie Mellon University With Allen Cypher and Jimmy Lin IBM Almaden.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Chapter 1 Assuming the Role of the Systems Analyst.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Object Oriented Systems Design
Interface Concepts Modeling Core Team
Prototyping in the software process
Software Prototyping.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Software Engineering and Best Practices
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
A Data Model to Help End Users Shape Effective Software
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Introduction to SOA Part II: SOA in the enterprise
From Use Cases to Implementation
Logical Architecture & UML Package Diagrams
Presentation transcript:

1 End User Software Engineering Mary Shaw Carnegie Mellon University

2 EUSE goes beyond EUP EUP includes programming-like activities, such as programming, debugging, tailoring via parameters, simple scripting EUSE goes beyond this … Design and composition of systems from elements Evolution, development, maintenance Deliberate process for creating software Expressiveness and understandability Sufficient dependability for current need Concern for system properties – usability, dependability, security, privacy Note the process tension between opportunisim and systematic planning

3 EUs are not SEs EUs do not have rich and robust mental models of their computing systems they fail to do backups, misunderstand storage models, execute malware, and innocently engage in other risky behavior EUSE is not fixing the users EUSE must be about developing ways for EUs themselves to address traditional SE concerns

4 Papers that addressed (some of) these issues Brandt &al, Opportunistic Programming Costabile &al, End Users as Unwitting Developers Scaffidi &al, Topes for Validating and Reformatting Data Stoitsev &al, EUD for Enterprise Process / Info Mgt Wong &al, Patterns in Mashups Umarji &al, Teaching SE to End-users Coutaz, EUP and Intrinsic Complexity of … Shani &al, SW Design / UML / Domain Specific Lang Doerner &al, EUD: Challenges in SOA Sestoft, Function Spreadsheets Praehofer, EUP Environments in Automation Domain El-Gayyar, User-oriented Web Services Composition Brandt Constabile Scaffidi Sestoft Praehofer El-Geyyar Coutaz Shani Doerner Stoitsev Wong Umarji

5 Composition of systems from elements Models for composition of elements Use patterns to guide mashups [Wong] Managing service compositions with many component proprietors [Coutaz] Package new capability as plugins or extensions for existing systems [Scaffidi, Stoitsev, Sestoff] Finding resources Provide hierarchy of repositories from personal to local to global [Scaffidi] Finding services [Doerner] Scaffidi Sestoft Coutaz Doerner Stoitsev Wong

6 Models for composition of elements Wong, Patterns in Mashups Mashups combine information from multiple web sites in new ways Survey found several types: aggregation; alternate UI or specialized use; personalization; focused view of data; real-time monitoring Large comparative table shows differences Coutaz, EUP and Intrinsic Complexity of … Model based on molecular chemistry shows richness of mixed physical-digital network artifacts elements are digital or physical atoms composition is based on, e.g., valence and affinity Proposal: Base composition of services on this model Coutaz Wong

7 Packaging new capability as plug-ins, etc Scaffidi &al, Topes to Validate, Reformat Data New technique for moving data among applications Integrates technique with existing applications by packaging it as plugins of various kinds Stoitsev &al, EUD for Enterprise Proc / Info New technique for EU tailoring of process models Represented as hierarchical to-do lists, implemented as extensions to Outlook Sestoft, Implementing Function Spreadsheets Added abstraction capability Realized as a special kind of sheet Scaffidi Sestoft Stoitsev

8 Evolution, development, maintenance Data sharing: interoperability across apps Data from multiple applications must be combined [Stoitsev, Wong] But data is often hard to share [Scaffidi, Doerner] Evolution Evolution includes dynamic changes [Doerner] EU software evolves continuously [Costabile] EUs need an evolutionary perspective [Umarji] Tailoring Individualized variants [Scaffidi, Stoitsev] EUs tailor businesses processes [Stoitsev, Doerner] Domain-specific tailoring for critical applications [Praehofer] Personalizing workflows [el-Gayyar] Constabile Scaffidi Praehofer El-Geyyar Doerner Stoitsev Wong Umarji

9 Data Sharing Interoperability Problems Scaffidi &al, Topes to Validate, Reformat Data Many kinds of data are carried in short strings with many formats: name, date, phone, address Applications assume different format, and checking is binary, no maybe or special cases Topes offer format conversion, validation in [0..1] Doerner, EU Development: SOA Challenges In SOA, problem for EU is gathering all the data for a decision from various sources, DBs EUs want to export to Excel, but SAP cant do this Also cant exchange data between applications Scaffidi Doerner

10 Evolution Doerner, EU Development: SOA Challenges EUs develop and evolve their business processes They may not have enough info about process Major challenge is adaptation at runtime Costabile, EUs as Unwitting Developers EUs often program without being aware of it Their software and adaptations keep evolving Solutions must extend through life cycle Case study shows structured planning for this Constabile Doerner

11 Deliberate process for creating software Shallow learning curve People need immediate gratification [Brandt] Gentle slope [Doerner, Stoitsev] Opportunistic programming [Brandt] Need rules and process, but not the same as for production SW [Brandt] EU code is impermanent [Brandt] Spectrum of users [Costabile] EUs should know approaches to design and development, QA practices, evolutionary perspective, documentation, reuse [Umarji] Some isolated Agile activities Brandt Constabile Doerner Stoitsev Umarji

12 Characteristics of EUs Brandt: Opportunistic Programming Opportunistic software: nontrivial software, little upfront planning, ease and speed of development prioritized over robustness and maintainability Not just sloppy programming, but good process for prototyping, ideation, discovery Build from scratch using high-level tools Add new functionality via copy-and-paste Iterate rapidly Consider code impermanent Face unique debugging challenges Costabile, EUs as Unwitting Developers EUs skills fall along a spectrum from EU to prof Less-skilled often start with tailoring Provide life cycle support, not just to release Brandt Constabile

13 Educating EUs Umarji &al, Teaching SE to EUs Surveyed bioinformatics curricula and recommended things that bioinformaticians should know about SE Recommendations Approaches to software design and development Strong quality assurance (QA) practices Evolutionary perspective Documentation Reuse Umarji

14 Expressiveness and understandability Visual interfaces to tools Define data formats with structured dialog and examples [Scaffidi] Graphical composition [Stoitsev, El-Gayyar] Visual models [Doerner] Domain Oriented Visual Lang [Costabile] Functional interface to visual tools to allow abstraction [Sestoft] Chemical molecule metaphor for composition [Coutaz] Use UML to create domain-specific languages [Shani] People use informal cues to gauge quality of information [Brandt] Brandt Constabile Scaffidi Sestoft El-Geyyar Coutaz Shani Doerner Stoitsev

15 Questions for discussion What are, and how can we resolve, the issues in the process tension between opportunism / gentle learning curve / instant gratification / systematic process / consistency / long-term usefulness How can an EU manage evolution without a systematic process? Can we have a process with a shallow learning curve? What are the potentials and problems for the technique of packaging a new capability variously as plugin, extension, macro in order to integrate it with various systems?