Jacob Adams Topic Paper Department of Computer Science Southern Illinois University Edwardsville.

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 11 user support. Issues –different types of support at different times –implementation and presentation both important –all need careful design.
Alternate Software Development Methodologies
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Tailoring Needs Chapter 3. Contents This presentation covers the following: – Design considerations for tailored data-entry screens – Design considerations.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Software Engineering COMP 201
Prototyping. Horizontal Prototyping Description of Horizontal Prototyping A Horizontal, or User Interface, Prototype is a model of the outer shell of.
File Systems and Databases
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Course Instructor: Aisha Azeem
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
Design, goal of design, design process in SE context, Process of design – Quality guidelines and attributes Evolution of software design process – Procedural,
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction To System Analysis and design
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Overview of the Database Development Process
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
MVC and MVP. References enter.html enter.html
Requirements Analysis
1 CSBP430 – Database Systems Chapter 1: Databases and Database Users Mamoun Awad College of Information Technology United Arab Emirates University
An Introduction to Software Architecture
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Design Rules-Part B Standards and Guidelines
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Introduction to Software Engineering Lecture 1.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
Systems Analysis and Design in a Changing World, Fourth Edition
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Murielle Florins 1, Francisco Montero Simarro 2, Jean Vanderdonckt 1, Benjamin Michotte 1 1 Université catholique de Louvain 2 Universidad de Castilla-la-Mancha.
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
SEESCOASEESCOA SEESCOA Meeting Activities of LUC 9 May 2003.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
1 Unit E-Guidelines (c) elsaddik SEG 3210 User Interface Design & Implementation Prof. Dr.-Ing. Abdulmotaleb.
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.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Engineering Quality Software Week02 J.N.Kotuba1 SYST Engineering Quality Software.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Form Development (Chapter 6)
Chapter 1 The Systems Development Environment
Software Maintenance.
Chapter 1 The Systems Development Environment
File Systems and Databases
An Introduction to Software Architecture
Engineering Quality Software
Chapter 1 The Systems Development Environment
Software Re-engineering and Reverse Engineering
From Use Cases to Implementation
Presentation transcript:

Jacob Adams Topic Paper Department of Computer Science Southern Illinois University Edwardsville

 Wikipedia- “software development methodology which focuses on creating models, or abstractions, more close to some particular domain concepts rather than computing (or algorithmic) concepts”

 Benefits Model is typically more declarative Model is typically described in terms related to the problem domain Required less technical knowledge to create

 Same benefits as regular model-driven development  Creating user interfaces (UI’s), is still a largely manual process  Creating UI’s for several different platforms can lead to redundant work

 Basler Electric  Many products had hundreds of screens  Needed similar user interfaces for both desktop and embedded applications  Developed multiplatform, database- driven screen generator

 Evaluate techniques for model-driven UI generation from a software engineering standpoint.  Important Criteria Extensibility Maintainability Efficiency Simplicity

 Alan Heirich  Use declarative commands to describe system: 1) Token command – describe type of data to be entered 2) Descriptive phrases 3) Actions that can be executed 4) Acceptance tests-performs validation logic

 Can also define dependencies between fields  UI elements are limited to a small set of widgets (textbox, selection, button, menu, dialog box)  Can also create command line version of the application

 Allows an application to be developed in an evolutionary fashion  Provides quick prototypes

 Originally requires a task model

 Task model is turned into a dialog graph

 Dialog graph is used to create abstract UI (AUI)  AUI is defined in XUL  AUI is originally just placeholder widgets  Placeholders are replaced by real widgets

 Making updates  Changes must be propagated back through task model, dialog graph and AUI

 Gajos and Weld  Requires 3 Models Interface specification – constraints (e.g. type, widget used) places on user interface elements Device model – information and constraints for the particular device that the UI will be generated for User model – information, such as usage patterns about the intended user of the application

 After the data is collected, a pruning algorithm is performed to find the rendering of the UI the reduces the expected effort required to use the user interface  UI generation and rendering is performed at runtime and is performed dynamically.

User Interface Generated for Mouse/Pointer-Based Input

User Interface Generated for Touch-Based Input

