UI Tools, Techniques and Technologies

Size: px
Start display at page:

Download "UI Tools, Techniques and Technologies"

Transcription

1 UI Tools, Techniques and Technologies CS4HC3 / SE4HC3/ SE6DO3 Fall 2011 Instructor: Kevin Browne brownek@mcmaster.ca

2 UI Tools Some tools for building user interfaces... Content Management Systems (CMS) In-code library / API calls GUI builders User interface markup languages Constraint-based tools User interface modeling languages

3 UI Tools Distinctions between the different tools not black and white e.g. GUI builders may just graphically represent a user interface markup language Tool choice is not an issue of better or worse - different tools for different tasks A UI specified and generated by a CMS may be sufficient for an ecommerce website, a blog But the UI for a system of public transportation terminals may require advanced tools

4 UI Building Tool Concerns Level of abstraction... Targeting multiple platforms with same specification of the UI? Safety e.g. Java, modeling\constraint languages, CMS Typically comes at a cost.. Run-time slowdown Range of what can be specified Modelling language may allow one to detect bugs Economics How much time\money\resources do you have?

5 UI Building Tool Concerns Handling I/O How does the specification of the interface handle I/O? How much does the user control I/O? I/O handling largely automated? Event-driven functions are called when I/O events occur? Or must I/O be recognized and handled manually in the code by a loop searching for input? Economics How much time\money\resources do you have? Learning time? Extensibility? Modularity?

6 Content Management System Systems that manage workflow content... Repository of documents, pages Revising, publishing, storing documentation Supports collaboration User accounts Roles Typically handles security, backing up data, other housekeeping duties Make managing a system of documents easier

7 Content Management System UI separated from content database Front-end UI of CMS specified using the backend of the CMS Themes are typical... Can be customized Communities of users which develop themes CMS takes theme + settings + data and generates the UI automatically

8 Content Management Systems Great for non-technical or non-expert users Input/output handled automatically by CMS Explosive popularity on the web Economics likely a driving factor Database of managed content allows targeting of multiple platforms e.g. CMS built for web can target mobile devices Hamilton-area startup Weever Apps has built such a solution e.g. CMS Wordpress, Joomla!

9 GUI builder WYSIWYG editor for GUI creation Allow developer to drag-and-drop standard UI elements or widgets into the UI Widget parameters can be specified Actions and I/O involving widgets can be tied to event-handling functions Event-driven programming typical with GUI builders Often GUI builder is a nice front-end to a markup language or other interface representation

10 In-code library / API calls Creating the UI programmatically at run-time... Run-time environment such as OS creates standard GUI widgets given appropriate function calls e.g. Win32 API Graphics generated or displayed from standard library calls e.g. OpenGL Very often required to do non-standard GUI widgets in dynamic, graphically intensive software (i.e. Games, simulations)

11 In-code library / API calls Handling I/O When creating GUI widgets, may specify functions to handle widget events e.g. Interface actions mapped to function calls In case of standard graphics library, may have to handle I/O manually e.g. Game Engine style loop Debate when to use API calls vs GUI builder? If you require thousands of different dynamically customized pages... GUI builder tool likely to be impractical

12 User Interface Markup Language Markup language that specifies and renders GUI Most are XML dialects Rendered into GUI by an engine e.g. Interpreted into a document\webpage Meant to prevent re-invention of the wheel UI can be scripted Separates UI from function

13 User Interface Markup Language Examples: XML User Interface Language XUL Portable definition of common widgets for Mozilla applications User Interface Markup Language - UIML Doesn't describe how UI will look Instead specify UI widgets, how they should behave Attempts to be multi-platform, multi-language solution PDAs to websites

14 Constraint-based Tools Expressing a UI through constraints Constraint is a relationship that must be maintained Don't specify sequence of execution steps, but instead the properties of a UI solution to be found (i.e. what, but not how ) Static and temporal constraints Constraints can be maintained during execution and checked for error conditions beforehand e.g. Constraint-based Object-oriented Relations and Language (CORAL) Carnegie-Mellon

15 Constraint-based Tools Constraints can be used to... (Rozna, 1994) maintain consistency between underlying data and a graphical depiction of data on the screen to maintain consistency among multiple views on data to specify how information is to be formatted on the screen to specify animation events that are to occur when a given event occurs in the underlying system to specify attributes of objects in an animation, such as speed and trajectory

