Remarks on Software Design

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

© 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 &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
Unified Modeling (Part I) Overview of UML & Modeling
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Chapter 7: The Object-Oriented Approach to Requirements
The Design Discipline.
Managing the development and purchase of information systems (Part 1)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Chapter 9 Moving to Design
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Systems Analysis and Design in a Changing World, 3rd Edition
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
CS223: Software Engineering
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Project Deliverables CIS 4328 – Senior Project 2 And CEN Engineering of Software 2.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Finite State Machines ENGR 110 #7 2016
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Design Concepts ch-8
Information Retrieval in Practice
Information System Applications
Elaboration popo.
Analysis Classes Unit 5.
The Components of Information Systems
Chapter 1 The Systems Development Environment
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Business Process Modeling
School of Business Administration
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Architecture Concept Documents
Object-Oriented Software Engineering Using UML, Patterns, and Java,
THIS IS TO EVIDENCE YOUR WORK AND GET THE BEST GRADE POSSIBLE
Unified Modeling Language
Software Architecture
OO Methodology OO Architecture.
Chapter 1 The Systems Development Environment
Abstract descriptions of systems whose requirements are being analysed
The Object Oriented Approach to Design
Chapter 1 The Systems Development Environment
Overview of System Engineering
The Components of Information Systems
Informatics 121 Software Design I
Requirements – Scenarios and Use Cases
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Software Architecture
Introduction to the Unified Modeling Language
Informatics 121 Software Design I
Software Design CMSC 345, Version 1/11.
Informatics 122 Software Design II
Analysis models and design models
CS 8532: Advanced Software Engineering
An Introduction to Software Architecture
CS 8532: Advanced Software Engineering
Chapter 5 Architectural Design.
Use Case Analysis – continued
Information System Building Blocks
Chapter 1 The Systems Development Environment
Software Development Process Using UML Recap
Segments Introduction: slides minutes
Chapter 2: Building a System
Information system analysis and design
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Naming – Examples D:/eclipse/edu/uci/isr/palantir/core/PalantirPlugin:1.2::.80c318ce.109c2515402.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

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

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

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

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

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

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