Anda di halaman 1dari 43

Bachelor of ICT Assessment Cover Sheet

Complete and attach this cover sheet to your assessment before submitting

Assessment Title

Project

Programme Title:

Bachelor of Information and Communication Technology

Course Code:

ITB 6006

Course Title:

Object-Oriented Design

Student Names:
Student IDs:
Tutor:

Ali Alaali

Mahdi Ebrahim

201000096

201101299

Mohamed Sharaf
201100383

Osama Al Abedallat

By submitting this assessment for marking, either electronically or as hard copy, I confirm the

following:

This assignment is my own work


Any information used has been properly referenced.
I understand that a copy of my work may be used for moderation.
I have kept a copy of this assignment

Do not write below this line. For Polytechnic use only.

Assessor:

Date of Marking:

Grade/Mark:
Comments:

Page 1 of 43

Table of Contents
INTRODUCTION ............................................................................................................... 4
1.

PURPOSE ........................................................................................................................ 4

2.

TERMS OF REFERENCE ................................................................................................... 4

3.

METHOD ........................................................................................................................ 4

Design Use Case Diagram ................................................................................................. 5


1.

Registration Functionality ............................................................................................. 6

2.

Job Application Functionality ........................................................................................ 6

3.

Maintain Jobs functionality ........................................................................................... 7

4.

Maintain Users functionality ......................................................................................... 7

5.

Login functionality ......................................................................................................... 7

6.

Maintain Locations functionality ................................................................................... 7

7.

Maintain Subscriptions functionality............................................................................. 8

8.

Maintain Job Categories functionality ........................................................................... 8

9.

Review Applications functionality ................................................................................. 8

10.

Other functionality .................................................................................................... 8

Narratives/Scenarios........................................................................................................ 9
1.

Registration ................................................................................................................... 9

2.

Apply for a job ............................................................................................................. 10

3.

Maintain jobs ............................................................................................................... 11

4.

Profiles management .................................................................................................. 12

Diagrams (Activity / Sequence /Communication) ............................................................ 15


1.

Registration ................................................................................................................. 15

2.

Apply for a job ............................................................................................................. 21

3.

Maintain jobs ............................................................................................................... 24

4.

Profiles management .................................................................................................. 30

Deployment Diagram ..................................................................................................... 37


Entity Relation Diagram (ERD) ........................................................................................ 38
Domain Class Diagram ................................................................................................... 39
Patterns......................................................................................................................... 40
1.

Builder Pattern ............................................................................................................ 40

2.

Prototype Pattern ........................................................................................................ 41

3.

Factory Pattern ............................................................................................................ 41

P a g e 2 | 43

4.

State Diagram .............................................................................................................. 43

P a g e 3 | 43

INTRODUCTION
1. PURPOSE
Job seekers can apply for a job by going to the company to search for the available
jobs and the company will show him/her the available jobs according to his/her
qualifications. This project is designed for a business case on behalf of a job portal
application, which aims to provide a centralized communication tool for job seekers,
companies human resource administrators and portal administration, in order to allow and
help the companies source employees with suitable skills and expand their market share and
provide a tool for job seekers to help them in searching for a job and apply of it.

2. TERMS OF REFERENCE
Mr Osama Al Abedallat, an ICT Tutor at Bahrain Polytechnic, requested this report
on portal job application on the 22nd of November 2014 as part of ITB6006 Object-Oriented
Design, Bachelor of ICT at Bahrain Polytechnic.

3. METHOD
The information used to produce this report was obtained throughout a range of
sources. These sources include textbooks, class activities and previous knowledge.

P a g e 4 | 43

Design Use Case Diagram


The diagram below clarifies the system use cases and the users (actors) of the system. As well as, the assassinations between them. Later on, the
description of the use cases will be included.
uc Use Case Model

User

Administrator

Employer
The System Boundary shows the
logical interface between users
and the system being described.

System Boundary
invokes
Review application
Rev iew applications

Add Serv ices

Maintain jobs

extend

subscription

extend
Reset passw ord

Maintain
subscriptions

Read Messages

Delete Messages

extend

Maintain Jobs

Delete subscription
Schedule Interv iew s

Dow nload CVs


extend

invokes
extend

extend

extend

extend
Post new Job

Add subscription
Send Email

extend

extend

Edit subscription

Maintain Messages

extend uses

extend

uses

Maintain job category

Update Job

Remov e Jobs

Backup Database
Maintain Job
Categories

Login
extend

Logout
invokes

extend

Send Messages

Login

extend
extend

Maintain Database

uses

Add j ob category

extend

extend

Update j ob category

Delete j ob category
Search CVs

extend

uses
extend
Apply for a job

Maintain user

Apply for a
subscription

invokes
Apply for a Job

Maintain Users

Maintain locations

extend

extend

List subscriptions

Delete user
Rigisteration
invokes

Maintain Locations
uses

extend
extend

extend

Activ ate user


account

extend

invokes

extend

Register Company
Profile

Get payment
extend

Unsubscribe from
search notifications

extend

Update User profile

extend

Assign Roles

Add an administrator
extend

View Job
Add Location

Edit Location

Remov e Location

invokes

Register Personal
Profile

Issue a recipt
extend

uses

extend

depends on

Register Profile

extend
Subscribe to search
notifications

Search Jobs

Build CV
invokes

invokes

Guest

Job Seeker

Page 5 of 43

The use case diagram above describes the events in the system, and each sub
system specified within a boundary.
The system boundary includes with all use cases in the system, and there are other
sub boundaries, which contain the sub systems use cases.
The first four sub-systems will be described in details during the course of this
report.
uc Registration

1.

Functionality

User

First of all, there is the


registration
sub-system,
which
includes four use cases; Register
profile, Activate user account, Register
user profile and Register company,
these use cases are responsible of
registration and activating user
accounts for both the personal Job
Seeker) and company (Employer)
profiles.

(from
Actors)
Employer

Job Seeker

(from
Actors)

(from
Actors)
Registration

Register Company
Profile

Activ ate user


account

extend

Registration

extend

Register Personal
Profile

depends on

Register Profile

Guest
(from
Actors)

uc Apply for a j ob (application)


Apply for a job (application)

2.

Search Jobs

Job Seeker
(from
Actors)

Job Application

Functionality
Apply for a job sub system
contains Apply for a job, View job and
Search jobs use cases which describes
the event of Applying for a job ,
viewing job and searching jobs.

extend

View Job

extend

Apply for a Job

Page 6 of 43

uc Maintain j obs
Maintain jobs

Remov e Jobs

Maintain Jobs
extend
Employer
(from
Actors)

extend
extend

Update Job

Post new Job

3. Maintain Jobs functionality


Correspondingly, there is Maintain jobs sub system, which includes Maintain job,
Post job, Update job and Remove job use cases, which describe the events of posting,
updating and removing jobs.

uc Profiles management
Profiles management
Assign Roles
Maintain Users

extend

Administrator
(from
Actors)

extend
extend
Update User profile

extend

Delete user
Add an administrator

4. Maintain Users functionality


Likewise, Maintain user system has five use cases which are responsible of
describing the events of maintaining the user by updating and deleting user profile, adding
administrator as well as assigning roles the use cases in charge for that are Maintain users,
Update user profile, Delete user, Add an administrator, and assign roles use cases.

5. Login functionality
The login system includes the login use case, which describes the event of Login and
the logout use cases, which describes the event of Logout.

6. Maintain Locations functionality

P a g e 7 | 43

Maintain locations system aims to add, edit, and remove locations and it contains
four use cases Maintain location, Add location, Edit location and Remove location.

7. Maintain Subscriptions functionality


The Subscription system also includes four use cases aiming to describe the events
of subscription, it contains Maintain subscription, Add subscription, Edit subscription and
Delete subscription.

8. Maintain Job Categories functionality


Similarly, the maintain job category has four use cases Maintain job category, Add
job category, Update job category and delete job category, they are responsible to describe
the events of maintain job category by adding, updating and removing job categories.

9. Review Applications functionality


Review application sub-system aims to provide the ability to review the job
application, download CVs and schedule interviews, three use cases are in place to describe
the events of these processes, which are Review application, Schedule interview, and,
Download CVs.

10. Other functionality


Besides there are additional use cases within systems boundary which describes
other events such as resetting password adding services, building CV, sending message,
deleting message.

