Diagram Notations http www flickr comphotoscardoso2197507288 Did you

  • Slides: 43
Download presentation
Diagram Notations http: //www. flickr. com/photos/cardoso/2197507288/

Diagram Notations http: //www. flickr. com/photos/cardoso/2197507288/

Did you plan to build the Enterprise all on your own? ? • Diagrams

Did you plan to build the Enterprise all on your own? ? • Diagrams are often useful when… – You need to communicate, visualize, or analyze something – And that something has some sort of structure

Recall: Typical parts of requirements documentation • Functional requirements – Unstructured text – Use

Recall: Typical parts of requirements documentation • Functional requirements – Unstructured text – Use cases • Non-functional requirements – Unstructured text • Fit criteria • Diagrams – Class diagrams and entity-relationship diagrams – Dataflow, sequence, and state diagrams

Use case diagram: shows activities supported by the system Repressed citizen Concerned public

Use case diagram: shows activities supported by the system Repressed citizen Concerned public

Notes on use case diagrams • Stick man for user • Ovals for use

Notes on use case diagrams • Stick man for user • Ovals for use cases • Simple arrows when a UC “calls” or initiates another • Open arrowheads for specialization (“is-a”) – Similar to the role that subclassing plays in OO – Italicize “abstract” use cases

UML class diagram: shows entities, attributes, relationships User Twitter username Repression report Source: tweet

UML class diagram: shows entities, attributes, relationships User Twitter username Repression report Source: tweet 0. . 1 Location: geocode When: date/time Details: string 1 * * Clarification tweet Report * When: date/time Text: string * Repression tweet User When: date/time Text: string 1 System boundary * Google map view Java. Script Repression view Reports RSS View XML text

Notes on UML class diagrams • One box per kind of entity, listing attributes

Notes on UML class diagrams • One box per kind of entity, listing attributes – Italicize abstract entities, attributes – SOME MIGHT BE OUTSIDE THE SYSTEM • Three types of lines representing relationships – Lines without arrowheads show association – Lines with triangle arrowheads for specialization • “a is a b”

Entity-relationship diagram: shows entities, attributes, relationships User Twitter username 1 yields writes n Repression

Entity-relationship diagram: shows entities, attributes, relationships User Twitter username 1 yields writes n Repression tweet user when (datetime) text (string) 1 Clarification tweet r report when (datetime) text (string) 0. . 1 Repression report p source (tweet) location (geocode) when (datetime) details (string) shows s asks about q Repression view reports System boundary Google map view Java. Script RSS View XML text

Notes on entity-relationship diagrams (ERDs) • One box per kind of entity • List

Notes on entity-relationship diagrams (ERDs) • One box per kind of entity • List attributes on branches • Lines with a diamond show relationships – Diamond label indicates role of relationship • Numbers or variables on lines show cardinality

Dataflow diagram: shows flow of information Reporter Repression info Clarification message Send clar req

Dataflow diagram: shows flow of information Reporter Repression info Clarification message Send clar req Twitter DB Tweet Repression info Location Viewing user Map Report Tweet Interpret Clarification message Repression info Clarify Geocoder RSS feed RSS View Map View Geocode Reports DB System boundary

Notes on dataflow diagrams • Each oval is a “function”. – Each inward arrow

Notes on dataflow diagrams • Each oval is a “function”. – Each inward arrow is a parameter (labeled) – Each outward arrow is an output (labeled) • Each rectangle is an actor – A person, place, or thing that can do stuff and/or initiate events • Each “half-rectangle” is a data store

Message sequence diagram: shows flow of control User Twitter System Database Tweet event Read

Message sequence diagram: shows flow of control User Twitter System Database Tweet event Read tweets Geocode Create report [if geocode != null] Request to clarify Deliver request [if geocode == null] [geocode != null] Geocoder

Notes on message sequence diagrams • One box per entity involved – E. g.

Notes on message sequence diagrams • One box per entity involved – E. g. : if you have two users interacting with each other, then you would have two boxes – SOME ENTITIES MIGHT BE OUTSIDE THE SYSTEM – Each box has a dashed line, showing its “lifetime”, which can end if an object is destroyed • Arrows show messages – Also, draw an arrow back if there’s a return value • Conditionals are written with brackets [ ] – Loops can be enclosed in a shaded box