Different User Interfaces Generated Based on Different Usage Patterns

 Gajos, Weld, and Wobbrock  Used to generate effort estimations used by SUPPLE  Asks user to choose between renderings

 Gajos, Weld, and Wobbrock  Another method of determining effort estimate for SUPPLE  Measures users motor abilities  In experiment with 11 participant with motor impairments Users were 26% faster Made 73% fewer errors

 hNtp4qc&feature=player_embedded hNtp4qc&feature=player_embedded

 Requires context model, task tree, domain model, abstract user interface, and dialog models  Provides a tool to generate layout statement from these models.  Layout statements can define containment, order, orientation and size

 Containment  Order  Orientation  Size  Statement are given a scope (screen, set of elements, entire application)  Models and statements are evaluated at runtime

 Fully automated process of generating UI from model  Requires discourse model  Screens and state machine are created from discourse model  Discourse model contains set of actions Common types – request, informing, question, answer, etc.

 ATLAS transformation language converts actions and other information into an AUI  Model2Code transformation language converts AUI into concrete UI (CUI)  Widgets are selected based on type of information to be input or displayed

 Requires domain model (relational database)  Wizard style tool Select list or datasheet style UI Select data source Select data source for lookup widgets Choose which widgets update data Choose relative position of widgets Make optional modifications to sizes

 Widgets are generated based on their type  Widgets are sized based on their longest possible value  Tool can create both desktop and mobile UI’s

 Stirewalt and Rugaber  Requires Presentation model – information presented to user Application model – information and functions available to UI Dialog model – interactions between user and application, relationships to other models  Automatically creates UI from these models

 An agent is created to handle each model  Creates event to act as connection points Contain information about actions and callbacks Specified in generic, model independent way  UI is generated if models and connections are valid.  Created two proof of concept applications Simple print and save widget Air traffic controller application

 Also generated UI completely from the models  Requires Static structural task model (SSTM) – hierarchy of tasks and what they are supposed to do. Dynamic structural task model (DSTM) – sequencing and synchronization of tasks in SSTM

 Operational model converts task models into component objects Contain state machine built from actions and hierarchy defined in SSTM and transitions defined in DSTM  Component objects are aggregated into larger objects.  Translated into information need for concrete UI: user models, local interface models, abstract interface models, and interface implementation models

 Some techniques required only one model, others required several  The detail involved in the models also varied significantly  There are tradeoffs between having a simpler or more complex model

 Simple models Easier to develop models  Detailed Models Easier to develop the rest of the application Information is more declarative Possible to require more work that traditional development techniques

 No outside steps required Requires detailed model or application may become rigid and/or have poor quality May be difficult or impossible to model UI entirely  Manual changes Allows more flexibility and customization Can make updates difficult

 Maintainability is a primary aspect of software engineering  System needs to be flexible to change over time  Automatic UI generation allows for quicker changes  Making updates in multiple places defeats purpose of the using a model

 Applications with automatic generation are often tightly coupled to their models Can cause problems if model cannot handle future changed Can also make getting rid of model difficult  Tradeoff: tightly coupled vs. harder to update

 Can help reduce dependencies on model  Helps decouple generation process from concrete UI specifics  Allows easier changes of UI widgets  Provides easier creation of UI for different environments, including different form factors

 Some approaches (Stocq and Vanderdonckt, User Interface Generator) produce UI’s for a few platforms  Others, such as SUPPLE, support creation on an unlimited number of platforms  Several even allow different input mechanisms (keyboard, mouse, touch)  Increasingly important with rise of mobile computing

 User may want different UI’s for different platforms  Allowing customizations to UI can help solve this problem  Using sample usage patterns can also address this problem

 Contains information such as frequency and order of actions performed by a user.  Can make using application much more efficient.  Requires more work.  Can be generated dynamically and at runtime.

 Allows UI to change over time, which recompilation  Can change with user as usage requirements change  Can not easily be performed if manual steps are required  Can be confusing to have dramatic changes to the UI  Gajos, Weld, and Wobbrock showed that using a hybrid approach can be a good comprimise

 Less manual involvement of the developer  Provide richer interfaces  Make more improvements from software engineering perspective

 Considerable research has already been done.  However, UI generation is still a relatively new and expanding field  There is still significant improvements that can be made.