Presentation is loading. Please wait.

Presentation is loading. Please wait.

Informatics 121 Software Design I

Similar presentations


Presentation on theme: "Informatics 121 Software Design I"— Presentation transcript:

1 Informatics 121 Software Design I
Lecture 7 André van der Hoek Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. December 4, 2018 – 19:10:14 (c) 2007 University of California, Irvine – André van der Hoek

2 © 2007 University of California, Irvine – André van der Hoek
Today’s Lecture System design Essence of a design solution Impromptu sketches December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

3 © 2007 University of California, Irvine – André van der Hoek
Informatics 121 View System design describes what the software system should do “how does it fundamentally approach solving the problem?” focuses more on desirability typically represents an intermediate “design in progress” typically captures the overall, essential framing of the solution Implementation design describes what the implementer should do “how do we make the approach reality?” focuses more on feasibility typically represents a final “completed design” typically captures a fully detailed roadmap December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

4 © 2007 University of California, Irvine – André van der Hoek
Informatics 121 View A system design is problem solving aimed at customers, implementation designers, tester, and the system designer themselves An implementation design is creating a roadmap aimed at programmers, testers, feedback to system designer Both require creativity, flexibility and design December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

5 The Essence of a Design Solution – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange Internal data structures Error handling Distribution Glue December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

6 The Essence of a Design Solution – Where?
Often, the essence is located in multiple places, related or unrelated internal data structures and persistence communication and protocols user interface, persistence, and internal data structure The essence usually constitutes a nucleus of concerns of high importance and high impact The essence needs to be detailed at an appropriate depth in one or more suitable representations These representations, in turn, each need to be specified in one or more appropriate languages December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

7 © 2007 University of California, Irvine – André van der Hoek
Structure Why may the essence be found here? 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 UML2 component diagrams simple drawings December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

8 © 2007 University of California, Irvine – André van der Hoek
Structure – Examples December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

9 Architecture – Examples
Not as formal, or even as informative, but helps people understand whats going on December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

10 © 2007 University of California, Irvine – André van der Hoek
Context Why may the essence be found here? 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

11 © 2007 University of California, Irvine – André van der Hoek
Context – Examples December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

12 © 2007 University of California, Irvine – André van der Hoek
Context – Examples December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

13 © 2007 University of California, Irvine – André van der Hoek
Communication 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

14 Communication – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

15 Communication – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

16 Communication – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

17 © 2007 University of California, Irvine – André van der Hoek
User 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 paradigm? what if the design concerns an e-commerce system? What may be a good design notation? sketches mock-ups interaction scenarios prototypes December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

18 User Interface – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

19 User Interface – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

20 © 2007 University of California, Irvine – André van der Hoek
Persistence 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

21 Persistence – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

22 Persistence – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

23 © 2007 University of California, Irvine – André van der Hoek
Algorithms 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

24 © 2007 University of California, Irvine – André van der Hoek
Algorithms – Examples public boolean moveRobot (Robot aRobot) {     //IF robot has no obstacle in front THEN         // Call Move robot         // Add the move command to the command history         // RETURN true     //ELSE         // RETURN false without moving the robot     //END IF } December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

25 © 2007 University of California, Irvine – André van der Hoek
Algorithms – Examples December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

26 © 2007 University of California, Irvine – André van der Hoek
Algorithms – Examples December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

27 © 2007 University of California, Irvine – André van der Hoek
Naming Why may the essence be found here? 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

28 © 2007 University of California, Irvine – André van der Hoek
Naming – Examples http: protocol // separators domain name mens/ subdirectory name shirts/ subdirectory name formal.html document name (Web page) December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

29 © 2007 University of California, Irvine – André van der Hoek
Naming – Examples D:/eclipse/edu/uci/isr/palantir/core/PalantirPlugin:1.2::.80c318ce.109c f96511d31371ce2.0::null artifactID = filename:VID::wsID::parentID parentID = artifactID | null VID = [0-9.]* wsID = [a-b0-9.]* filename = <<continue with regular expression for pathnames>> December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

30 © 2007 University of California, Irvine – André van der Hoek
Interchange Why may the essence be found here? what if the design concerns a manufacturer’s 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 December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

31 Interchange – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

32 Interchange – Examples
December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

33 The Essence of a Design Solution – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange Internal data structures Error handling Distribution Glue December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

34 Pocket Guide to System Design
Consider your goals and identify key concerns what is at the heart of the system? what do people (including you) need to understand about how this system will solve the problem being faced? Choose design representations and languages that will help you explain these issues what depth of understanding is needed? what does your audience already know? Remember to reflect on these representations as you progress you will not have all the answers up front – change course as needed This slide is by far not perfect. But I think something like it is needed? December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek

35 © 2007 University of California, Irvine – André van der Hoek
Design Studio I Forthcoming in ! December 4, 2018 – 19:10:15 © 2007 University of California, Irvine – André van der Hoek


Download ppt "Informatics 121 Software Design I"

Similar presentations


Ads by Google