GE Software, San Ramon February 19, 2016 How Conceptual Models Improve Software Design

Hugh Dubberly Dubberly Design Office presentations.dubberly.com/GE_Conceptual_Models.pdf “Design has also evolved from the design of objects both physical and immaterial, to the design of systems, to the design of complex adaptive systems. This evolution is shifting the role of designers; they are no longer the central planner, but rather participants within the systems they exist in. This is a fundamental shift— one that requires a new set of values.”

— Joi Ito Director, MIT Media Lab “Design and Science,” January 11, 2016

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 2 Traditionally, “products” has meant not just hard goods

Product, Service, and Ecologies Diagramsbut also information and services.

Product Service Product Service

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 3

Product Service Ecologies In the last 20–30 years, “services” have become a way

to deliver “products.”Product, Service, and Ecologies Diagrams

Product Service Product Service

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 4

Product Service Ecologies Product, Service, and Ecologies Diagrams

Product Service Product Service More recently, services are connecting to integrated systems, forming product service ecologies.

Product Service Ecologies

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 5 “. . . networks of products, services, technology, people, and collective and collaborative interaction are generating value for the populations they serve.”

— Jodi Forlizzi, CMU

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 6 iPod is not a stand-alone product; it’s an integrated system— a product-service ecology.

Hardware Software Networked Service Marketplace

MENU

Music Listener iPod iTunes iTunes Store Record Companies Artists

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 7 Amazon’s Kindle-Reader-Wispernet-Store system is another product-services ecology.

Hardware Software Networked Service Marketplace

Reader Kindle Reader Amazon Store Publishers Authors

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 8 In fact, the Kindle ecology is even more complex.

Internet Kindle integrates with Facebook and Converted files can be sent to the Kindle via The Kindle store provides a backup Users can e-mail files for conversion Twitter. Users can share highlighted Wi-Fi or 3G connection, or e-mailed back to library of all purchases titles. to Amazon—at an address reserved book passages. A link is posted on the user who loads them onto the Kindle via for their Kindle. (Amazon charges Facebook and Twitter that connects to a USB cable. $ 0.10 per file) page on Amazon with the highlighted passages.

Amazon Digital Kindle Text Platform (DTP) 2 Amazon.com / Twitter / Facebook document Kindle Store converter

To publish to the Kindle A Kindle is linked to a user’s Amazon Wi-Fi or 3G wireless Store authors upload a file, 1 account; the device’s settings are internet connection enter metadata about it, configured at Amazon.com. Users buy (included free, subsidized and set a price. DTP allows books and subscriptions to magazines by sharing revenue with AT&T) publishers to edit books, and newspapers from the Kindle store. track sales, and change These are downloaded to the device via prices. Wi-Fi or 3G connection. Audio books and music files must be downloaded to the PC and transferred to the Kindle.

eReaders Proprietary AZW format

Publishers / Authors User (reader) Second Kindle Friends Kindle PC / Mac iPad iPhone Android BlackBerry User Kindle eReader Kindle for Kindle for Kindle for Kindle for Kindle for Software PC / Mac iPad iPhone Android BlackBerry Users can download Kindle titles 6 times. To share Built in flash with others, the Kindle account must be shared. Kindle Content Types memory (4GB) A user must de-link his Kindle, allow a second user to link to his account, and download a file. E-books

E-documents

Other document types (PDFs, etc) The Kindle mounts as a mass Audio books storage device when connected Whispersync to a computer via USB cable. USB 1 2 Music files The user can load new files, Whispersync syncs reading Kindle eReader software is Authors create books from Users employ the or remove/backup files on progress, bookmarks, and available for the PC, Mac, iPhone, .txt, .doc, .pdf, and .html files Kindle document converter Newspapers the device. highlighting across Kindle iPad, Android, and BlackBerry. as well as from .mobi files to convert text in .doc, hardware device and other Kindle books can be purchased (a common e-book format). and .html format and Magazines mobile devices. and read on any of these devices. images in .jpeg, Users must have Kindle software .gif, .png, and .bmp. Blogs to purchase Kindle titles. into .mobi format.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 9 “I think of [the Kindle] as a service. Part of [it] is of course the hardware, but really, it’s the software, the content, it’s the seamless integration of those things.”

— Jeff Bezos, founder of Amazon

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 10 Michael Porter writes about systems of systems

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 11 “A ‘platform’ is a system that can be programmed and therefore customized by outside developers—users—and in that way, adapted to countless needs and niches that the platform’s original developers could not have possibly contemplated, much less had time to accommodate.”

—Marc Andreessen, co-founder of Netscape and Andreessen-Horowitz

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 12 Remember Blockbuster, Kodak, Nokia, RIM? 46 of the Fortune 100 from 1995 didn’t make the 2015 list. Many no longer exist.

As organizations grow older and larger, 1 General Motors* 26 American Intl. Group (AIG)* 51 Fleming 76 Ameritech many of them become siloed; 2 Ford Motor 27 MetLife 52 Johnson & Johnson 77 Home Depot communicating becomes harder; 3 Exxon Mobil 28 Motorola 53 Atlantic Richfield 78 McKesson getting things done takes longer 4 Wal-Mart Stores 29 Boeing 54 Safeway 79 ConocoPhillips and requires more effort; 5 AT&T 30 Target 55 American Express 80 Delta Air Lines progress slows; effectiveness decreases. 6 General Electric 31 United Technologies 56 Sara Lee 81 Goodyear Tire & Rubber 7 Intl. Business Machines (IBM) 32 J.. Penney 57 Nabisco Group Holdings 82 May Dept. Stores And what makes things worse: 8 Mobil 33 Dow Chemical 58 3M 83 IBP this aging process now takes place 9 Sears Roebuck* 34 GTE 59 Merck 84 New York Life Insurance in the context of increasingly rapid 10 Altria Group 35 United Parcel Service 60 International Paper 85 Anheuser-Busch socio-technological change. 11 Chrysler 36 Fannie Mae 61 Caterpillar 86 Bristol-Myers Squibb 12 State Farm Insurance Cos 37 Citigroup 62 UAL* 87 J.P. Morgan Key 13 Prudential Ins. Co. of America 38 Cigna 63 Verizon Communications 88 Albertson’s Surviving Surviving but reorganized 14 DuPont 39 American Stores 64 Loews 89 SBC Communications Exiting 15 Kmart Holding 40 Merrill Lynch 65 Digital Equipment 90 Intel 16 Texaco 41 Xerox 66 MCI Communications 91 MediaOne Group, Inc. 17 Citicorp 42 Aetna 67 Nynex 92 Archer Daniels Midland 18 ChevronTexaco 43 Eastman Kodak 68 Tenneco Automotive 93 CVS 19 Procter & Gamble 44 BellSouth 69 McDonnell Douglas 94 Rockwell Automation 20 PepsiCo 45 Marathon Oil 70 Lockheed Martin 95 Chase Manhattan Corp. 21 Amoco 46 BankAmerica Corp. 71 Bank of America Corp.* 96 Nationwide 22 Hewlett-Packard 47 Costco Wholesale 72 Honeywell Intl. 97 Columbia/HCA Healthcare 23 ITT Industries 48 Coca-Cola 73 Georgia-Pacific 98 Winn-Dixie Stores 24 ConAgra Foods 49 AMR 74 Chase Manhattan Corp.* 99 Sysco 25 Kroger 50 Supervalu 75 Sprint 100 Compaq Computer

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 13 1995 2015 General Motors 1 1 Walmart

