Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve...

72
Super-Design Informatics 122 Alex Baker
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    220
  • download

    1

Transcript of Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve...

Page 1: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Super-Design

Informatics 122

Alex Baker

Page 2: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

SystemDesign

Arch.

Imp.Design

Code

In this class we’ve gone…

Page 3: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Recapping 121 System design

describes what the software system should do focus towards addressing Goal and Domain of Use

“How do we fundamentally approach the problem?” typically represents an intermediate “design in progress” architecture design can be part of system design

Implementation design describes what the implementer should do focus towards addressing Domain of Materials

“How do we make the approach reality?” typically represents a final “completed design” module design can be part of implementation design

Page 4: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Recapping 121

A system design captures the essence of the solution

An implementation design captures the full solution

Page 5: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

SystemDesign

Arch.

Imp.Design

Code

Putting it back in perspective

Page 6: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

A few subjects today

For each:

A high-level explanation

How this can be even worse on “big” projects

Page 7: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

1) Planning for Change? What does that mean?

Where does it happen?

Waterfall lifecycle model

Iterative approaches

Agile approaches

Page 8: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

A linear process – No Change?

Waterfall-like models System design sets up implementation

designProvides conceptual guidanceSpecifies parametersSuggests structureSuggests modules and work divisions

Page 9: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

A linear process?

Goal

System Design

Implementation Design

Code

Page 10: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

A linear process?

Goal

System Design

Implementation Design

Code

Page 11: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

An iterative process - Completely?

New designs, based on results from previous iterations – no actual reuse?

Page 12: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

The agile process?

Reworking, refactoring

Page 13: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

The agile process?

Reworking, refactoring

Page 14: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

In reality

Debugging Adjusting Expanding Refactoring Redesigning Re-architecting Reconceiving

Page 15: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Why do we change?

Desirable Feasible

Page 16: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

In theory:

Desirable Feasible

System design

Page 17: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

In theory:

Desirable Feasible

System design

Implementation design

Page 18: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

In theory:

Desirable Feasible

System design

Implementation design

Implementations

Page 19: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

In theory:

But we aren’t always right the first time

Desirable Feasible

Page 20: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

But we aren’t always right the first time

On the other hand

Desirable Feasible

System design

Implementation design

Implementations

Page 21: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

On the other hand

Desirable Feasible

System design

Implementation design

Implementations

Page 22: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

On the other hand

Some degree of learning and changing

How can we apply what we are learning most easily?

Desirable Feasible

Page 23: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Software processes No process is truly linear or iterative

We don’t get it right the first time

Code, designs, architectures, concepts are often reused when we start over

Many changes Many ways to design for change

Page 24: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Consider Cake

For example, supposeConceived, designed, codedWe find the layered system is cumbersome

Where are changes needed? Does the higher level accommodate them?

Page 25: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Cake: Debugging

Clicking an object sometimes doesn’t select itCan we find the place in the code that causes

this problem?Can it be fixed with minimal rippling?

Our gesture tool is clunkyHave we reused this? Can it be fixed?

Page 26: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Cake: Expanding

Along existing axis…Adding more object types Implementing new layer actions

Fairly easy? We know how to design for these changes

Page 27: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Cake: Recoding or Redesigning?

Changing the layer modelNot making each layer type-specific

The program’s response time is too slow

Making UML instead of Architecture

Page 28: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Cake: Reconceiving?

Making UML instead of Architecture

Layers too difficult to visualize3d view of the layers

Should we even be using layers?Goals of exploring, comparing

Page 29: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Designing for Change

How can we design for these changes?

Should we?

What are the tradeoffs?

Page 30: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

When design is more than UML

Large-scale Long-term Existing systems and frameworks

These challenges are greater

Page 31: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: Large Scale Design

Page 32: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: Large Scale Design More people working

More people changing Code level changes become design changes.. Does a design accommodate this?

