This leads to an object structure where a Degree Track is defined as Courses within Groups, with the rules processing four different kinds of groups. Only the two simplest, and most common, types are discussed here. The object diagram of these groups is repeated from the previous section on the right.
Group Type 1: This is the simplest, and most common, situation where every course within the group must be taken, with a minimum grade as defined for the group.
Group Type 2: This is a variation of Type 1, where the student must take a subset of the courses listed for the group and where the courses taken must add up to the minimum number of credits defined for the group.
Group Types 3 & 4 are more complex versions of 1 & 2, where a main group has multiple subgroups.
This structure provides for a fairly simple Audit Maintenance interface, where the current Groups and their related Courses are displayed in an outliner control (a form of tree control) as shown to the right. The Type of Group and related attributes, such as minimal grade and credits, are specified on the Group detail window. The Courses within a Group are selected from a Course list on the right of the window by highlighting the desired entries and moving them under the selected group by striking the button with the correct direction arrow.
The Group structure also provides a reusability solution, where a Reusable Group is defined through another interface and just referenced within a Degree Track. Any changes to the original Group will automatically take affect in all the Degree Tracks that reference it. In the example above to the right, all the Groups within the Track are pulled in from Reusable Groups (as designated by the “(R)” characters with each Group).
This reusability is accomplished by “including” the RequiredGroup entity from the reusable Group object, mDegTrkR (shown on the right), into the RequiredGroup entity of the mDegTrk object (shown above). Note that if the RequiredGroup entity is “created” within the degree track, the group is unique to the track, but if it is “included” within the degree track, it is shared with other tracks. In either case, the structure is the same and all rules referencing the track are not concerned with the source of the groups and related courses.