Dubberly DesignOffice · HowConceptual Models Improve Software Design ·February 19, 2016 Ford Motor 2 2 Exxon Mobil on whichotherscancreatevalue. Increasingly, valuecomesfromcreating platforms, Exxon Mobil 3 3 Chevron Wal-Mart Stores 4 4 Berkshire Hathaway AT&T 5 5 Apple built platforms. around their businesses 1995-2015 between 100 joined companies that Fortune the 46 the 9 of General Electric 6 6 General Motors Intl. Business Machines (IBM) 7 7 Phillips 66 At least 4 of the companies that survived are platform-based. are survived companies the that 4of least At Mobil 8 8 General Electric Sears Roebuck 9 9 Ford Motor Altria Group 10 10 CVS Health Chrysler 11 11 McKesson State Farm Insurance Cos 12 12 AT&T Prudential Ins. Co. of America 13 13 Valero Energy DuPont 14 14 UnitedHealth Group Kmart Holding 15 15 Verizon Texaco 16 16 AmerisourceBergen Citicorp 17 17 Fannie Mae ChevronTexaco 18 18 Costco Procter & Gamble 19 19 HP PepsiCo 20 20 Kroger Amoco 21 21 JP Morgan Chase Hewlett-Packard 22 22 Express Scripts Holding ITT Industries 23 23 Bank of America Corp. ConAgra Foods 24 24 IBM Kroger 25 25 Marathon Petroleum American Intl. Group (AIG) 26 26 Cardinal Health MetLife 27 27 Boeing Only 3 of the companies that dropped out were platform-based. were out dropped companies the that Only 3of Motorola 28 28 Citigroup Boeing 29 29 Amazon.com Target 30 30 Wells Fargo United Technologies 31 31 Microsoft J.C. Penney 32 32 Procter & Gamble Dow Chemical 33 33 Home Depot GTE 34 34 Archer Daniels Midland United Parcel Service 35 35 Walgreens Fannie Mae 36 36 Target Citigroup 37 37 Johnson & Johnson Cigna 38 38 Anthem American Stores 39 39 MetLife Merrill Lynch 40 40 Xerox 41 41 State Farm Insurance Aetna 42 42 Freddie Mac Eastman Kodak 43 43 Comcast BellSouth 44 44 PepsiCo Marathon Oil 45 45 United Technologies BankAmerica Corp. 46 46 AIG Costco Wholesale 47 47 UPS Coca-Cola 48 48 Dow Chemical AMR 49 49 Aetna Supervalu 50 50 Lowe’s Fleming 51 51 ConocoPhillips Johnson & Johnson 52 52 Intel Atlantic Richfield 53 53 Energy Transfer Equity Safeway 54 54 Caterpillar American Express 55 55 Prudential Financial Sara Lee 56 56 Pfizer Nabisco Group Holdings 57 57 Disney 3M 58 58 Humana Merck 59 59 Enterprise Products Partners International Paper 60 60 Cisco Systems Caterpillar 61 61 Sysco UAL 62 62 Ingram Micro Verizon Communications 63 63 Coca-Cola Loews 64 64 Lockheed Martin Digital Equipment 65 65 FedEx MCI Communications 66 66 Johnson Controls Nynex 67 67 Plains GP Holdings Tenneco Automotive 68 68 World Fuel Services McDonnell Douglas 69 69 CHS Lockheed Martin 70 70 American Airlines Group Bank of America Corp. 71 71 Merck Honeywell Intl. 72 72 Best Buy Georgia-Pacific 73 73 Delta Air Lines Chase Manhattan Corp. 74 74 Honeywell International Sprint 75 75 HCA Holdings Ameritech 76 76 Goldman Sachs Group Home Depot 77 77 Tesoro McKesson 78 78 Liberty Mutual Insurance Group ConocoPhillips 79 79 United Continental Holdings Delta Air Lines 80 80 New York Life Insurance Goodyear Tire & Rubber 81 81 Oracle May Dept. Stores 82 82 Morgan Stanley IBP 83 83 Tyson Foods New York Life Insurance 84 84 Safeway Anheuser-Busch 85 85 Nationwide Bristol-Myers Squibb 86 86 Deere J.P. Morgan 87 87 DuPont Albertson’s 88 88 American Express SBC Communications 89 89 Allstate

Intel 90 90 Cigna Platforms Falling / Exiting Rising / Entering Key MediaOne Group, Inc. 91 91 Mondelez International Archer Daniels Midland 92 92 TIAA-CREF CVS 93 93 INTL FCStone Rockwell Automation 94 94 Mass. Mutual Life Insurance Chase Manhattan Corp. 95 95 DirecTV Nationwide 96 96 Halliburton

14 Columbia/HCA Healthcare 97 97 Twenty-First Century Fox Winn-Dixie Stores 98 98 3M Sysco 99 99 Sears Holdings Compaq Computer 100 100 General Dynamics Designing products was never easy.

Service systems are more challenging.

Platforms and product service ecologies— even more so.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 15 Rare is the system that can be seen all at once.

Many systems are hidden in part. Often systems stretch across time and space. Connections between parts are learned slowly— through experience with operation of the whole. In addition, systems evolve.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 16 In order to work with systems, people need to understand them— and to understand systems requires models.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 17 A model is an idea about how part of the world works; representing the idea aids its refinement.

Idea Subject

Representation

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 18 Models are a form of ‘boundary object’— artifacts that bridge the gap between disciplines.

Idea Subject Idea

Representation

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 19 Models tell stories, and stories build models in our minds.

are explained by

models and stories are tools models and models stories for discussion stories are tools for thinking

create

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 20 “Models are our voodoo dolls. We do most of our thinking in models.”

— Alan Kay

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 21 Example: The Pythagorean Theorem

2 2 2 a +b =c a2 +b2 =c2

c 2 2 2 c a a +ba =c b b a c b

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 22 Example: Phases of a cold.

SD GAC HAC GOAC

