Introduction to EntityRelationship Diagrams, Data Flow Diagrams, and UML Todd Bacastow Penn State University Geography 583 Geospatial System Analysis & Design 1 Data Modeling Data modeling – a technique for organizing and documenting a system’s data. Sometimes called database modeling. Entity relationship diagram (ERD) – a data model utilizing several notations to depict data in terms of the entities and relationships described by that data. 8-2 2 Data Modeling Concepts: Entity Entity – a class of persons, places, objects, events, or concepts about which we need to capture and store data. – Named by a singular noun 8-3 Persons: agency, contractor, customer, department, division, employee, instructor, student, supplier. Places: sales region, building, room, branch office, campus. Objects: book, machine, part, product, raw material, software license, software package, tool, vehicle model, vehicle. Events: application, award, cancellation, class, flight, invoice, order, registration, renewal, requisition, reservation, sale, trip. Concepts: account, block of time, bond, course, fund, qualification, stock. 3 Data Modeling Concepts: Attributes Attribute – a descriptive property or characteristic of an entity. Synonyms include element, property, and field. – Just as a physical student can have attributes, such as hair color, height, etc., data entity has data attributes Compound attribute – an attribute that consists of other attributes. Synonyms in different data modeling languages are numerous: concatenated attribute, composite attribute, and data structure. 8-4 4 Data Modeling Concepts: Identification Key – an attribute, or a group of attributes, that assumes a unique value for each entity instance. It is sometimes called an identifier. 8-5 – Concatenated key - group of attributes that uniquely identifies an instance. Synonyms: composite key, compound key. – Candidate key – one of a number of keys that may serve as the primary key. Synonym: candidate identifier. – Primary key – a candidate key used to uniquely identify a single entity instance. – Alternate key – a candidate key not selected to become the primary key. Synonym: secondary key. 5 Data Modeling Concepts: Relationships Relationship – a natural business association that exists between one or more entities. The relationship may represent an event that links the entities or merely a logical affinity that exists between the entities. 8-6 6 Data Modeling Concepts: Cardinality Cardinality – the minimum and maximum number of occurrences of one entity that may be related to a single occurrence of the other entity. Because all relationships are bidirectional, cardinality must be defined in both directions for every relationship. bidirectional 8-7 7 Data Modeling Concepts: Degree Degree – the number of entities that participate in the relationship. A relationship between two entities is called a binary relationship. A relationship between three entities is called a 3-ary or ternary relationship. A relationship between different instances of the same entity is called a recursive relationship. 8-8 8 Why Logical System Models • Logical models remove biases that are the result of the way the system is currently implemented, or the way that any one person thinks the system might be implemented. • Logical models reduce the risk of missing business requirements because we are too preoccupied with technical results. • Logical models allow us to communicate with end-users in nontechnical or less technical languages. 9-9 9 Process Modeling and DFDs Process modeling – a technique used to organize and document a system’s processes. – – – – Flow of data through processes Logic Policies Procedures Data flow diagram (DFD) – a process model used to depict the flow of data through a system and the work or processing performed by the system. Synonyms are bubble chart, transformation graph, and process model. – The DFD has also become a popular tool for business process redesign. 9-10 10 Differences Between DFDs and Flowcharts • Processes on DFDs can operate in parallel (atthe-same-time) – Processes on flowcharts execute one at a time • DFDs show the flow of data through a system – Flowcharts show the flow of control (sequence and transfer of control) • Processes on a DFD can have dramatically different timing (daily, weekly, on demand) – Processes on flowcharts are part of a single program with consistent timing 9-11 11 What is the UML? • Unified Modeling Language • It is a modeling language, not a process • In 1996, work on the UML was begun by Rational. 12 UML Diagrams 1. 2. 3. 4. 5. 6. 7. 8. 9. Class Diagrams Use Case Diagrams Collaboration Diagrams Sequence Diagrams Package Diagrams Component Diagrams Deployment Diagrams Activity Diagrams State Diagrams 13 Class Diagrams • Are the most fundamental UML Diagram. • Describe the classes in the system, and the static relationships between classes. • Class diagrams are used during Analysis, Design and Development. 14 UML Class Diagram Customer 1 Rental Invoice Rental Item 1..* 1 0..1 1 Checkout Screen DVD Movie VHS Movie Video Game 15 UML Class Diagram Multiplicity Customer Class Simple 1 Aggregation Rental Invoice Abstract Class Rental Item {abstract} 1..* 1 0..1 Composition Simple (Dependency) Generalization Association Checkout Screen DVD Movie VHS Movie Video Game 16 Parts of a Class • Classes can have four parts – – – – Name Attributes Operations Responsibilities • Classes can show visibility and types. • All parts but the Name are optional. MyClassName +SomePublicAttribute : SomeType -SomePrivateAttribute : SomeType #SomeProtectedAttribute : SomeType +ClassMethodOne() +ClassMethodTwo() Responsibilities -- can optionally be described here. 17 Object Diagrams • An Object is an instance of a class. • Object names are underlined. • Object diagrams are similar to class diagrams. Many of the same notations are used. • Object diagrams capture instances of classes, and allow the dynamic relationships to be shown. ThisOne : MyClassName +SomePublicAttribute : SomeType -SomePrivateAttribute : SomeType #SomeProtectedAttribute : SomeType +ClassMethodOne() +ClassMethodTwo() 18 Class and Object Diagrams Class Name Association Name Customer Rental Item Rents +id:integer +name:string 0..1 0..n +id:integer +released:date Class Diagram Attributes Object Name Joe: Customer Casablanca: Movie +id:1667 +id:22340 +name:Joe Smith +released:1942 Object Diagram 19 Use Cases • Describe interactions between users and computer systems (both called actors) . • Capture user-visible functions. • Achieve discrete measurable goals. • Are typically used during Analysis and Design. 20 Use Case Diagram Use Case Actor Identify Movie Customer Open Account Clerk Return Movie In-Store Customer Telephone Customer Review Account Status 21 Use Case Report • The Use Case Report provides documentation for the Use Case. • A Use Case is not complete without the report. • The elements of the Use Case Report are shown on the right. • Brief description • Precondition • Flow of events – Main flow – Subflows – Alternate flows • Postcondition • Special Requirements • Enclosures – Diagrams – Pictures of the UI 22 Collaboration Diagrams • Collaboration diagrams describe interactions and links • Focus on exchange of messages between objects • Appears during Analysis phase • Enhanced during Design phase 23 Collaboration Diagram - Rent Movie :Rented Items 1: enter_customer() 5: add(customer, movies) 8: generateRentalTotal() Object 3: enter_movies() 2: IsValidCust(CustId) 7: print invoice() :Check-out Manager :Customer :Clerk 4:GetMovieByBarcode() :Invento ry Message 24 Sequence Diagrams • Can be “morphed” from Collaboration Diagrams. • Describe interactions between objects arranged in time sequence • Focus on objects and classes involved in the scenario and the sequence of messages exchanged • Associated with use cases • Used heavily during Analysis phase and are enhanced and refined during Design phase 25 Sequence Diagram - Rent Movie :CheckoutMgr Cust:Customer : :Inventory :RentedItems Employee 1: find customer() 2: search (string) 3: enter movie() 4: search (string) Object Activation Message 5: rent (movie) 6: add(Cust, item) Lifeline 7: printInvoice() 8: generateRentalTotal() 26 Package Diagram Clerk User Interface Customer Data Class «facade» Business System Client Rental Screen (to business system) Package 27 Component Diagram Component «library» DB Server Interface (dbsvr.dll) «library» Application Framework (appfr.dll) Interface Dependency «application» Video Workstation (vstation.exe) Note Supplied by Microsoft 28 Deployment Diagram Node Communication Association Phone Clerk Terminal :Clerk Client Check Out Terminal :Clerk Client :Store Server Server DB «TCP/IP» «TCP/IP» Store Server App 29 Activity Diagram Start State Action State Identify Caller Obtain Name & Address Current Customer? Decision Open Account? [no] [no] [yes] [yes] End State Create Account 30 Swimlanes and Fork/Join Points Customer Identify Movie Manager Walking Clerk Fork Point Place Order Place Order Pay Collect Money Pickup Movie Deliver Movie Fill Order Join Point 31 State Diagram Guard Event Transition [more videos] /get next video customer appears Validate do/check account [account valid] /get first video Activity State [account not valid] Check-Out do/check-out video Action [no more videos] Check-Out Complete 32 UML Diagram Usage Development Phase UML Diagrams Analysis Use Cases, Class Diagrams, Activity Diagrams, Collaboration Diagrams, Sequence Diagrams Class Diagrams, Collaboration Diagrams, Sequence Diagrams, State Diagrams, Component Diagrams Deployment Diagrams Collaboration Diagrams, Sequence Diagrams, Class Diagrams, State Diagrams, Component Diagrams, Deployment Diagrams Package Diagrams, Deployment Diagrams Design Development Implementation 33 Conclusion • UML is a robust notation that can express information gathered throughout a project’s lifecycle. • Adopting standard use of UML can improve communication between clients and developers. • UML can be used as an effective data modeling tool as well as an object modeling tool. 34