The more use cases, the more provided functionalities making the system more
reliable, and feature filled for the users.

P a g e 8 | 43

Narratives/Scenarios
The scenarios below describe the process of several functionalities on the system:

1. Registration
Registration functionality included with several functionalities (register profile, active
user account, register personal profile and register company profile)
1.1 Register Profile
1. Guest clicks sign up in the home_page
2. Redirect the guest to the registration_page
3. Guest fills in required information in the registration_page
4. registration_page validates the inserted information
4a. registration_page displays error message
5. registration_page sends information to the registration_controller
6. Registration_controller sends information to the DBM
7. DBM validate the new user
7a. DBM return error message the registration_controller
7b. Registration_controller return error message to the registration_page
7c. Registration_page displays error message
8. DBM create new user in the database
9. Database return successful message the DBM
10. DBM return successful message the registration_controller
11. Registration_controller return successful message to the registration_page
12. registration_page displays successful message
1.2 Activate user account
1. User clicks activation link
2. Validation_page activates user account
3. Validation_page redirect the user to profile selection_page
3.1a.

The user select the personal profile type

3.1b.

System invokes Register Personal Profile

3.2a.

The user select the company profile type

3.2b.

System invokes Register Company Profile

1.3 Register Personal Profile


1. User fills in the personal profile information in the Register_Personal_Profile_page
1a. User upload CV
1b.User Build new CV
2. Register_Personal_Profile_page validates the inserted information
2a. Register_Personal_Profile_page display error message
3. Register_Personal_Profile_page sends information to the DBM
4. DBM create new personal profile in the DB
5. DB return successful message to the DBM

P a g e 9 | 43

6. DBM return successful message to register Personal Profile page


7. Register Personal Profile page display successful message
1.4 Register Company Profile
1. User fills in the company profile information in the Register Company Profile page
2. Register Company Profile page validates the inserted information
2a. Register Company Profile page display error message
3. Register Company Profile page sends information to the DBM
4. DBM create new company profile in the DB
5. DB return successful message to the DBM
6. DBM return successful message to Register Company Profile page
7. Register Company Profile page display successful message

2. Apply for a job


Apply for a job functionality included with several functionalities (search job, view job
and apply for a job)
2.1 Search Jobs
1. Job Seeker clicks search on home_page
2. Home_page redirect the Job Seeker to search_page
3. Job Seeker inserts search criteria and click search on the search_page
4. Search_page request the result from the search_controller
5. Search_controller sends criteria to DBM
6. DBM query the results from jobs_entity
7. Jobs_entity search for jobs
8. Jobs_entity returns the query results
8a. Jobs_entity returns message no job found DBM
8b.DBM return message to search_controller
8c. Search_controller displays the message on the search_page
9. DBM return search results to search_controller
10.Search_controller displays the result on the search_page
2.2 View Job
1. Job Seeker clicks view job for the selected job from the search_page
2. Search_page request the job details from the search_controller
3. search_controller request the job details from DBM
4. DBM query the job details from jobs_entity
5. jobs_entity returns the job details to DBM
6. DBM return job details to search_controller
7. search_controller display view_job_page and display job details

P a g e 10 | 43

2.3 Apply for a Job


1. Job Seeker clicks apply on the view_job_page
2. View_job_page sends request to application_controller
3. Application_controller request the Job Seeker ID from the session_controller
4. Session_controller returns the Job Seeker ID to application_controller
5. Application_controller sends job ID and the Job Seeker ID to the DBM
6. DBM insert a new application record in the applications_entity
7. applications_entity return successful message to DBM
8. DBM return message to the application_controller
9. Application_controller invokes send message use case
10.Application_controller displays successful message on the view_job_page

3. Maintain jobs
Maintain jobs functionality included with several functionalities (maintain jobs, post
new job, remove job and update job)
3.1 Maintain Jobs
1. The Employer open jobs_management_page
2. Jobs_management_page requests job list from job_controller
3. Job_controller request user ID from session_controller
4. Session_controller returns the employer_ID to job_controller
5. Job_controller sends employer_ID to the DBM
6. DBM request job list from the jobs_entity
7. jobs_entity search job
8. jobs_entity return job list to the DBM
8a. jobs_entity return message no posted jobs to DBM
8b. DBM return the message job_controller
8c. Job_controller displays the message on the jobs_management_page
9. DBM return job list to the job_controller
10.Job_controller displays job list on the jobs_management_page
3.2 Post new Job
1. The Employer clicks on post new job on the jobs_management_page
2. jobs_management_page redirect the employer to post_new_job_page
3. Employer inserts the job details and clicks post
4. post_new_job_page validate the inserted data
5. post_new_job_page sends the data to the job_controller
5a. post_new_job_page reurn error message to post_new_job_page
6. Job_controller sends the data to the DBM
7. DBM insert the new record in the jobs_entity
8. jobs_entity return successful message to DBM
9. DBM return message to the job_controller

P a g e 11 | 43

10.Job_controller redirect the employer to the jobs_management_page and displays


successful message
3.3 Remove Job
1. The Employer clicks on delete job for the selected job on the jobs_management_page
2. jobs_management_page send the job ID to the job_controller
3. Job_controller sends the job ID to the DBM
4. DBM delete the job from the jobs_entity
5. jobs_entity return successful message to DBM
6. DBM return message to the job_controller
7. Job_controller redirect the employer to the jobs_management_page and displays
successful message
3.4 Update Job
1. The Employer clicks on edit job for the selected job on jobs_management_page
2. jobs_management_page send the job ID to the job_controller
3. Job_controller request the job details from the DBM
4. DBM query the job details from jobs_entity
5. jobs_entity returns the query results to DBM
6. DBM return job details to job_controller
7. job_controller displays edit_job_page and displays job details
8. Employer updates the job details and clicks update on edit_job_page
9. edit_job_page validate the inserted data
9a. edit_job_page return error message
10.edit_job_page sends the data to the job_controller
11.Job_controller sends the data to the DBM
12.DBM updates the record in the jobs_entity
13.jobs_entity return successful message to DBM
14.DBM return message to the job_controller
15.Job controller redirect the employer to the jobs_management_page and displays
successful message

4. Profiles management
Profile management functionality included with several functionalities (maintain
users, update user profile, delete user, assign roles and add and administrator)
4.1 Maintain Users
1. Administrator clicks search users on management_page
2. Management_page redirect the administrator to search_users_page
3. Administrator inserts search criteria and click search on the search_users_page
4. Search_users_page request the result from the search_users_controller
5. Search_users_controller sends criteria to DBM

P a g e 12 | 43

6. DBM query the results from users_entity


7. users_entity searches user
8. users_entity returns the query results
9. DBM return search results to search_users_controller
9b. users_entity returns message no user found to DBM
9c. DBM return message to search_users_controller
9d. Search_users_controller displays the message on the search_users_page
10.Search_users_controller displays the result on the search_users_page
4.2 Update User profile
1. Administrator select the user from Search_users_page
2. Search_users_page send the user ID to the search_users_controller
3. Search_users_controller request the user details from the DBM
4. DBM query the user details from users_entity
5. users_entity returns the query results to the DBM
6. DBM return user details to search_users_controller
7. search_users_controller displays update_user_page and user details
8. Administrator update the user details and click update
9. update_user_page validate the inserted data
9a. update_user_page return error message
10.Update_user_page sends the data to the search_users_controller
11.Search_users_controller sends the data to the DBM
12.DBM updates the record in the users_entity
13.users_entity return successful message to DBM
14.DBM return message to the search_users_controller
15.Search_users_controller redirect the administrator to the Search_users_page and
displays successful message
4.3 Delete user
1. Administrator click remove on select the user on Search_users_page
2. Search_users_page send the user ID to the search_users_controller
3. Search_users_controller sends the user ID to the DBM
4. DBM delete the user from users_entity
5. users_entity delete the user
6. users_entity return successful message to DBM
7. DBM return message to the search_users_controller
8. Search_users_controller redirect the administrator to the Search_users_page and
displays successful message
4.4 Assign Roles
1. Administrator select the user from Search_users_page
2. Search_users_page send the user ID to the search_users_controller

P a g e 13 | 43

3. Search_users_controller sends the user ID to the DBM


