Upload
brenda-stanley
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
© 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.
© 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
© 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
© 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
© 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
© 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– …
© 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!
© 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]
…
© 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
…
© 2010 University of California, Irvine – André van der Hoek 10April 20, 2023 – 02:55:13
DesignDesign
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
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
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
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
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
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
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
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
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
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
© 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
© 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
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
© 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
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