45
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 3 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

Informatics 121 Software Design I

  • Upload
    jera

  • View
    18

  • Download
    0

Embed Size (px)

DESCRIPTION

Informatics 121 Software Design I. Lecture 3 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. Today. Design cycle. Design. - PowerPoint PPT Presentation

Citation preview

Page 1: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 1

Informatics 121Software Design I

Lecture 3

Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

Page 2: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 2

Today

• Design cycle

Page 3: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 3

Design

• To decide upon a plan for change in the world that, when realized, satisfies stakeholders

Page 4: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 4

Design problem and solution

design problem design solution

Page 5: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 5

Design project

design problem design solution

design project

Page 6: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 6

Design cycle

analyze evaluate

synthesize

Page 7: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 7

Design cycle

analyze evaluate

synthesize

goalsconstraints

assumptionsdecisions

ideas

Page 8: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 8

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

Page 9: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 9

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

Page 10: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 10

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

Page 11: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 11

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

Page 12: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 12

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

Page 13: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 13

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

Page 14: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 14

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

Page 15: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 15

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

Page 16: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 16

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

Page 17: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 17

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

Page 18: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 18

Design cycle at the micro level: design work

analyze evaluate

synthesize

goalsconstraints

assumptionsdecisions

ideas

Page 19: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 19

Design work

• Design work represents the individual or collaborative activity of engaging with a design project at a detailed level– thinking– articulating context– analyzing alternative ideas– identifying constraints– making decisions– setting goals– …

Page 20: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 20

current decisionexplored idea

Opportunistic versus rationalistic design work

unexplored idea

Page 21: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 21

Mixed opportunistic and rationalistic design work

current decisionexplored idea

unexplored idea

Page 22: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 22

Backtracking

current decisionexplored idea

unexplored idea previous decision

Page 23: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 23

Backtracking

current decisionexplored idea

unexplored idea previous decision

Page 24: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 24

Simultaneous exploration

current decisionexplored idea

unexplored idea

Page 25: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 25

Design cycle at the macro level: design process

analyze evaluate

synthesize

goalsconstraints

assumptionsdecisions

ideas

Page 26: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 26

Design process

• A design process represents a planned course of action as to how to tackle a design problem to arrive at a design solution– where to focus effort– what methods to use– whom to involve

• A design process may be defined up-front in its entirety, or defined in increments as the design project unfolds

Page 27: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 27

Linear process

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

Page 28: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 28

Waterfall

requirements phase

design phase

implementation phase

testing phase

Page 29: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 29

Waterfall as a design process

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

Page 30: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 30

Agile

• Our highest priority is to satisfy the customerthrough early and continuous delivery of valuable software.

• Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

• Business people and developers must work together daily throughout the project.

• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

• The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

• Working software is the primary measure of progress.

• Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

• Continuous attention to technical excellence and good design enhances agility.

• Simplicity—the art of maximizing the amount of work not done—is essential.

• The best architectures, requirements, and designs emerge from self-organizing teams.

• At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 31: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 31

Agile as a design process

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

Page 32: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 32

Other life cycle models

• Extreme programming

• Rapid prototyping

• Spiral model

• Iterative development

• Rational unified process

• Synchronize-and-stabilize

• …

Page 33: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 33

Choosing a software life cycle

• Choosing a software life cycle is choosing a design process

• One has to make sure the design process matches the nature of the design problem

• One has to make sure to remain flexible in adjusting the design process when the project so warrants

Page 34: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 34

Design is a wicked problem

• The problem is not understood until after the formulation of a solution

• Wicked problems have no stopping rule• Solutions to wicked problems are not right or wrong• Every wicked problem is essentially novel and unique• Every solution to a wicked problem is a “one shot operation”• Wicked problems have no given alternative solutions

To decide upon a plan for change in the world that, when realized, satisfies stakeholders

Page 35: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 35

From software life cycles to design methods

design problem design solution

design project

Which set of design methods is appropriate to use, when,to successfully complete a design project?

Page 36: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 36

Choosing design methods to apply

• Focus on essence

• Focus on the unknown

• Focus on making progress

Page 37: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 37

Focus on essence

• Every design problem has an essence, the key – and often most difficult – part that must be understood and addressed ‘right’ for the design solution (plan for change in the world) to satisfy the stakeholders

• Postponing understanding and addressing the essence of a design problem incurs a significant risk of rework at a later time

Page 38: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 38

Focus on the unknown

• Every design problem involves knowledge deficiencies – gaps in the understanding of the design problem and its possible solutions – that must be addressed for the design solution (plan for change in the world) to satisfy the stakeholders

• Postponing understanding and addressing knowledge deficiencies incurs a significant risk of rework at a later time

Page 39: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 39

Focus on making progress

• Every design problem involves times during which the design project gets stuck; focusing effort elsewhere and continuing to make progress is often the right approach in response

• Continuing to focus on a stuck issue for extended periods of time tends to be effort that is wasted

Page 40: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 40

Realistic design process

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

Page 41: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 41

Backtracking is inevitable here, too

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

Page 42: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 42

Minimize backtracking

satisfactory experience

plan for realization

change in the world

what is it to accomplish?

how does one interact with it?

what is its conceptual core?

what are its implementation details?

• Strive to minimize backtracking more than absolutely necessary• Strive to minimize backtracking later than absolutely necessary

Page 43: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 43

Routine, adaptive, and original design projects

high

low

com

plex

ity

high low

familiarity

routine

adaptive

original

Page 44: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 44

Design studio 1

• You are tasked with designing “social table”, a software system that enables restaurant customers to place orders, but also socially interact about their others with others in the restaurant (and perhaps beyond)

• Identify – audience – other stakeholders

• Identify– goals– constraints

• Clearly document these in a typewritten document, to be handed in on Thursday, October 17, at the beginning of class

Page 45: Informatics 121 Software Design I

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 45

Design studio 1

• Assignment is on an individual basis, but will be continued in class on Thursday

• You should focus on generating broad lists; that is, as many items in each list as possible– four separate lists (audience, stakeholders, goals, constraints)

• The overall focus is on brainstorming– your document does not need to have lengthy narratives (but should

be clear)