76
© 2006 University of California, Irvine – André van der Hoek March 25, 2022 – 22:04:48 1 Examining Software Design From A General Design Perspective Alex Baker and André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine {abaker,andre}@ics.uci.edu

October 16, 2015 – 16:09:421 © 2006 University of California, Irvine – André van der Hoek Examining Software Design From A General Design Perspective Alex

Embed Size (px)

Citation preview

© 2006 University of California, Irvine – André van der HoekApril 20, 2023 – 00:30:41 1

Examining Software Design From A General Design Perspective

Examining Software Design From A General Design Perspective

Alex Baker and André van der HoekDepartment of Informatics

Donald Bren School of Information and Computer Sciences

University of California, Irvine

{abaker,andre}@ics.uci.edu

© 2006 University of California, Irvine – André van der Hoek 2April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design?

© 2006 University of California, Irvine – André van der Hoek 3April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design? What constitutes a good software design?

© 2006 University of California, Irvine – André van der Hoek 4April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design? What constitutes a good software design? What is a good approach to design?

© 2006 University of California, Irvine – André van der Hoek 5April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design? What constitutes a good software design? What is a good approach to design? What makes one a good designer?

© 2006 University of California, Irvine – André van der Hoek 6April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design? What constitutes a good software design? What is a good approach to design? What makes one a good designer? What factors influence design?

© 2006 University of California, Irvine – André van der Hoek 7April 20, 2023 – 00:30:41

“Just” Some Questions“Just” Some Questions

What is a good notation for software design? What constitutes a good software design? What is a good approach to design? What makes one a good designer? What factors influence design? What is software design?

© 2006 University of California, Irvine – André van der Hoek 8April 20, 2023 – 00:30:41

Some Answers: AgileSome Answers: Agile

What is a good notation for software design?– code

What constitutes a good software design?– code fully refactored

What is a good approach to design?– architect some beforehand– build, test, refactor throughout

What makes one a good designer?– experience, pair programming

What factors influence design?– programming language, tools, designers

What is software design?– “the design is in the code”

© 2006 University of California, Irvine – André van der Hoek 9April 20, 2023 – 00:30:41

Some Answers: Strict WaterfallSome Answers: Strict Waterfall

What is a good notation for software design?– any

What constitutes a good software design?– complete and consistent

What is a good approach to design?– transform and verify requirements

What makes one a good designer?– knowledge

What factors influence design?– requirements, methodology

What is software design?– “design is a transformational phase in the software

life cycle”

© 2006 University of California, Irvine – André van der Hoek 10April 20, 2023 – 00:30:42

Some Answers: IncrementalSome Answers: Incremental

What is a good notation for software design?– any

What constitutes a good software design?– extensible (in the right way)

What is a good approach to design?– create a core architecture, keep it synchronized with

the code, and update each iteration What makes one a good designer?

– domain knowledge, experience What factors influence design?

– feedback from users, ability to update architecture What is software design?

– “design is an up-to-date roadmap”

© 2006 University of California, Irvine – André van der Hoek 11April 20, 2023 – 00:30:42

Typical ReactionsTypical Reactions

Which one is true? Which one is better? Which one should we follow? …

© 2006 University of California, Irvine – André van der Hoek 12April 20, 2023 – 00:30:42

Typical ReactionsTypical Reactions

Which one is true? Which one is better? Which one should we follow? …

These are the wrong questions, generally leading tobitter discussions based on beliefs, not on grounded facts

© 2006 University of California, Irvine – André van der Hoek 13April 20, 2023 – 00:30:42

The ProblemThe Problem

What is a good notation for software design? What constitutes a good software design? What is a good approach to design? What makes one a good designer? What factors influence design? What is software design?

To date, the community lacks a common understanding fromwhich to answer these, and other, questions of software design

© 2006 University of California, Irvine – André van der Hoek 14April 20, 2023 – 00:30:42

ApproachApproach

1. Step outside of software design2. Examine other design disciplines3. Examine general design literature4. Bring together the lessons learned in a

generic framework of design5. Apply the framework to software design

© 2006 University of California, Irvine – André van der Hoek 15April 20, 2023 – 00:30:42

