© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06...

44
© 2010 University of California, Irvine – André van der Hoek 1 June 23, 2022 – 09:07:18 Informatics 121 Software Design I Lecture 10 André van der Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06...

Page 1: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 1April 18, 2023 – 20:31:46

Informatics 121Software Design IInformatics 121

Software Design I

Lecture 10

André van der Hoek & Alex Baker

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

Page 2: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

Today’s LectureToday’s Lecture

Design notations Design Studio III continued

© 2010 University of California, Irvine – André van der Hoek 2April 18, 2023 – 20:31:46

Page 3: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 3April 18, 2023 – 20:31:46

The Essence of a Design Problem – Where?The Essence of a Design Problem – Where?

Structure Context Communication User interface Persistence Algorithms Naming Interchange …

Internal data structures Error handling Distribution Glue …

Page 4: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 4April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Architecture descriptionDesign

Page 5: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 5April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Architecture descriptionDesign

or...

Page 6: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 6April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Design

Sta

tech

arts

Page 7: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 7April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Design

Sta

tech

arts

or...

Page 8: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 8April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Design

UML

Page 9: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 9April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

Design

UML

or...

Page 10: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 10April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

DesignData Flow Diagrams

Page 11: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 11April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

DesignData Flow Diagrams

or...

Page 12: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 12April 18, 2023 – 20:31:46

Design LanguagesDesign Languages

DesignData Flow DiagramsEtc., etc., etc.

Page 13: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 13April 18, 2023 – 20:31:46

Design Languages: Our ApproachDesign Languages: Our Approach

Design

Data Flow Diagrams

UML Pi c

alcu

lus

Code

Pseudo code

Text

Sta

tech

arts

JSD

Boo

chSketches

Any and all as needed

Architecture description

Page 14: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

Which Language Do You Want to Use?Which Language Do You Want to Use?

© 2010 University of California, Irvine – André van der Hoek 14April 18, 2023 – 20:31:46

What questions are you trying to answer about a potential design?

Is the approximation “high fidelity”?– does it need to be?

How easily can you create and reflect on the design?

How easily can others interpret and provide feedback on the design?

Page 15: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 15April 18, 2023 – 20:31:46

The Essence of a Design Problem – Where?The Essence of a Design Problem – Where?

Structure Context Communication User interface Persistence Algorithms Naming Interchange …

Internal data structures Error handling Distribution Glue …

Page 16: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 16April 18, 2023 – 20:31:46

StructureStructure

Why may the essence be found here?– what if the design concerns a distributed application?– what if the design concerns a highly scalable application?– what if the design concerns a business application with

highly changeable business rules?– …

What may be a good design notation?– software architecture diagrams– UML2 component diagrams– simple drawings

Page 17: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 17April 18, 2023 – 20:31:46

Structure – ExamplesStructure – Examples

Page 18: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 18April 18, 2023 – 20:31:46

Structure – ExamplesStructure – Examples

Page 19: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 19April 18, 2023 – 20:31:46

ContextContext

Why may the essence be found here?– what if the design concerns an integrated system

constituting many existing systems?– what if the design concerns an application that will

automate a significant portion of an organization’s business?

– what if the design concerns an application spanning multiple businesses?

– …

What may be a good design notation?– context diagrams– informal drawings of external entities

Page 20: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 20April 18, 2023 – 20:31:46

Context – ExamplesContext – Examples

Page 21: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 21April 18, 2023 – 20:31:46

Context – ExamplesContext – Examples

Page 22: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 22April 18, 2023 – 20:31:46

CommunicationCommunication

Why may the essence be found here?– what if the design concerns a sensor network consisting of

many different sensors emitting much different data?– what if the design concerns network quality of service?– what if the design concerns a broadcasting satellite?– what if the design concerns a document-centric system?– …

What may be a good design notation?– labeled transition systems– UML sequence diagrams– data flow diagrams– protocols

Page 23: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 23April 18, 2023 – 20:31:47

Communication – ExamplesCommunication – Examples

Page 24: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 24April 18, 2023 – 20:31:47

Communication – ExamplesCommunication – Examples

Page 25: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 25April 18, 2023 – 20:31:47

User InterfaceUser Interface

Why may the essence be found here?– what if the design concerns real-time visualization?– what if the design concerns multiple kinds of displays?– what if the design concerns a drawing program?– what if the design concerns a new interaction mechanism?– what if the design concerns an e-commerce system?– …

What may be a good design notation?– sketches– mock-ups– interaction scenarios– prototypes

Page 26: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 26April 18, 2023 – 20:31:47

User Interface – ExamplesUser Interface – Examples

Page 27: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 27April 18, 2023 – 20:31:47

User Interface – ExamplesUser Interface – Examples

Page 28: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 28April 18, 2023 – 20:31:47

PersistencePersistence