— E-Lab, Rick Robinson

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 23 Example: Search concept map

Physical World Data/Document Creation Process that exist in the

Persons, Places Things, Ideas

describe Descriptions

are represented by Data/Document Storage System

represent

make up organized into provide structure to Data Objects Feeds Tables are gathe could be co red by organized by ntained in a are an Data/Document provide News, multiple are Objects residing in databases that Products, eate views of indexed by are not referenceable by a simple Related Links, ed to cr data in a Trademarks, A repository of data that could be stored in RDF format. URI such as generate is us company names, addresses, phone Recirculation, Retrieval System Can be updated independently of the index that references it. numbers, names of people, generate Stocks personal profiles, horoscopes, 3rd Parties Metadata Entries in the graph can reference each other. For instance, credit card numbers, product can ac a request for a stock quote of an entry could point to the symbol, the symbol could point to the company name and the names, prices, maps, event Alexa data that contains listings, news clips, weather are t as current quote, the current quote could point to the quote history, Bigfoot information about and the quote history could point to a quote histogram. Groups of WWW At Hand its format

describe Pages in context

describe make up are organized into provide structure to WWW Site could be contained in a Attributes WWW Sites Submissions Hierarchical Directory Graph Taxonomies Databases describe later organized are a describe are gathered by Usenet Yahoo! are ind tain Yahoo! n Open Directory Open Directory Infoseek exe by e and main Dewey Decimal d by generate creat Library of Congress can be WWW Users Editors can assign quality ratings A collection of technologies that attempt Amazon ranks related books and CDs by keeping track such as editor’s choice to rank the relative value of a set of results. of the purchasing habits of groups (group profiles). or cool site of the day are are Google ranks results during the indexing process Grapevine allows users to actively rank results paid by examining the relationships created by the hyperlinks (a customization process) but then attempts to guess volunteer in the documents. More popular sites score higher. what the user will want based on what it has learned in a (a personalization process). Clever does the ranking during post processing. It uses represent make up e contained could b an iterative process that looks at the popularity of a Direct Hit analyzes the time spent by users on a given site (much like Google) but does so in regard to the result. It also keeps track of whether or not a user returns make up make up are organized into provide structure to WWW Objects WWW Pages Page Sorted Lists WWW Document Relevance keywords used in the search. to the results page after viewing a result. If the user Databases are an Databases is re returns, the result receives a lower score. are gathered by are indexed by Ranking can be done by later organized fer of Objects referenceable Groups of WWW alphabetically Inktomi ence by relevance Google by a URI such as Objects in context eate d by an html, text, gif, jpeg, png, by modification date Alta Vista avi, mpeg, real, quicktime, by Lycos are used to cr used by wav, pdf, rss, xml, xul files generate from Organizing ata Crawlers Algorithms used by are Principle Any processes done on the data

such as such act as returned from the index. Could involve

ata metad such as such sorting, ordering, or compiling the data

... gather all of the text on a given text analysis such as such retrieved from the index. web page, then continue gathering text link analysis

on all of the pages linked to the given page, meta data analysis can pair d such as such then follow the links on those pages, and so on. data for collect are “sensed” by send data to send data to create an sends data to a Representations Sensors Analyzers Indexers Index Post Processors generates generate s

Stored proxies of ... are the input devices Creates a lookup table from all of the If a graph is in place, the index functions physical world objects of the data/document data fed into it. If a graph is not in use as a lightweight lookup table. and ideas storage system all of the data fed into it is stored as sends data to an If no graph is used, the index contains entries in the lookup table. all of the data in addition to the lookup table, I-search and PLS are existing technologies. in a list format. Results Data

such such as as

Metadata and Raw Data Data

such as could be sent to a such as XML, XUL, or RDF HTML streams sends data to an Data is self-describing Form and content and separate from the are merged. form it will eventually take. Interpreter

Turns the user’s query Scraper into something readable

by the index. sends data to an Could handle: Scrapes unwanted boolean operators form information spell checking from the data word stemming stream. Classifies case folding remaining data.

internationalization ive e thesauri eceive ve phrase searching d r ecei related terms ly rec coul ly r

direct Aggregator

could direct could

rom an Combines or interleaves y f data from multiple m an ata fro ectl sources. eive d dir could rec ata

ve d Articulator make ecei s u d r se of coul an

ly from sends data to a ect or ‘Layout Engine’ dir Combines form and content. ve data Templates could recei

the organize the form of Provides the architecture, wn by or “form” of the data for the creation of the results page. The templates can exist in could be redra multiple, localized formats. sent to an

ence uence fluence could be the same as the can infl can in can influ Input Device Output Device

d be redrawn by an ren coul ders Keywords Views can co contr Any device that can displays ntrib ol the dis receive data and can be ute to play or the s der of render it for the user. pecif Could be by relevance, stor ication of creation date, modification ed in ify date, alphabetical, can spec by source, by media type, involve progressive disclosure, Scope is reduced by specifying pagination, or custom look and

additional restrictions upfront. Active Searchers feel (themes) a n

Best for data retrieval. can sp an in a

ta n an ntai

ecify tain tai

con

ld co ld con d con

l

contains an

uld

cou could co cou

can be stored in Options Customization Results Pages Settings can c ontribute to the specific such as keyverbs, ation of options that are Any UI page or widget that be made using a displays the results data create could boolean operators, stored either locally data type, media type, or on a server ned in ontai could specify language or domain e c could b make of a in order to get People Queries Source Answers

could be of ... can be described by their goals, age, gender, income, ation of e the specification geographic location, the specific that can improv ata that can improve education, hardware and contains d contain data software, connection speed, Behavioral Personalization

member status require History can be stored in Profiles can be col

lected a

click paths, behaviors and sho

uld uld

session tracking, states that are stored nd stored in prov

ide t ide

he r he

decision tracking either locally or equir

y on to ed

rel on a server

shou

ld em ld Scope is reduced by reducing powe

Passive Searchers large collections of Group Profiles choices from a found set, in a r rel profiles that can be y on

sequence of ever smaller sets. analyzed to produce

Best for document retrieval. trend information should

hel

pecification of p p

tored in e the s eopl

rov att e

can be s th ain that can imp eir contain data Data/Document browser type and version, Environmental State

exist in the involve is made up of language setting, IP address, current page, monitor size, color settings, javascript Retrieval Process capability

Information to enable

Actions toward Understanding Internet Search

Goals Concepts, Systems and Processes

Could be organized as 8 August 1999 cultural responses to human needs (Malinowski) roughly, Food Kinship Or more simply, User The suggested starting point for reading is “People”. Shelter Work, Play, Learn I would like to acknowledge Hugh Dubberly for his many suggestions, Protection and Ken Hickman and Paul Pangaro for their contributions. Activities and Training Food, Clothing, Designed by Matt Leacock Hygiene Shelter, Love Context Search Concept Map, version 1.2

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 24 Example: Java concept map