16 User Interface Modelling Language Need: good, standard notations for discussing design options English specification? Lengthy Vague Ambiguous Expression may be convenient for... Prove properties of the UI Completeness Correctness Consistency Checking for UI errors

17 User Interface Modelling Language Representation of UI, user actions with the software, how the software reacts User Interface Models: Capture requirements Avoid early commitment to particular designs Make roles, parts, relationships explicit Models are about specification, but techniques exist to automatically translate model into a UI UML? Can be done, but not really the intention of UML...

18 UMLi Extension of UML with better support for UI MB-UIDEs Model based user interface development environments Can design interfaces, but not applications UMLi combines UML + MB-UIDE Example:

19 Backus Normal Form (BNF) Non-terminals: high level components Terminals: specific strings <symbol> ::= expression expression... <symbol> is a non-terminal expression is a sequence of one or more symbols Sequences separated by, choice of possible substitution Symbols that never appear on left are terminals

20 Backus Normal Form (BNF) e.g. can specify user input... <character> = A B C D E... <string> = <character> <character><string> <lastname> = <string> <firstname> = <string>

21 Backus Normal Form (BNF) e.g. Can specify text oriented command sequences with multiparty grammars (Schneiderman, 2005) <session> ::= <U: Opening> <C:Responding> <U: Opening> ::= LOGIN <U: Name> <U: Name> ::= <U: string> <C: Responding> ::= Welcome [<U: Name>] Non-terminals which indicate the party that produces the string, square brackets indicate output In this case, U-user, C-computer

22 UI Prototyping Tools Paper mock-ups... Graphics editing programs... Photoshop, etc. Purpose built UI prototyping tools Often build what people will call the horizontal prototype of the system Confirm UI requirements, demo system to customers\investors Built to be quick, skinnable to different systems e.g. MockUp Screens (mockupscreens.com)

23 Game Loop Central to every video game Reasoning applicable to scientific simulations and other UI scenarios Video game UI executes and changes continuously and dynamically, as opposed to say a blog or Microsoft Excel while (not game over) Check for user input Update game state Display game

24 Game Loop Update game state involves: Artificial intelligence Movement of player, enemy units Resolving collisions Etc. Many things can be done in separate threads: User input may be done by separate thread, eventdriven style Sounds may be handled in different threads

25 Game Loop Implementation issue: Console titles (Xbox, etc.), earlier ios\smartphone software can assume virtually all computational power and resources are available Not so much for PCs, new multicore\multithread smartphone and tablets Frame Per Second number of times that the game loop executes (and displays the game) per second Problem: loop doesn't give indication of how we handle time

