Scheduler architecture . This is the central topic of this case study. We
have to define the basic components of the scheduling tool that allow the
representation of a scheduling problem and its sub-problems.
Scheduling algorithm . We have to define how the algorithm computes a
solution and how it identifies the best solution.
Graphical user interface . The scheduling tool is an interactive applica-
tion that requires a graphical user interface. We will consider a Gantt-like
One suite of test cases will be defined for each scenario. They consist in the
representation of resources, activities and tasks and in the evaluation of a
time plan that enforces the resource and temporal constraints among their
Architecture and planning
In order to ensure scalability and reusability of the scheduling tool, we have
to factor out the stable parts and to isolate the variable parts. The stable
parts are the basic components needed to build a model of the problem
(task, activities, resources) and the scheduling algorithm. It is important to
pay attention to avoid dependencies between the structure of the scheduling
algorithm and the actual size of the problem to hand. The variable part is the
model of the problem. We address these issues with an iterative develop-
ment process that is organized in two phases. The result of each phase is a
prototype of the scheduling tool. Possible extensions of the final prototype
will be identified.
Prototype 1: Decentralized scheduling . This consists of a command line
application that implements the basic components of the decentralized
scheduler and the scheduling algorithm. It will be tested in the two appli-
cation scenarios outlined in Section 3.1.
Prototype 2: User interaction . This adds a graphical user interface to
Prototype 1. It will allow the user to modify the temporal parameters of
each activity and will display the performance of the algorithm during the
Prototype 1: Decentralized scheduling
The first prototype is an application that solves problems similar to the mail
delivery; i.e. problems where resources are independent from each other.
The resulting time plan is printed out on the screen in textual format.