Java™ Technology Concept Map

SM 2 Sun works with companies become members of the JCP by signing JSPA a which is has a

What is Java Technology? are represented on the supports the development of ... Java 0 within the context of the Java Community Process, Java Community Process The Java Specification Participation Java object model hti n is organized by that is an defines This diagram is a model of Java™ technology. The diagram begins with members join the JCP by signing the provides ... documentation 42 may function as ... developers 23 Agreement is a one-year renewable is defined by the ... Java Language Specification 43 logo owns the ... Java trademark 1 support the development of ... Java 0 agreement that allows signatories to is used to write ... programs 24 make(s) ... SDKs 29 make ... SDKs 29 Class libraries are An application programming interface is the Particular to Java, Abstract classes permit child explains Java technology by placing it in the context of related Java forums often discuss Java in Java developer become members of the JCP. is used to write ... class libraries 10 organized collections written or understood specification of how a interfaces are source code classes to inherit a defined method makes versions of a ... JVM 18 make versions of a ... JVM 18 Companies include Alternatively, developers can sign the syntax and 4 of prebuilt classes piece of software interacts with the outside files that define a set of or to create groups of related communities provides certify Java applications using IBM, Motorola, more limited Individual Expert The Java language has roots in C, Objective C, and functions used to world. It specifies what input the application functions (methods) that classes for polymorphic behavior. concepts and examples, and by defining its major components is represented on Nokia, Oracle, Participation Agreement (IEPA). SmallTalk, and LISP. keywords create other classes. or application component accepts, how the are required by a class. hosts Novell, Netscape, Class libraries can be software will behave, and what output it will Interfaces name methods Hewlett-Packard, 9 and the connections between them. It shows how developers from members includes alternate object-oriented programming language is based on the part of the Java provide. All computer software relies on a and set an expectation for specification leads 5 expert groups consist of members of Java Community overseen by the Executive 8 Apple, and BEA. standard – meaning variety of to achieve tasks such as each method's behavior,

are led by draft implementations As opposed to a purely procedural they have been writing a file or displaying text. APIs often but do not implement the may be an use Java technology to create programs that benefit people and do the work of the SM There are two superclass (parent class) abstract class (spec leads) Process (JCP) develops Committee comments on Alternate implementations are written programming language. ratified by the Java depend on other APIs. methods. Interfaces allow has champion executive Community Process – a piece of code to be committees: to the same specification and pass the everywhere, and explains how computers and networks relate TCK, but can be licensed differently or created by 10 class libraries implement 13 APIs written in such a way that define J2EE/J2SE and individual developers contain multiple are ratified by... the JCP 2 the code can work with J2ME. and may have enhanced features principles provide benefits and advantages subclass (child class) inherits methods and properties from a

may rely on parent's may define new may override existing beyond the reference for their own or their any type of class that

to Java technology. such as company's use. supports the interface. may also be a 3 Java Specification if accepted becomes a community may become a 6 public may become a new Java specification is instantiated in a Reference Implementation Such as the object object-oriented programming language 9 0 definition of ... Java is added to the model, inheritance, 14 interfaces explicit error handling 22 Request (JSR) A proposal to develop draft draft A Java specification describes & Technology Compatibility Kit (TCK) modularity, garbage collection 21 is submitted to some aspect of Java technology, abstraction, hierarchy, The diagram is intended to help developers who are familiar a new specification is added to the reduced development time Runtime instances of classes. security model 20 or significant revision including language, virtual A Reference Implementation is Java 0 implementation 11 machines, platform editions, a working example of the JSR. definition of ... packages 15 architecturally independent applications 19 to an existing spec. hiding, information contain multiple may multiple may contain implement objects may implement may be implemented in ability to write higher-quality code through used can be with one part of the Java platform understand other parts. It Java virtual machine 18 profiles, and APIs. Other companies will produce hiding, encapsulation, are runtime instances of ... classes 12 their own implementations. and polymorphism. more maintainable code have The TCK is a suite of tests, methods and fields relates unfamiliar technologies to ones with which developers such as are created by features and benefits tools, and documentation that ability to call non-Java functions Program 7 maintenance provides a standard way of serialization may already be familiar. The diagram also provides an overview administers the Java Native Interface (JNI) provides a method for calling native logo chairs the may request major revisions via testing an implementation for Scope limits access to methods and properties. Levels include: Management Office lead compliance with a Java functions such as operating system or legacy library functions. In runtime, refers to the process of exists within may revise Classes are source 12 classes implement turning an object into a data stream for scope • public: can be called or manipulated freely

specification. define for developers who are new to Java technology and an has a is which is distinguished by code files that running in RAM are purposes of transmission or storage. • protected: can be called or manipulated by a class in the same package describe a unit of • private: can be called or manipulated only by the same class. 0 is a 1 18 Architecturally dependent machines that are available may be categorized as introduction for non-programmers who want to improve their trademark for nearly every contemporary operating system. programming. A class are constrained by Java virtual machine relates a set of data TM (fields) and functions are distinguished by types field types can be primitives or object references ability to converse with developers. For more information, is defined by the Java virtual machine specification (methods) that use field or class types can be... classes 12 refer to 15 ... objects (JVM ) visit the web site at http://java.sun.com. the data. Primitives

have have generally enable enables 19 architecturally independent applications Inner classes reside inside basic math or enable inner classes methods constructors fields define a location to store data comparison constrained by are constrained by are manipulate

another class, allowing consist of may are operations. Development process One application can run in multiple environments for better organization. Methods are defineinvo r begins with portability Fields are Concept Maps without being rewritten or recompiled. Should not be confused ked detailed sometimes with subclasses. instructions that equi by 16 development environments may include 17 tools such as referred to as may consist of or on ... objects 15 The diagram takes the form of a concept map – a web of linked cause a running red properties. are used to write, test, and debug enforces a 20 security model controls access to critical resources object to take ... interfaces 14 Including memory and hard drive. action or terms showing both overall structure and details. By showing manipulate data. Java developers often use specific development environments everything – the forest and the trees – in a single view, concept called Integrated Development Environments, or IDEs. text editor compiler virtual machine debugger Application visual programming tools oplssuc oeit is stored in compiles source code into byte code into translates outline lay out is used to create problems with helps identify 15 allows adjustment of ... objects are used to build the Just-In-Time compilation programming maps help people visualize mental models and clarify thoughts. ed by A software utility Significantly improves virtual machine interface improv Notes that developers include to specification. that turns be performance by translating groups of statements declarations comments can be