4. DBM query the user privileges from users_entity
5. users_entity returns the query results to the DBM
6. DBM return user privileges to search_users_controller
7. search_users_controller displays update_user_privileges_page and displays user
privileges
8. Administrator update the user privileges and click update on
update_user_privileges_page
9. Update_user_privileges_page sends the data to the search_users_controller
10.Search_users_controller sends the data to the DBM
11.DBM updates the record in the users_entity
12.users_entity return successful message to DBM
13.DBM return message to the search_users_controller
14.Search_users_controller redirect the administrator to the Search_users_page and
displays successful message
4.5 Add an administrator
1. Administrator clicks add new administrator on the management_page
2. Management_page redirect the administrator to add_administrator_page
3. Administrator fills the required data and click add on add_administrator_page
4. add_administrator_page validate the inserted data
4a. add_administrator_page return error message
5. Add_administrator_page sends the data to the add_administrator_controller
6. Add_administrator_controller sends the data to the DBM
7. DBM add the record to the Administrator_intity
8. Administrator_intity return successful message to DBM
9. DBM return message to the Add_administrator_controller
10.Add_administrator_controller redirect the administrator to the management_page and
displays successful message

P a g e 14 | 43

alt w rong v alidation


Home_Page
:Home_Page
Registration_Page
:Registration_Page

alt user exist

return
message(successful
message)
DBM :DBM

di spl ay message
(successful message)

di spl ay message(error message)

return message(error message)

di spl ay message(error message)

P a g e 15 | 43

1.1.2 Sequence

sd 1_Basic_Path
users_enti ty
:users_enti ty

Guest :Guest
Registration_Controller
:Registration_Controller

cl i cks si gn up()
di spl ay()

i nsert i nformati on()


val i dates i nformati on()

get i nformati on()


get i nformati on()
val i date new user()

return message(successful
message)
i nsert new user()

End

Registration_Page
displays successful
message

Registration_Controller
return successful
message to the
Registration_Page

DBM return successful


message the
Registration_Controller

users_entity return
successful message the
DBM

DBM create new user in


the users_entity

[new user]

val i date
the new
user

DBM v alidate the new


user

Registration_Controller
sends the information to
the DBM

Registration_Page
displays error message

Registration_Controller
return error message to
the Registration_Page

DBM return error message


the Registration_Controller

[user exi st]

Registration_Page
displays error message

[error wi th val i dati on]

Registration_Page sends
the information to the
Registration_Controller

[Ri ght val i dati on]

Val i date
i nserted
i nform ati on

Registration_Page
v alidates the inserted
information

Guest fills in required


information in the
Registration_Page

Home_Page redirect the


Guest to the
Registration_Page

Guest clicks sign up in the


Home_Page

Start

act Register Profile_Activ ityGraph

Diagrams (Activity / Sequence /Communication)


The diagrams below clarify the steps of each fiction from the functionalities described

before.

1. Registration

1.1 Register Profile

1.1.1 Activity

1.1.3 Communication
sd 1_Basic_Path Communication

0.7: validate new user()


0.8: insert new user()

DBM :DBM
0.1: clicks sign up()

users_entity :
users_entity

0.9: return message(successful message)

Guest :Guest
Home_Page :Home_Page

0.13: return message(error message)


0.2: display()

0.6: get information()

0.3: insert information()

0.10: return message(successful message)


0.12: display message(error message)
0.4: validates information()

0.5: get information()


0.14: display message(error message)
0.11: display message (successful message)
Registration_Page
:Registration_Page

Registration_Controller
:Registration_Controller

P a g e 16 | 43

1.2 Activate user account

1.2.2 Sequence
sd 1_Basic_Path

User :User
Validation_page
:Validation_page
clicks activation link()

profile_selection_page
:profile_selection_page

Register Personal
Profile :Register
Personal Profile

Register Company
Profile :Register
Company Profile

activates (user_account)

display profile_selection_page()
select personal profile type()
invokes Register Personal Profile use case()

alt select company profile type


select company profile type()

invokes Register Company Profile use case()

1.2.3 Communication
sd 1_Basic_Path Communication

0.2: activates (user_account)


0.1: clicks activation link()
User :User

0.4: select personal profile type()

Validation_page
:Validation_page

0.3: display profile_selection_page()


0.6: select company profile type()

profile_selection_page
:profile_selection_page

0.5: invokes Register Personal Profile use case()

0.7: invokes Register Company Profile use case()

Register Company Profile


:Register Company Profile

Register Personal Profile


:Register Personal Profile

P a g e 17 | 43

End

profile_selection_page
inv okes Register
Company Profile
profile_selection_page
inv okes Register Personal
Profile

The user select the


personal profile type on
profile_selection_page

[Personal profile]

Select
profile type

Validation_page redirect
the user to
profile_selection_page

Validation_page activ ates


user account

User clicks activ ation link


to go to Validation_page

Start

act Activ ate user account_Activ ityGraph

[Company profile]

The user select the


company profile type on
profile_selection_page

1.2.1 Activity

Register_Personal_Profile_page
:Register_Personal_Profile_page
insert information()
validates information()

1.3.2 Sequence

sd 1_Basic_Path
DBM :DBM

User :User
Job_seeker_entity
:Job_seeker_entity

upload CV()
get information()
create personal profile()

display message(successful message)


return message(successful message)

alt w rong v alidation

display message(error
message)

alt Build CV

build CV()

invoke build CV use


case

P a g e 18 | 43

End

Register_Personal_Profile_page
display successful message

DBM return successful message


to
Register_Personal_Profile_page

Job_seeker_entity return
successful message to
the DBM

DBM create new personal


profile in the
Job_seeker_entity

Register_Personal_Profile_page
sends information to the DBM

Val i date
i nserted
i nformati on

Register_Personal_Profile_page
v alidates the inserted information

User upload CV on
Register_Personal_Profile_page

[Upl oad CV]

Upl oad or
bui l d CV

User fills in the personal profile


information in the
Register_Personal_Profile_page

Start

act Register Personal Profile_Activ ityGraph

Register_Personal_Profile_page
display error message

[wrong val i dati on]

Register_Personal_Profile_page
inv oks build CV use case

[Bui l d CV]

1.3 Register Personal Profile

1.3.1 Activity

1.3.3 Communication
sd 1_Basic_Path Communication
0.8: display message(error message)
0.2: validates information()

0.1: insert information()

User :User0.3: upload CV()


0.9: build CV()

0.4: get information()

DBM :DBM

0.7: display message(successful message)


Register_Personal_Profile_page
:Register_Personal_Profile_page
0.5: create personal profile()

0.6: return message(successful message)

Job_seeker_entity
:Job_seeker_entity

P a g e 19 | 43

1.4 Register Company Profile

1.4.2 Sequence
sd 1_Basic_Path
DBM :DBM
User :User
Register_Company_Profile_page
:Register_Company_Profile_page

company_profile_entity
:company_profile_entity

insert information()
validates information()

gets information()
insert company profile()

return message(successful message)


display message(successful message)

alt w rong v alidation


display message(error
message)

1.4.3 Communication
sd 1_Basic_Path Communication
0.7: di spl ay message(error message)
0.2: val i dates i nformati on()

0.1: i nsert i nformati on()


0.6: di spl ay message(successful message)
DBM :DBM
User :User

0.3: gets i nformati on()


Regi ster_Company_Profi l e_page
:Regi ster_Company_Profi l e_page
0.5: return message(successful message)
0.4: i nsert company profi l e()

company_profi l e_enti ty
:company_profi l e_enti ty

P a g e 20 | 43

End

Register_Company_Profile_page
display successful message

company_profile_entity
return successful
message to the DBM

DBM return successful message


to
Register_Company_Profile_page

Register_Company_Profile_page
display error message
DBM create new company
profile in the
company_profile_entity

Register_Company_Profile_page
sends information to the DBM

[Valid information]

[wrong validation]
Validate
inserted
information

Register_Company_Profile_page
v alidates the inserted information

User fills in the company profile


information in the
Register_Company_Profile_page

Start

act Register Company Profile_Activ ityGraph

1.4.1 Activity

2. Apply for a job


2.1 Search Jobs

Search_controller
displays the result on the
search_page

2.1.2 Sequence
sd 1_Basic_Path
DBM :DBM

