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

25
© 2010 University of California, Irvine – André van der Hoek 1 June 20, 2022 – 18:10:51 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.

Transcript of © 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58...

Page 1: © 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.

© 2010 University of California, Irvine – André van der Hoek 1April 20, 2023 – 02:55:12

Informatics 122Software Design II

Informatics 122Software 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.

Page 2: © 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.

© 2010 University of California, Irvine – André van der Hoek 2April 20, 2023 – 02:55:12

Today’s LectureToday’s Lecture

Logistics

Transitioning to 122

Preview of 122

Page 3: © 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.

© 2010 University of California, Irvine – André van der Hoek 3April 20, 2023 – 02:55:12

LogisticsLogistics

http://www.ics.uci.edu/~andre/informatics122w2010.html

Reader: Mitch Dempsey

No discussion

Books– “Design Patterns: Elements of Reusable Object-Oriented

Software”– any decent UML introductory book

Page 4: © 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.

© 2010 University of California, Irvine – André van der Hoek 4April 20, 2023 – 02:55:12

LogisticsLogistics

Intensely practice driven course

Lectures matter

Grading– No midterm, no final– Class participation is a crucial part– Team evaluations for group work

Page 5: © 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.

© 2010 University of California, Irvine – André van der Hoek 5April 20, 2023 – 02:55:12

The Term “Design”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

Page 6: © 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.

© 2010 University of California, Irvine – André van der Hoek 6April 20, 2023 – 02:55:12

Design Fields AboundDesign 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– …

Page 7: © 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.

© 2010 University of California, Irvine – André van der Hoek 7April 20, 2023 – 02:55:12

Design Fields AboundDesign 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!

Page 8: © 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.

© 2010 University of California, Irvine – André van der Hoek 8April 20, 2023 – 02:55:12

Defining DesignDefining 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]

Page 9: © 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.

© 2010 University of California, Irvine – André van der Hoek 9April 20, 2023 – 02:55:13

Defining DesignDefining 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

Page 10: © 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.

© 2010 University of California, Irvine – André van der Hoek 10April 20, 2023 – 02:55:13

DesignDesign

Page 11: © 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.

DesignDesign

© 2010 University of California, Irvine – André van der Hoek 11April 20, 2023 – 02:55:13

Stakeholders Users

Alternative Designs

Final Design

Product

Experiences

have goals and anticipated uses for

lead to leads to

experienced by

leads tomay or may not matchexpectations of

Designers

generate

produce

predict

anticipate

envision

identify

Page 12: © 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.

Product-Use-Experience CycleProduct-Use-Experience Cycle

© 2010 University of California, Irvine – André van der Hoek 12April 20, 2023 – 02:55:13

Stakeholders Users

Alternative Designs

Product

Experiences

have goals and anticipated uses for

lead to leads to

experienced by

leads tomay or may not matchexpectations of

Designers

generate

produce

envision

identify

Final Design

anticipate

predict

Page 13: © 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.

Creative Production CycleCreative Production Cycle

© 2010 University of California, Irvine – André van der Hoek 13April 20, 2023 – 02:55:13

Users

Alternative Designs

Product

Experiences

have goals and anticipated uses for

lead to leads to

experienced by

leads tomay or may not matchexpectations of

Designers

generate

produce

envision

identify anticipate

predictStakeholders

Final Design

Page 14: © 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.

Infinities, Wickedness, and SatisficingInfinities, Wickedness, and Satisficing

© 2010 University of California, Irvine – André van der Hoek 14April 20, 2023 – 02:55:13

Stakeholders Users

Alternative Designs

Final Design

Product

Experiences

have goals and anticipated uses for

lead to leads to

experienced by

leads tomay or may not matchexpectations of

Designers

generate

produce

predict

anticipate

envision

identify

Page 15: © 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.

Positioning Software DesignPositioning 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 Hoek 15April 20, 2023 – 02:55:13

Page 16: © 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.

Software Design: Our View in 121 and 122Software 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 Hoek 16April 20, 2023 – 02:55:13

All five types of design take place throughout the software life cycle

Page 17: © 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.

Software Design: Our View in 121 and 122Software 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 Hoek 17April 20, 2023 – 02:55:13

All five types of design have their own design methods and representations

Page 18: © 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.

Software Design: Our View in 121 and 122Software 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 Hoek 18April 20, 2023 – 02:55:13

All five types of design involve the design cycle

Users

Alternative Designs

Product

Experiences

Designers

Stakeholders

Final Design

Page 19: © 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.

Software Design: Our View in 121 and 122Software 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 Hoek 19April 20, 2023 – 02:55:13

All five types of design closely interrelate and must often be addressed in parallel

Users

Alternative Designs

Product

Experiences

Designers

Stakeholders

Final Design

Page 20: © 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.

Focus of 122Focus of 122

[Application design]

[Interaction design]

[Architecture design]

Implementation design

Maintenance design

© 2010 University of California, Irvine – André van der Hoek 20April 20, 2023 – 02:55:13

Users

Alternative Designs

Product

Experiences

Designers

Stakeholders

Final Design

Page 21: © 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.

© 2010 University of California, Irvine – André van der Hoek 21April 20, 2023 – 02:55:13

Transitioning to 122Transitioning to 122

In Informatics 121, much of the focus was on application design– creative thinking– learning to rely on colleagues– incomplete specifications– no implementation

Page 22: © 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.

© 2010 University of California, Irvine – André van der Hoek 22April 20, 2023 – 02:55:13

Transitioning to 122Transitioning 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

Page 23: © 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.

Practice, Practice, Practice…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 Hoek 23April 20, 2023 – 02:55:13

Page 24: © 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.

© 2010 University of California, Irvine – André van der Hoek 24April 20, 2023 – 02:55:13

Rough ScheduleRough 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

Page 25: © 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.

No Assignment Today…No Assignment Today…

…but please refresh your knowledge of UML before the next lecture

© 2010 University of California, Irvine – André van der Hoek 25April 20, 2023 – 02:55:13