to create and run explain source code to human-readable can instructions from byte code to machine Class structures improves can code rather than one instruction at a In running In running themselves and others. API spec class text files into performance be im behavior of ... APIs 13 defines the In concept maps, verbs connect nouns to form propositions. is a name for a ... programming language are basic source machine- time. programs, programs, code that structures frameworks proved statements declarations define TM the generation of contribute to the generation of contribute to is also a name for ... SDKs and JREs of ... classes 12 are examples friendly byte provides a prescribe actions a variable's Javadoc Javadoc browsable Javadefines a set of ... APIs 13 code. by serves as the Examples and details accompany the terms. More important framework Basic source code that dynamic compilation or a sequence of existence and is implemented as a set of ... platforms 27 for the classes, describes the graphical actions. determine scope. comments are processed by the tool to create documentation programs 24 user interface. Goes beyond Just-in-Time compilation by can be used to write ... describes the Comments specifically formatted to terms receive visual emphasis; less important terms and Does not include examining the code as it runs and class hierarchy, source code byte code machine instructions focusing optimization efforts on the most be processed by the Javadoc tool. constitute a defines Downloads and documentation are and provides the implementation details. 15 as running ... objects may be thought of examples are in gray. Purple terms and purple lines indicate a available at http://java.sun.com. Is human Is platform Are processor critical pieces of code as it executes. names of the Dynamic compilation is enacted by the class methods readable. independent. It dependent. They can is edited in the Java HotSpotTM virtual machine. and properties. source code framework almost never can be read by the implements 21 process. Terms followed by a number link to terms preceded Selected Java products have been is the foundation for be read by the processor directly. garbage collection localized into many languages. This Does not include The combination of the class classes 12 the completed stored in are Watching for data in memory that is no longer needed and freeing the memory for reuse. implementation processor by the same number. localization is one of the key factors structures and the user interface directly. fragment or Other programming languages require programmers to free memory explicitly when a for adoption of Java technology details (method framework into a skeleton of the piece of data is no longer needed, which can increase the development effort. worldwide. definitions). application's overall source code. Does application contributes to when debugged, not include implementation details. may find a testing Are human-readable. text files binary files implements 22 Usually have the are read by a run on a explicit error handling suffixes .java or .jav. The virtual machine may encounter a problem, or exception, while a program is running. The software development process is iterative, with several Are computer- readable. The Java language requires that pieces of code which are likely to encounter a particular rounds of designing, writing, compiling, running, and testing error offer a mechanism for handling the exception at runtime. When an error is before software is deployed. Binary files is trapped by a usually have bug encountered, the virtual machine executes the code designed to respond to the error. the suffixes .jar, .jcm, .class, .ear, or .war. 25 23 learn and use are used by or support ... services 26 such as ... hardware 31 people engage in may download and install ... JREs 30 often own ... hardware 31 some of whom are ... developers 23 activities are facilitated by Including getting information, communicating, such as ... applications 28 Java technology is especially collaborating, playing, working, creating, and buying Developersmay submit or comment on a ... Java Specification Request 3 enable ... services 26 devices and selling. useful in devices that are who are members of the Java Community Process serve on ... expert groups 5 run on and connect ... devices 25 connected by a network. form ... Java developer communities 4 and the comment on a ... public draft 6 24 useful f 26 participate in the ... Java Community Process 2 services may request revisions from the ... maintenance lead 7 are instantiated in connects ... devices 25 Including news services, instant messaging services, who are members of the JCP elect the ... executive committee 8 supports e-mail services, communication software, collaboration often use ... development environments 16 supports ... web services 33 software, discussion forums, games, the world wide web, participate in the ... development process productivity software, image-creation software, and marketplace services.

that make software is developed with ... platforms Including servers, web-based solutions, stand-alone programs internet applications, and clients. JavaTM2 Platform:

42 end-to-end solutions for enterprise servers and applications for desktop servers and applications for consumer and embedded servers and applications Documentation is available via http://java.sun.com. such as

TM TM TM Java 2 Platform Micro Edition is intended to run on devices TM TM 27 platforms 32 J2EE depends upon 35 J2SE is based on subsets of 39 J2ME Java Card Java TV Java Embedded

rvd uligbok o run on provide building blocks for with limited computing power, such as cell phones or PDAs. build and run is used to build and run is used to sue obidadrn r ul ih are built using are built with is used to build and run is used to build and run is used to build and run TM Java 2 Platform Enterprise Edition is Java 2 Platform Standard Edition is intended to run J2ME has reduced processor and memory requirements. It is Server (JES) used to build secure, scalable, on desktops, laptops, and workstations. J2SE also based on subsets of J2SE with additional components for build and run is used to distributable server-based includes the core language packages and classes market segments such as hand-held devices. applications for large enterprises. used by J2EE and J2ME. J2EE J2SE J2ME other

documentationsuch as documents ... specifies and documentationsuch as documents ... specifies and documentationsuch as documents ... specifies and documentationsuch as Includes Web 28 applications enterprise applications such as web-based and client/server such as 33 web services may be enabled by applications embedded desktop applications specialized PDA cell phone applications for use interactive television embedded are are composed of have are enabled by Services, Getting applications applications A standardized way in a web page run inside a ... web browser 34 embedded applications applications applications with Smart Cards applications applications Started, Java XML, are built with are may be built with may be built with may be built with are are built with the of integrating and are built with Internationalization, shaping business logic, Such as ATMs and Such as user-controlled camera Such as home services and J2EE 32 J2SE 35 J2ME Sound, and Java 2D. data, and processes point-of-sale services. views and video on demand. network-aware automobiles. across a network. 39

runnable components are configured by business logic is described by server components have interfaces provided by client components always have user interfaces provides a 34 web browser 36 J2SE applets Extend the applet class, which 38 J2SE applications Implement a main method. A class that 40 J2ME J2ME 41 MIDlets run in a

are built using

are built using may run inside a are built using r opsdo are composed of are composed of is housed in are configured by a are run in may utilize the are can call other can be ... J2SE applets 36 provides developers with a basic run inside an defines an application must declare a Java Card applets Java TV Xlets are built using a Components that can can be ... J2SE applications 38 framework for rapid development of main method, which the Java virtual applets applications J2EE Platform J2SE Platform J2ME Platform tutorials run on their own. run in a are built using are built using can be ... J2ME applets 40 a limited application. This includes a machine uses as the starting point for Specification Specification Specification the application. The main method gets MIDlets 41 basic user interface framework and 43 can be ... event model. executed when the application starts. Specifies that the entire Includes the JLS and Specifies which parts Java Language J2SE JLS is applicable to documentation of the JLS are Specification (JLS) J2EE, includes additional describing what the applicable to J2ME, specifications for J2EE, platform packages are what features the JVM Provides a complete components Enterprise never directly build servlets may directly build JavaServer Java TV APIs specification for the