26 Game Loop One timing solution: fixed frames per second define FPS 30 while (not game over) starttime = getcurrentsystemtime() check for input update game state (time change (s) = 1 / FPS) display game starttime = starttime + (1 / FPS) sleep for ( max(0, starttime - getcurrentsystemtime() )

27 Game Loop Constant FPS solution Simple implementation! Always know exactly how much time should have changed since last update Problem... slow hardware Timing becomes variable Problem... fast hardware Could be executing at a higher FPS! If battery life is a concern, limiting CPU use to that required could be important i.e. Mobile, tablet devices

28 Game Loop Another timing solution: let game execute as fast as possible, update with time difference from previous loop execution while (not game over) check for input prevtime = currenttime currenttime = getcurrentsystemtime() update game state (currenttime - prevtime) display game

29 Game Loop Now the update function must account for variable lengths of times More difficult to implement, but not impossible... Problem: collision detection When any time difference is theoretically possible, how to detect collisions? Result: Objects going through walls, etc. Problem: using more resources than what is required for the game

30 Game Loop Other solutions: Set a minimum and maximum range for difference of time Only have to handle a specified range Makes handling collision detection easier Separate updating of game state from updating of display

31 Collision Detection Problem: detecting the collision of two or more objects Typically found in video games, scientific simulations of physics problems Range of design choices, sophistication levels Discrete vs. Continuous? Contact manifold? (set of intersecting points) Do objects have mass, acceleration? Other forces involved in the collision? (i.e. gravity) Computational geometry, linear algebra

32 Collision Detection Scientific simulations... Must simulate real-world or some specified system as precisely as possible Not necessarily in real-time... Low error rates are of paramount importance Video games... Must simulate physics in some reasonably acceptable way, in real-time Subjective player satisfaction is of paramount importance

33 Collision Detection Discrete collision detection Advance simulation by small steps Each time check for intersecting objects Or are close enough that we can reasonably say they are intersecting If objects are intersecting, then we account for the collision by modifying the position and trajectories of the objects a posteriori - we identify the collision after it occur

34 Collision Detection Continuous Compute trajectories of the objects Derive from this the instants that objects will collide Account for collision by modifying the position and trajectories of the objects a priori - we identify collision before it occurs

35 Collision Detection Discrete Algorithm is simpler, doesn't need to deal with time But intersections detected after collision has already occurred, must be fixed to improve accuracy Collisions can go undetected, objects can pass through one another, if they are moving fast enough! Checking for collisions must be relative to object speed Continuous Increased fidelity, stability More difficult to implement

36 Event-driven Programming Programming paradigm Widely adopted paradigm Control flow is determined by events events could be actions performed by the user, or messages from other threads Main Loop (aka Event Loop) Event selection Waits for event messages (typically blocks) to arrive, selects an event to handle Event handling Typically operates asynchronously in its own thread

37 Event-driven Programming Event handler Functions or subroutines Handle events after called by main loop Somehow (usually automatically by the IDE) are bound to an event Functions themselves are usually created automatically by IDE, developer just has to insert code Sometimes an event object is provided where the developer can access properties of the event e.g. The event might be that a key was pressed, event.keypressed() will return the key character

38 References Designing the User Interface: Strategies for Effective Human-Computer Interaction / 5 th edition, by Ben Schneiderman & Catherine Plaisant (2010) Chapman, Roger. An Instructor's Outline of Designing the User Interface 4 th Edition (2004) by Ben Schneiderman & Catherine Plaisant. (slides) Paperin, Greg. Intersection Testing in 3D Graphics. (2006) University of Hamburg, Germany. paperin.org P. Pinheiro da Silva, N. W. Paton. User Interface Modeling in UMLi. (2003) Stanford University / University of Manchester. Rozsa, Eniko Ilona. Design and constraint visualization in computer-aided design. (1994) Simon Frasier University. M.A.Sc. Thesis Witter, Koen. DeWiTTERS Game Loop.(2009)

Chapter 5. Software Tools

Chapter 5. Software Tools Chapter 5 Software Tools 1 Introduction The demands of modern life require user-interface architects to build reliable, standard, safe, inexpensive, effective, and widely acceptable user interfaces on

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

Ali Khan < Project Name > Design Document. Version 1.0. Group Id: S1. Supervisor Name: Sir.

Ali Khan < Project Name > Design Document. Version 1.0. Group Id: S1. Supervisor Name: Sir. < Project Name > Design Document Version 1.0 Group Id: S1. Supervisor Name: Sir. Revision History Date Version Description Author Table of Contents 1. Introduction of Design Document 2. Entity Relationship

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 CS260 UI Toolkits Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 In the beginning cryptonomicon.com/beginning.html The Xerox Alto (1973) Event-Driven UIs Old

More information

User Stories Report. Project. Statistics: Name Start End Weather Forecaster 5/2/ /7/2005

User Stories Report. Project. Statistics: Name Start End Weather Forecaster 5/2/ /7/2005 User Stories Report Project Name Start End Weather Forecaster 5/2/2005 10/7/2005 Statistics: User Stories Count: 4 Tasks Count: 8 Bugs Count: 6 Total Spent Time: 70 1. Heat Measurement Device 1.1. Scope

More information

Anaglym: A Graphics Engine Providing Secure Execution of Applications

Anaglym: A Graphics Engine Providing Secure Execution of Applications Grand Valley State University ScholarWorks@GVSU Masters Projects Graduate Research and Creative Practice 12-2009 Anaglym: A Graphics Engine Providing Secure Execution of Applications Josh Holtrop Grand

More information

<Insert Picture Here> JavaFX 2.0

<Insert Picture Here> JavaFX 2.0 1 JavaFX 2.0 Dr. Stefan Schneider Chief Technologist ISV Engineering The following is intended to outline our general product direction. It is intended for information purposes only,

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Server Side Development» 2018-06-28 http://www.etanova.com/technologies/server-side-development Contents.NET Framework... 6 C# and Visual Basic Programming... 6 ASP.NET 5.0...

More information

Improved Database Development using SQL Compare

Improved Database Development using SQL Compare Improved Database Development using SQL Compare By David Atkinson and Brian Harris, Red Gate Software. October 2007 Introduction This white paper surveys several different methodologies of database development,

More information

SOLO NETWORK. Adobe Flash Catalyst CS5.5. Create expressive interfaces and interactive content without writing code

SOLO NETWORK. Adobe Flash Catalyst CS5.5. Create expressive interfaces and interactive content without writing code (11) 4062-6971 (21) 4062-6971 (31) 4062-6971 (41) 4062-6971 (48) 4062-6971 (51) 4062-6971 (61) 4062-6971 Adobe Flash Catalyst CS5.5 Create expressive interfaces and interactive content without writing

More information

Bottlenose developer s guide

Bottlenose developer s guide Bottlenose developer s guide Copyright 2005 Simon Woodside. CC-BY-SA 2.0. Version 0.1a, 2005-09-15. Introduction Bottlenose is a system to enable HTML/CSS/Javascript ( JHC ) designers to create the user

More information

Ideas Gallery - Sai Kishore MV (Kishu)

Ideas Gallery - Sai Kishore MV (Kishu) Ideas Gallery - Sai Kishore MV (Kishu) All Ideas are for LS 2.0 Idea: # 1: Theme / Template Framework Develop a theme / template framework similar to one in jquery ( http://jqueryui.com/themeroller/) and

More information

Software Tools. Scott Klemmer Autumn 2009

Software Tools. Scott Klemmer Autumn 2009 stanford hci group http://cs147.stanford.edu Software Tools Scott Klemmer Autumn 2009 It accomplishes an important task (for better and for worse) You don t have to make it yourself, and it abstracts a

More information

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1)

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 1 Professional Program: Data Administration and Management JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) WHO

