here

amdocs
Business Trip Scheduler
Application Design Document
Lital Badash
Eran Banous
Yanir Quinn
Academic Advisor: Prof. Ehud Gudes
Contents








Reminder – About the project
Main System Requirements
System Architecture
Class Diagram – Main Classes
Database Scheme
User Interface
Algorithms
Task List
2
Reminder
 Amdocs employees usually divided to Groups that consists
up to 30 people.
 Occasionally, each group is signed up for a mission (at
customer sites) and has to decide which of its members will
be sent as part of the mission.
 We are building web based application to help recommend
which of the employees will commit the mission. Smart
Algorithm that will take into account personal and group
constraints is needed.
3
Main System Requirements
 Add/remove personal constrains –Add/Modify personal constrains from
a given template .
 Create a new mission (assignment for site support) - Create a new
mission for site support assignment. Including:




Define mission.
Select mission schedules, site location and mission specifications.
Select irrelevant constraints
Select irrelevant team members
 All missions can be updated. Manager can edit any of the mission properties in
modify scheduled mission.
 Generate List for mission- After creating a new mission the algorithm
can be activated and recommend which of the team members is most
preferable to perform the mission. It
4 will generate up to 10 most suitable
options in a descending order.
Main System Requirements
 Add/remove Group constraint – each group will have a set of constraints
that will take into account every time the algorithm will run.
 Add chosen match – After the algorithm generated the list and the
manager pick the most suitable employees to perform the task, he must
update the system about his decision.
 Define new constrains templates – The administrator will be able to
define new constrains that can later appear on the system pool from
which a manger can pick his group’s constraint. The new constrains will
be inserted by a given template and will be restricted to given patterns
(Boolean, integers, date, etc.). the administrator will decide if the
constraint is considered “hard” or “soft”.
5
System Architecture
 From the whole system perspective 3 players are
involved:
 Client
 Server (Application server – We picked
WebLogic/tomcat)
 Data Base (We picked mySQL platform)
 This is a simple client-server model. This model
satisfies our requirement for a distributed application.
6
System Architecture
Client
Client
Client
Client
Web/Application
Server
DB
7
8
Main Class Diagram
 Domain - this package classes mainly represent data objects
that are used to save, handle and manipulate data regarding
missions and group management, including the personal data
objects, mission and group.
 Classes : Groups, Missions, User (TeamMember , Administrator, Manager)
 Main operations:




Add/Remove Personal constraints
Create a new mission
ADD/Remove group constraints.
Add chosen match
9
Main Class Diagram
 AlgorithmLogic - classes in this package are responsible to the
generation of lists for missions with data extraction from the
database. Design pattern used: strategy.
 Main operations:
 Generate List for Mission.
 RuleEngine – classes in this package are all part of constraints
interpretation and storage in the database . in here are also the
basic class of constraint and its subclasses.
 Classes: SystemConstraint, PersonalConstraint, ConstraintManager,
Interpreter.
10
Main Class Diagram
 UserLogic - classes in this package are responsible for
the transactions in the system. All the information
traffic from/to the end-user is done and managed by
classes in this package.
 Server – handles connections and http messages.
11
Database Scheme
12
User Interface – User Screen
13
User Interface – manager Screen
14
User Interface – Administrator
Screen
15
Algorithm
 Using the concepts of the following article we will
present an idea and a general approach for solving
our problem.
 “Modeling the and solving employee time tabling
problem” (by Amnon miesles and Andrea Scharef) .
 the article discusses the problem of solving the nurse
scheduling problem which we can adapt for our
problem. we will present the general idea for the
algorithm techniques.
16
Algorithm
* A designate algorithm will run according to local
search techniques :
- starting from an initial state s0
- iterate in a loop from state s(i) state s(i+1)
 The search is driven by a cost function f that
estimates the quality of the given state. The most
common one , counts the number of violated
constraints and the search objective is to minimize f
to a lower boundary .
17
Algorithm
* One of the local search techniques is hill climbing comprised from a family of techniques based on the
idea of performing moves that improves or doesn't
change f’s value.
* Hill climbing technique:
- for every iteration i , select a move m(i)
- if f(si * mi) <= f(si) then s(i+1) = s(i)*m(i)
else s(i+1) = s(i)
 Our stop criterion will be based on the number of
iterations since the last strict 18constraint improvement
Task List
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Algorithm research √
Set up Server (Testing both tomcat and web logic)√
Set up Database √
Naïve algorithm implementation
Write Unit Testing
Implementation of other components
Testing
Implement our algorithm
Create GUI √
Testing
Refactor
Write User Manual
Prepare our presentation
19
Thank You
Questions?