Java Embedded specifies what features and what features the must support, and are built using run inside a

always directly build a by be interpreted may Java Card API defines a is contained in the run on TM TM TM the JVM must support, JVM must support. what the platform syntax and semantics of Cannot function on their JavaBeans (EJB) Servlets respond to Pages (JSP ) embed programming code in a markup language Includes specific Depend on the Java Server the Java programming

TM run inside an are built using

run inside a are built using and what the platform packages are.

own, but are used by other an URL request. deployment JavaBeans packages: Media Framework packages are. language. components or runnable Enterprise JavaBeans Servlets commonly JSPs define a page Can be HTML, are built with java.lang (JMF), which is framework components. define independent pieces generate HTML, XML, element, which can be WML, XHTML, Discrete units of software runs on a descriptor javacard.framework optional to J2SE but Specifies packages: Mobile Information of business logic or or dynamic images. HTML, XML, or another or voice XML. functionality that conform to the javacard.security required for Java TV. Java BluePrints application behavior that They can call other markup language. JSPs JavaBeans API and are designed to be http Device Profile (MIDP) is one type of javacardx.crypto can call either servlets, servlets, JSPs, or execute as servlets. reusable components. The JavaBeans log Specification Guidelines, patterns, JSPs, or other EJBs. EJBs. They can call other Extensible Markup API makes it particularly easy for device access and code for end-to-end JSPs, servlets, or EJBs. Beans to be utilized by visual timers applications. Language (XML) programming tools. (In an framework Foundation Profile Provides a structured and architecture analogy, these would be Specification extensible mechanism for prebuilt walls, windows, or doors.) Profiles are packages required organizing and presenting data. for a particular vertical J2EE Connector Connected Limited read configurations from a from configurations read Many Java packages and classes market segment or set of Device Configuration containers connector EJB utilize XML to store and exchange Also referred to as required or core Specification

run inside a can be a related devices. Other profiles data. packages, platform packages are the (CLDC) Specification Manage architecture container web container heart of the Java programming include Foundation, Game, is created by a Personal Basis Profile, and PDA. can be created by transactions, is contained in language. The packages include Optional packages define Connected Device life-cycles, Provides a mechanism Simple Object myriad classes that define user a set of methods to and data for connecting to legacy interface components, a address specific Configuration (CDC) persistence. information systems. Access Protocol programming event model, text and functionality required for Specification math processing tools, code-level certain specialized (SOAP) security, objects for memory storage applications. Applications There are several PersonalJava Provides a way for applications of complex data, and methods for that require optional invoking remote applications, to packages must be shipped implementations of Specification to communicate. SOAP is Mobile Information typically transmitted via HTTP. name just a few. with the package code. Device Profile, Personal Profile including MIDP for Sometimes referred to as Specification J2EE platform include ... platform packages 37 37 platform packages are contained in the J2SE optional packages are optional are J2ME Personal such as Profiles such as MIDP Palm 1.0.3, MIDP depends on packages or depend on are contained in required or core packages. UDDI 1.04 for Monty, and for example are ... class libraries 10 packages Universal Description, for example packages optional Profile (PP) MIDP 2.0. Personal Basis Profile libraries depends on may become platform packages via the ... are contained in include Discovery, and Integration provides a way for businesses packages Specification to discover each other. Can also be used programmatically J2EE API Specification J2SE API Specification J2ME API Specification TM TM Connected Limited J2EE specific by applications to locate an Beans Swing Java regular Java 3D JavaHelp Device Configuration On handheld and application or service. A component kit that includes specific embedded devices, the Mobile Information packages expressions A set of classes A system that initial implementation provides a set of graphical Connected Device packages that are Device Profile (MIDP) user interface elements. A powerful set of text matching and used to write enables CDC such as configurations such as CLDC subsets of the J2SE of Java technology are contained in Examples include: Configuration includes a include a subset of a contains a Swing can be used to rapidly manipulation routines supported by three-dimensional developers to equivalent: Includes the necessary addresses the software API Documents ¡avax.activation graphics applets incorporate includes specific A set of javax.ejb build applications without many programming languages. java.io tools, emulators, and needs of networked Java technology implements or applications. online help in packages that are packages that runtime environment applications running javax.servlet writing original code to subsets of the J2SE java.lang Connected Limited support common interface Perl-compatible regular applications or define basic java.util to develop and test on consumer devices javax.transaction build applications is used to and services based on web sites. equivalent: services for a Device Configuration javax.xml elements. Supports a native javax.microedition.io applets for the Java such as set-top boxes 29 Software Development J2EE Software Development Kit contains Java Web Services Developer Pack java.lang range of Card platform. and smart phones. (CLDC) API Documents look and feel on many java.util common operating systems. J2SE Software devices. is used to build ... web services 33 JCP 2 Kits (SDKs) Includes the binary version of the J2EE Reference java.net TM Connected Device

include PersonalJava Implementation, plus the development tools and runs on a Provides a framework for developing and hosting J2EE applications Development Kit java.io Java Card may include ... tools 17 documentation needed to build a J2EE application. java.text Configuration (CDC) that run inside web containers. The pack includes the Java APIs for The J2SE SDK includes the source code, A JVM can be are used in ... development environments 16 java.security Development optimized API Documents include ... class libraries 10 XML included in the Java XML Pack, the JavaServer Pages Standard class libraries, development tools, and J2ME Tag Library (JSTL), the Ant build tool, the Java WSDP Registry Server, for residential are used to create ... programs 24 runtime environment required to build Kit and the Tomcat Java Servlet and JavaServer Pages container. Java applications and applets. Wireless gateway servers. Java Series Java Series Java Series Toolkit 30 Java runtime environments Java virtual is instantiated by J2EE Java-enabled Java Plug-In may be enabled by a Java-enabled may be enabled by an operating system-based Java virtual machine Java Card Java virtual Java virtual J2EE Tutorials J2SE Tutorials J2ME Tutorials runs on runs on (JREs) include a machine runs on application web server TM Some browsers may be Java-enabled browser or viewer Java virtual machine A JVM can be optimized for cell phones, The J2ME Wireless virtual machine machine machine runs on runs on runs on runs on runs on runs on runs inside a ... web browser run on include ... packages 11 Jini because they include the Java Plug-In. PDAs, and other similarly resourced devices. Toolkit includes the A JVM can be optimized Some JVMs are server Can host EJBs, Some JVMs are optimized for various types necessary tools, are used to run ... programs 24 runs on Jini network technology provides Some users may need to download for set-top boxes. optimized for servers. servlets and of laptops, workstations, and desktops. emulators, Hosts EJBs, JSPs. one infrastructure for delivering the Java Plug-In for their browsers. A JRE is the software environment in servlets and JSPs. Installing the Java Plug-In will also documentation, and Acknowledgements Trademarks which programs compiled for the Java services in a network and for creating spontaneous interaction install the J2SE runtime environment. examples to develop virtual machine can run. The runtime and simulate Java Prepared for the Sun Developer Web Services Group © 2002 Sun Microsystems, Inc. All rights reserved. between programs that use TM system comprises everything necessary to Windows SunOS HP-UX Palm OS, Windows CE, applications targeted Windows by Dubberly Design Office/Devine/Faris/Saddler. Sun, Sun Microsystems, the Sun logo, Java, the Java operating run programs written in the Java Solaris, Linux, Windows, those services. real-time operating proprietary HP-UX, AIX, FreeBSD Mac OS AIX Compaq Tru64 RTOS, Linux, Symbian OS, at cell phones, SolarisTM coffee cup logo, J2EE, J2SE, J2ME, Enterprise JavaBeans, systems programming language, including the run on Unix Alpha beOS proprietary systems pagers, PDAs, and systems Significant contributions from the following people EJB, JavaBeans, Java Card, Java Community Process,