State chart: shows change over time Report status Raw (just text) record geocoding fails

State chart: shows change over time Report status Raw (just text) record geocoding fails & user retweets In database (geocode == null) geocoding succeeds Geocoded (geocode != null)

Notes on state charts • One box per state • Arrows show a possible

Notes on state charts • One box per state • Arrows show a possible state transition – Annotated to indicate under what conditions the transition occurs • Filled circle shows where you “start” • Nested filled circle shows where you “stop”

Putting it together: a typical requirements document • Requirements definition – Unstructured text: functional

Putting it together: a typical requirements document • Requirements definition – Unstructured text: functional & non-functional reqs – Use case descriptions – Class diagrams or ERDs showing external entities • Requirements specification – Unstructured text: functional & non-functional reqs – Dataflow diagram – Message sequence diagrams or state charts

An example system to support drug and alcohol counseling http: //cf. polarishealth. com/demo/start_demo. html

An example system to support drug and alcohol counseling http: //cf. polarishealth. com/demo/start_demo. html

Requirements definition, functional reqs, unstructured text • Before each counseling visit, each counselee takes

Requirements definition, functional reqs, unstructured text • Before each counseling visit, each counselee takes a survey. • After each survey, the system prints a report showing the counselee’s progress. • Administrative assistants can add counselees and their counselors to the system. Requirements definition: written from external viewpoint; system is like a “black box”

Requirements definition, non-functional reqs, with fit criteria • The system will print progress reports

Requirements definition, non-functional reqs, with fit criteria • The system will print progress reports within 2 minutes of a survey’s completion. • Each survey will be short enough for an average user to complete within 10 minutes. • Progress reports will each be 2 pages or less. • Users can take a survey using a Windows machine that has a Pentium II 550 MHz CPU, with 0. 5 GB of RAM. Requirements definition: written from external viewpoint; system is like a “black box”

UC#1: Survey and report • Actor: Counselee • Precondition: Counselee registered in system •

UC#1: Survey and report • Actor: Counselee • Precondition: Counselee registered in system • Postconditions: – Counselee progress data is recorded in system – Report is printed for use by counselor • Flow of events: – Counselee logs in (lastname + PIN) – System collects survey data from counselee – System prints report

Identify the noun phrases UC#1: Survey and report Nouns can inspire entities and attributes

Identify the noun phrases UC#1: Survey and report Nouns can inspire entities and attributes • Actor: Counselee • Precondition: Counselee registered in system • Postconditions: – Counselee progress data is recorded in system – Report is printed for use by counselor • Flow of events: – Counselee logs in (lastname + PIN) – System collects survey data from counselee – System prints report

Class diagram of entities First, we identify some entities Report Counselor Survey Counselee System

Class diagram of entities First, we identify some entities Report Counselor Survey Counselee System boundary

Class diagram of entities User lastname: String pin: Integer Report Counselor Survey Counselee These

Class diagram of entities User lastname: String pin: Integer Report Counselor Survey Counselee These two are both users of the system System boundary

Class diagram of entities User lastname: String pin: Integer We can infer some more

Class diagram of entities User lastname: String pin: Integer We can infer some more attributes Report Counselor Counselee Survey questions: String [1. . *] answers: Integer [1. . *] System boundary

Class diagram of entities User lastname: String pin: Integer Some “attributes” are modeled as

Class diagram of entities User lastname: String pin: Integer Some “attributes” are modeled as relationships patientreport Report Counselor counselor datasource patient Counselee respondent Survey questions: String [1. . *] answers: Integer [1. . *] System boundary

Class diagram of entities Don’t forget to specify multiplicities User lastname: String pin: Integer

Class diagram of entities Don’t forget to specify multiplicities User lastname: String pin: Integer patientreport Counselor 1 * Report * counselor 1 datasource patient * respondent Counselee 1 * Survey questions: String [1. . *] * answers: Integer [1. . *] System boundary

