The University of Anytown

advertisement
The University of Anytown
School of
Business
Computing
Problem Situation
• Student Retention
• Too many students
enrol on a course then
withdraw in their first
year
• Need a software
system to help solve
the problem
– An improved school
intranet
Start with a mind map (or rich picture)
Develop a Process Map
1.
2.
3.
4.
5.
6.
7.
8.
Admissions
Pastoral Care
Timetabling
Module Delivery
Peer Tutoring
Assessment
Attendance Monitoring
Research
Definition of a Pastoral Services System
• A system under the control of an in-school
counselling team – giving appropriate referrals
to external agencies to students presenting
personal problems to members of the
counselling team.
Root Definition for Peer-Tutoring
• A system owned by the school that provides
study skills support to students using
volunteers from the student body with the
quality of their support activities monitored
by academic staff
Activity Diagram for Peer-Tutoring
Peer Tutor Recruitment Sub System
Tutee Recruitment Sub System
Identify Suitable
Peer Tutors
Advertise
Train Peer
Tutors
Receive Tutee
Document Skills of
Peer Tutors
Document
Tutee Needs
Book times
and rooms
Things that could be added to the activity
diagram
• Is it enough to advertise?
– Should some students be made to attend?
• Should we pay peer tutors?
– Money?
– Credits?
• How should the effectiveness of the system be
measured?
Attendance Monitoring
Know tutorial
group members
Record absentees during
a tutorial session
Inform pathway leader
of persistent absentees
Inform student of contact
with pathway leader
Know student's
pathway leader
Related Use Cases
Print Class List
Let’s consider this
one
Enter Attendance Data for Class
Tutorial
email pathway leader and student
Module Leader
Print Attendance Record for
Specific Class
Print Attendance Record for
Specific Student
Create Class List
The information displayed here might be brought
together through collaboration between objects
Create Class
List Form
: Module
CreateClassList( )
: Student
: Pathway
getStudentDetails( )
getPathwayTitle( )
Class Diagram showing relationships between
these objects
Pathway
Title
Description
registered on
1
get pathway title()
n
Module
Name
Module Code
Create Class List()
Student
enrolled on
n
Name
n
get student details()
We can do two things with this class
diagram
• Implement it in an OOPL
• Translate it into an entity model then
implement the entity model as a relational
database
• CASE tools can help with both of these
Three Very Simple Use Cases
Create New Supplier
Update Supplier Details
Delete Supplier
Let’s consider some
coding issues!
One “Entity” Class
Three Control Classes
Update Supplier Details
Create New Supplier
Delete Supplier
One Boundary Class for all Three Use Cases
One Boundary Class
One Class to Talk to the Database
Sequence Diagram for
Supplier Form
Control Class
Entity Class
“Create Supplier”
“Supplier”
Create New Supplier
DB Connection
DBSupplier
Overview of the System Architecture
Project Window
for the entire
application
More Sophisticated Use Cases
Perhaps we could ask the Customer object to:
– Project future sales to this customer. This would involve
analysing past sales to identify trends. Implies the need for
a “Customer Sales History” class not currently included in
the model.
– Collect overdue payments. This would involve generating
standard letters to be sent to the customer. Implies
collaboration with a “Payment” class (associated with
Order or Invoice?) not currently included in the model.
Building the Module Maintenance
Application in VB
Select Add Class
Module from the
Project menu
Use the Class Builder
Click the Button to add a new class
Give the Class a Decent Name
Click the Button to Add an Attribute
Give the Attribute a Name and Data Type
Select this Button to Add an Operation
Name the Operation
When we Update the Project the
necessary code is generated to implement
the class
Using a collection to implement a 1:M
relationship
• We might want to
implement a Module
class that knows the
many pathways on
which the module is
taught
• One of the attributes of
this module class will be
a collection of
pathways!
Back to the Class Builder
• Assume we’ve created
the classes clsModule
and clsPathway
• We now need to create
a class that can manage
a collection of pathway
objects
• Create this collection by
clicking this button
Use the Collection Builder
• To name the collection
• And indicate what it is a collection of..
Sequence Diagram
• A VB form allows us to select a Module (from a
drop down list) and then see a list of the
pathways the module is taught on
• This involves asking a Module object to ask
each of the pathways in its MyPathways
collection to display their title.
• In UML we document this type of collaboration
in a sequence diagram
We’ll see how Rational Rose can help
• Generate a VB class module from a class
diagram
• Generate an entity model from the class
diagram
• Generate a database from the entity model
Create a VB6 Model
Add a Class
Associate the Model with a VB project
Generated Program
Link to the Rose
model
Once this connection has been made…
• We can..
– Update the VB project from our model
– Update our model from the VB project
• Round-trip engineering
Now for the database..
First tell Rose about the target
database
Set up a schema for the target
database
Now generate the entity model
Generate the Database from the
Schema
Example of Generated SQL
Download