run on systems (RTOS) run on run on Java virtual machine, which may be a Java other small devices. proprietary systems run on interpreter, and the platform packages. Linux RS6000 VMS run on made this map possible: Josh Bloch, Lisa Friendly, JCP, Javadoc, Java Embedded Server, JavaHelp, JavaServer Telematic networks Doug Kramer, Paul Pangaro, Robert Patten, Monica Pages, JSP, Java TV, Java 3D, Jini, JVM, PersonalJava,

JREs may be developed by Sun or by other 34 Irix FreeBSD TM connect computers with companies. Solaris NeXT telecommunications Pawlan, Carla Schroer, Leigh Shevchik, Alan Sommerer, Solaris, and SunOS are registered trademarks of Sun run on run on systems. Ken Tallman, and James Urquhart. Microsystems, Inc.

31 point-of-sale (POS) Java Card, subscriber network-aware Thanks also to Cindy Bloch, Adam Cohn, Andrey Any errors or omissions are the responsibility of the specific devices (hardware) servers personal workstations televisions Dikanskiy, Larry Freeman, Dale Green, Joann Gray, authors. Comments are welcome; contact Audrey Crane systems, pagers, cell identity module (SIM) appliances, computers phones, and personal phones, and automobiles, and Cori Kaylor, Onno Kluyt, Stuart Marks, Shawn Moore, at [email protected]. digital assistants (PDAs) multi-application smart Telematic networks Chuck Mosher, Shaler Ney, Eduardo Pelegri-Llopart, cards Lori Uzzo, Brad Wetmore, and Hinkmond Wong. February 14, 2003

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 25 Example: Draft of the Java concept map

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 26 Models are tools designers use to bridge the gap between what is and what should be. Analysis-Synthesis Bridge Model Dubberly, Evenson & Robinson (2008) Researching Prototyping Interpret Abstract

suggest Model of Model of what what “is” “could be”

manifest as

Describe Concrete

distilled to

What What “is” “could be”

Existing – Implicit Preferred – Explicit (Current) (Future)

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 27 Organizational learning follows a similar process, turning tacit knowledge into explicit knowledge and back again. SECI model of knowledge creation Ikujiro Nonaka (1995)

Explicit 1

Externalization Combination Articulating Connecting

Articulating tacit knowledge Systemizing and applying explicit through dialogue and reflection knowledge and information 5. Articulating tacit knowledge 7. Gathering and integrating 6. Translating tacit knowledge explicit knowledge 8. Transferring and diffusing explicit knowledge 9. Editing explicit knowledge Explicit

2 Tacit

Socialization Internalization 2 Empathizing Embodying

Sharing and creating tacit Learning and acquiring new tacit knowledge through direct experience knowledge in practice 1. Walking around inside the company 10. Embodying explicit knowledge 2. Walking around outside the company through action and practice 3. Accumulating tacit knowledge 11. Using simulation and experiments 4. Transferring tacit knowledge

Tacit 1 Individual Tacit Group 3 Organization Community of organizations Knowledge conversion spiral

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 28 Both processes have the same structure— designing is learning. SECI model of knowledge creation Analysis-Synthesis Bridge Model Dubberly, Evenson & Robinson Ikujiro Nonaka (2008) (1995) Explicit Researching Prototyping 1 Interpret Abstract Externalization Combination Articulating Connecting

Articulating tacit knowledge Systemizing and applying explicit suggest Model of through dialogue and reflection knowledge and information Model of what 5. Articulating tacit knowledge 7. Gathering and integrating what “is” “could be” 6. Translating tacit knowledge explicit knowledge 8. Transferring and diffusing explicit knowledge 9. Editing explicit knowledge Explicit

manifest as

2

Describe Concrete Tacit Socialization Internalization 2

distilled to Empathizing Embodying

Sharing and creating tacit Learning and acquiring new tacit knowledge through direct experience knowledge in practice 1. Walking around inside the company 10. Embodying explicit knowledge What 2. Walking around outside the company through action and practice What “is” “could be” 3. Accumulating tacit knowledge 11. Using simulation and experiments 4. Transferring tacit knowledge

Existing – Implicit Preferred – Explicit Tacit 1 (Current) (Future) Individual Tacit Group 3 Organization Community of organizations Knowledge conversion spiral

Analysis-Synthesis Bridge Model SECI model of knowledge create Dubberly, Evenson & Robison (2008) Ikujiro Nonaka (1995)

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 29 “At its heart, software design is about creating virtual worlds in which users work, learn, and play.

Virtuality has two aspects: 1. Conceptual structure—the ideas and how they unfold, connect, and lodge in the mind 2. Feel—how things look and the other sensations we experience (crude or slick, bumpy or smooth, warm or cool)

The real issue is designing a consistent conceptual structure, one that fits the domain as much as possible, as comprehensively and comprehensibly as possible. Consistency, completeness, and clarity are the objectives.”

— Ted Nelson, the inventor of hypertext

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 30 “For people to use a product successfully, they must have the same mental model (the user’s model) as that of the designer (the designer’s model). But the designer only talks to the user via the product itself, so the entire communication must take place through the ‘system image’: the information conveyed by the physical product itself.”

— Don Norman, The Design of Everyday Things, 1988

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 31 “...most digital systems fail when they fail to provide a story, when there is a poor conceptual model.” — Don Norman

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 32 “A conceptual model is a high-level description of an application. It enumerates all concepts in the application that users can encounter, describes how those concepts relate to each other, and how those concepts fit into tasks that users perform with the application.”

— Jeff Johnson + Austin Henderson, Conceptual Models: Core to Good Design, 2012

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 33 As an example of a conceptual model Johnson + Henderson describe an alarm clock.

