Download presentation
Presentation is loading. Please wait.
Published byGregory Jacobs Modified over 9 years ago
1
October 16, 2015 – 16:09:421 © 2006 University of California, Irvine – André van der Hoek 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
2
2October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “Just” Some Questions What is a good notation for software design?
3
3October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “Just” Some Questions What is a good notation for software design? What constitutes a good software design?
4
4October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “Just” Some Questions What is a good notation for software design? What constitutes a good software design? What is a good approach to design?
5
5October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “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?
6
6October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “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?
7
7October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek “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?
8
8October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Some 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”
9
9October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Some 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”
10
10October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Some 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”
11
11October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Typical Reactions Which one is true? Which one is better? Which one should we follow? …
12
12October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Typical Reactions Which one is true? Which one is better? Which one should we follow? … These are the wrong questions, generally leading to bitter discussions based on beliefs, not on grounded facts
13
13October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek The 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 from which to answer these, and other, questions of software design
14
14October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Approach 1. Step outside of software design 2. Examine other design disciplines 3. Examine general design literature 4. Bring together the lessons learned in a generic framework of design 5. Apply the framework to software design
15
15October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Step 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
16
16October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Step 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 –…
17
17October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Step 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 –…
18
18October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Step 4: Bring Together the Lessons Learned in a Generic Framework of Design Try, try, try, … –Eyeglass –Design Diamond –Product / Process
19
19October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Eyeglass
20
20October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Eyeglass – Problems Inconsistent meaning of “contains”, does not capture everything, still ambiguity
21
21October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Design Diamond Goal Domain of Materials Representation Domain of Use Knowledge ActivityIdeas concern manipulates informs captures enhances
22
22October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Design Diamond – Problems Goal Domain of Materials Representation Domain of Use Knowledge ActivityIdeas concern manipulates informs captures enhances Complicated, missing links, difficulty of separating dimensions
23
23October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Product / Process designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
24
24October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Product / Process – Problems Thus far – none (but your feedback is much desired) designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
25
25October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Product designerprojectcustomer outcomes design space C D CC D F SP A state represents one design product, which is defined as an abstraction that constrains the set of still possible outcomes C = conceivable F = feasible D = desirable SP = still possible
26
26October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Product designerprojectcustomer outcomes design space C D CC D F A successful design product restricts the set of still possible outcomes to those that are feasible and desirable D
27
27October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Process activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools The design process is characterized as one of information manipulation
28
28October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Teams, 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 place as communication through a shared representation
29
29October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
30
30October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
31
31October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
32
32October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
33
33October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
34
34October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
35
35October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designercustomer outcomes design space C D C D F activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools project C SP
36
36October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designercustomer outcomes design space C D C D F activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools project C SP
37
37October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
38
38October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designercustomer outcomes design space C D C D F activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools project C D SP
39
39October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designercustomer outcomes design space C D C D F activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools project C SP
40
40October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Quick Scenario designercustomer outcomes design space C D C D F activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools project C SP
41
41October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek A Generic Perspective on Design designerprojectcustomer outcomes design space C D CC D F 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
42
42October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions 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
43
43October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
44
44October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
45
45October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
46
46October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
47
47October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Tensions designerprojectcustomer outcomes design space C D CC D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
48
48October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Step 5: Apply the Framework to Software Design Understanding unique nature of software Comparing high-level approaches Judging individual contributions Suggesting new research directions
49
49October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C D C Understanding Unique Nature of Software #1 designerprojectcustomer outcomes design space C D F SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools Large space of feasibility
50
50October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Understanding Unique Nature of Software #2 designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools Goal specificity
51
51October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Understanding Unique Nature of Software #3 designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools Language gap
52
52October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Impact 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
53
53October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Comparing High-Level Approaches Agile Strict waterfall Incremental …
54
54October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F C D C D SP Tensions designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
55
55October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Unique Nature of Software #1, #2, #3 designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
56
56October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C D F C F C D SP Agile designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “The design is the code”
57
57October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C SP F C F outcomes Unique Nature of Software #1, #2, #3 designerprojectcustomer design space C D D activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “The design is the code”
58
58October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F D C D C SP Waterfall designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “Design is a transformational phase in the software life cycle”
59
59October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Unique Nature of Software #1, #2, #3 designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “Design is a transformational phase in the software life cycle”
60
60October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C SP F C F C D D Incremental designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “Design is an up-to-date roadmap”
61
61October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C SP C D F C F outcomes Unique Nature of Software #1, #2, #3 designerprojectcustomer design space D activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools “Design is an up-to-date roadmap”
62
62October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Impact 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”
63
63October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Judging Individual Contributions (will not do here)
64
64October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F C D C D SP Suggesting New Research Directions designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
65
65October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Suggesting New Research Directions designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
66
66October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F outcomes Research Direction #1: Subdomains designerprojectcustomer design space C D C D SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
67
67October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C F outcomes Research Direction #2: Software Aesthetics designerprojectcustomer design space C D C SP activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools D
68
68October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F C D C D SP Research Direction #3: Imprecise Languages designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
69
69October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek C SP F C F C D D Research Direction #4: Become Involved in the Design of Programming Languages designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
70
70October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F C D C D SP Research Direction #5: Real-time Integrated Feedback designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
71
71October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek F C F C D C D SP Research Direction #6: Face-to-Face Design Collaboration designerprojectcustomer outcomes design space activity goal (lang)knowledge (lang) ideas (lang)representation (lang) tools
72
72October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Research Direction #6: Face-to-Face Design Collaboration
73
73October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Research Direction #6: Face-to-Face Design Collaboration
74
74October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Suggesting 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
75
75October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Impact 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
76
76October 16, 2015 – 16:09:42 © 2006 University of California, Irvine – André van der Hoek Conclusions 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.