More information

Interactive Scientific Visualization of Polygonal Knots

Interactive Scientific Visualization of Polygonal Knots Interactive Scientific Visualization of Polygonal Knots Abstract Dr. Kenny Hunt Computer Science Department The University of Wisconsin La Crosse hunt@mail.uwlax.edu Eric Lunde Computer Science Department

More information

CS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017

CS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017 CS248 Lecture 2 I NTRODUCTION TO U NITY January 11 th, 2017 Course Logistics Piazza Staff Email: cs248-win1617-staff@lists.stanford.edu SCPD Grading via Google Hangouts: cs248.winter2017@gmail.com Homework

More information

Making use of other Applications

Making use of other Applications AppGameKit 2 Collision Using Arrays Making use of other Applications Although we need game software to help makes games for modern devices, we should not exclude the use of other applications to aid the

More information

New Applications Lesson Objectives

New Applications Lesson Objectives New Applications Lesson Unit 1: THE WORLD WIDE WEB: HISTORY AND DEFINITIONS History of the Web in a Nutshell Explain how deconstructing the past can help project future possibilities within a rapidly emerging

More information

Design of Embedded Systems

Design of Embedded Systems Design of Embedded Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-01-02 José Costa (DEI/IST) Design of Embedded Systems 1

More information

CS354R: Game Technology

CS354R: Game Technology CS354R: Game Technology Tools Pipeline Fall 2018 Game as Media Games require art assets and design decisions Artists and designers may not have technical skills (We can t all be Daisuke Amaya) 2 Off the

More information

UNIVERSITY OF CALIFORNIA AT BERKELEY. Name:

