Diagram review INF 123 – Software architecture 1.

Slides:



Advertisements
Similar presentations
Interaction Design: Visio
Advertisements

Visio 2007 for UML Tutorial. Overview The tutorial demonstrates how to use Visio 2007 to create UML diagrams. We will focus on five most widely used UML.
UML (Sequence Diagrams, Collaboration and State Chart Diagrams) Presentation By - SANDEEP REDDY CHEEDEPUDI (Student No: ) - VISHNU CHANDRADAS (Student.
How Do I Evaluate Workflow?
CHAPTER 1: AN OVERVIEW OF COMPUTERS AND LOGIC. Objectives 2  Understand computer components and operations  Describe the steps involved in the programming.
Systems Analysis and Design 8th Edition
Information System Design IT60105
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
Design Patterns in Java Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
Component and Deployment Diagrams
SE-565 Software System Requirements More UML Diagrams.
Systems Analysis I Data Flow Diagrams
Visualizing Architectures INF 123 – Software architecture 1.
EEE evaluation Give me feedback! Midterm Feedback Form (TLTC)
Unified Modeling Language
The Unified Modeling Language (UML) Class Diagrams.
UML for Java Programmers Object Mentor, Inc. Copyright  by Object Mentor, Inc All Rights Reserved
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Software Engineering CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
CS 160: Software Engineering October 8 Class Meeting
PowerPoint Basics (for Macs) 1. Before you start your project, you need: Completed project storyboard. Files with images, sound, or video already saved.
ITEC 370 Lecture 10 Design. Review Design –Why is it part of the process? –Who is the audience for design?
Database Application Security Models Database Application Security Models 1.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Journal Format and Grading First, you MUST have a standard 100 sheet, 7 ½” x 9 ¾” composition book just for science class. No spiral bound notebooks! Tahoma.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Systems Analysis & Design 7 th Edition Chapter 5.
To navigate the slide presentation, use the navigation bar on the left OR use your right and left arrow keys. Move your mouse over the key terms throughout.
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
Chapter Two Creating a First Project in Visual Basic.
Sudoku Taryn Wise. Operational Concepts and System Requirements Solve sudoku puzzles in a convenient way Have a notes option for number possibilities.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
1 CMPT 275 High Level Design Phase Modularization.
Component, Deployment and Package Diagrams CSIS3600.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
CS212: Object Oriented Analysis and Design Lecture 34: UML Activity and Collaboration diagram.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Journal Format and Grading First, you MUST have a standard 100 sheet, 7 ½” x 9 ¾” composition book just for science class. No spiral bound notebooks! Tahoma.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
Chapter 3: Introducing the UML
Capturing Requirements. Questions to Ask about Requirements 1)Are the requirements correct? 2)Consistent? 3)Unambiguous? 4)Complete? 5)Feasible? 6)Relevant?
Flowcharts. Learning Objectives To learn how to break down tasks How to create a flowchart.
CS223: Software Engineering Lecture 13: Software Architecture.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Review Business Analyst vs. Systems Analyst – A Business Analyst identifies a problem and states – in business terms -- what the solution is. They define.
Chapter 1 Overview of UML for Java Programmers. 2 Outline Diagram Types Diagram Types Class Diagrams Class Diagrams Object Diagrams Object Diagrams Sequence.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Systems Analysis and Design in a Changing World, Fourth Edition
Business Process and Functional Modeling
Analysis Classes Unit 5.
Unified Modeling Language Tutorial
Working in the Forms Developer Environment
Chapter 5 – Design and Implementation
Introduction For Whom Features challenges Future Work Used Technology
Unified Modeling Language—UML A Very Brief Introduction
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
IELM 511: Information System design
Classification of UML Diagrams
CIS 375 Bruce R. Maxim UM-Dearborn
Starting Design: Logical Architecture and UML Package Diagrams
Design and Implementation
Structural / Functional Site Diagramming
Blackboard Committee 2017 Bb Training Program
How Do I Evaluate Workflow?
Chapter 5.
CIS 375 Bruce R. Maxim UM-Dearborn
Presentation transcript:

Diagram review INF 123 – Software architecture 1

Outline Reminders Flowchart State machine Sequence diagram Component diagram Class diagram 2

REMINDERS 3

Reminder Many diagrams can represent the same architecture Diagrams represent design decisions Diagrams don’t directly map to code Code does not map directly to diagrams 4

Reminders Crappy diagrams are easier to do than crappy code Great diagrams are harder to do than great code A diagram captures a design decision It’s not easy! You need to think! Sometimes a lot! Once you have taken a design decision, coding it is “only” a matter of technical proficiency Coding = being able to speak French/English Design decision = telling a good story 5

Reminder Architects with different opinions Level of detail – High-level view has components absent in a lower- level view Static vs dynamic concerns – Component structure != protocol Functional vs non-functional concerns – Broadcast the message to everyone vs scalability Physical vs logical concerns – 2 self-contained subsystems for 3 machines 6