Step 1: Step Outside of Software DesignStep 1: Step Outside of Software Design

We make no assumptions as to what software design is supposed to be– phase– document– creative– precise– consistent– object oriented– …

In essence, we temporarily forget everything we have learned about software design

© 2006 University of California, Irvine – André van der Hoek 16April 20, 2023 – 00:30:42

Step 2: Examine Other Design DisciplinesStep 2: Examine Other Design Disciplines

Read, read, read, …– The Timeless Way of Building [Alexander]– The Design of Everyday Things [Norman]– The Art of Innovation [Kelley]– …

Learn what are important perspectives and important factors in other disciplines– freedom of expression– multiple representations– communication– iteration– …

© 2006 University of California, Irvine – André van der Hoek 17April 20, 2023 – 00:30:42

Step 3: Examine General Design LiteratureStep 3: Examine General Design Literature

Read, read, read, …– The Sciences of the Artificial [Simon]– Design Methods [Jones]– The Reflective Practitioner: How Professionals Think

in Action [Schön]– Grounding in Communication [Clark and Brennan]– …

Learn what are important general principles– design spaces– divergence, transformation, convergence– reflective conversation with materials– communication– …

© 2006 University of California, Irvine – André van der Hoek 18April 20, 2023 – 00:30:42

Step 4: Bring Together the Lessons Learned in a Generic Framework of DesignStep 4: Bring Together the Lessons Learned in a Generic Framework of Design

Try, try, try, …– Eyeglass– Design Diamond– Product / Process

© 2006 University of California, Irvine – André van der Hoek 19April 20, 2023 – 00:30:42

EyeglassEyeglass

© 2006 University of California, Irvine – André van der Hoek 20April 20, 2023 – 00:30:42

Eyeglass – ProblemsEyeglass – Problems

Inconsistent meaning of “contains”,does not capture everything, still ambiguity

© 2006 University of California, Irvine – André van der Hoek 21April 20, 2023 – 00:30:42

Design DiamondDesign Diamond

Goal

Domain of Materials

Representation

Domain of Use

Knowledge

ActivityIdeas

concern

manipulatesinformscapturesenhances

© 2006 University of California, Irvine – André van der Hoek 22April 20, 2023 – 00:30:42

Design Diamond – ProblemsDesign Diamond – Problems

Goal

Domain of Materials

Representation

Domain of Use

Knowledge

ActivityIdeas

concern

manipulatesinformscapturesenhances

Complicated, missing links,difficulty of separating dimensions

© 2006 University of California, Irvine – André van der Hoek 23April 20, 2023 – 00:30:42

Product / ProcessProduct / Process

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 24April 20, 2023 – 00:30:42

Product / Process – ProblemsProduct / Process – Problems

Thus far – none (but your feedback is much desired)

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 25April 20, 2023 – 00:30:42

ProductProduct

designer project customer

outcomes

design space

CD

CC

DF SP

A state represents one design product, which is defined asan abstraction that constrains the set of still possible outcomes

C = conceivableF = feasibleD = desirableSP = still possible

© 2006 University of California, Irvine – André van der Hoek 26April 20, 2023 – 00:30:42

ProductProduct

designer project customer

outcomes

design space

CD

CC

DF

A successful design product restricts the set of still possibleoutcomes to those that are feasible and desirable

D

© 2006 University of California, Irvine – André van der Hoek 27April 20, 2023 – 00:30:42

ProcessProcess

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

The design process is characterized as one ofinformation manipulation

© 2006 University of California, Irvine – André van der Hoek 28April 20, 2023 – 00:30:42

Teams, Stakeholders, and CommunityTeams, Stakeholders, and Community

representation (lang)

goal (lang)

activity

goal (lang) knowledge (lang)

ideas (lang)

tools

activity

knowledge (lang)

ideas (lang)

tools

Information exchange among multiple people takes placeas communication through a shared representation

© 2006 University of California, Irvine – André van der Hoek 29April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 30April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 31April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 32April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 33April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 34April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF

SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 35April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer customer

outcomes

design space

CD

CDF

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

project

CSP

© 2006 University of California, Irvine – André van der Hoek 36April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer customer

outcomes

design space

CD

CDF

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