Class diagram of entities Associations can also be named User lastname: String pin: Integer

Class diagram of entities Associations can also be named User lastname: String pin: Integer patientreport * Rep ort Counselor 1 Reads Collected. From respondent Counselee 1 patient * s Counsels counselor 1 datasource * Survey questions: String [1. . *] * answers: Integer [1. . *] System boundary

Requirements specification, functional reqs, unstructured text • When survey input completes, survey data will

Requirements specification, functional reqs, unstructured text • When survey input completes, survey data will be stored in the database, and a report will be output to the printer. • The system will provide screens for adding, editing, and deactivating counselee and counselor records; at conclusion of input to these screens, records will be inserted, updated, or deleted from a database. Requirements specification: written from system’s viewpoint, involving internal details of system

Requirements specification, non-functional reqs, with fit criteria • The system will record completed surveys

Requirements specification, non-functional reqs, with fit criteria • The system will record completed surveys in the database within 30 seconds; reports will be sent to the printer within 30 seconds and emerge within 60 seconds. • 95% of the code will be platform-independent (Java or platform-independent Java. Script). Requirements specification: written from system’s viewpoint, involving internal details of system

Identifying the verbs can also be useful UC#1: Survey and report • Actor: Counselee

Identifying the verbs can also be useful UC#1: Survey and report • Actor: Counselee • Precondition: Counselee registered in system • Postconditions: – Counselee progress data is recorded in system – Report is printed for use by counselor • Flow of events: – Counselee logs in (lastname + PIN) – System collects survey data from counselee – System prints report

Dataflow diagram (note: only shows UC#1) Counselee Counselor

Dataflow diagram (note: only shows UC#1) Counselee Counselor

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User ID Counselor

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User ID Health Information Counselor Survey answers Survey DB

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User

Dataflow diagram (note: only shows UC#1) Counselee Last name & PIN Authent icate User ID Health Information Survey Printer Counselor Survey answers Postscript Survey DB All this patient’s answers (ever) Create report

Dataflow diagram (note: only shows UC#1) Last name & PIN Counselee Authent icate User

Dataflow diagram (note: only shows UC#1) Last name & PIN Counselee Authent icate User ID Health Information Pick up Survey Printout Counselor Printer Survey answers Postscript Survey DB All this patient’s answers (ever) Create report

Message sequence diagram UC#1 : Counselee : Server : Database : Printer

Message sequence diagram UC#1 : Counselee : Server : Database : Printer

Message sequence diagram UC#1 : Counselee Present question Answer question : Server : Database

Message sequence diagram UC#1 : Counselee Present question Answer question : Server : Database : Printer

Message sequence diagram UC#1 : Counselee loop Present question Answer question [survey complete] :

Message sequence diagram UC#1 : Counselee loop Present question Answer question [survey complete] : Server : Database : Printer

Message sequence diagram UC#1 : Counselee : Server : Database loop Present question Answer

Message sequence diagram UC#1 : Counselee : Server : Database loop Present question Answer question [survey complete] Record answers : Printer

Message sequence diagram UC#1 : Counselee : Server : Database loop Present question Answer

Message sequence diagram UC#1 : Counselee : Server : Database loop Present question Answer question [survey complete] Record answers Get report data Send report to printer : Printer

A few general comments • These are just the basic diagrams. – Sufficient for

A few general comments • These are just the basic diagrams. – Sufficient for our homework, exams, and probably 90% of what you’ll see after graduation – Fancier versions of these diagrams do exist • It’s OK to draw diagrams by hand – As long as you respect the notation – And, at least for homework, scan it into a PDF

What’s next for you? • Today: Meet with your client! • Finish your HW

What’s next for you? • Today: Meet with your client! • Finish your HW 2: – Due Tuesday, Sept. 20 before class – Email me or Danielle if you have questions • Every team member should be contributing

Copyright (c) Christopher Scaffidi 2009 All rights reserved. Redistribution and use in source and

Copyright (c) Christopher Scaffidi 2009 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Oregon State University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Modified by Scott D. Fleming <Scott. Fleming@memphis. edu> 2011.