Example: level of detail (few details) 7

More details 8

Which of these 2 diagrams is correct? Both! Neither! Depends on what you want to tell the stakeholders Soft science, opinions, subjective, … How do I grade this? 9

I grade (mostly) on style Use the same symbol for the same things Use standard symbols and representations Don’t use the same symbol for different things Add a legend if needed 10 Client 1Client 2 Send position Has a 2-way connection server

Reminder: Tools for diagrams Dia – Not just UML ArgoUML Eclipse UML plugins Visio, PowerPoint, Word Gliffy, Lucidchart, online tools … 11

Reminder: assignments You are always welcome to submit a small text description along with your chart I don’t require UML-compliant diagrams But if you submit UML-compliant diagrams, mention it in your submission 12

Purpose of this review For each type of diagram: – Minimum expectations What makes a flowchart a flowchart – Do’s and don’ts – A reminder/introduction Better grades! 13

FLOWCHART 14

15 Good: -Rectangles for actions -Diamonds for choices -Diamond arrows have labels -Dotted zoom-in explains in more details (could also be in another diagram if explicitly mentioned) -Dash-delimited area for actions in the same layer Bad: -2 start states -2 end states -(should it be 2 different diagrams, though?) -No loopback after “drops packet” -More?

16 Good: -Colorful Bad: - Yes goes down, then Yes goes right (be consistent)

17 Good: -Legend -Green start, red end -Loopbacks everywhere Meh: -Arrows can end into other arrows or into other boxes (be consistent) Bad: - “Assess compliance” == “Compliant?” (Maybe they mean that the assessment takes some time … then they should use a side note instead)

STATE MACHINE 18

19 Good: -Transition labels are verbs (“Coin” should be “insert coin”) -States are participles (“locked”, “unlocked”) -States are circles -No end state: don’t need any in this case -Start state is obvious (nitpicking: convention is double circle)

20 Good: -Start state -End state is OK … -No crossing edges Bad: -Low quality image -Start state not obvious -I don’t like coffee -Transition labels (“Espresso ON” should be “Turn Espresso ON”) -Tautologies (“Switch Off” to switch from “On” to “Off” …)

21 /statemachine1.png Good: -Start state obvious -Colors are OK, but superfluous, unless they refer to other diagrams or a legend Bad: -Verbs in states -Participles for transitions -Representing timers in state machines is difficult

22 Good: -Arrow labels -Related states are nearby (StartMainTask.*) Bad: -Low quality image -Too much -Transitions should be verbs Bad: -Need a legend (why are some unblock in red and others in black?) -State duplication (detached, detaching) -Too close to the code (we want design decisions, not code visualization) -More?

SEQUENCE DIAGRAM 23

24 Good: -Server lifeline starts at the same time as the computer’s -The server lifeline is active only when the server works -Dotted arrow for the response OK/meh: -sendUnsent has no arrow back: what is happening on the server? Maybe it does not matter … Bad: -“response” label for the response

25 Good: -Booking lifeline created later -2: should return the booking page URL Bad: -No label on responses (why drawing the response then?)

26 Good: -Database symbol -Self-arrows (build SQL select) -Workflow easy to follow Bad: -Hand-drawn -Hard to read -No lifeline (vertical dashed line all the time)

COMPONENT DIAGRAM 27

28 Good: -Provided lollipops on the left -Required lollipops on the right or down Meh: -No need for > -No need for the rectangle symbol inside Order

29 Good: -Lollipops, with labels Meh: - > arrows: just expose the interface to the outside -no need for squares

30 Good: -Two required interfaces join into one provided interface (Person) Meh: - > arrows: just expose the interface to the outside

CLASS DIAGRAM 31

32 Good: -0..* -Subscribes label Meh: -+subscriber – what is it for?

33 Good: -Arrows for inheritance Meh: - I don’t care about attribute scope

34 Good: -Note “allows merchants …” Meh: -Types (string, int) Bad: - No label on the arrows

35 Bad: -No label on the arrows (what is the relationship between Program and Member?) -id is not necessary (implementation detail) Good: -Background color for packages (although: the diamond for Transaction -> Member should be white, not green)

BONUS: HIGH-LEVEL DIAGRAM 36

Story Which architecture would you recommend for a patient- centered medical web portal? This portal would pull patient medical records from hospital databases. Patients often have multiple records (at least one per hospital they have ever been to). Hospitals allow an access to the records they hold, but only if the patients themselves request that access. Even if patients request for an access through the medical web portal, hospitals only grant a reading access (not a writing access). If the web portal stores medical records, it should comply with HIPAA regulations. The web portal also provides a calendar feature that reminds patients to do checkups, and tracks the doctor appointments of the patients for them. Patients may access the web portal through a web browser or an iPad app. 37

38