project

CSP

© 2006 University of California, Irvine – André van der Hoek 37April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 38April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer customer

outcomes

design space

CD

CDF

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

project

CD SP

© 2006 University of California, Irvine – André van der Hoek 39April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer customer

outcomes

design space

CD

CDF

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

project

CSP

© 2006 University of California, Irvine – André van der Hoek 40April 20, 2023 – 00:30:42

A Quick ScenarioA Quick Scenario

designer customer

outcomes

design space

CD

CDF

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

project

CSP

© 2006 University of California, Irvine – André van der Hoek 41April 20, 2023 – 00:30:42

A Generic Perspective on DesignA Generic Perspective on Design

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

Every discipline must address the same product, process,and communication factors, in a manner suitable to its domain

© 2006 University of California, Irvine – André van der Hoek 42April 20, 2023 – 00:30:42

TensionsTensions

A goal constrains desirable outcomes A goal guides generation of ideas Knowledge informs outcome feasibility Knowledge informs outcome desirability Knowledge guides generation/evaluation of

ideas Knowledge guides creation of representations Ideas constrain still possible outcomes Ideas shift goals Ideas build knowledge Representations record personalized

information Representations communicate information

© 2006 University of California, Irvine – André van der Hoek 43April 20, 2023 – 00:30:42

TensionsTensions

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 44April 20, 2023 – 00:30:42

TensionsTensions

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 45April 20, 2023 – 00:30:42

TensionsTensions

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 46April 20, 2023 – 00:30:42

TensionsTensions

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 47April 20, 2023 – 00:30:42

TensionsTensions

designer project customer

outcomes

design space

CD

CCDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 48April 20, 2023 – 00:30:42

Step 5: Apply the Framework to Software DesignStep 5: Apply the Framework to Software Design

Understanding unique nature of software Comparing high-level approaches Judging individual contributions Suggesting new research directions

© 2006 University of California, Irvine – André van der Hoek 49April 20, 2023 – 00:30:42

CD

C

Understanding Unique Nature of Software #1Understanding Unique Nature of Software #1

designer project customer

outcomes

design space

CDF SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

Large space of feasibility

© 2006 University of California, Irvine – André van der Hoek 50April 20, 2023 – 00:30:42

FC

Foutcomes

Understanding Unique Nature of Software #2Understanding Unique Nature of Software #2

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

Goal specificity

© 2006 University of California, Irvine – André van der Hoek 51April 20, 2023 – 00:30:42

FC

Foutcomes

Understanding Unique Nature of Software #3Understanding Unique Nature of Software #3

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

Language gap

© 2006 University of California, Irvine – André van der Hoek 52April 20, 2023 – 00:30:42

Impact of Our FrameworkImpact of Our Framework

Help understand the difficulties inherent to software design– theoretically deducted– empirically related to existing opinions (e.g., Brooks)

Begin to suggest ways in which we need to address them

© 2006 University of California, Irvine – André van der Hoek 53April 20, 2023 – 00:30:42

Comparing High-Level ApproachesComparing High-Level Approaches

Agile Strict waterfall Incremental …

© 2006 University of California, Irvine – André van der Hoek 54April 20, 2023 – 00:30:42

FC

FC

DC

D SP

TensionsTensions

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 55April 20, 2023 – 00:30:42

FC

Foutcomes

Unique Nature of Software #1, #2, #3Unique Nature of Software #1, #2, #3

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 56April 20, 2023 – 00:30:42

CDF

CF

CD SP

AgileAgile

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“The design is the code”

© 2006 University of California, Irvine – André van der Hoek 57April 20, 2023 – 00:30:42

CSPF

CF

outcomes

Unique Nature of Software #1, #2, #3Unique Nature of Software #1, #2, #3

designer project customer

design space

CD

D

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“The design is the code”

© 2006 University of California, Irvine – André van der Hoek 58April 20, 2023 – 00:30:42

FC

F DC

DC

SP

WaterfallWaterfall

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“Design is a transformational phase in the software life cycle”

© 2006 University of California, Irvine – André van der Hoek 59April 20, 2023 – 00:30:42

FC

Foutcomes