More places to change Harder to fix, harder to contain

Design might need to be divided among several

Page 33: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: Long-term Design

Page 34: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: Long-term Design

Needs more likely to change over timeUnderstanding of needs improvesStandards changePlatforms changeMarket pressures for more features

More problematic to make changesDevelopers change, assumptions lost

Page 35: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: Existing Materials

Can be harder to changeMay not have full access to source, etc.May not understand what you do haveMay not be allowed to change

Page 36: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Changes: “Real” projects What can we do? No single answer, but:

Learning before the real thingRigor and wisdom in designWell-reasoned adjustments

Reuse, patterns, styles, frameworks

Awareness of these issuesPractice (hint, hint)

Page 37: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

2) Unified Design Vision

We saw this in the Layered Design exercise

Also a problem in Cake

Design drift, design decay

Page 38: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Choices have subtle effects

One-click interaction in Cake

Not having an Object class in T+M

Not allowing 3 consecutive pieces in Jetris

Page 39: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

When decisions are distributed

Elegance difficult to maintain across many people

Especially if we consider code-as-design changes too

Page 40: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

(An Abstract) Example

Page 41: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

When design is more than UML

Again…

Large-scale Long-term Existing systems and frameworks

Page 42: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Consistency: Large Scale Lots of design work, lots of people

needed?

Possible solutionsBrooks’ Surgical TeamGuidelinesFrameworksProduct Lines

Page 43: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Consistency: Long Term

Designer turnover / legacy systems

Design Drift

Design Decay

Page 44: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Consistency: Existing Frameworks

Page 45: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Consistency: Existing Frameworks

Must conform to existing stuff

Brooks’ ConformityAdhering to the real world one of software’s

issues

Page 46: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

3) Representations

There is a tradeoff in switching representations

Page 47: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Architecture (Buildings)

Page 48: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Process Design

Page 49: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Multiple Representations Translating between them Easier in some fields than others

May requireLanguage translationAdditional design decisions

Waterfall model

Page 50: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Single Representation

Using the same for multiple purposesLikely to be subpar for one or the other

Agile’s approach, code for everythingExpressionCommunicationReflective conversing

Page 51: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

When design is more than UML

Again…

Large-scale Long-term Existing systems and frameworks

Page 52: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Representations: Large Scale

SingleCode becomes especially tough

Multiple“Distance” increasesComplexity (translation) gets worse

Page 53: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Representations: Long Term

SingleChanges at multiple levels can affect it

MultipleKeeping multiple documents up to dateConsistency and traceability of these changes

Page 54: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Representations: Existing Frameworks

Single (same as framework)Can constrain your only mode of working (!)

MultipleNeed to avoid misrepresenting the

framework’s needs across documents

Page 55: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Unique Requirements

Banks Satellites Telephone Networks Car Driving Software

Page 56: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Unique Reqs - Bank Software

Verifiable

Long termSoftware must run for decade+Laws changeFinance packages change

Page 57: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Unique Reqs - Satellites Software must be reliable

Can it be proven Can we fix it remotely?

Long term High cost of building and installing

Highly interconnected System Design UML not the answer

Page 58: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Unique Reqs – Telephone Network

Reliability Distribution Fault tolerance

How do we accommodate outagesWill losing one node cripple the system?

Different representations needed

Page 59: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Unique Reqs – Car Driving SW

Reliability

Can we count on input from sensors?

What happens when there’s an error?

UML far from enough

Page 60: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Wrapup Designing for change Multiple designer issues Representation issues

Large scale Long term Within existing frameworks

UML often not enough – need “meta-design”

Page 61: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Basics Design an independent tool in an office productivity suite

the design of your tool should have useful and real functionality the design of your tool should be implementable, in a week, by

another team the design of your tool should be complete

It is your task to balance the functionality with the need for a real implementation

Do not forget about extensibility Do not forget about the lessons learned in this class