jobs_entity
:jobs_entity

Job Seeker :Job Seeker


home_page
:home_page
clicks search()

search_page
:search_page

search_controller
:search_controller

display search_page()

inserts search criteria(String: key_word)


search_jobs(key_word)
search_jobs(key_word)
query_jobs(key_word)

query(key_word)
:query_results

return(ArrayList<job>)
set(ArrayList<job>)
display(ArrayList<job>)

alt no j ob found

return messge(error message)

return message(error
message)
display message(error message)

2.1.3 Communication
sd 1_Basic_Path Communication

0.1: clicks search()


Job Seeker :Job
Seeker

0.7: query(key_word) :query_results

j obs_entity :
j obs_entity

home_page :home_page

0.6: query_jobs(key_word)
0.2: display search_page()

0.3: inserts search criteria(String: key_word)

0.9: set(ArrayList<job>)

0.10: display(ArrayList<job>)

0.8: return(ArrayList<job>)
DBM :DBM

0.4: search_jobs(key_word)
search_page :search_page

0.5: search_jobs(key_word)
search_controller
:search_controller

P a g e 21 | 43

End

DBM return message to


search_controller
DBM return search results
to search_controller

Jobs_entity returns
message no j ob found
DBM
Jobs_entity returns the
query results to DBM

[no job found]


[Jon found]

Search for
jobs

Jobs_entity search for


j obs

DBM query the results


from j obs_entity

Search_controller sends
criteria to DBM

Search_page request the


result from the
search_controller

Job Seeker inserts search


criteria and click search
on the search_page

Home_page redirect the


Job Seeker to
search_page

Job Seeker clicks search


on home_page

Start

act Search Jobs_Activ ityGraph

Search_controller
displays the message on
the search_page

2.1.1 Activity

2.2 View Job

End

search_controller display
v iew _j ob_page and
display j ob details

DBM return j ob details to


search_controller

j obs_entity returns the j ob


details to DBM

DBM query the j ob details


from j obs_entity

search_controller request
the j ob details from DBM

Search_page request the


j ob details from the
search_controller

Job Seeker clicks v iew


j ob for the selected j ob
from the search_page

Start

act View Job_Activ ityGraph

2.2.1 Activity

2.2.2 Sequence
sd 1_Basic_Path
DBM :DBM
Job Seeker :Job Seeker
search_page
:search_page
clicks view()

v iew _j ob_page
:v iew _j ob_page

search_controller
:search_controller

j obs_entity
:j obs_entity

get job details(job_ID)

get job details(job_ID)

query job details(job_ID)

return job details()

return job details()

display view_job_page(job details)

2.2.3 Communication
sd 1_Basic_Path Communication

0.2: get job details(job_ID)

0.1: clicks view()


Job Seeker :Job
Seeker
search_page :search_page

search_controller
:search_controller

0.3: get job details(job_ID)


0.7: display view_job_page(job details)

view_job_page :view_job_page
0.6: return job details()
0.4: query job details(job_ID)
0.5: return job details()

DBM :DBM

jobs_entity :jobs_entity

P a g e 22 | 43

2.3 Apply for a Job

2.3.2 Sequence
sd 1_Basic_Path
DBM :DBM
Job Seeker :Job Seeker
v iew _j ob_page
:v iew _j ob_page
clicks apply()

application_controller
:application_controller

session_controller
:session_controller

applications_entity
:applications_entity

get requests()

get ID(Job_Seeker_ID)

return ID(Job_Seeker_ID)

get(job_ID, Job_Seeker_ID)

insert(job_ID, Job_Seeker_ID)

return successful message()


return message()
invoke send message use case()
displays successful message()

2.3.3 Communication
sd 1_Basic_Path Communication
0.9: invoke send message use case()
0.2: get requests()

0.1: clicks apply()

0.3: get ID(Job_Seeker_ID)


0.10: displays successful message()

Job Seeker :Job


Seeker

0.4: return ID(Job_Seeker_ID)


view_job_page :view_job_page

application_controller
:application_controller

0.8: return message()

0.5: get(job_ID, Job_Seeker_ID)

0.6: insert(job_ID, Job_Seeker_ID)

session_controller
:session_controller

DBM :DBM

0.7: return successful message()


applications_entity
:applications_entity

P a g e 23 | 43

End

Application_controller
displays successful
message on the
v iew _j ob_page

Application_controller
inv okes send message
use case

DBM return message to


the application_controller

applications_entity return
successful message to
DBM

DBM insert a new


application record in the
applications_entity

Application_controller
sends j ob ID and the
Job_Seeker_ID to the DBM

Session_controller returns
the Job_Seeker_ID to
application_controller

Application_controller
request the
Job_Seeker_ID from the
session_controller

View _j ob_page sends


request to
application_controller

Job Seeker clicks apply


on the v iew _j ob_page

Start

act Apply for a Job_Activ ityG...

2.3.1 Activity

Employer :Employer
j obs_management_page
:j obs_management_page
open()
j ob_controller
:j ob_controller

alt j obs not found


session_controller
:session_controller

3.1.2 Sequence

sd 1_Basic_Path
DBM :DBM

j obs_entity
:j obs_entity

get job list(ID)

get user_ID()

returns user_ID(ID)

get employer ID(ID)


query jobs(employer_ID)

return jobs(job_list)
search job (emplyer_ID)

display(job_list)
return jobs(job_list)

return message(not_found)
return message(not_found)

display messge(not_found)

P a g e 24 | 43

End

Job_controller displays
j ob list on the
j obs_management_page

DBM return j ob list to the


j ob_controller

j obs_entity return j ob list


to the DBM

Found posted job

T here is any
posted job?

j obs_entity search j ob

DBM request j ob list from


the j obs_entity

Job_controller sends
user_ID to the DBM

Session_controller returns
the user_ID to
j ob_controller

Job_controller request
user_ID from
session_controller

Jobs_management_page
requests j ob list from
j ob_controller

The Employer open


j obs_management_page

Start

act Maintain Jobs_Activ ityGraph

Job_controller displays
the message on the
j obs_management_page

DBM return the message


j ob_controller

j obs_entity return
message no posted j obs
to DBM

[no posted jobs]

3. Maintain jobs

3.1 Maintain Jobs

3.1.1 Activity

3.1.3 Communication
sd 1_Basic_Path Communication

0.2: get job list(ID)


0.1: open()

0.3: get user_ID()

0.10: display(job_list)

Employer :
Employer

0.4: returns user_ID(ID)


jobs_management_page
:jobs_management_page

0.13: display messge(not_found)


job_controller :job_controller

session_controller
:session_controller

0.9: return jobs(job_list)

0.5: get employer ID(ID)

0.12: return message(not_found)


0.6: query jobs(employer_ID)
0.7: search job (emplyer_ID)
DBM :DBM

0.8: return jobs(job_list)


jobs_entity :jobs_entity

0.11: return message(not_found)

P a g e 25 | 43

3.2 Post new Job

3.2.2 Sequence
sd 1_Basic_Path
DBM :DBM
Employer :Employer
j obs_management_page post_new _j ob_page
:j obs_management_page :post_new _j ob_page
clicks post new job()

j ob_controller
:j ob_controller

j obs_entity
:j obs_entity

display()

inserts job details(dictionary<string, string>)


validate(dictionary
<string, string>)
get job
details(dictionary<string,
string>)

get job
details(dictionary<string,
string>)
insert
job(dictionary<string,
string>)

return message(successful)
return message(successful)
displays(successful message )

alt w rong v alidation


display message(error message)

3.2.3 Communication
sd 1_Basic_Path Communication

0.1: clicks post new job()

0.10: displays(successful message )

Employer :
Employer
job_controller :job_controller

jobs_management_page
:jobs_management_page

0.5: get job details(dictionary<string, string>)


0.2: display()
0.3: inserts job details(dictionary<string, string>)
0.4: validate(dictionary <string, string>)
0.11: display message(error message)

0.9: return message(successful)

post_new_job_page
:post_new_job_page

0.6: get job details(dictionary<string, string>)

0.7: insert job(dictionary<string, string>)


DBM :DBM
0.8: return message(successful)
jobs_entity :jobs_entity

P a g e 26 | 43

End

Job_controller redirect the


employer to the
j obs_management_page
and displays successful
message

