Informatics 223 Applied Software Design Techniques

Informatics 223
Applied Software Design Techniques
Lecture 4
Duplication of course material for any commercial purpose without the explicit written
permission of the professor is prohibited.
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 1
Today
• The architecture and UML diagrams
• Expert practices
• Defining design
• Onward
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 2
The architecture and UML diagrams
• Tell us about the diagrams themselves
– what do we see?
• Tell us about the process of creating the diagrams
• Tell us about the value of the diagrams
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 3
Experts borrow
• Experts prefer solutions that they know work
• Experts look around
• Experts take inspiration from wherever they can
• Experts use analogy
• Experts use design methods (selectively)
• Experts network
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 4
Experts break the rules
• Experts relax constraints
• Experts reshape the problem space
• Experts use notations as lenses, rather than straightjackets
• Experts design throughout the creation of software
• Experts do not feel obliged to use things as intended
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 5
Our definition
To decide upon a plan for a novel change in the world that,
when realized, satisfies stakeholders
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 6
Design
SDCL
designer
plan
maker
change in the world
audience
experiences
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
other stakeholders
sdcl.ics.uci.edu 7
Software design
software designer
source code
compiler*
runnable program
users
experiences
other stakeholders
[* or, at times, the person who installs and configures the software instead of the compiler]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 8
Feasibility and desirability
feasibility
SDCL
designer
plan
maker
change in the world
audience
experiences
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
other stakeholders
sdcl.ics.uci.edu 9
Feasibility and desirability
feasibility
designer
plan
maker
change in the world
audience
experiences
other stakeholders
desirability
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 10
Four types of design
what is it to accomplish?
desirability
how does one interact with it?
what is its conceptual core?
feasibility
what are its implementation details?
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 11
Four types of design
what is it to accomplish?
satisfactory experience
how does one interact with it?
change in the world
what is its conceptual core?
plan for realization
what are its implementation details?
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 12
Four types of software design
what is it to accomplish?
satisfactory experience
application design
how does one interact with it?
interaction design
change in the world
what is its conceptual core?
plan for realization
architecture design
what are its implementation details?
implementation design
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 13
Design an instant message system
what is it to accomplish?
satisfactory experience
application design
how does one interact with it?
interaction design
change in the world
what is its conceptual core?
plan for realization
architecture design
what are its implementation details?
implementation design
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 14
Design a word processor
what is it to accomplish?
satisfactory experience
application design
how does one interact with it?
interaction design
change in the world
what is its conceptual core?
plan for realization
architecture design
what are its implementation details?
implementation design
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 15
Design cycle
synthesize
analyze
SDCL
Software Design and
Collaboration Laboratory
evaluate
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 16
Design cycle
synthesize
analyze
SDCL
Software Design and
Collaboration Laboratory
goals
constraints
assumptions
decisions
ideas
Department of Informatics, UC Irvine
evaluate
sdcl.ics.uci.edu 17
Goals
• A goal represents an explicit acknowledgment of a desired
result that the eventual design solution must achieve
• Goals may be suggested by any of the stakeholders
–
–
–
–
client
other stakeholders
audience
designer
• Goals change over time, and may or may not be (partially)
addressed by the current state of the design solution
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 18
Example goals
• The luxury airplane must be 10% more fuel-efficient than its
predecessor
• The library must be able to hold 250,000 books
• The award must be representative of the professional society
that is commissioning it
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 19
Constraints
• A constraint represents an explicit acknowledgment of a
condition that restricts the design project
• Constraints may be suggested by any of the stakeholders
–
–
–
–
client
other stakeholders
audience
designer
• Constraints change over time, and may or may not be
(partially) met by the current state of the design project
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 20
Example constraints
• The luxury airplane must weigh less than 50,000 pounds
• The library must not violate federal disability laws
• The award must cost less than $1000 to produce
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 21
Assumptions
• An assumption represents a fact that is taken for granted,
may or may not be true, and influences the design project
• Assumptions may be made by any of the stakeholders
–
–
–
–
client
other stakeholders
audience
designer
• Assumptions change over time, and may or may not be
(partially) fulfilled by the current state of the design project
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 22
Example assumptions
• The average person weighs 85 kilograms
• The library needs to serve the community with an area
stocked with personal computers
• The professional society’s logo is red and white, which
therefore must be its preferred colors for the award
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 23
Decisions
• A decision represents a specific choice of how to further the
design solution, typically after some amount of consideration
• Decisions are the sole responsibility of the designer, though
they can be (heavily) influenced by other stakeholders
• Decisions change over time, and new decisions may or may
not (partially) align with the current state of the design
project
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 24
Example decisions
• The fuselage and wings of the luxury airplane shall be made
out of carbon composites
• The library shall have bookshelves that are not movable
• The award shall be made out of colored glass
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 25
Idea
• An idea represents a thought or opinion, ranging from highly
unformed to fully formed, that potentially shapes the design
solution
• Ideas typically are the sole responsibility of the designer,
though they may be inspired by many different sources
• Ideas change over time, and new ideas may or may not
(partially) align with the current state of the design project
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 26
Example ideas
• What if the luxury airplane had a shower on board?
• Perhaps the library membership cards should have RFID tags,
so a visitor can simply grab the books they want, walk by an
automated scanner, and have their books be on loan
• I am thinking that the award should be a variant of last year’s
award
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 27
Design an instant message system
synthesize
analyze
SDCL
Software Design and
Collaboration Laboratory
goals
constraints
assumptions
decisions
ideas
Department of Informatics, UC Irvine
evaluate
sdcl.ics.uci.edu 28
Design a word processor
synthesize
analyze
SDCL
Software Design and
Collaboration Laboratory
goals
constraints
assumptions
decisions
ideas
Department of Informatics, UC Irvine
evaluate
sdcl.ics.uci.edu 29
Design the software to fly a drone
synthesize
analyze
SDCL
Software Design and
Collaboration Laboratory
goals
constraints
assumptions
decisions
ideas
Department of Informatics, UC Irvine
evaluate
sdcl.ics.uci.edu 30
high
Routine, adaptive, and original design projects
complexity
original
adaptive
low
routine
high
low
familiarity
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 31
high
Design an instant message system
complexity
original
adaptive
low
routine
high
low
familiarity
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 32
high
Design a word processor
complexity
original
adaptive
low
routine
high
low
familiarity
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 33
high
Design the software to fly a drone
complexity
original
adaptive
low
routine
high
low
familiarity
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 34
Design is difficult!
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 35
In this class…
• …we introduce the practices of expert software designers
that help ameliorate these difficulties
• …we study core ways in which software designers structure
their solutions
• …we practice!
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 36
Our focus
what is it to accomplish?
satisfactory experience
application design
how does one interact with it?
interaction design
change in the world
what is its conceptual core?
plan for realization
architecture design
what are its implementation details?
implementation design
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 37
Onward
• Read all of the papers listed on the web site for April 20
• Prepare four questions, observations, or assertions about the
papers and their overall content (printed, with name and
student id)
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 38