Page 62: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Timeline

Monday Nov 13th (Week 8)10:00: e-mail preliminary system design and

preliminary implementation design to Alex and Andre

14:00: feedback from Alex and Andre in class, 15 minutes per group; additional time can be scheduled after class

Page 63: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Timeline

14:00 Wednesday Nov 15th (Week 8) bring final system design and final implementation design to

class hand off final system design and final implementation design

to the group that will implement your design (30 min) receive final system design and final implementation design

from the group whose design you will implement (30 min)

14:00 Friday Nov 17th (Week 8) you can send one e-mail with clarification questions to the

design team – please cc Andre and Alex on the email

14:00 Saturday Nov 18th (Week 8) the design team must respond to the e-mail

Page 64: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Timeline

14:00 Wednesday Nov 22nd (Week 9) bring demoable implementation of the design that

you were tasked to implement you may choose to deviate your implementation

from the design that you received in the first place but you must document and motivate your deviations

Also, 10:00 you will receive details of surprise assignment via e-mail

Page 65: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Timeline

14:00 Monday Nov 27th (Week 10)bring surprise assignment

Page 66: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Grading considerations Fill out an evaluation sheet (available at class webpage)

due once a week: Wednesday of week 8 Wednesday of week 9 Wednesday of week 10

We will look at the designs and take them into account when grading the implementations If the design you receive appears subpar, we will consider this We expect an earnest, hardworking effort no matter what,

though

Page 67: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Groups Group 1:

MIKE WADHERA, MITCH WILLIAMS, JULIE RICO, SAM ARCHER, SAM CHANG

A mini spreadsheet Group 2:

KYLE STRASSER, CHRIS BAKER, SEAN CASHIN, JAMES GARY, NICK INGERSOLL

A mini database Group 3:

GABRIELA MARCU, ANGELO PIOLI, BRYANT HORNICK, NG WENG LEONG, PETER LEE

A mini web authoring tool Group 4:

JUNG HO KIM, CYNTHIA K. LAM, MICHELLE ALVAREZ, JASON DRAMBY A mini slide authoring and presentation tool

Focus on a simple implementation All projects need to be able to save and open files We will guide you during Monday’s meetings, adaptability

Page 68: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Group 1: Mini Spreadsheet Excell-like, input and output via cells Should be able to set up a cell whose

result is a formula, based on one or more other cells

Should be able to, for example, have a cell be the sum of several other cells’ results

Nested operations

Page 69: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Group 2: Mini Database

Access-like Choose your own interaction method Need to be able to set up tables and to

perform complex queries on them (selection according to Boolean operations)

May require a bit of research

Page 70: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Group 3: Mini web authoring tool

Two panes, one for editing, one preview pane

Should be able to handle at least basic html: formatting, simple tables, bullet lists

Should be expandable to accommodate new tags

Should be able to save viable .html files

Page 71: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Group 4: A mini slide authoring and presentation tool Similar to Powerpoint Should allow for formatting, bulleting Need to be able to insert simple drawn

shapes Need to be able to “give a presentation”,

allow a slideshow with forward and backward progress through the slides

Page 72: Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Assignment 6 – Groups Group 1:

MIKE WADHERA, MITCH WILLIAMS, JULIE RICO, SAM ARCHER, SAM CHANG

A mini spreadsheet Group 2:

KYLE STRASSER, CHRIS BAKER, SEAN CASHIN, JAMES GARY, NICK INGERSOLL

A mini database Group 3:

GABRIELA MARCU, ANGELO PIOLI, BRYANT HORNICK, NG WENG LEONG, PETER LEE

A mini web authoring tool Group 4:

JUNG HO KIM, CYNTHIA K. LAM, MICHELLE ALVAREZ, JASON DRAMBY A mini slide authoring and presentation tool

Focus on a simple implementation All projects need to be able to save and open files We will guide you during Monday’s meetings, adaptability