DBM return message to


the j ob_controller

j obs_entity return
successful message to
DBM

DBM insert the new record


in the j obs_entity

Job_controller sends the


data to the DBM

post_new _j ob_page
sends the data to the
j ob_controller

right validation

Validate
inserted
information

post_new _j ob_page
v alidate the inserted data

Employer inserts the j ob


details and clicks post on
post_new _j ob_page

j obs_management_page
redirect the employer to
post_new _j ob_page

The Employer clicks on


post new j ob on the
j obs_management_page

Start

act Post new Job_Activ ityGraph

[wrong validation]

post_new _j ob_page reurn


error message

3.2.1 Activity

3.3 Remove Jobs

3.3.2 Sequence
sd 1_Basic_Path
DBM :DBM
Employer :Employer
j obs_management_page
:j obs_management_page

j ob_controller
:j ob_controller

j obs_entity
:j obs_entity

clicks delete()
get job ID(ID)
get job ID(ID)
delete job(ID)

return message(successful message)


return message(successful message)

displays message(successful message)

3.3.3 Communication
sd 1_Basic_Path Communication

0.7: displays message(successful message)

Employer :
Employer

0.1: clicks delete()

0.2: get job ID(ID)


jobs_management_page
:jobs_management_page

job_controller :job_controller

0.3: get job ID(ID)

0.6: return message(successful message)

0.4: delete job(ID)


DBM :DBM
0.5: return message(successful message)
jobs_entity :jobs_entity

P a g e 27 | 43

End

Job_controller redirect the


employer to the
j obs_management_page
and displays successful
message

DBM return message to


the j ob_controller

j obs_entity return
successful message to
DBM

DBM delete the j ob from


the j obs_entity

Job_controller sends the


j ob ID to the DBM

j obs_management_page
send the j ob ID to the
j ob_controller

The Employer clicks on


delete j ob for the selected
j ob on the
j obs_management_page

Start

act Remov e Jobs_Activ ityGraph

3.3.1 Activity

cl i cks edi t()


j obs_management_page
:j obs_management_page
edit_j ob_page
:edit_j ob_page

return m essage(successful

3.4.2 Sequence

sd 1_Basic_Path

Em pl oyer :Em pl oyer

j ob_controller
:j ob_controller
DBM :DBM

j obs_entity
:j obs_entity

get j ob ID(ID)

get j ob detai l s(ID)

query j ob detai l s(j ob_ID)

di spl ays(j ob detai l s)


return j ob detai l s()
returns j ob detai l s()

updates and cl i cks update()


val i date()

get new detai l s()

get new detai l s(ID)


updates j ob()

return m essage(successful m essage)


m essage)

alt w rong v alidation


di spl ays(successful m essage)

return m essage(error m essage)

P a g e 28 | 43

End

Job controller redirect the


employer to the
j obs_management_page
and displays successful
message

DBM return message to


the j ob_controller

j obs_entity return
successful message to
DBM

DBM updates the record in


the j obs_entity

Job_controller sends the


data to the DBM

edit_j ob_page return error


message

[wrong val i dati on]

edit_j ob_page sends the


data to the j ob_controller

[Val i d i nform ati on]

Val i date
i nform ati on

edit_j ob_page v alidate the


inserted data

Employer updates the j ob


details and clicks update
on edit_j ob_page

j ob_controller displays
edit_j ob_page and
displays j ob details

DBM return j ob details to


j ob_controller

j obs_entity returns the


query results to DBM

DBM query the j ob details


from j obs_entity

Job_controller request the


j ob details from the DBM

j obs_management_page
send the j ob ID to the
j ob_controller

The Employer clicks on


edit j ob for the selected
j ob on
j obs_management_page

Start

act Update Job_Activ ityGraph

3.4 Update Job

3.4.1 Activity

2.4.3 Communication
sd 1_Basic_Path Communication

0.2: get job ID(ID)

0.1: clicks edit()


Employer :
Employer

0.3: get job details(ID)

0.15: displays(successful message)


jobs_management_page
:jobs_management_page

job_controller :job_controller

0.11: get new details()


0.14: return message(successful message)

0.16: return message(error message)


0.9: validate()

0.8: updates and clicks update()

0.10: get new details()

0.7: displays(job details)


edit_job_page :edit_job_page

0.6: return job details()

0.12: updates job()


0.4: query job details(job_ID)
DBM :DBM
0.5: returns job details()
jobs_entity :jobs_entity

0.13: return message(successful message)

P a g e 29 | 43

management_page
:management_page
clicks search users()
search_users_page
:search_users_page

alt no user found


search_users_controller
:search_users_controller

4.1.2 Sequence

sd 1_Basic_Path

Administrator :Administrator
DBM :DBM

users_entity
:users_entity

inserts search criteria(search_key)


display()

get craiteria(search_key)
get criteria(search_key)
query results(search_ke)

returns results(users)
searches user(search_key)

display(users)
return results(users)

return message(error message)

return message(error message)

display messge(error mrssage)

P a g e 30 | 43

[no user found]

End

Search_users_controller
displays the result on the
search_users_page

[found user]

found user

DBM return search results


to
search_users_controller

users_entity returns the


query results to DBM

users_entity searches
user

DBM query the results


from users_entity

Search_users_controller
sends criteria to DBM

Search_users_page
request the result from the
search_users_controller

Administrator inserts
search criteria and click
search on the
search_users_page

M anagement_page
redirect the administrator
to search_users_page

Administrator clicks
search users on
management_page

Start

act M aintain Users_Activ ityGraph

Search_users_controller
displays the message on
the search_users_page

DBM return message to


search_users_controller

users_entity returns
message no user found to
DBM

4. Profiles management

4.1 Maintain Users

4.1.1 Activity

4.1.3Communication
sd 1_Basic_Path Communication
0.7: searches user(search_key)

0.6: query results(search_ke)


DBM :DBM

0.8: returns results(users)

0.1: clicks search users()


0.11: return message(error message)
Administrator :
Administrator

users_entity :users_entity
management_page
:management_page

0.9: return results(users)

0.3: inserts search criteria(search_key)

0.5: get criteria(search_key)

0.2: display()
0.12: return message(error message)

0.4: get craiteria(search_key)


0.10: display(users)

0.13: display messge(error mrssage)


search_users_page
:search_users_page

search_users_controller
:search_users_controller

P a g e 31 | 43

Search_users_page
:Search_users_page
update_user_page
:update_user_page
search_users_controller
:search_users_controller

4.2.2 Sequence

sd 1_Basic_Path
DBM :DBM

Administrator :Administrator

select user()
users_entity
:users_entity

get user_ID(ID)

get user_ID(ID)
query user details(ID)

return result(user details)


returns results(user details)

update user details and click update()


displays details(user details)

validate inserted data()

get user new details()


get user new details()

return message(successful message)


updates user()

displays(successful message)
return message(successful message)

alt w rong v alidation

display error message()

P a g e 32 | 43

End

Search_users_controller
redirect the administrator
to the Search_users_page
and displays successful
message

DBM return message to


the
search_users_controller

users_entity return
successful message to
DBM

DBM updates the record in


the users_entity

Search_users_controller
sends the data to the DBM

Update_user_page sends
the data to the
search_users_controller

[val i d i nform ati on]

Val i date
i nserted
i nform ati on

update_user_page
v alidate the inserted data

Administrator update the


user details and click
update

search_users_controller
displays
update_user_page and
user details

DBM return user details to


search_users_controller

users_entity returns the


query results to the DBM

DBM query the user


details from users_entity

Search_users_controller
request the user details
from the DBM

Search_users_page send
the user ID to the
search_users_controller

Administrator select the


user from
Search_users_page

Start

act Update User profile_Activ ityGraph

update_user_page return
error message

[wrong val i dati on]

4.2 Update User profile

4.2.1 Activity

4.2.3 Communication
sd 1_Basic_Path Communication
0.14: return message(successful message)
0.1: select user()

0.15: display(successful message)

0.6: return result(user details)

0.2: get user_ID(ID)

Administrator :
Administrator

DBM :DBM

0.3: get user_ID(ID)


0.11: get user new details()

Search_users_page
:Search_users_page

search_users_controller
:search_users_controller

0.4: query user details(ID)

0.12: updates user()

0.8: update user details and click update()


