#!/usr/local/bin/dot
#
# Class diagram 
# Generated by UMLGraph version R5_6-9-g37cd34 (http://www.umlgraph.org/)
#

digraph G {
graph [fontnames="svg"]
edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10,color="black"];
node [fontname="Helvetica",fontcolor="black",fontsize=10,shape=plaintext,margin=0,width=0,height=0];
nodesep=0.25;
ranksep=0.5;
// School
c103 [label=<<table title="School" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> School </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  name : Name </td></tr><tr><td align="left" balign="left">  address : String </td></tr><tr><td align="left" balign="left">  phone : Number </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  addStudent() </td></tr><tr><td align="left" balign="left">  removeStudent() </td></tr><tr><td align="left" balign="left">  getStudent() </td></tr><tr><td align="left" balign="left">  getAllStudents() </td></tr><tr><td align="left" balign="left">  addDepartment() </td></tr><tr><td align="left" balign="left">  removeDepartment() </td></tr><tr><td align="left" balign="left">  getDepartment() </td></tr><tr><td align="left" balign="left">  getAllDepartments() </td></tr></table></td></tr></table>>];
// Department
c104 [label=<<table title="Department" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Department </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  name : Name </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  addInstructor() </td></tr><tr><td align="left" balign="left">  removeInstructor() </td></tr><tr><td align="left" balign="left">  getInstructor() </td></tr><tr><td align="left" balign="left">  getAllInstructors() </td></tr></table></td></tr></table>>];
// Student
c105 [label=<<table title="Student" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Student </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  name : Name </td></tr><tr><td align="left" balign="left">  studentID : Number </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  </td></tr></table></td></tr></table>>];
// Course
c106 [label=<<table title="Course" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Course </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  name : Name </td></tr><tr><td align="left" balign="left">  courseID : Number </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  </td></tr></table></td></tr></table>>];
// Instructor
c107 [label=<<table title="Instructor" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Instructor </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  name : Name </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  </td></tr></table></td></tr></table>>];
// School has Student
c103 -> c105 [arrowhead=none,arrowtail=ediamond,dir=back,weight=4,taillabel="1..*", label="Member", headlabel="*"];
// School composed Department
c103 -> c104 [arrowhead=none,arrowtail=diamond,dir=back,weight=6,taillabel="1..*", label="Has", headlabel="1..*"];
// Department assoc Course
c104 -> c106 [arrowhead=none,weight=2,taillabel="1..*", headlabel="1..*"];
// Department assoc Instructor
c104 -> c107 [arrowhead=none,weight=2,taillabel="0..*", headlabel="0..1 chairperson"];
// Department has Instructor
c104 -> c107 [arrowhead=none,arrowtail=ediamond,dir=back,weight=4,taillabel="1..*", label="AssignedTo", headlabel="1..*"];
// Student assoc Course
c105 -> c106 [arrowhead=none,weight=2,taillabel="*", label="Attends", headlabel="*"];
// Instructor assoc Course
c107 -> c106 [arrowhead=none,weight=2,taillabel="1..*", label="Teaches", headlabel="*"];
}

