Presentation is loading. Please wait.

Presentation is loading. Please wait.

Remarks on Software Design

Similar presentations


Presentation on theme: "Remarks on Software Design"— Presentation transcript:

1 Remarks on Software Design
May 14, 2019 – 21:27:58

2 Today’s Lecture System design and implementation design System design
May 14, 2019 – 21:27:58

3 Informatics 43 View Architecture design Module design
high-level partitioning of a software system into separate modules (components) focus on the interactions among parts (connections) focus on structural properties (architecture) “How does it all fit together?” Module design detailed design of a component focus on the internals of a component focus on computational properties “How does it work?” May 14, 2019 – 21:27:58

4 Informatics 121 View System design Implementation 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 May 14, 2019 – 21:27:58

5 Definitions A system design captures the essence of the solution
customers system designers themselves implementation designers testers An implementation design captures the full solution system designers implementation designers themselves programmers May 14, 2019 – 21:27:58

6 Implementation Design
Design Diamond Domain of Materials Domain of Use Knowledge Implementation Design Representation System Design Ideas Activity concern manipulates informs Goal captures enhances May 14, 2019 – 21:27:58

7 Design Diamond System Design Domain of Materials Domain of Use
Knowledge Representation System Design Ideas Activity concern manipulates informs Goal captures enhances May 14, 2019 – 21:27:58

8 Traditional View of System Design
architecture May 14, 2019 – 21:27:58

9 Traditional View of System Design
architecture or... May 14, 2019 – 21:27:58

10 Traditional View of System Design
Statecharts May 14, 2019 – 21:27:58

11 Traditional View of System Design
Statecharts or... May 14, 2019 – 21:27:58

12 Traditional View of System Design
UML System Design May 14, 2019 – 21:27:58

13 Traditional View of System Design
UML System Design or... May 14, 2019 – 21:27:58

14 Traditional View of System Design
Data Flow Diagrams May 14, 2019 – 21:27:58

15 Traditional View of System Design
Data Flow Diagrams or... May 14, 2019 – 21:27:58

16 Traditional View of System Design
Data Flow Diagrams etc., etc., etc. May 14, 2019 – 21:27:58

17 Informatics 121 View of System Design
Booch pi calculus informal drawing UML System Design pseudo code architecture text code data flow diagrams Statecharts JSD any and all as needed May 14, 2019 – 21:27:58

18 Design Concerns A typical design problem consists of many different concerns that must all be addressed by a design solution Some of these concerns are more important and/or have more impact than others “I want my e-commerce site to have a recognizable logo” versus “My e-commerce site must scale to 1 million hits per minute” Sometimes, the importance and/or impact of a concern is not obvious (the devil is in the details) “I want my payroll software to properly handle the exchange rate” As a designer, you need to find the concerns that are most important and have most impact May 14, 2019 – 21:27:58

19 Design Depth Some concerns need to be designed in much greater depth than others call control sequence of a cell phone versus the menu input mechanism of that same cell phone This depth relates to importance impact audience This depth usually requires a rationale As a designer, you need to work out each concern to the appropriate level of depth needed May 14, 2019 – 21:27:58

20 Design Depth Concern 1 Concern 2 Concern 3 Concern 4 Concern 5
System “A” May 14, 2019 – 21:27:58

21 Design Depth Concern 11 Concern 12 Concern 13 Concern 14 Concern 15
System “B” May 14, 2019 – 21:27:58

22 Design Depth Concern 21 Concern 22 Concern 23 Concern 24 Concern 25
System “C” May 14, 2019 – 21:27:58

23 The Essence of a Design Solution – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange Internal data structures Error handling Distribution Glue May 14, 2019 – 21:27:58

24 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 The essence needs to be captured in one or more appropriate design notations May 14, 2019 – 21:27:58

25 Structure 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 UML2 component diagrams simple drawings May 14, 2019 – 21:27:58

26 Structure – Examples May 14, 2019 – 21:27:58

27 Architecture – Examples
Not as formal, or even as informative, but helps people understand whats going on May 14, 2019 – 21:27:58

28 Context 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 May 14, 2019 – 21:27:58

29 Context – Examples May 14, 2019 – 21:27:58

30 Context – Examples May 14, 2019 – 21:27:58

31 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 May 14, 2019 – 21:27:58

32 Communication – Examples
May 14, 2019 – 21:27:58

33 Communication – Examples
May 14, 2019 – 21:27:58

34 Communication – Examples
May 14, 2019 – 21:27:58

35 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 mechanism? what if the design concerns an e-commerce system? What may be a good design notation? sketches mock-ups interaction scenarios prototypes May 14, 2019 – 21:27:58

36 User Interface – Examples
May 14, 2019 – 21:27:58

37 User Interface – Examples
May 14, 2019 – 21:27:58

38 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 May 14, 2019 – 21:27:58

39 Persistence – Examples
May 14, 2019 – 21:27:58

40 Persistence – Examples
May 14, 2019 – 21:27:58

41 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 May 14, 2019 – 21:27:58

42 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 } May 14, 2019 – 21:27:58

43 Algorithms – Examples May 14, 2019 – 21:27:58

44 Algorithms – Examples May 14, 2019 – 21:27:58

45 Naming 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 May 14, 2019 – 21:27:58

46 Naming – Examples http://www.clothes.com/mens/shirts/formal.html
http: protocol // separators domain name mens/ subdirectory name shirts/ subdirectory name formal.html document name (Web page) May 14, 2019 – 21:27:58

47 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>> May 14, 2019 – 21:27:58

48 Interchange 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 May 14, 2019 – 21:27:58

49 Interchange – Examples
May 14, 2019 – 21:27:58

50 Interchange – Examples
May 14, 2019 – 21:27:58

51 The Essence of a Design Solution – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange Internal data structures Error handling Distribution Glue May 14, 2019 – 21:27:58

52 Informatics 121 View of System Design
Booch pi calculus informal drawing UML System Design pseudo code architecture text code data flow diagrams Statecharts JSD any and all as needed May 14, 2019 – 21:27:58

53 Pocket Guide to System Design
Consider your goals and identify key issues what is at the heart of the system? what do people (including you) need to understand about this system? Choose design notations 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? May 14, 2019 – 21:27:58


Download ppt "Remarks on Software Design"

Similar presentations


Ads by Google