Informatics 121 Software Design I Lecture 9 Duplication

  • Slides: 68
Download presentation
Informatics 121 Software Design I Lecture 9 Duplication of course material for any commercial

Informatics 121 Software Design I Lecture 9 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 1

Today’s lecture • Design artifacts • Abstractions • Design notations • Vocabulary • Design

Today’s lecture • Design artifacts • Abstractions • Design notations • Vocabulary • Design tools SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 2

Design SDCL designer plan maker change in the world audience experiences Software Design and

Design SDCL designer plan maker change in the world audience experiences Software Design and Collaboration Laboratory Department of Informatics, UC Irvine other stakeholders sdcl. ics. uci. edu 3

A design artifact • An externalized representation used to further a design project –

A design artifact • An externalized representation used to further a design project – design problem, design solution, or both – partial or complete – fluid or frozen SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 4

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 5

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 6

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 7

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 8

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 9

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 10

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 11

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Example SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 12

Purpose of design artifacts • Design artifacts to think • Design artifacts to talk

Purpose of design artifacts • Design artifacts to think • Design artifacts to talk • Design artifacts to prescribe SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 13

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 14

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 15

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 16

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Thinking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 17

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 18

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 19

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 20

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Talking design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 21

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 22

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 23

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 24

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Prescribing design artifact SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 25

Abstraction • An abstraction is formed by reducing the information content of a concept

Abstraction • An abstraction is formed by reducing the information content of a concept or an observable phenomenon, typically to retain only information which is relevant for a particular purpose – choice of what to include – choice of what not to include • Each abstraction makes some information readily available at the expense of obscuring or removing other information SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 26

Floor plan SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Floor plan SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 27

Verilog SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Verilog SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 28

Page layout SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Page layout SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 29

Mechanical engineering diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Mechanical engineering diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 30

Schematic SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Schematic SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 31

Product sketch SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Product sketch SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 32

Model SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Model SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 33

Class diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Class diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 34

User interface mock-up [balsamiq] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC

User interface mock-up [balsamiq] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 35

Entity relationship diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Entity relationship diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 36

Sequence diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Sequence diagram SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 37

Design notation • A design notation offers a language for specifying certain aspects of

Design notation • A design notation offers a language for specifying certain aspects of a design artifact – textual and/or graphical vocabulary for specifying individual and composite elements – rules governing how individual elements can be combined into composite elements – implicit and/or explicit semantics for giving meaning • Each design notation is typically suited for a particular domain and a particular purpose • Every design notation invariably introduces abstraction SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 38

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 39

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 40

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 41

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 42

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 43

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Example notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 44

Types of notation Formal notation SDCL Software Design and Collaboration Laboratory Semi-formal notation Informal

Types of notation Formal notation SDCL Software Design and Collaboration Laboratory Semi-formal notation Informal notation Department of Informatics, UC Irvine No notation sdcl. ics. uci. edu 45

Types of notation Formal notation SDCL Software Design and Collaboration Laboratory Semi-formal notation Informal

Types of notation Formal notation SDCL Software Design and Collaboration Laboratory Semi-formal notation Informal notation Department of Informatics, UC Irvine No notation sdcl. ics. uci. edu 46

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 47

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 48

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of

Vocabulary may exist independent of notation SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 49

Notation or just a vocabulary? SDCL Software Design and Collaboration Laboratory Department of Informatics,

Notation or just a vocabulary? SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 50

Considerations in choosing a design notation • Who is the audience? • What is

Considerations in choosing a design notation • Who is the audience? • What is the objective? • What is the timeframe? SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 51

Expressiveness versus usability high low expressiveness SDCL Software Design and Collaboration Laboratory usability Department

Expressiveness versus usability high low expressiveness SDCL Software Design and Collaboration Laboratory usability Department of Informatics, UC Irvine sdcl. ics. uci. edu 52

Cognitive dimensions of notations Abstraction types and availability of abstraction mechanisms Hidden dependencies important

Cognitive dimensions of notations Abstraction types and availability of abstraction mechanisms Hidden dependencies important links between entities are not visible Premature commitment constraints on the order of doing things Secondary notation extra information in means other than formal syntax Viscosity resistance to change Visibility ability to view components easily Closeness of mapping closeness of representation to domain Consistency similar semantics are expressed in similar syntactic forms Diffuseness verbosity of language Error-proneness notation invites mistakes Hard mental operations high demand on cognitive resources Progressive evaluation work-to-date can be checked at any time Provisionality degree of commitment to actions or marks Role-expressiveness the purpose of a component is readily inferred SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 53

Design tools • Design tools assist the designer in creating and interpreting design artifacts

Design tools • Design tools assist the designer in creating and interpreting design artifacts • Ideally, design tools… – …decrease the burden of creating design artifacts – …increase the ability of interpreting design artifacts • static form • dynamic behavior • Design tools may be individual or collaborative in nature SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 54

Adobe Illustrator SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Adobe Illustrator SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 55

Bridge design SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Bridge design SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 56

Bridge design SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Bridge design SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 57

Auto. CAD SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Auto. CAD SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 58

Capital Logic SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Capital Logic SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 59

Whiteboard SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Whiteboard SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 60

Pen and paper SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Pen and paper SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 61

Enterprise Architect SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.

Enterprise Architect SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 62

Balsamiq SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Balsamiq SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 63

Bogor SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Bogor SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 64

Whiteboard SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics.

Whiteboard SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 65

Pen & paper SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine

Pen & paper SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 66

Flow • A state of ‘flow’ is achieved when the designer seamlessly engages with

Flow • A state of ‘flow’ is achieved when the designer seamlessly engages with the design artifact, rapidly and fluidly moving among the various parts of the design cycle – design notations may or may not hinder flow – design tools may or may not hinder flow • Merging of action and awareness • Loss of reflective self-consciousness SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 67

Reflection-in-action versus reflection-on-action • Reflection-in-action takes places during design work, and is typified by

Reflection-in-action versus reflection-on-action • Reflection-in-action takes places during design work, and is typified by the designer feeling as if the design artifact itself provides important new clues – crucial element of flow • Reflection-on-action steps out of design work, and is typified by the designer explicitly reflecting on their design work and overall progress and approach – crucial element of design process SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 68