Conceptual Structures - EntityRelationship

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Conceptual Structures: Entity-

Relationship (ER) Diagrams


• Declare conceptual items, structure them

• Entity: class of concept instances

• having distinct identities

• sharing common features (e.g. Meeting, Participant)


Conceptual Structures:
Entity-Relationship Diagrams

• Attribute: feature intrinsic to an entity or a


relationship

• has range of values (e.g. Date of Meeting)

• N-ary relationship: feature conceptually linking N


entities, each playing a distinctive role (N >= 2)

• e.g. Invitation linking Participant and Meeting


Entity-Relationship Diagram
• Multiplicity, on one side: min & max number of entity
instances, on this side, linkable at same time to single tuple
of entity instances on the other sides

• Participant invited to 0 or more meetings

• Meetings invite at least 1 participant


Entity-Relationship Diagram

• Diagram annotations: to define elements precisely

• essential for avoiding spec errors & flaws

• e.g. annotation for Participant:

“Person expected to attend the meeting, at least


partially, under some specific role. Appears in the
system when the meeting is initiated and disappears
when the meeting is no longer relevant to the system”
Entity-Relationship Diagram
• Entity specialization: subclass of concept instances,
further characterized by specific features (attributes,
relationships)

• e.g. ImportantParticipant, with specific attribute


Preferences

Inherits relationships Invitation, Constraints, attribute


Address

(Email of ImportantParticipant inhibits default inheritance)


Entity-Relationship Diagram
• :) Simple, graphical

• :) Compare to

• Lists of definitions

• Relational Tables

• :) Allows formal statement patterns

• :) Advantages from specialization and inheritance

• :( No distinction between prescriptive and descriptive


Class Diagrams
Participant
Name
Address
Email
returnConstraints(preferences, unavailability)

Initiator
Name
requestMeeting(dateRange, Locations)
receiveMeeting()

MeetingScheduler
Date
Location
requestConstraints(dateRange, Locations)
findDateAndLocation()
(Can also include multiplicity)
Activities and Data:
SADT Diagrams
• Capture activities & data in the system (as-is or to-be)

• Actigram: relates activities through data dependency


links

• West ->: input data; Eest ->: output data

• North ->: controlling data/event; South ->:


processor

• Activities refinable into sub-activities


SADT Diagram: Actigram
Activities and Data:
SADT Diagrams
• Datagram: relates data through control dependency links

• West ->: producing activity; East -> : consuming activity

• North ->: validation activity; South -> : needed resources

• Data refinable into sub-data

• Data-activity duality:

• data in actigram must appear in datagram

• activities in datagram must appear in actigram


SADT Diagram: Datagram
• Consistency/completeness rules checkable by tools

• Every activity must have an input and an output

• All data must have a producer and a consumer

• I/O data of an activity must appear as I/O data of


subactivities
Information Flow: Dataflow
Diagrams (DFD)
• Capture system operations linked by data dependencies

• simpler but less expressive

• Operation = data transformation activity

• Input, output links = data flows

• System components, data repositories = origins, ends of


flow

• Consistency/completeness rules checkable by tools, cf.


SADT
Dataflow Diagram

You might also like