UNIVERSITY OF CALIFORNIA AT BERKELEY. Name: UNIVERSITY OF CALIFORNIA AT BERKELEY COMPUTER SCIENCE DIVISION - EECS CS160 Second Midterm Examination Prof L.A. Rowe Spring 2001 Name: Score: Question Possible Points 1 (50 points) 2 (10 points) 3 (20

More information

How HP is implementing an Omnichannel support experience

How HP is implementing an Omnichannel support experience How HP is implementing an Omnichannel support experience Fulvio Marfoni HP What Omni-Channel Customer Support Experience means Omni-channel is a multichannel approach that seeks to provide the customer

More information

About Me Specialize in performance last 15 years Currently performance testing and optimization of Hyperion products at Oracle Blog at

About Me Specialize in performance last 15 years Currently performance testing and optimization of Hyperion products at Oracle Blog at WebPerfDays Load Testing: Use a Right Approach to Mitigate Performance Risks Alexander Podelko alex.podelko@oracle.com alexanderpodelko.com/blog @apodelko June 28, 2012 1 About Me Specialize in performance

More information

Introduction. Software tools and implementation support. Shneiderman ch. 5, Dix chs. 6, 8

Introduction. Software tools and implementation support. Shneiderman ch. 5, Dix chs. 6, 8 Software tools and implementation support Shneiderman ch. 5, Dix chs. 6, 8 I VP R 1 Introduction How does HCI affect programmer? Programming focus hardware interaction-technique Layers of development tools

More information

Unit A: Computer and Internet Basics

Unit A: Computer and Internet Basics Unit A: Computer and Internet Basics TRUE/FALSE 1. Cars and appliances include digital electronics. ANS: T PTS: 1 REF: Concepts 2 2. Usually when people talk about computers, they are talking about a PC.

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

#12 - The art of UI prototyping

#12 - The art of UI prototyping 1 of 5 1/30/2007 12:02 PM #12 - The art of UI prototyping By Scott Berkun, November 2000 Even the brightest people make mistakes. This is especially true for teams of people. Somehow, as a project moves

More information

Flint - Eclipse Based IDE User Manual

Flint - Eclipse Based IDE User Manual 1 E M B I E N T E C H N O L O G I E S Flint - Eclipse Based IDE User Manual Embien Technologies No 3, Sankarapandian Street, Madurai, India 625017 www.embien.com 2 3 Table of Contents 1 Introduction...

More information

CM0256 Pervasive Computing

CM0256 Pervasive Computing CM0256 Pervasive Computing Lecture 17 Software Development Approaches Tom Goodale t.r.goodale@cs.cardiff.ac.uk Lecture Outline In this lecture we: J2ME applications Palm. Device Limitations Limited Power

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best

More information

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017 Channels & Keyframes CSE69: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 27 Animation Rigging and Animation Animation System Pose Φ... 2 N Rigging System Triangles Renderer Animation When

More information

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality Fall 2005 6.831 UI Design and Implementation 1 Fall 2005 6.831 UI Design and Implementation 2 Paper prototypes Computer prototypes Wizard of Oz prototypes Get feedback earlier, cheaper Experiment with

More information

Create-A-Page Design Documentation

Create-A-Page Design Documentation Create-A-Page Design Documentation Group 9 C r e a t e - A - P a g e This document contains a description of all development tools utilized by Create-A-Page, as well as sequence diagrams, the entity-relationship

More information

Basics of Web. First published on 3 July 2012 This is the 7 h Revised edition

Basics of Web. First published on 3 July 2012 This is the 7 h Revised edition First published on 3 July 2012 This is the 7 h Revised edition Updated on: 03 August 2015 DISCLAIMER The data in the tutorials is supposed to be one for reference. We have made sure that maximum errors

More information

User Centered Design Process. Prototyping II. What is a prototype? Prototyping phases Oct 11, 2017

User Centered Design Process. Prototyping II. What is a prototype? Prototyping phases Oct 11, 2017 User Centered Design Process Prototyping II Oct 11, 2017 Produce something tangible Identify challenges Uncover subtleties 2 What is a prototype? A prototype is defined less by form, and more by its function:

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

Product Features. Web-based e-learning Authoring

Product Features. Web-based e-learning Authoring Web-based e-learning Authoring Product Features Composica Enterprise is an advanced web-based e-learning authoring system offering high flexibility and an abundance of features to collaboratively create

More information

Comparative Assessment

Comparative Assessment Danny Hussey IS: 590 Web Development using CMS University of Tennessee School of Information Science Hamilton Parks Public Library Comparative Assessment Content Management Systems Wordpress, Joomla, and

More information

Erlang. Joe Armstrong.

Erlang. Joe Armstrong. Erlang Joe Armstrong joe.armstrong@ericsson.com 1 Who is Joe? Inventor of Erlang, UBF, Open Floppy Grid Chief designer of OTP Founder of the company Bluetail Currently Software Architect Ericsson Current

More information

A 2D Game Engine Using Bitmaps

A 2D Game Engine Using Bitmaps A 2D Game Engine Using Bitmaps Rahul Deore 1, Prathamesh Mujumdar 2, Rohan Gulik 3, Prof. Savita Sangam 4 1 Rahul.deore@hotmail.com, 2 prathamesh.22@gmail.com, 3 rohan.gulik@hotmail.com, 4 savita.sangam@gmail.com

More information

Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Designers make myths. Users make conceptual models.

Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Designers make myths. Users make conceptual models. User Interface Guidelines UI Guidelines 1 Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Know your users - they are not you Designers make myths. Users

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

Integrated Software Environment. Part 2

Integrated Software Environment. Part 2 Integrated Software Environment Part 2 Operating Systems An operating system is the most important software that runs on a computer. It manages the computer's memory, processes, and all of its software

More information

+1 (646) (US) +44 (20) (UK) Blog. for Magento 2. ecommerce.aheadworks.com/magento-2-extensions

+1 (646) (US) +44 (20) (UK) Blog. for Magento 2. ecommerce.aheadworks.com/magento-2-extensions Blog for Magento 2 Table of contents: Table of contents:... 2 Reference table... 3 Getting started... 4 Sidebar... 5 SEO... 6 Related Products... 6 Wordpress Import... 7 Blog categories... 7 Blog posts...

More information

Introduction to Programming

Introduction to Programming Introduction to Programming session 3 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2010 These slides are created using Deitel s slides Sahrif University of Technology Outlines

More information

CE881: Mobile & Social Application Programming

CE881: Mobile & Social Application Programming CE881: Mobile & Social Application Programming, s, s and s Jialin Liu Senior Research Officer Univerisity of Essex 6 Feb 2017 Recall of lecture 3 and lab 3 :) Please download Kahoot or open a bowser and