0.9: validate inserted data()

0.13: return message(successful message)


0.16: display error message()

0.5: returns results(user details)

0.10: get user new details()

0.7: displays details(user details)


update_user_page
:update_user_page
users_entity :users_entity

P a g e 33 | 43

4.3 Delete user

4.3.2 Sequence
sd 1_Basic_Path
DBM :DBM
Administrator :Administrator
Search_users_page
:Search_users_page
click remove()

search_users_controller
:search_users_controller

users_entity
:users_entity

get user_ID(ID)
get user ID(ID)
delete user(ID)
delete user(ID)
return message(successful message)
return message(successful message)
displays message(successful message)

4.3.3 Communication
sd 1_Basic_Path Communication

0.2: get user_ID(ID)

0.1: click remove()

0.8: displays message(successful message)

Administrator :
Administrator

Search_users_page
:Search_users_page

search_users_controller
:search_users_controller

0.3: get user ID(ID)


0.7: return message(successful message)

0.4: delete user(ID)

0.5: delete user(ID)

DBM :DBM
0.6: return message(successful message)
users_entity :users_entity

P a g e 34 | 43

End

Search_users_controller
redirect the administrator
to the Search_users_page
and displays successful
message

DBM return message to


the
search_users_controller

users_entity return
successful message to
DBM

users_entity delete the


user

DBM delete the user from


users_entity

Search_users_controller
sends the user ID to the
DBM

Search_users_page send
the user ID to the
search_users_controller

Administrator click
remov e on select the user
on Search_users_page

Start

act Delete user_Activ ityGraph

4.3.1 Activity

4.4 Assign Roles

4.4.2 Sequence
sd 1_Basic_Path
DBM :DBM
Administrator :Administrator
Search_users_page update_user_priv ileges_page
:Search_users_page :update_user_priv ileges_page
select user()

search_users_controller
:search_users_controller

users_entity
:users_entity

get user_ID(ID)
get user(ID)
query user privileges(ID)
returns results(privileges)
return user privileges(privileges)
displays user privileges(privileges)

update privileges and click update()


get new peivileges(privileges)
get new privileges(privileges)
updates priviliges(privileges, ID)
return message(successful message)
return message(successful message)
desplay(successful message)

4.4.3Communication
sd 1_Basic_Path Communication
0.13: return message(successful message)
0.14: desplay(successful message)

0.6: return user privileges(privileges)

0.1: select user()

DBM :DBM

0.3: get user(ID)

0.2: get user_ID(ID)

0.10: get new privileges(privileges)

Administrator :
Administrator
Search_users_page
:Search_users_page

search_users_controller
:search_users_controller

0.4: query user privileges(ID)

0.11: updates priviliges(privileges, ID)


0.9: get new peivileges(privileges)

0.5: returns results(privileges)

0.8: update privileges and click update()


0.12: return message(successful message)
0.7: displays user privileges(privileges)

update_user_privileges_page
:update_user_privileges_page

users_entity :users_entity

P a g e 35 | 43

End

Search_users_controller
redirect the administrator
to the Search_users_page
and displays successful
message

DBM return message to


the
search_users_controller

users_entity return
successful message to
DBM

DBM updates the record in


the users_entity

Search_users_controller
sends the data to the DBM

Update_user_priv ileges_page
sends the data to the
search_users_controller

Administrator update the user


priv ileges and click update on
update_user_priv ileges_page

search_users_controller
displays
update_user_priv ileges_page
and displays user priv ileges

DBM return user


priv ileges to
search_users_controller

users_entity returns the


query results to the DBM

DBM query the user


priv ileges from
users_entity

Search_users_controller
sends the user ID to the
DBM

Search_users_page send
the user ID to the
search_users_controller

Administrator select the


user from
Search_users_page

Start

act Assign Roles_Activ ityGraph

4.4.1 Activity

4.5 Add an administrator

4.5.2 Sequence
sd 1_Basic_Path
DBM :DBM
Administrator :Administrator
management_page
:management_page

add_administrator_page
:add_administrator_page

add_administrator_controller
:add_administrator_controller

Administrator_intity
:Administrator_intity

clicks add new administrator()


display()
insert data()
validate data()
get data()
get data()
add administrator()
return message(successful message)
return message(successful message)
displays(successful message)

alt w rong v alidation


display(error message)

4.5.3 Communication
sd 1_Basic_Path Communication

0.10: displays(successful message)

0.9: return message(successful message)

0.1: clicks add new administrator()


Administrator :
Administrator
add_administrator_controller
:add_administrator_controller

management_page
:management_page

0.6: get data()

DBM :DBM
0.3: insert data()
0.5: get data()
0.2: display()

0.7: add administrator()

0.4: validate data()

0.8: return message(successful message)

0.11: display(error message)

add_administrator_page
:add_administrator_page

Administrator_intity
:Administrator_intity

P a g e 36 | 43

End

Add_administrator_controller
redirect the administrator to
the management_page and
displays successful message

DBM return message to the


Add_administrator_controller

Administrator_intity return
successful message to
DBM

DBM add the record to the


Administrator_intity

Add_administrator_controller
sends the data to the DBM

Add_administrator_page
sends the data to the
add_administrator_controller

right validation

Validate
inserted
information

add_administrator_page
v alidate the inserted data

Administrator fills the


required data and click
add on
add_administrator_page

Management_page
redirect the administrator
to add_administrator_page

Administrator clicks add


new administrator on the
management_page

Start

act Add an administrator_Activ ityGraph

[wrong validation]

add_administrator_page
return error message

4.5.1 Activity

Deployment Diagram

The deployment diagram consists of 2 main machine: a Database Server and Enduser Computer. In addition to a Firewall device located alongside the Database Server.
Database Server:
The Database Server runs a Microsoft Windows Server platform, supports the
intended application execution environment .Net Framework. A running SQL service which is
Microsoft SQL 2008. As well ass, the application data schema in the SQL application.
Firewall:
In short, Firewall is intended to protect the explicitness of the data server; as the
direct communication between the Job Portal application and the data source (SQL server
2008).
End-User Computer:
Contains the application itself and compiler of .NET Framework.
The JobPortal.exe consists of both Application Logic and Application Design Interface. Since
the application is installed and on single platform, there will be "Persistence Settings"
component that maintain the application setting and preferences.

P a g e 37 | 43

Entity Relation Diagram (ERD)

The ERD Diagram shows the implementation of the Job Portal Database. It consists
of all entities needed to create a data source of Resumes (CVs) - referenced for Job Seeker and Jobs referenced for companies. In addition to the user management and
administration capabilities.
The Resume or CV builder subsystem is composed of essential details requirement
that compasses the information that is needed to be provided when applying for specific job,
in a CV.
The Company Profile subsystem holds the Company's main information for
applicant's to view and for the Company itself when posting a job.
The User Management subsystem is considered as the first step in getting in all of the data
entities. It keeps the records for variety of the system users and which data they are
interacting with.
This practice and implementation provide a complete and flawless data structure
easy to maintain and update.

P a g e 38 | 43

Domain Class Diagram


class Class diagram

is
a

DataList
is
a

Driv er
+
+
+
+

is
a

OpenConnection(string) :bool
CloseConnection() :void
ExecuteCommand(String) :void
Filter(string, string) :List<Item>

is
a
is
a

is
a

is
a

is
a

is
a

is
a

is
a

list :List<Item>
DatabaseDriver :Driver

#
+
+
+
+
+

PopulateList(Item) :void
Populate(Item) :void
Update(Item) :void
Add(Item) :void
Delete(Item) :void
clone() :DataList

is
a

is
a

is
a

is
a

is
a

is
a

is
a

is
a

is
a

is
a

is
a

is a

property
+ List() :List<Item>

is
a

JobApplicationsList

GenderList

MeetingList

JobList

JobTypeList

JobStatusList

MSSQLDriv er

DataListJoin
+
+
+
+

connection :SqlConnection
command :SqlCommand
reader :SqlDataReader

+
+
+
+

OpenConnection(string) :bool
CloseConnection() :void
ExecuteCommand(String) :void
Filter(string, string) :List<Item>

JobApplication
-

Meeting

jobId :String
jobSeekerId :String
applyDate :String

applicationId :String
date :String
time :String
addressLine1 :String
addressLine2 :String
cityId :String