Unique Nature of Software #1, #2, #3Unique Nature of Software #1, #2, #3

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“Design is a transformational phase in the software life cycle”

© 2006 University of California, Irvine – André van der Hoek 60April 20, 2023 – 00:30:42

CSPF

CF

CD

D

IncrementalIncremental

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“Design is an up-to-date roadmap”

© 2006 University of California, Irvine – André van der Hoek 61April 20, 2023 – 00:30:42

CSP

CDF

CF

outcomes

Unique Nature of Software #1, #2, #3Unique Nature of Software #1, #2, #3

designer project customer

design space

D

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

“Design is an up-to-date roadmap”

© 2006 University of California, Irvine – André van der Hoek 62April 20, 2023 – 00:30:42

Impact of Our FrameworkImpact of Our Framework

Help understand the choices that different points of view make– what are the resulting design strengths– what are the resulting design weaknesses

Move community from arguments rooted in opinion to arguments based on a sound, shared framework– “force the hand”

© 2006 University of California, Irvine – André van der Hoek 63April 20, 2023 – 00:30:42

Judging Individual ContributionsJudging Individual Contributions

(will not do here)

© 2006 University of California, Irvine – André van der Hoek 64April 20, 2023 – 00:30:42

FC

FC

DC

D SP

Suggesting New Research DirectionsSuggesting New Research Directions

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 65April 20, 2023 – 00:30:42

FC

Foutcomes

Suggesting New Research DirectionsSuggesting New Research Directions

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 66April 20, 2023 – 00:30:42

FC

Foutcomes

Research Direction #1: SubdomainsResearch Direction #1: Subdomains

designer project customer

design space

CD

CD SP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 67April 20, 2023 – 00:30:42

CF

outcomes

Research Direction #2: Software AestheticsResearch Direction #2: Software Aesthetics

designer project customer

design space

CD

CSP

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

toolsD

© 2006 University of California, Irvine – André van der Hoek 68April 20, 2023 – 00:30:42

FC

FC

DC

D SP

Research Direction #3: Imprecise LanguagesResearch Direction #3: Imprecise Languages

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 69April 20, 2023 – 00:30:42

CSPF

CF

CD

D

Research Direction #4: Become Involved in the Design of Programming Languages

Research Direction #4: Become Involved in the Design of Programming Languages

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 70April 20, 2023 – 00:30:42

FC

FC

DC

D SP

Research Direction #5: Real-time Integrated FeedbackResearch Direction #5: Real-time Integrated Feedback

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 71April 20, 2023 – 00:30:42

FC

FC

DC

D SP

Research Direction #6: Face-to-Face Design Collaboration Research Direction #6: Face-to-Face Design Collaboration

designer project customer

outcomes

design space

activity

goal (lang) knowledge (lang)

ideas (lang) representation (lang)

tools

© 2006 University of California, Irvine – André van der Hoek 72April 20, 2023 – 00:30:42

Research Direction #6: Face-to-Face Design CollaborationResearch Direction #6: Face-to-Face Design Collaboration

© 2006 University of California, Irvine – André van der Hoek 73April 20, 2023 – 00:30:43

Research Direction #6: Face-to-Face Design CollaborationResearch Direction #6: Face-to-Face Design Collaboration

© 2006 University of California, Irvine – André van der Hoek 74April 20, 2023 – 00:30:43

Suggesting New Research DirectionsSuggesting New Research Directions

Knowledge– sub-domains – software aesthetics

Language– imprecise languages– become involved in the design of programming

languages

Tools– real-time integrated feedback– face-to-face design collaboration

© 2006 University of California, Irvine – André van der Hoek 75April 20, 2023 – 00:30:43

Impact of Our FrameworkImpact of Our Framework

Help identify new research directions through principled exploration of the framework

Help identify where research directions help and where they hinder– immediately understand the tradeoffs

Help distinguish “good” research plans from “bad” research plans

© 2006 University of California, Irvine – André van der Hoek 76April 20, 2023 – 00:30:43

ConclusionsConclusions

The field of software design has long made do without a shared understanding of what is software design– problematic– stifling

We have presented a novel, generic framework of design and applied it to software design

Not mentioned: education This is work in progress

– any and all feedback is appreciated