More information

A Case Study Webinar: How Wiley-Blackwell Accelerated Digital Production by 75% webinar. aptaracorp.com

A Case Study Webinar: How Wiley-Blackwell Accelerated Digital Production by 75% webinar. aptaracorp.com webinar Q&A A Case Study Webinar: How Wiley-Blackwell Accelerated Digital Production by 75% How would you characterize the capabilities of Wiley's solution...were they primarily due to (a) out-of-the-box

More information

Organization of User Interface Software

Organization of User Interface Software Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as

More information

Front-End Web Developer Nanodegree Syllabus

Front-End Web Developer Nanodegree Syllabus Front-End Web Developer Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Web Developer Nanodegree

More information

<Insert Picture Here> JavaFX Overview April 2010

<Insert Picture Here> JavaFX Overview April 2010 JavaFX Overview April 2010 Sébastien Stormacq Sun Microsystems, Northern Europe The following is intended to outline our general product direction. It is intended for information

More information

SSQA Seminar Series. Server Side Testing Frameworks. Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007

SSQA Seminar Series. Server Side Testing Frameworks. Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007 SSQA Seminar Series Server Side Testing Frameworks Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007 1 Agenda Introduction Drivers for Server Side Testing Challenges

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Data/Thread Level Speculation (TLS) in the Stanford Hydra Chip Multiprocessor (CMP)

Data/Thread Level Speculation (TLS) in the Stanford Hydra Chip Multiprocessor (CMP) Data/Thread Level Speculation (TLS) in the Stanford Hydra Chip Multiprocessor (CMP) A 4-core Chip Multiprocessor (CMP) based microarchitecture/compiler effort at Stanford that provides hardware/software

More information

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle Operating Systems Operating System Structure Lecture 2 Michael O Boyle 1 Overview Architecture impact User operating interaction User vs kernel Syscall Operating System structure Layers Examples 2 Lower-level

More information

CS/ISE 5714 Spring 2013

CS/ISE 5714 Spring 2013 CS/ISE 5714 Spring 2013 Chapter 11. Prototyping Chapter 10. UX Goals, Metrics, Targets Introduction A way to evaluate design before it s too late and too expensive Copyright MKP. All rights reserved. 2

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Summarize UML Deployment and Component notation. Design a framework with the Template Method, State, and Command patterns. Introduce issues in object-relational (O-R)

More information

Short Test Cycles for Performance Testing with TruClient Technology

Short Test Cycles for Performance Testing with TruClient Technology White Paper Application Development, Test & Delivery Short Test Cycles for Performance Testing with TruClient Technology Table of Contents page Keeping Up in a Complex Era... 1 Riding the Web 2.0 Wave...

More information

Software Specification of MERTIS: Modifiable, Extensible Real-Time Interactive Simulation System

Software Specification of MERTIS: Modifiable, Extensible Real-Time Interactive Simulation System Software Specification of MERTIS: Modifiable, Extensible Real-Time Interactive Simulation System Frederick C. Harris, Jr., Leandro Basallo, Ryan Leigh, Regan Snyder, and Sam Talaie Department of Computer

More information

TES Guiliani + BLU on Renesas Rx63N Embedded GUI Solution Kit - Introduction

