Informatics 121 Software Design I Lecture 3 Duplication

  • Slides: 38
Download presentation
Informatics 121 Software Design I Lecture 3 Duplication of course material for any commercial

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. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 1

Discussion • There will be discussion this Friday • Please join your designated discussion

Discussion • There will be discussion this Friday • Please join your designated discussion • Note classroom: SE 2 1304 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 2

Intermezzo: what experts do • Experts prefer to work with others • Experts reach

Intermezzo: what experts do • Experts prefer to work with others • Experts reach out • Experts check with others continually • Experts socially embed and reinforce good practice • Experts agree to disagree SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 3

Today • Design cycle • Design practice • Design studio 1 SDCL Software Design

Today • Design cycle • Design practice • Design studio 1 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 4

Four types of software design what is it to accomplish? satisfactory experience application design

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 5

Design cycle synthesize analyze SDCL Software Design and Collaboration Laboratory evaluate Department of Informatics,

Design cycle synthesize analyze SDCL Software Design and Collaboration Laboratory evaluate Department of Informatics, UC Irvine sdcl. ics. uci. edu 6

Design cycle synthesize analyze SDCL Software Design and Collaboration Laboratory goals constraints assumptions decisions

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 7

Goals • A goal represents an explicit acknowledgment of a desired result that the

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 8

Constraints • A constraint represents an explicit acknowledgment of a condition that restricts the

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 9

Assumptions • An assumption represents a fact that is taken for granted, may or

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 10

Example assumptions • The average person weighs 85 kilograms • The library needs to

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 11

Decisions • A decision represents a specific choice of how to further the design

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 12

Example decisions • The fuselage and wings of the luxury airplane shall be made

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 13

Idea • An idea represents a thought or opinion, ranging from highly unformed to

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 14

Example ideas • What if the luxury airplane had a shower on board? •

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 15

Design work • Design work represents the individual or collaborative activity of engaging with

Design work • Design work represents the individual or collaborative activity of engaging with a design project at a detailed level – – – – SDCL thinking articulating context analyzing alternative ideas identifying constraints making decisions setting goals … Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 16

Opportunistic versus rationalistic design work unexplored idea SDCL Software Design and Collaboration Laboratory current

Opportunistic versus rationalistic design work unexplored idea SDCL Software Design and Collaboration Laboratory current decision Department of Informatics, UC Irvine sdcl. ics. uci. edu 17

Mixed opportunistic and rationalistic design work unexplored idea SDCL Software Design and Collaboration Laboratory

Mixed opportunistic and rationalistic design work unexplored idea SDCL Software Design and Collaboration Laboratory current decision Department of Informatics, UC Irvine sdcl. ics. uci. edu 18

Backtracking unexplored idea previous decision explored idea current decision SDCL Software Design and Collaboration

Backtracking unexplored idea previous decision explored idea current decision SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 19

Backtracking unexplored idea previous decision explored idea current decision SDCL Software Design and Collaboration

Backtracking unexplored idea previous decision explored idea current decision SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 20

Simultaneous exploration unexplored idea SDCL Software Design and Collaboration Laboratory current decision Department of

Simultaneous exploration unexplored idea SDCL Software Design and Collaboration Laboratory current decision Department of Informatics, UC Irvine sdcl. ics. uci. edu 21

Design cycle at the macro level: design process synthesize analyze SDCL Software Design and

Design cycle at the macro level: design process synthesize analyze SDCL Software Design and Collaboration Laboratory goals constraints assumptions decisions ideas Department of Informatics, UC Irvine evaluate sdcl. ics. uci. edu 22

Design process • A design process represents a planned course of action as to

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 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 23

Waterfall requirements phase design phase implementation phase testing phase SDCL Software Design and Collaboration

Waterfall requirements phase design phase implementation phase testing phase SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 24

Waterfall as a design process what is it to accomplish? satisfactory experience how does

Waterfall as a design process 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 25

Agile • • • SDCL Our highest priority is to satisfy the customer through

Agile • • • SDCL Our highest priority is to satisfy the customer through 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. Software Design and Collaboration Laboratory • • • 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. Department of Informatics, UC Irvine sdcl. ics. uci. edu 26

Agile as a design process what is it to accomplish? satisfactory experience how does

Agile as a design process 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 27

Other life cycle models • Extreme programming • Rapid prototyping • Spiral model •

Other life cycle models • Extreme programming • Rapid prototyping • Spiral model • Iterative development • Rational unified process • Synchronize-and-stabilize • … SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 28

Choosing a software life cycle • Choosing a software life cycle is choosing a

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 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 29

high Routine, adaptive, and original design projects complexity original adaptive low routine high low

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 30

Realistic design process what is it to accomplish? satisfactory experience how does one interact

Realistic design process 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 31

Backtracking is inevitable here, too what is it to accomplish? satisfactory experience how does

Backtracking is inevitable here, too 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 32

Minimize backtracking what is it to accomplish? satisfactory experience how does one interact with

Minimize backtracking 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? • Strive to minimize backtracking more than absolutely necessary • Strive to minimize backtracking later than absolutely necessary SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 33

Design an instant message system SDCL Software Design and Collaboration Laboratory Department of Informatics,

Design an instant message system SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 34

Design a word processor SDCL Software Design and Collaboration Laboratory Department of Informatics, UC

Design a word processor SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 35

Design the software to fly a drone SDCL Software Design and Collaboration Laboratory Department

Design the software to fly a drone SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 36

Design studio 1 • Your client is bigexpensivehome. com, a new home building company

Design studio 1 • Your client is bigexpensivehome. com, a new home building company that is seeking to design and build smart homes. The company has sought you out, because you are an excellent designer, and has asked you to design a home automation system. The company knows there are many different hardware gadgets, and has asked you to focus on the software through which the home owners will control those gadgets. All of the software design is in your hands. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 37

Design studio 1 • Identify the audience and other stakeholders • Identify possible goals,

Design studio 1 • Identify the audience and other stakeholders • Identify possible goals, constraints, and assumptions • Bring two printed copies to discussion, Friday – one for the TAs – one for your group SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl. ics. uci. edu 38