© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek.

Slides:



Advertisements
Similar presentations
(c) 2009 University of California, Irvine – André van der Hoek1April 20, 2015 – 00:59:05 Informatics 122 Software Design II Lecture 11 André van der Hoek.
Advertisements

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 ICS 52 Introduction to Software Engineering Lecture.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 3 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 2 Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 10, 2015 – 18:31:15 Informatics 122 Software Design II Lecture 2 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 12, 2015 – 07:51:20 Informatics 121 Software Design I Lecture 8 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 18:19:12 Informatics 122 Software Design II Lecture 5 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:08:09 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:29:37 Informatics 121 Software Design I Lecture 1 André van der Hoek and.
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 16, 2015 – 21:42:11 Informatics 121 Software Design I Lecture 7 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 23:38:09 Informatics 121 Software Design I Lecture 3 André van der Hoek Duplication.
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 22, 2015 – 23:08:13 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 08:15:24 Informatics 121 Software Design I Lecture 3 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 15:07:15 Informatics 121 Software Design I Lecture 6 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 15:42:49 Informatics 121 Software Design I Lecture 13 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 20:03:07 Informatics 121 Software Design I Lecture 5 André van der Hoek &
1 Informatics 121 Software Design I Design Studio I Discussion Alex Baker and André van der Hoek Duplication of course material for any commercial purpose.
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 28, 2015 – 09:26:53 Informatics 121 Software Design I Lecture 12 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1June 29, 2015 – 08:55:05 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 2009 University of California, Irvine – André van der Hoek1June 29, 2015 – 10:35:56 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1July 14, 2015 – 14:37:42 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
+ Informatics 122 Software Design II Lecture 1 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 3 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 2 Duplication.
Introduction to Design. What is Design? 2 minutes Pairs.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 14.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
Informatics 223 Applied Software Design Techniques
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Presentation transcript:

© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

© 2010 University of California, Irvine – André van der Hoek2October 23, 2015 – 10:21:58 Today’s Lecture Logistics Transitioning to 122 Preview of 122

© 2010 University of California, Irvine – André van der Hoek3October 23, 2015 – 10:21:58 Logistics Reader: Mitch Dempsey No discussion Books – “Design Patterns: Elements of Reusable Object-Oriented Software” –any decent UML introductory book

© 2010 University of California, Irvine – André van der Hoek4October 23, 2015 – 10:21:58 Logistics Intensely practice driven course Lectures matter Grading –No midterm, no final –Class participation is a crucial part –Team evaluations for group work

© 2010 University of California, Irvine – André van der Hoek5October 23, 2015 – 10:21:58 The Term “Design” “Design” may refer to an activity –“When I design, I always use a whiteboard first” –We will use: design activity “Design” may refer to a product –“My design is super cool, I know it will work” –We will use: design product “Design” may refer to a field –“Software design is complex” –We will use: design field

© 2010 University of California, Irvine – André van der Hoek6October 23, 2015 – 10:21:58 Design Fields Abound There are countless design fields –Architecture design –Graphic design –Fashion design –Game design –Chip design –Car design –Instrument design –Product design –… But also –Law –Chemical synthesis –Process design –Study design –… And also –Writing –Painting –Sculpting –Music composition –…

© 2010 University of California, Irvine – André van der Hoek7October 23, 2015 – 10:21:58 Design Fields Abound There are countless design fields –Architecture design –Graphic design –Fashion design –Game design –Chip design –Car design –Instrument design –Product design –… But also –Law –Chemical synthesis –Process design –Study design –… And also –Writing –Painting –Sculpturing –Music composition –… Software development is a design field, too!

© 2010 University of California, Irvine – André van der Hoek8October 23, 2015 – 10:21:58 Defining Design “Features of shape, configuration, pattern or ornamentation applicable to an article, being features that, in the finished article, can be judged by the eye, but does not include a method or principle of construction.” [Designs Act, 1906] “The imaginative jump from present facts to future possibilities” [Page]. “The optimum solution to the sum of true needs of a particular set of circumstances” [Matchett] “To conceive or plan out in the mind” [Merriam-Webster] “A plan or protocol for carrying out or accomplishing something” [Merriam-Webster] …

© 2010 University of California, Irvine – André van der Hoek9October 23, 2015 – 10:21:58 Defining Design The realization of an imagined state To work out a solution in one’s mind The specification that guides production The transition from possible solutions to a specific one To devise a solution to a perceived problem …

© 2010 University of California, Irvine – André van der Hoek10October 23, 2015 – 10:21:58 Design