TES Guiliani + BLU on Renesas Rx63N Embedded GUI Solution Kit - Introduction TES Guiliani + BLU on Renesas Rx63N Embedded GUI Solution Kit - Introduction Thomas Hase Business Development Manager Graphics & IP thomas.hase@tes-dst.com +49 176 10111874 TES OVERVIEW Electronic Product

More information

1. Introduction to Operating Systems

1. Introduction to Operating Systems Principles of Operating Systems CS 446/646 1. Introduction to Operating Systems René Doursat Department of Computer Science & Engineering University of Nevada, Reno Fall 2005 Principles of Operating Systems

More information

Game Programming with. presented by Nathan Baur

Game Programming with. presented by Nathan Baur Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

1 Introduction. 2 Web Architecture

1 Introduction. 2 Web Architecture 1 Introduction This document serves two purposes. The first section provides a high level overview of how the different pieces of technology in web applications relate to each other, and how they relate

More information

3 A Model for Stream Based Interactive Storytelling

3 A Model for Stream Based Interactive Storytelling 3 A Model for Stream Based Interactive Storytelling In this chapter, a Model for Stream Based Interactive Storytelling is presented. This model uses a distributed strategy, removing the need of having

More information

How to Get a Website Up and Running

How to Get a Website Up and Running How to Get a Website Up and Running Nowadays almost all of the businesses got a website, and it is getting really important and even mandatory to get online. Bill Gates mentioned in a conference that "if

More information

Getting started with WebSphere Portlet Factory V7.0.0

Getting started with WebSphere Portlet Factory V7.0.0 Getting started with WebSphere Portlet Factory V7.0.0 WebSphere Portlet Factory Development Team 29 September 2010 Copyright International Business Machines Corporation 2010. All rights reserved. Abstract

More information

CS102 Unit 2. Sets and Mathematical Formalism Programming Languages and Simple Program Execution

CS102 Unit 2. Sets and Mathematical Formalism Programming Languages and Simple Program Execution 1 CS102 Unit 2 Sets and Mathematical Formalism Programming Languages and Simple Program Execution 2 Review Show how "Hi!\n" would be stored in the memory below Use decimal to represent each byte Remember

More information

Rapid Prototyping. Sketches, storyboards, mock-ups and scenarios

Rapid Prototyping. Sketches, storyboards, mock-ups and scenarios Rapid Prototyping Sketches, storyboards, mock-ups and scenarios Agenda Dimensions and terminology Non-computer methods Computer methods 2 Your Project Group 3 An Essential Concept of UCD Requirements for

More information

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers Page 1 Slide 1: title and presenter's name Slide 2: topic intro - what product/technology is Slide 3: topic intro - who is the target market (be very as specific as possible: e.g. geo, developer type,

More information

Jumpstarting the Semantic Web

Jumpstarting the Semantic Web Jumpstarting the Semantic Web Mark Watson. Copyright 2003, 2004 Version 0.3 January 14, 2005 This work is licensed under the Creative Commons Attribution-NoDerivs-NonCommercial License. To view a copy

More information

Kyle Rainville Littleton Coin Company

Kyle Rainville Littleton Coin Company Kyle Rainville Littleton Coin Company What is JSON? Javascript Object Notation (a subset of) Data Interchange Format Provides a way for communication between platforms & languages Derived from Javascript

More information

A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH

A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH 1 / 31 What is this session about? Introduction to CipSoft and TibiaME TibiaME's

More information

Software Quality. Richard Harris

Software Quality. Richard Harris Software Quality Richard Harris Part 1 Software Quality 143.465 Software Quality 2 Presentation Outline Defining Software Quality Improving source code quality More on reliability Software testing Software

More information

Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes Welcome to CS 470/670 Introduction to Artificial Intelligence Office: Lab: Instructor Marc Pomplun S-3-171 S-3-135 Office Hours: Tuesdays 4:00pm 5:30pm Thursdays 7:00pm 8:30pm Spring 2016 Instructor: Marc

More information

Enterprise Architect. User Guide Series. Domain Models

Enterprise Architect. User Guide Series. Domain Models Enterprise Architect User Guide Series Domain Models What support for modeling domains? Sparx Systems Enterprise Architect supports a range of modeling languages, technologies and methods that can be used

More information

Automated Validation of T&E Instrumentation Systems

Automated Validation of T&E Instrumentation Systems Automated Validation of T&E Instrumentation Systems Austin Whittington Benefiting government, industry and the public through innovative science and technology 1/30/2017 Copyright 2017 SwRI. All rights

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