+
+
+

Edit() :void
Make() :void
Cancle() :void

JobType
-

IndustryList

CompanyList

OperationSiteList

CompanySizeList

CityList

CountryList

UserList

MessageList

JobCategoryList

SkillsList

ExperienceList

MaritalStatusList

CVList

EducationList

DegreeTypeList

UserStatusList

RoleList

DataListJoin(string)
Populate(ItemJoin) :void
Update(ItemJoin) :void
Delete(ItemJoin) :void

JobCategoriesList

Industry

typeTitle :String
typeDescription :String

City

industryTitle :String

cityName :String
countryId :String

Country

1..*

1 -

Message

countryName :String
countryCode :String
cityList :arrayList<City>

has a
is
an

Skills

subject :string
body :string
from :Registered_User
to :Registered_User
Date :date

+
+
+

Send() :void
Write() :void
Attache() :void

Sends

MaritalStatus

CVId :String
Skill :String
Skill Level :String

UserStatus

maritalStatusName :String

statusTitle :String

add

Guest

instantiate
+
+

Company
Driv erFactory
-

dataList :DataList

CreateObject(String) :DataList

Applys, searches

name :String
CR :String
URL :String
telephone :String
fax :String
industryId :String
sizeId :String
cityId :String
contactEmail :String

+
+
+

Create() :void
Edit() :void
Delete() :void

Rgister() :void
Login() :void

CompanySize
is a part of

sizeTitle :String
sizeDescription :String

Opration site

#
#
#
#
#
#
#
#

firstName :String
lastName :String
userName :String
password :String
email :String
userStatus :String
joinDate :String
roleID :String

+
+

ChangPassword() :void
logout() :void

jobId :String
catId :String

Arranges

statusTitle :String
description :String

Manages

companyId :String
telephoneNumber :String
addessLine1 :String
addressLine2 :String
cityId :String

Configration

Manages

Experience
-

is a

Job
Employer

Database :DataList

Gender
JobSeeker
-

CV :CV
addressLine1 :String
addressLine2 :String
dateOfBirth :String
cityId :String
CPR :String
nationality :String
maritalStatus :String
gender :String

create_CV(CVBuilder) :void

genderName :String

title :String
description :String
statusId :String
requirments :String
qualifications :String
postStartDate :String
postExpiryDate :String
operationSiteId :String
salary :String
jobType :String
jobStartDate :String
jobCat :arrayList<JobCatogaries>

+
+
+
+
+

Post() :void
Change_Status() :void
Edit() :void
Delete() :void
Apply() :void

Manages

is
an

companyId :String
contactName :String
contactNumebr :String
contactPosition :String

companyName :String
startDate :String
endDate :String
CVId :String
Description :String
cityID :String

CV

searches,
Downloads,
Views

is
an

is
an

create

1..*

1..*

name :String
description :String
parentCatogary :String

+
+
+

Create() :void
Delete() :void
Edit() :void

ItemJoin(string, string)
ItemJoin()

property
+ IDJoin() :string
+ IDFieldJoin() :string

is
an

is
an
is
an

is
an

is
an

is
an

is
an

id :string
idField :string
table :string
valid :bool
errorMessage :string
fields :Dictionary<string, string>
updateFields :Dictionary<string, string>

+
+
+

Item(string)
Item()
clone() :Item

+
+
+
+
+

addExperiance() :void
addEducation() :void
addSkill() :void
addObjective() :void
getCV() :void

property
+ ID() :string
+ Fields() :Dictionary<string, string>
+ UpdateFields() :Dictionary<string, string>
+ IDField() :string
+ Table() :string
+ Valid() :bool
+ ErrorMessage() :string

CVBuilder
+
+
+
+
is
an

-list

is
an

is
an

is
an

addExperiance() :void
addEducation() :void
addSkill() :void
addObjective() :void

is
an
is
an

0..*

View() :void
Download() :void
Search() :void

degreeTitle :String

contains

implements

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

CVConcreatBuilder
Manages

Item
is
an

+
+
+

Role
-

roleDescription :String
canResetPassword :String
canApplyForJob :String
canSendMsg :String
canRegisterEmployeeProfile :String
canAddService :String
canReadMsg :String
canAssignRole :String
canApplyForSubscription :String
canManageSubscription :String
canChangeUserStatus :String
canDeleteMsg :String
roleTitle :String
canBackupDatabase :String
canReviewApplications :String
canBuildCV :String
canMaintainLocations :String
canSearchCVs :String
canMaintainUsers :String
canMaintainJobsCat :String
canMaintainJobs :String
canRegisterCompanyProfile :String

RoleConcreatBuilder

is a

idJoin :string
idFieldJoin :string

+
+

Experiance :arrayList<Experiance>
Education :arrayList<Education>
Skills :arrayList<Skills>
CVid :String
jobSeekerId :String
createdDate :String
lastUpdated :String
objective :String
uploadedCV :blob
nationality :String
maritalStatus :String
languages :String

CVId :String
degreeId :String
graduationDate :String
schoolName :String
cityId :String
Description :String
objective

setRoleTitle(String) :void
setRoleDescription(String) :void
canResetPassword() :void
canApplyForJob() :void
canSendMsg() :void
canRegisterEmployeeProfile() :void
canAddService() :void
canReadMsg() :void
canAssignRole() :void
canApplyForSubscription() :void
canManageSubscription() :void
canChangeUserStatus() :void
CarDeleteMsg() :void
canBackupDatabase() :void
canReviewApplications() :void
canBuildCV() :void
canMaintainLocations() :void
canSearchCVs() :void
canMaintainUsers() :void
canMaintainJobsCat() :void
canMaintainJobs() :void
canRegisterCompanyProfile() :void

roleId :String

ItemJoin
-

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Administrator

JobCategory

is a part of

DegreeType

Education

has a

is
an

RoleBuilder

Manages

j obCatogaries
JobStatus

creates

has a

Registered_User

addExperiance() :void
setRoleTitle(String) :void
addEducation() :void
setRoleDescription(String) :void
addSkill() :void
canResetPassword() :void
addObjective() :void
canApplyForJob() :void
canSendMsg() :void
getCV() :void
canRegisterEmployeeProfile() :void
canAddService() :void
canReadMsg() :void
canAssignRole() :void
canApplyForSubscription() :void
canManageSubscription() :void
canChangeUserStatus() :void
CarDeleteMsg() :void
canBackupDatabase() :void
canReviewApplications() :void
canBuildCV() :void
canMaintainLocations() :void
canSearchCVs() :void
canMaintainUsers() :void
canMaintainJobsCat() :void
canMaintainJobs() :void
canRegisterCompanyProfile() :void

creates

is
an

is
an

is a

is a part of

The previous static structural diagram describes the structure of the Job Portal proposed system, including the systems classes, their attributes,
and methods. Furthermore, it includes and names the relationships among the systems objects. These relationships includes weaker association
relationships, and the more solid and specific relationship, the aggregation in addition to the strongest and the most specific relationship, the composition.
Furthermore, the multiplicity is included in order to demonstrate the possible number of elements in a relationship. The proposed class diagram follows
and implements the object-oriented approach in a variety of occasions. For instance, it includes creator classes, which are inheriting using polymorphism
from the DataList or Item classes. Other occasions of the Object Oriented Design Patterns are discussed in details in their own section of this report.

P a g e 39 | 43

Patterns
A wide variety of object-oriented principals and patterns were followed and
implemented in the Domain Class Diagram, including the General Responsibility Assignment
Patterns and Principals.
class RoleBuilder

class CV Builder
interface
Domain Model::RoleBuilder

Registered_User
Domain Model::JobSeeker

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

DataList
Domain Model::
RoleList

add

Registered_User
Domain Model::
Administrator
-

roleId :String

setRoleTitle(String) :void
setRoleDescription(String) :void
canResetPassword() :void
canApplyForJob() :void
canSendMsg() :void
canRegisterEmployeeProfile() :void
canAddService() :void
canReadMsg() :void
canAssignRole() :void
canApplyForSubscription() :void
canManageSubscription() :void
canChangeUserStatus() :void
CarDeleteMsg() :void
canBackupDatabase() :void
canReviewApplications() :void
canBuildCV() :void
canMaintainLocations() :void
canSearchCVs() :void
canMaintainUsers() :void
canMaintainJobsCat() :void
canMaintainJobs() :void
canRegisterCompanyProfile() :void