© 2010 University of California, Irvine – André van der Hoek11October 23, 2015 – 10:21:58 StakeholdersUsers Alternative Designs Final Design Product Experiences have goals and anticipated uses for lead toleads to experienced by leads tomay or may not match expectations of Designers generate produce predict anticipate envision identify

Product-Use-Experience Cycle © 2010 University of California, Irvine – André van der Hoek12October 23, 2015 – 10:21:58 StakeholdersUsers Alternative Designs Product Experiences have goals and anticipated uses for lead toleads to experienced by leads tomay or may not match expectations of Designers generate produce envision identify Final Design anticipate predict

Creative Production Cycle © 2010 University of California, Irvine – André van der Hoek13October 23, 2015 – 10:21:58 Users Alternative Designs Product Experiences have goals and anticipated uses for lead toleads to experienced by leads tomay or may not match expectations of Designers generate produce envision identifyanticipate predict Stakeholders Final Design

Infinities, Wickedness, and Satisficing © 2010 University of California, Irvine – André van der Hoek14October 23, 2015 – 10:21:58 StakeholdersUsers Alternative Designs Final Design Product Experiences have goals and anticipated uses for lead toleads to experienced by leads tomay or may not match expectations of Designers generate produce predict anticipate envision identify

Positioning Software Design Waterfall: once, in between requirements and implementation –“design is a phase” Incremental: repeatedly, in between requirements and implementation –“design is a phase” Prototyping: once, in between prototyping/requirements and implementation –“design is a phase” Spiral: intermittently, when the risks being faced demand it –“design is a phase” XP: all the time, when coding –“design is in the code” … © 2010 University of California, Irvine – André van der Hoek15October 23, 2015 – 10:21:58

Software Design: Our View in 121 and 122 Application design Interaction design Architecture design Implementation design Maintenance design © 2010 University of California, Irvine – André van der Hoek16October 23, 2015 – 10:21:58 All five types of design take place throughout the software life cycle

Software Design: Our View in 121 and 122 Application design Interaction design Architecture design Implementation design Maintenance design © 2010 University of California, Irvine – André van der Hoek17October 23, 2015 – 10:21:58 All five types of design have their own design methods and representations

Software Design: Our View in 121 and 122 Application design Interaction design Architecture design Implementation design Maintenance design © 2010 University of California, Irvine – André van der Hoek18October 23, 2015 – 10:21:58 All five types of design involve the design cycle Users Alternative Designs Product Experiences Designers Stakeholders Final Design

Software Design: Our View in 121 and 122 Application design Interaction design Architecture design Implementation design Maintenance design © 2010 University of California, Irvine – André van der Hoek19October 23, 2015 – 10:21:58 All five types of design closely interrelate and must often be addressed in parallel Users Alternative Designs Product Experiences Designers Stakeholders Final Design

Focus of 122 [Application design] [Interaction design] [Architecture design] Implementation design Maintenance design © 2010 University of California, Irvine – André van der Hoek20October 23, 2015 – 10:21:58 Users Alternative Designs Product Experiences Designers Stakeholders Final Design

© 2010 University of California, Irvine – André van der Hoek21October 23, 2015 – 10:21:58 Transitioning to 122 In Informatics 121, much of the focus was on application design –creative thinking –learning to rely on colleagues –incomplete specifications –no implementation

© 2010 University of California, Irvine – André van der Hoek22October 23, 2015 – 10:21:58 Transitioning to 122 In Informatics 121, much of the focus was on application design –creative thinking –learning to rely on colleagues –incomplete specifications –no implementation In Informatics 122, we focus on implementation and maintenance design –nuts and bolts (but still some creative thinking) –specifying for colleagues (but still relying on colleagues) –complete specifications –implementation

Practice, Practice, Practice… To learn to navigate this space, and thus learn to be a “satisficer”, it is essential to practice, practice, practice There is no theory or magic formula that will teach you to be a designer, only theory that –will help you understand what it means to be a designer –provides you with a frame of mind through which you can usefully reflect upon your design activities and design products © 2010 University of California, Irvine – André van der Hoek23October 23, 2015 – 10:21:58

© 2010 University of California, Irvine – André van der Hoek24October 23, 2015 – 10:21:58 Rough Schedule Create some designs –evaluate others’ designs –discuss those designs –implement those designs Reverse engineer a large design Apply design patterns Reuse components Large scale vs. small scale design A final design (and implementation) project

No Assignment Today… …but please refresh your knowledge of UML before the next lecture © 2010 University of California, Irvine – André van der Hoek25October 23, 2015 – 10:21:58