The clock stores the current time of day, continually updating it to track the passage of time.

It displays the current time constantly.

Users can set the current time.

Users can set an alarm at a specified time, or no alarm.

When an alarm is set and the current time equals the set alarm time, the alarm is triggered.

Users can turn off an alarm.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 34 Clocks Models User conceptual model of an alarm clock, represented as a node-link diagrams—or concept map. Conceptual Model (Tree)

Clock includes Current Time includes Hour can be 1-12 or 1-24 Continually Updates Minute can be 0-59 can be Displayed Second can be 0-59 Set (Changed) Time Format can be Standard Time 12-hour, AM/PM Military Time 24-hour

includes Alarm Time includes Hour can be 1-12 or 1-24 can be Set (Changed) Minute can be 0-59 Enabled Disabled (Turned Off) Second can be 0-59 Triggered (When Alarm Time ≥ Current Time) AM/PM can be AM, PM or Neither (if set to Military Time)

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 35

Alere / UX Guidelines / Conceptual Models / Clocks 4 Example user conceptual model: an email client app Android, Email Client, Conceptual Model

Accounts include Mail Boxes can be accessed by Kindle Email Client sends and receives contain Text has Format could be Plain Text such as can be Access includes or can be - Original can be - AOL Added - Fetch and Push Other Clients Created - Quoted Viewed + Created - Exchange Deleted - Auto and Manual - New can be - Logged in to - - Manually Created - Hotmail Logged out of - - From short cuts - By Virtual Keyboard - iCloud - Reply - By Microphone - Ymail - Reply All (voice-to-text) includes - Forward Deleted Hot Strings RichText - Sent Formatted - URLs (Auto-formed links) can be - Sent Again Annotated - Dates (Calendar events) Viewed only Read (opened) Spell-checked - Names (Contacts) - As preview Enlarged / Reduced - Phone numbers - Full text - Addresses Read can be - Text-to-speech Auto-recognized Updated (draft) are Primary (Default) Deleted Annotations HTML Text or - Locally - Highlights can be Secondary - Globally - Notes Viewed only can be - Singly can be Designated - En Masse Created / Deleted - Undo Displayed / Hidden Saved - Locally are associated with Account Name - To Cloud Images sent to / Local memory User Name Filtered can be uploaded from Cloud Email Address Sorted Attached / Deleted Gallery User Name Searched Displayed / Hidden Quick Office Password - Locally Saved Documents to Go Server - Globally Loaded from remote source Social network sites (later) - Within Filter Protocols Moved - SMTP for sending - Singly Attachments sent to / - IMAP or POP for retrieving - En masse can be uploaded from - Exchange Flagged Attached Marked (read/not) Deleted for IMAP / POP Port - Singly Opened / Closed Secure Connection - En masse Saved - Auto - SSL/TLS - STARTTLS Meta-data includes Recipients are stored in Contacts List for Exchange Domain can be - Main Secure Connection (yes or no) Created / Deleted - CC can be - Automatic - BCC Configured - Manual Sender Displayed / Hidden Subject Used to Filter Preview Used to Sort Time Stamp (year, month, day, hour, minute) includes Kindle email address Preferences Flag (on or off, depends on service) e.g., [email protected] - Primary Account Tags is - Notification Status (unread or read) Included w/Kindle purchase - - Sound Response (none, reply, or forward) Receives and converts docs - - By Account Priority (low, normal, or high) Automatically added to Contacts - - By Sender Routing Information - Preview Length - Meta-data View may include Related Features - Auto Download are organized in Folders such as All (unified in-box, default if multiple services) - Contacts - - Yes / No can be Account (1 to n; mean = 6) - - Up to file size - Calendar Created / Deleted Inbox (Default, if only one service) 36 - Bookmarks - Number of Messages Stored Opened / Closed Drafts (Depends on service) - Reminders (To-do’s) - Number of Days Saved Moved Sent (Depends on service) - Documents (Files) - Signature (default from Amazon) Junk (Spam, depends on service) - Media (e.g., books, music, video) - Auto-response (out-of-the-office) Trash (Depends on service) can be Archive (Depends on service) Configured Threads (Conversations) Black = Entities (data type) can be Gray = Entity to be added later Displayed / Hidden Cyan = Relation between entities Green = Action user can take on entity Light Green = Action to be added later

Dubberly Design Office | December 1, 2011 OpenSimSim / Conceptual Model

A conceptual model shows everything a user must understand to use an app successfully. ExampleIt shows the deep structure of an app, not theuser surface information architecture. conceptual model: restaurant staff scheduling app

Users have Profiles consist of Picture Address consist of Street Address Description Privacy can be can be can be City can be can be Read Created Created State Created Created Updated Read Read Country Read Read Updated Updated ZIP Updated Updated Lat + Long Deleted Public (Everyone) Network (Connections only) Private (Only me) Accounts consist of First + Last Name Email Address Password Mobile Number Language can be can be can be can be can be can be Created Created Created Created Created Created Activated Read Read Reset Read Read Updated Updated Updated Updated Updated Updated Deleted

have Account Types could be Individuals can be assigned as Owner of can be can be Administrator Switched Created Manager Read Employee Updated Deleted

Companies consist of Name Industry Size Account Holder can be can be can be can be can be Created Created Created Created Created Read Read Read Read Read Updated Updated Updated Updated Updated Deleted

can send Invites become Connections could be have Skills consist of Name Rate Amount Rate Frequency Description can be can be can be can be can be can be can be Created Created Created Created Created Created Created Read Read Read Read Read Read Read Updated Deleted Updated Updated Updated Updated Updated Sent (Outgoing) Deleted Deleted Pending (Incoming) Accepted Declined can have Recommendations can leave can be Created Read

have Availability consist of Timeframe Comment can be requires can be can be Created Created Created Updated Read Read Repeated (Weekly) Updated Updated Valid Deleted Expired

Black = Entities (data type) apply for Jobs Cyan = Relation between entities post can be Green = Action user can take on entity Created Invited 37 Read Posted (aka Advertised) Updated Applied to Deleted Active Declined Dubberly Design Office · Version 1.0 · March 10, 2015 Conceptual models help a product team communicate.

Product Managers Executives

Shared Conceptual Model

Engineers Marketers

The communication needs to That means designers don’t own go two ways; it needs to be a the model; the designer’s role is conversation. Designers Other Stakeholders to facilitate the conversation, by representing the model and prototyping.

Dubberly Design Office · How Conceptual Models Improve Software Design · February 19, 2016 38 Special thanks to Eric Knudson Knut Synstad

[email protected] Presentation posted at presentations.dubberly.com/GE_Conceptual_Models.pdf