implements
Item
Domain Model::Role
-

roleDescription :String
canResetPassword :String
canApplyForJob :String
canSendMsg :String
canRegisterEmployeeProfile :String
canAddService :String
canReadMsg :String
canAssignRole :String
canApplyForSubscription :String
canManageSubscription :String
canChangeUserStatus :String
canDeleteMsg :String
roleTitle :String
canBackupDatabase :String
canReviewApplications :String
canBuildCV :String
canMaintainLocations :String
canSearchCVs :String
canMaintainUsers :String
canMaintainJobsCat :String
canMaintainJobs :String
canRegisterCompanyProfile :String

Domain Model::RoleConcreatBuilder

creates

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

addExperiance() :void
setRoleTitle(String) :void
addEducation() :void
setRoleDescription(String) :void
addSkill() :void
canResetPassword() :void
addObjective() :void
canApplyForJob() :void
canSendMsg() :void
getCV() :void
canRegisterEmployeeProfile() :void
canAddService() :void
canReadMsg() :void
canAssignRole() :void
canApplyForSubscription() :void
canManageSubscription() :void
canChangeUserStatus() :void
CarDeleteMsg() :void
canBackupDatabase() :void
canReviewApplications() :void
canBuildCV() :void
canMaintainLocations() :void
canSearchCVs() :void
canMaintainUsers() :void
canMaintainJobsCat() :void
canMaintainJobs() :void
canRegisterCompanyProfile() :void

DataList
Domain Model::
CVList

CV :CV
addressLine1 :String
addressLine2 :String
dateOfBirth :String
cityId :String
CPR :String
nationality :String
maritalStatus :String
gender :String

create_CV(CVBuilder) :void

Item
Domain Model::CV

is a part of

Experiance :arrayList<Experiance>
Education :arrayList<Education>
Skills :arrayList<Skills>
CVid :String
jobSeekerId :String
createdDate :String
lastUpdated :String
objective :String
uploadedCV :blob
nationality :String
maritalStatus :String
languages :String

+
+
+

View() :void
Download() :void
Search() :void

interface
Domain Model::CVBuilder
+
+
+
+

addExperiance() :void
addEducation() :void
addSkill() :void
addObjective() :void

is a

create
Domain Model::
CVConcreatBuilder
+
+
+
+
+

addExperiance() :void
addEducation() :void
addSkill() :void
addObjective() :void
getCV() :void

1. Builder Pattern
The builder pattern was utilized in order to allow different representations of
both, the CV object and the Role object.

Being in need of having a step-by-step

creational process, by adding the required modules one at the time on the fly, thus
allowing them to be generated dynamically.

Page 40 of 43

class Item's Prototype

class Database Factory


sealed
Domain Model::

Domain Model::Item
-

Domain Model::DataList
-

list :List<Item>
DatabaseDriver :Driver

#
+
+
+
+
+

PopulateList(Item) :void
Populate(Item) :void
Update(Item) :void
Add(Item) :void
Delete(Item) :void
clone() :DataList

id :string
Configration
idField :string
table :string
Database
:DataList
valid :bool
errorMessage :string
fields :Dictionary<string, string>
updateFields :Dictionary<string, string>

-list

contains

+
0..* +
+

Item(string)
Item()
clone() :Item

property
+ ID() :string
+ Fields() :Dictionary<string, string>
+
+ UpdateFields() :Dictionary<string,
+
+ IDField() :string
+ Table() :string
+
+ Valid() :bool
+
+ ErrorMessage() :string

property
+ List() :List<Item>

interface
Domain Model::Driv er
OpenConnection(string) :bool
string>
CloseConnection() :void
ExecuteCommand(String) :void
Filter(string, string) :List<Item>

is an

Domain Model::MSSQLDriv er
Domain Model::Company
-

name :String
CR :String
URL :String
telephone :String
fax :String
industryId :String
sizeId :String
cityId :String
contactEmail :String

+
+
+

Create() :void
Edit() :void
Delete() :void

Domain Model::Message

connection :SqlConnection
command :SqlCommand
- subject :string
- body :string
reader :SqlDataReader

+
+
+
+

- to :Registered_User
OpenConnection(string)
:bool
- Date :date
CloseConnection()
:void
ExecuteCommand(String) :void
+ Send() :void
Filter(string, string)
:List<Item>
+ Write()
:void

from :Registered_User

Attache() :void

creates

Domain Model::Item
instantiate

2. Prototype Pattern

Domain Model::Driv erFactory

Prototype pattern comes in the

dataList :DataList

priority of the implementation due to

CreateObject(String) :DataList

several factors.

(Database

Server).

The

system in this case keeps a clone of


the

database-retrieved

"cloned object".

list

in

source

since

Item(string)
Item()
clone() :Item

0..*
is an

Another case or

untouched,

+
+
+

positive use of this is leaving the main


data

id :string
idField :string
table :string
valid :bool
errorMessage :string
fields :Dictionary<string, string>
updateFields :Dictionary<string, string>

property
+ ID() :string
+ Fields() :Dictionary<string, string>
+ UpdateFields() :Dictionary<string, string>
+ IDField() :string
+ Table() :string
+ Valid() :bool
-list + ErrorMessage() :string
contains

One of which is to

reduce the extensive usage of the


resources

the

actions are being acted upon the


objects that have been cloned after
their instantiations

Domain Model::DataList
-

list :List<Item>
DatabaseDriver :Driver

#
+
+
+
+
+

PopulateList(Item) :void
Populate(Item) :void
Update(Item) :void
Add(Item) :void
Delete(Item) :void
clone() :DataList

property
+ List() :List<Item>

Domain Model::ItemJoin
-

idJoin :string
idFieldJoin :string

+
+

ItemJoin(string, string)
ItemJoin()

property
+ IDJoin() :string
+ IDFieldJoin() :string

3. Factory Pattern
is a

The factory pattern was used to


allow the Jobs Portal framework to
utilize multiple database as makes it
possible

to

encapsulate

Domain Model::DataListJoin
+
+
+
+

DataListJoin(string)
Populate(ItemJoin) :void
Update(ItemJoin) :void
Delete(ItemJoin) :void

each

P a g e 41 | 43

database engine driver class, produce, and switch between database drivers
without affecting the rest of the code.

P a g e 42 | 43

class User's State

Domain Model::Item
Domain Model::DataList
-

list :List<Item>
DatabaseDriver :Driver

#
+
+
+
+
+

PopulateList(Item) :void
Populate(Item) :void
Update(Item) :void
Add(Item) :void
Delete(Item) :void
clone() :DataList

contains

property
+ List() :List<Item>

-list

+
0..* +
+

id :string
idField :string
table :string
valid :bool
errorMessage :string
fields :Dictionary<string, string>
updateFields :Dictionary<string, string>
Item(string)
Item()
clone() :Item

property
+ ID() :string
+ Fields() :Dictionary<string, string>
+ UpdateFields() :Dictionary<string, string>
+ IDField() :string
+ Table() :string
+ Valid() :bool
+ ErrorMessage() :string

is a

is an

abstract
Domain Model::
Registered_User
Domain Model::
UserList

#
#
#
#
#
#
#
#

firstName :String
lastName :String
userName :String
password :String
email :String
userStatus :String
joinDate :String
roleID :String

+
+

ChangPassword() :void
logout() :void

Domain Model::
Guest
+
+

Rgister() :void
Login() :void

Manages
is a
is a
Domain Model::JobSeeker

Domain Model::
Administrator
-

roleId :String

Domain Model::Employer
-

companyId :String
contactName :String
contactNumebr :String
contactPosition :String

CV :CV
addressLine1 :String
addressLine2 :String
dateOfBirth :String
cityId :String
CPR :String
nationality :String
maritalStatus :String
gender :String

create_CV(CVBuilder) :void

4. State Diagram
The state pattern was implemented in order to allow a user to complete its
registration after activating its profile; an activated registered user is allowed to
finish his Job Seeker or Employer profile based on his choice during runtime. Thus,
changing his class to support each ones special and unique requirements from the
method in the class to the default role in their attribute.

P a g e 43 | 43

Anda mungkin juga menyukai