Prototyping. Oct 3, 2016

Prototyping. Oct 3, 2016 Prototyping Oct 3, 2016 Announcements A1 marks available A2 due Wednesday Questions? What is a prototype? In interaction design a prototype can be (among other things): a series of screen sketches a storyboard,

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford)

CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) CS3205 HCI IN SOFTWARE DEVELOPMENT PROTOTYPING STRATEGIES Tom Horton * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) WHAT WILL WE BE TALKING ABOUT? Specific Prototyping Strategies! Low-Fidelity

More information

Lesson 7 Software Fundamentals

Lesson 7 Software Fundamentals Software Fundamentals Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition 1 Objectives Identify the fundamental concepts of wordprocessing software. Identify the fundamental concepts

More information

Foundational Design Patterns for Moving Beyond One Loop

Foundational Design Patterns for Moving Beyond One Loop Foundational Design Patterns for Moving Beyond One Loop Raja Pillai Technical Consultant Agenda Why move beyond one loop? What is a design pattern? Why learn communication mechanisms? Functional global

More information

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01.

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01. COURSE SYLLABUS ANDROID Industrial Training (4 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01

More information

Real Time Cloth Simulation

Real Time Cloth Simulation Real Time Cloth Simulation Sebastian Olsson (81-04-20) Mattias Stridsman (78-04-13) Linköpings Universitet Norrköping 2004-05-31 Table of contents Introduction...3 Spring Systems...3 Theory...3 Implementation...4

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

A Guide to Using WordPress + RAVEN5. v 1.4 Updated May 25, 2018

A Guide to Using WordPress + RAVEN5. v 1.4 Updated May 25, 2018 + v 1.4 Updated May 25, 2018 Table of Contents 1. Introduction...................................................................................3 2. Logging In.....................................................................................4

More information

CS123. Programming Your Personal Robot. Part 2: Event Driven Behavior

CS123. Programming Your Personal Robot. Part 2: Event Driven Behavior CS123 Programming Your Personal Robot Part 2: Event Driven Behavior You Survived! Smooth Sailing Topics 2.1 Event Driven Programming Programming Paradigms and Paradigm Shift Event Driven Programming Concept

More information

IJSRD - International Journal for Scientific Research & Development Vol. 3, Issue 02, 2015 ISSN (online):

IJSRD - International Journal for Scientific Research & Development Vol. 3, Issue 02, 2015 ISSN (online): IJSRD - International Journal for Scientific Research & Development Vol. 3, Issue 02, 2015 ISSN (online): 2321-0613 Intelligent Script Editor: An Interactive Parallel Programming Tool Susmita Abhang 1

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming

More information

Circuit Schematic Software Mac Os X 10.6 Snow Leopard Upgrade

Circuit Schematic Software Mac Os X 10.6 Snow Leopard Upgrade Circuit Schematic Software Mac Os X 10.6 Snow Leopard Upgrade Description. xdiagram application could help you make nice diagram graphic documents or UML documents quickly by keeping lines connected to

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

Spring 2011 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

Fall UI Design and Implementation 1

Fall UI Design and Implementation 1 Fall 2005 6.831 UI Design and Implementation 1 1 Suggested by Daniel Swanton Fall 2005 6.831 UI Design and Implementation 2 2 Suggested by Robert Kwok Fall 2005 6.831 UI Design and Implementation 3 3 Input

More information

May 22, 2013 Ronald Reagan Building and International Trade Center Washington, DC USA

May 22, 2013 Ronald Reagan Building and International Trade Center Washington, DC USA May 22, 2013 Ronald Reagan Building and International Trade Center Washington, DC USA 1 Introduction to MapViewer & Tools for Your Business Apps and Mobile Devices Albert Godfrind Oracle Spatial Architect

More information

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad Principles of Software Construction: Objects, Design and Concurrency Introduction to Design 15-214 toad Christian Kästner Charlie Garrod School of Computer Science 2012-14 C Kästner, C Garrod, J Aldrich,

More information

Oxygen Xsd From Xml File Visual Studio Generate Sample

Oxygen Xsd From Xml File Visual Studio Generate Sample Oxygen Xsd From Xml File Visual Studio Generate Sample This topic describes how to create a new XML Schema (XSD) file and then add content In Visual Studio, open the File menu and select New and then File.

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information