Why may the essence be found here?– what if the design concerns a database application?– what if the design concerns a system that must be fail

safe?– what if the design concerns an application that must span

multiple sessions?– …

What may be a good design notation?– entity-relationship diagram– file format definition– UML class diagram– database schema

Page 29: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 29April 18, 2023 – 20:31:47

Persistence – ExamplesPersistence – Examples

Page 30: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 30April 18, 2023 – 20:31:47

Persistence – ExamplesPersistence – Examples

Page 31: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 31April 18, 2023 – 20:31:47

AlgorithmsAlgorithms

Why may the essence be found here?– what if the design concerns a search engine?– what if the design concerns encryption?– what if the design concerns a scheduling tool?– what if the design concerns a file converter?– …

What may be a good design notation?– pseudo code– flow chart– Petri net

Page 32: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 32April 18, 2023 – 20:31:47

Algorithms – ExamplesAlgorithms – Examples

Page 33: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 33April 18, 2023 – 20:31:47

Algorithms – ExamplesAlgorithms – Examples

Page 34: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 34April 18, 2023 – 20:31:47

NamingNaming

Why may the essence be found here?– what if the design concerns a distributed system?– what if the design concerns replicated data?– what if the design concerns a complex set of interrelated

data items?– …

What may be a good design notation?– examples and counterexamples– regular expressions

Page 35: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 35April 18, 2023 – 20:31:47

Naming – ExamplesNaming – Examples

http://www.clothes.com/mens/shirts/formal.html

http: protocol // separators www.clothes.com/ domain name mens/ subdirectory name shirts/ subdirectory name formal.html document name (Web page)

Page 36: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 36April 18, 2023 – 20:31:47

Naming – ExamplesNaming – Examples

D:/eclipse/edu/uci/isr/palantir/core/PalantirPlugin:1.2::.80c318ce.109c2515402.f96511d31371ce2.0::null

artifactID = filename:VID::wsID::parentIDparentID = artifactID | nullVID = [0-9.]*wsID = [a-b0-9.]*filename = <<continue with regular expression for pathnames>>

Page 37: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 37April 18, 2023 – 20:31:47

InterchangeInterchange

Why may the essence be found here?– what if the design concerns a manufacturers supply chain

management system?– what if the design concerns a credit report system?– what if the design concerns an airline booking system?– …

What may be a good design notation?– ontology– data declarations– application programmer interface

Page 38: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 38April 18, 2023 – 20:31:47

Interchange – ExamplesInterchange – Examples

Page 39: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 39April 18, 2023 – 20:31:47

Interchange – ExamplesInterchange – Examples

Page 40: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 40April 18, 2023 – 20:31:47

The Essence of a Design Solution – Where?The Essence of a Design Solution – Where?

Structure Context Communication User interface Persistence Algorithms Naming Interchange …

Internal data structures Error handling Distribution Glue …

Page 41: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

Which Language Do You Want to Use?Which Language Do You Want to Use?

© 2010 University of California, Irvine – André van der Hoek 41April 18, 2023 – 20:31:47

What questions are you trying to answer about a potential design?

Is the approximation “high fidelity”?– does it need to be?

How easily can you create and reflect on the design?

How easily can others interpret and provide feedback on the design?

Page 42: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

© 2010 University of California, Irvine – André van der Hoek 42April 18, 2023 – 20:31:47

Design Languages: Our ApproachDesign Languages: Our Approach

Design

Data Flow Diagrams

UML Pi c

alcu

lus

Code

Pseudo code

Text

Sta

tech

arts

JSD

Boo

chSketches

Any and all as needed

Architecture description

Page 43: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

Design Studio III – Part IIDesign Studio III – Part II

Review the designs of three other groups– per design, deliver a type-written document detailing both good

aspects (praise) and “bad” aspects (problems) of the design

Due Tuesday November 23, at the beginning of class– bring four copies

Remember everything we have talked about, audience, uses, experiences, stakeholders, goals, decisions, plan for realization, …

You should judge the functionality, motivation, and clarity of the designs you are given, as well as the design process followed

© 2010 University of California, Irvine – André van der Hoek 43April 18, 2023 – 20:31:47

Page 44: © 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &

Design Studio III – Part IIDesign Studio III – Part II

Team 1: team 2, 3, 4 Team 2: team 3, 4, 5 Team 3: team 4, 5, 6 Team 4: team 5, 6, 7 Team 5: team 6, 7, 8 Team 6: team 7, 8, 9 Team 7: team 8, 9, 10 Team 8: team 9, 10, 11 Team 9: team 10, 11, 12 Team 10: team 11, 12, 1 Team 11: team 12, 1, 2 Team 12: team 1, 2, 3

© 2010 University of California, Irvine – André van der Hoek 44April 18, 2023 – 20:31:48