Tải bản đầy đủ (.pdf) (63 trang)

ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG TRƯỜNG ĐẠI HỌC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 63 trang )

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

Cấn Văn Nghị

HỆ THỐNG QUẢN LÝ DỰ ÁN TRONG
TRƢỜNG ĐẠI HỌC

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin

HÀ NỘI - 2016


ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC
CÔNG NGHỆ

Cấn Văn Nghị

HỆ THỐNG QUẢN LÝ DỰ ÁN
TRONG TRƢỜNG ĐẠI HỌC

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin

Cán bộ hƣớng dẫn: TS. Trần Thị Minh Châu

HÀ NỘI - 2016


VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY



Can Van Nghi

SYSTEM FOR PROJECT ADMINISTRATION IN
UNIVERSITIES

Major: Information Technology

Supervisor: Ph.D.Tran Thi Minh Chau

HA NOI - 2016


LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn sâu xắc nhất tới cô giáo, Tiến sĩ Trần Thị
Minh Châu, ngƣời đã tận tình hƣớng dẫn, chỉ bảo cũng nhƣ đóng góp những ý kiến
quý báu để tôi có thể thực hiện khóa luận này.
Tôi cũng xin gửi lời cảm ơn chân thành tới các thầy cô giáo trƣờng Đại học Công
Nghệ - Đại học Quốc Gia Hà Nội đã chỉ dạy và truyền đạt những kiến thức quý giá
cho tôi trong thời gian tôi học tập tại trƣờng.
Tôi xin cảm ơn tập thể lớp K57CLC đã luôn ủng hộ, khuyên khích tôi trong việc
học tập và tổ chức những hoạt động ngoại khóa bổ ích sau những buổi học.
Cuối cùng, tôi xin cảm ơn gia đình và bạn bè những ngƣời luôn ở bện cạnh giúp
đỡ và động viên tôi không ngừng cố gắng, nỗ lực phấn đấu trong học tập.
Tôi xin chân thành cảm ơn !

Hà nội, ngày 26 tháng 04 năm 2016
Sinh viên

Cấn Văn Nghị


1


LỜI CAM ĐOAN
Tôi xin cam đoan khóa luận tốt nghiệp này do chính tôi thực hiện và đƣợc sự
hƣớng dẫn của Tiến sĩ Trần Thị Minh Châu. Các nội dung nghiên cứu, kết quả trong
đề tài này là trung thực và chƣa công bố dƣới bất kỳ hình thức nào trƣớc đây.
Tất cả các tài liệu tham khảo trong khóa luận đều có nguồn gốc rõ ràng đƣợc ghi
trong danh mục tài liệu tham khảo. Trong khóa luận, không có việc sao chép tài liệu,
công trình nghiên cứu của ngƣời khác mà không chỉ rõ về tài liệu tham khảo.

Hà nội, ngày 26 tháng 04 năm 2016
Sinh viên

Cấn Văn Nghị

2


TÓM TẮT
Tóm tắt: Ngày nay việc áp dụng công nghệ thông tin vào các lĩnh vực trong đời sống
đã trở nên rất phổ biến và cần thiết, điều này giúp cho công việc trở nên hiệu quả và
giảm chi phí đi rất nhiều. Các trƣờng đại học cũng là một nơi đã và đang áp dụng công
nghệ thông tin trong việc tổ chức và quản lý đào tạo, bằng chứng là một loạt các hệ
thống đã ra đời nhƣ: hệ thống đăng kí môn học, hệ thống quản lý thƣ viện, quản lý
sinh viên... . Tuy nhiên có một thực trạng hiện nay là việc sinh viên và giảng viên phải
tham gia vào các dự án nghiên cứu khoa học hay khóa luận, luận văn tốt nghiệp ngày
càng nhiều nhƣng lại chƣa có một hệ thống nào hỗ trợ cho việc này. Việc xây dựng
một hệ thống quản lý dự án trong trƣờng đại học, hỗ trợ cho việc trao đổi công việc

giữa các sinh viên và giảng viên thật sự là một vấn đề cần đƣợc giải quyết.
Trong bài khóa luận này tôi sẽ trình bày về việc xây dựng hệ thống “quản lý dự
án trong trƣờng đại học” cho trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
với framework Ruby On Rails. Bên cạnh việc tập trung vào việc xây dựng “hệ thống
quản lý dự án trong trường đại học” tôi cũng sẽ giới thiệu về framework Ruby On
Rails một Framework MVC còn khá mới mẻ nhƣng đang rất đƣợc ƣa chuộm hiện nay.

Từ khóa: Hệ thống quản lý dự án trong trường đại học, framework Ruby On Rails

3


ABSTRACT
Abstract: Up till these days, technology has been increasingly applied in most of
fields, which makes it become a popularly essential part in life. Technology has effect
on easing the burden brought by daily work as well as expense. Regard to the use of
technology in universities in Vietnam, technology is a fundamental element for
establishing the educational administration system. The outstanding proof for this is
that a series of systems made up, including systems for credit registration, library
administration, student administration, and so on. However, despite the fact that there
is an increase on the number of scientific researches as well as graduation thesis
launched by professors together with students each year, there are no system willing to
support this. This, seriously, leads to an urgent demand on building a system
specifically working on connecting between research instructors and researchers, and
smoothing the project process.
In my graduation thesis, I would like to demonstrate how I constructed The
system for Project administration in universities in the context of The University of
Engineering and Technology. Besides, I also chose the framework Ruby on Rails to
support for my work. Therefore, my thesis focuses on two important parts: the first one
is how to build up the “system for project administration in universities”; for the later,

I provide you with an overview about the framework Ruby On Rails, one of updated
and beloved Framework MVC these days.
Key words: System for Project administration in Universities, framework Ruby On
Rails.

4


MỤC LỤC
LỜI CẢM ƠN ....................................................................................................... 1
LỜI CAM ĐOAN ................................................................................................. 2
TÓM TẮT ............................................................................................................. 3
ABSTRACT .......................................................................................................... 4
MỤC LỤC ............................................................................................................. 5
Danh sách bảng ..................................................................................................... 8
Danh sách hình vẽ ................................................................................................. 9
Danh sách thuật ngữ và từ viết tắt ....................................................................... 10
Mở đầu ................................................................................................................ 11
Chƣơng 1: Giới thiệu về mô hình MVC và bài toán quản lý dự án trong trƣờng
đại học ................................................................................................................. 12
1.1

Mô hình MVC và các Framework MVC phổ biến. .......................................12

1.1.1 Mô hình MVC ................................................................................................12
1.1.3 Ƣu điểm và nhƣợc điểm của mô hình MVC .................................................13
1.1.5 Giới thiệu về các Framework MVC trong phát triển ứng dụng web .............13
1.1.5.1 Ruby on rails ...........................................................................................13
1.1.5.2 Spring MVC ............................................................................................13
1.1.5.3 Django .....................................................................................................14

1.1.5.4 Laravel .....................................................................................................14
1.1.5.5 Phalcon ....................................................................................................15
1.1.6 So sánh một số thành phần các Framework MVC ........................................15
1.2

Bài toán quản lý dự án trong trƣờng đại học .................................................17

1.2.1 Hệ thống quản lý dự án trong trƣờng đại học ................................................17
1.2.1.1 Phát biểu bài toán ....................................................................................17
1.2.1.2 Chức năng chính của hệ thống ................................................................17
5


1.2.2 Kế hoạch phát triển hệ thống .........................................................................18

Chƣơng 2: Framework Ruby On Rails ............................................................... 21
2.1 Ruby on rails ........................................................................................................21
2.1.1 Giới thiệu về Ruby on rails ............................................................................21
2.1.2.2 Các thành phần chính của Ruby On Rails ...............................................21
2.1.2 Phát triển dự án với Ruby On Rails ...............................................................24
2.1.2.1 Cài đặt môi trƣờng phát triển. .................................................................24
2.1.2.2 Ví dụ về một dự án Ruby on Rails. .........................................................25
2.2 Viết test trong Ruby On Rails ..............................................................................29
2.2.1 Giới thiệu về test trong Ruby On Rails .........................................................29
2.2.2 Công cụ viết test RSpec .................................................................................29
2.2.2.1 Cài đặt RSpec ..........................................................................................29
2.2.2.2 Generators trong rspec ............................................................................30
2.2.2.3 Các loại rspec test cơ bản cho Rails ........................................................30
1.2.2.4 Một số cú pháp đơn giản thƣờng đƣợc sử dụng trong rspec-rails ...........31
1.2.2.5 Các matcher thƣờng đƣợc sử dụng trong rspec-rails ..............................32

1.2.2.6 Chạy rspec test.........................................................................................32

Chƣơng 3: Phân tích thiết kế hệ thống quản lý dự án trong trƣờng đại học ....... 33
3.1 Phân tích và thiết kế hệ thống ..............................................................................33
3.1.1 User story của hệ thống .................................................................................33
2.1.2 Use case diagram ...........................................................................................35
2.1.3 Sequence diagram .........................................................................................45
3.2 Phân tích thiết kế cơ sở dữ liệu .........................................................................48
3.2.1 Mô hình ER và mô hình quan hệ................................................................48
3.2.2 Chi tiết các bảng dữ liệu. ............................................................................49
3.3 Viết test cho hệ thống...........................................................................................55
3.4 Giao diện hệ thống ...............................................................................................57
6


KẾT LUẬN ......................................................................................................... 59
Tài liệu tham khảo ............................................................................................... 60

7


Danh sách bảng
Bảng 1.2 So sánh thành phần các Framework ...............................................................15
Bảng 3.1: User story của hệ thống.................................................................................33
Bảng 3.2 Use case tạo dự án ..........................................................................................35
Bảng 3.3: Use case cập nhật thông tin dự án .................................................................36
Bảng 3.4 Use case xóa dự án .........................................................................................36
Bảng 3.5 Use case thêm công việc ................................................................................37
Bảng 3.6: Use case chỉnh sửa công việc........................................................................38
Bảng 3.7 Use case xóa công việc ..................................................................................39

Bảng 3.8 Use case xem danh sách công việc ................................................................39
Bảng 3.9: Use case thêm thành viên trong hệ thống vào dự án ....................................40
Bảng 3.10 Use case chỉnh sửa thông tin cá nhân ..........................................................40
Bảng 3.11 Use case xem thống kê .................................................................................41
Bảng 3.12 Use case upload file .....................................................................................41
Bảng 3.13: Use case thêm thành viên ngoài hệ thống vào dự án ..................................42
Bảng 3.14 Use case mời thành viên vào hệ thống .........................................................43
Bảng 3.15 Use case xem danh sách ngƣời dùng trong hệ thống ...................................44
Bảng 3.16: Use case xóa ngƣời dùng khỏi hệ thống .....................................................44
Bảng 3.17: Bảng cơ sở dữ liệu ituet_user......................................................................49
Bảng 3.18: Bảng cơ sở dữ liệu projects .........................................................................51
Bảng 3.19: Bảng cơ sở dữ liệu tasks .............................................................................52
Bảng 3.20: Bảng cơ sở dữ liệu comments .....................................................................53
Bảng 3.21: Bảng cơ sở dữ liệu member_projects..........................................................53
Bảng 3.22: Bảng cơ sở dữ liệu file_attachments ...........................................................53
Bảng 3.23: Bảng cơ sở dữ liệu activities .......................................................................54
Bảng 3.24: Test case ......................................................................................................55

8


Danh sách hình vẽ
Hình 1.1: dự án trên trello .............................................................................................19
Hình 2.1: Kiến trúc ruby on rails ...................................................................................23
Hình 2.2: Cấu trúc dự án Ruby On Rails.......................................................................25
Hình 2.3: kết quả khi chạy ứng dụng hello_rails...........................................................27
Hình 2.4: homes_controller.rb .......................................................................................28
Hình 2.5: Kết quả khi chạy ứng dụng............................................................................28
Hình 3.1 Use case diagram ............................................................................................35
Hình 3.2: Sequence diagram tạo mới dự án ..................................................................45

Hình 3.3: Sequence diagram cập nhật dự án .................................................................45
Hình 3.4: Sequence diagram tạo công việc ...................................................................46
Hình 3.5: Sequence diagram cập nhật công việc...........................................................46
Hình 3.6: Sequence diagram thêm thành viên cho dự án ..............................................47
Hình 3.7 Mô hình ER của hệ thống ...............................................................................48
Hình 3.8: Bảng cơ sở dữ liệu của hệ thống ...................................................................49
Hình 3.9: Giao diện thông tin dự án ..............................................................................57
Hình 3.10 Giao diện danh sách công việc .....................................................................57
Hình 3.11: Giao diện thêm công việc ............................................................................58
Hình 3.12: Giao diện xem chi tiết mộ công việc ...........................................................58

9


Danh sách thuật ngữ và từ viết tắt
Tiếng Anh/Tên viết tắt

Tiếng Việt/Cụm từ đầy đủ

MVC

Model View Controller

TDD

Test driven development

BDD

Behavior driven development


REST

Representational State Transfer

ORM

Object relational mapping

SOAP

Simple Object Access Protocol

HTTP

Hyper Text Transfer Protocol

WSDL

Web Services Description Language

10


Mở đầu
Trong bối cảnh hiện nay, khi mà công nghệ thông tin ngày càng phát triển một
cách mạnh mẽ. Việc các trƣờng đại học áp dụng công nghệ thông tin vào quản lý đào
tạo và giúp đỡ sinh viên trong quá trình học tập ngày càng nhiều. Đại học Công Nghệ Đại học Quốc Gia Hà Nội là một trong những trƣờng đi đầu trong việc áp dụng công
nghệ thông tin vào quá trình đào tạo. Một loạt các hệ thống công nghệ thông tin trợ
giúp sinh viên trong việc học tập nhƣ: hệ thống đăng kí môn học, hệ thống quản lý đào

tạo, hệ thống quản lý lớp môn học, hệ thống quản lý sách thƣ viện, ... đã đƣợc xây
dựng, bên cạnh đó còn có một số trang web phục vụ cho việc tra cứu tài liệu do sinh
viên tự phát triển. Tuy các hệ thống kể trên còn nhiều những bất cập nhƣng chúng ta
không thể phủ nhận những lợi ích to lớn mà nó mang lại cho nhà trƣờng và sinh viên.
Nhận thấy lợi ích to lớn từ các hệ thống hỗ trợ học tập. Khóa luận sẽ tham gia
vào việc phát triển hệ thống “ quản lý dự án trong trƣờng đại học”. Đây là một hệ
thống còn khá mới mẻ trong việc hỗ trợ sinh viên và giảng viên quản lý các công việc
trong các dự án.
Nội dung khóa luận sẽ đƣợc tổ chức thành bốn chƣơng với nội dung cụ thể của
mỗi chƣơng đƣợc giới thiệu nhƣ dƣới đây.
Chƣơng 1: Giới thiệu chung về mô hình MVC trong phát triển ứng dụng web,
một số Framework MVC phổ biến, so sánh các thành phần chính giữa các Framework
MVC và giới thiệu về bài toán xây dựng hệ thống quản lý dự án trong trƣờng đại học
cùng với quy trình xây dựng.
Chƣơng 2: Giới thiệu về Ruby On Rails, là framework MVC đƣợc sử dụng
trong việc phát triển hệ thống quản lý dự án trong trƣờng đại học. Khóa luận giới thiệu
qua về các thành phần cơ bản của Rails và việc viết test với ứng dụng Rails.
Chƣơng 3: Phân tích và thiết kế hệ thống quản lý dự án trong trƣờng đại học và
xây dựng cơ sở dữ liệu cho hệ thống, xây dựng bộ test case kiểm thử cho hệ thống.

11


Chƣơng 1: Giới thiệu về mô hình MVC và bài toán quản lý
dự án trong trƣờng đại học
1.1 Mô hình MVC và các Framework MVC phổ biến.
1.1.1 Mô hình MVC
MVC là một mô hình kiến trúc phát triển phần mềm , đƣợc ra đời nhằm giải
quyết vấn đề tổ chức mã nguồn, giúp tách biệt giữa việc xử lý logic và giao diện, nó
bao gồm ba thành phần chính: model, view và controller. Các phần mềm đƣợc phát

triển dựa mô hình MVC thƣờng có cấu trúc sáng sủa, việc bảo trì cũng trở nên dễ dàng
hơn
1.1.2 Cấu trúc của mô hình MVC.

Model: Tầng Model xử lý các nghiệp vụ của ứng dụng và trực tiếp thao tác với
dữ liệu. Trong ứng dụng web, tầng model thƣờng đƣợc sử dụng để tƣơng tác với các
thành phần tƣơng ứng với chúng trong cơ sở dữ liệu và kiểm tra tính hợp lệ của dữ
liệu.
View: Tầng view đƣợc dùng để hiển thị dữ liệu trong model thành các giao diện
tƣơng tác với ngƣời dùng. Trong mô hình MVC cho phát triển ứng dụng web các view
thƣờng sẽ là các file HTML đƣợc nhúng với code của ngôn ngữ server.
Controller: Controller Controller tƣơng tác với model và view. Các request đến
từ trình duyệt sẽ đƣợc xử lý bởi controller, controller sẽ phân, xử lý request và có thể
sẽ tƣơng tác với model để lấy dữ liệu sau đó trả về cho view để hiển thị thông tin.

Hình 1.1 Mô hình MVC

12


1.1.3 Ƣu điểm và nhƣợc điểm của mô hình MVC
Ƣu điểm: áp dụng mô hình MVC giúp cho việc phát triển phần mềm chuyên
nghiệp hơn, có thể phân chia công việc dễ dàng cho nhiều nhóm, giúp phát triển ứng
dụng nhanh, đơn giản, dễ nâng cấp giúp phát hiện lỗi và dễ sửa lỗi.
Nhƣợc điểm: MVC chỉ thích hợp với dự án lớn còn đối với dự án nhỏ việc áp
dụng mô hình MVC sẽ gây cồng kềnh tốn thời gian trong quá trình phát triển, chí phí
cho việc phát triển cao.
1.1.5 Giới thiệu về các Framework MVC trong phát triển ứng dụng web
1.1.5.1 Ruby on rails
 Giới thiệu

Ruby on rails là một framework MVC đƣợc viết bằng ngôn ngữ Ruby, nó đƣợc
tạo ra nhằm hỗ trợ các lập trình viên có thể phát triển ứng dụng web một cách nhanh
nhất bằng cách sử dụng các qui ƣớc triệt để và đảm nhận xử lý rất nhiều công việc
nhƣ: việc tạo code, quản lý code, quản lý việc gửi email, ... Vì vậy các lập trình viên sẽ
không cần quan tâm đến các công việc này.
 Ƣu điểm và nhƣợc điểm của Ruby on Rails
Ƣu điểm: Rails giúp cho việc phát triển ứng dụng web trở nên nhanh chóng, hơn
nữa những ứng dụng viết bằng rails thƣờng có số lƣợng dòng code ngắn gọn, rõ ràng,
dễ hiểu giúp cho ứng dụng dễ bảo trì, rails đƣợc hỗ trợ bởi một hệ thống các thƣ việc
rất lớn .
Nhƣợc điểm: Ứng dụng đƣợc phát triển bằng rails có tốc độ thực thi không quá
nhanh, thậm trí còn nặng hơn nhiều so với các framework MVC khác nhƣ Nodejs, Yii,
lavarel ...
1.1.5.2 Spring MVC
 Giới thiệu
Spring MVC là một module con trong Spring framework, đƣợc phát triển dựa
trên ngôn ngữ java và theo kiến trúc MVC, nó cung cấp các components có sẵn để sử
dụng và phát triển ứng dụng web một cách nhanh chóng và linh hoạt
 Ƣu điểm và nhƣợc điểm của Spring MVC

13


Ƣu điểm: Spring MVC có điểm mạnh về sự module hóa các thành phần với rất
nhiều thƣ việ hỗ trợ và tốc độ thực thi của ứng dụng nhanh, ngƣời phát triển sẽ đƣợc
hỗ trợ rất nhiều từ hệ thống các thƣ viện.
Nhƣợc điểm: Không giống nhƣ Rails sử dụng triệt để về các quy ƣớc thì Spring
lại thiên về cấu hình nhiều hơn vì vậy việc bắt đầu tiếp cận với Spring khá khó khăn.
Spring MVC chỉ thích hợp với những hệ thống lớn, với các hệ thống nhỏ sẽ làm cho
thời gian phát triển lâu hơn và thêm nhiều chi phí.

1.1.5.3 Django
 Giới thiệu về Django
Django là một web framework rất mạnh đƣợc phát triển dựa trên ngôn ngữ lập
trình python và theo mô hình MVC, nó đƣợc đƣa vào sử dụng rộng rãi từ năm 2005,
ban đầu là một framework hƣớng đối tƣợng cho một website của tờ báo ở Kansas.
Ngay lập tức framework này đƣợc phổ biến và phát triển rất mạnh. Django rất thích
hợp để xây dựng nên các trang web lớn. Đó là lí do tại sao Django đang dần đƣợc phổ
biến nhằm triển khai các dự án một cách nhanh chóng với những quy mô lớn.
 Ƣu điểm và nhƣợc điểm của Framework Django
Ƣu điểm: Do đƣợc phát triển dựa trên ngôn ngữ Python nên Django có tốc độ sử
lý nhanh. Django hỗ trợ bạn tạo trang admin tùy thuộc vào database, đây dƣờng nhƣ là
Framework duy nhất làm đƣợc điều này.
Nhƣợc điểm: Việc tiếp cận với Django tƣơng đối khó do cộng đồng phát triển
của framework này còn hạn chế hơn so với các framework PHP.
1.1.5.4 Laravel
 Giới thiệu về laravel
Laravel là một framework khá mới mẻ nhƣng bù lại nó có tài liệu khá đầy đủ, rõ
ràng, dễ hiểu và nhiều ƣu điểm hấp dẫn. Nếu bạn đã từng làm việc với các framework
khác hoặc chỉ là ngƣời mới bắt đầu tìm hiểu php framework thì việc tiếp cận laravel
framework không phải là vấn đề khó khăn gì.
Laravel giúp bạn nhanh chóng tạo ra một trang web, giúp bạn tiết kiệm đƣợc
nhiều thời gian và quan trọng là tạo cho bạn hứng thú hơn với công việc lập trình web.
Laravel đã làm rung chuyển tới giới lập trình PHP trên toàn thế giới bởi sự nhanh
chóng, đơn giản, chặt chẽ, hiện nay nó đang là một framework đƣợc ƣa chuộm và
đƣợc sử dụng phổ biến nhất .
14


 Ƣu điểm và nhƣợc điểm
Ƣu điểm: Laravel có cộng đồng phát triển đông đảo, tài liệu rất đầy đủ và dễ đọc

giúp cho việc tiếp cận framework trở nên dễ dàng hơn, các lệnh tƣơng tác với cơ sở dữ
liệu cực kì ngắn gọn và thân thiện, dễ dàng tích hợp các thƣ viện vào dự án.
Nhƣợc điểm: Laravel có số lƣợng module rất lớn dẫn đến tốc độ không đƣợc tối
ƣu khi xây dựng những hệ thống nhỏ.
1.1.5.5 Phalcon
 Giới thiệu về phalcon
Phalcon là một framework mã nguồn mở, tuy là một framework hỗ trợ cho PHP
nhƣng nó lại đƣợc viết bằng ngôn ngữ C và biên dịch ra extension, phalcon rất linh
hoạt và mềm dẻo nên chúng ta có thể dễ dàng tùy biến với hiệu năng thực thi rất
nhanh.
 Ƣu điểm và nhƣợc điểm của Framework Phalcon
Ƣu điểm: Phalcon là một thƣ viên có tính năng rất phong phú đƣợc viết bằng C
biên dịch thành một PHP Extension. Điều này giúp tăng tốc độ xử lý, giảm tối đa bộ
nhớ tiêu thụ khi có nhiều truy cập đồng thời. Phalcon dễ học, dễ lập trình, lập trình
viên vẫn dùng ngôn ngữ lập trình PHP thông thƣờng. Những hàm trong thƣ viện
Phalcon sẽ đƣợc tối ƣu tốc độ.
Nhƣợc điểm: Phalcon không chạy đƣợc trên môi trƣờng Shared Hosting. PHP
chƣa hỗ trợ Websocket thực sự, mặc dù có tốc độ thực thi đáng kinh ngạc tuy nhiên
phalcon lại có lƣợng thƣ viện hỗ trợ ít hơn so với Ruby on rails, Laravel và cộng đồng
ngƣời phát triển không cao.
1.1.6 So sánh một số thành phần của các Framework MVC
Bảng 1.1 So sánh thành phần các framework MVC [1]
Framework
Thành phần
Ngôn ngữ lập
trình

Ruby on

Spring


rails

MVC

Ruby

Java

15

Django

Phalcon

Laravel

Python

Php

Php


Ajax

MVC
Framework

Prototye,

jquery

JQuery,
Có hỗ trợ



Plugins

record,







Push - pull

Push

action pack
Push

Push

I18n và L10n








Active

Hibernate,

Record

Ibatis

Unit test,
Functional

Mock

Framework

nhiều



push

Testing

Hỗ trợ

Active


MVC push-pull

ORM

JQuery UI,

tests và
intergration

object, unit





tests





PHPUnit,
Selenium



PHPUnit

tests

Database
migration









Framework

Sercurity
Framework

Plug-in

Spring
Security



ACL-based,
RBAC –
based,



plugin


Template
Framework



JSP,
commons
Tiles,
Velocity,
Thymeleaf

16

Built – in,
Jinja2,
Mako,
Cheetal

PHP –
based,
plugin




Caching
Framework
From validation
Framework


APC,


Ehcache





redis,
Memcache



Bean
validation







1.2 Bài toán quản lý dự án trong trƣờng đại học
1.2.1 Hệ thống quản lý dự án trong trƣờng đại học
1.2.1.1 Phát biểu bài toán
Hiện nay trong trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội việc sinh
viên tham gia vào các dự án nhƣ nghiên cứu khoa học, khóa luận tốt nghiệp, đồ án tốt
nghiệp hay chỉ đơn giản là tham gia làm bài tập lớn trên lớp, những công việc đòi sự

tƣơng tác giữa nhiều sinh viên và giảng viên trở nên rất phổ biến, tuy nhiên những
công việc này lại đang gặp rất nhiều khó khăn nhƣ việc tƣơng tác giữa các thành viên
trong một dự án hay giữa giảng viên và sinh viên, việc quản lý các công việc và hỗ trợ
các thành viên đạt kết quả không cao. Vì vậy, hệ thống quản lý dự án trong trƣờng học
đƣợc triển khai để giải quyết những vấn đề trên, nhằm giúp cho việc quản lý các công
việc trong dự án đƣợc dễ dàng, việc tƣơng tác trao đổi , lƣu trữ tài liệu đạt hiệu quả,
giúp chất lƣợng đào tạo tăng cao.
1.2.1.2 Chức năng chính của hệ thống
 Hệ thống cho phép ngƣời dùng tạo dự án và thêm các thành viên vào trong dự
án hoặc mời thành viên chƣa có trong hệ thống qua gmail .
 Xem thông tin về dự án đang tham gia, chủ dự án có thể cập nhật thông tin hoặc
xóa dự án.
 Cho các thành viên tạo các công việc và quản lý các công việc (tạo mới , sửa,
xóa, cập nhật).
 Các thành viên có thể xem danh sách tất cả các công việc từ đó có thể dễ dàng
quản lý các công việc.
 Lọc ra các công việc theo ngƣời thực hiện hoặc trạng thái của công việc đó
 Lƣu lại lịch sử ngƣời dùng khi một thành viên thực hiện chỉnh sửa , tạo mới hay
xóa một công việc và tất cả thành viên có thể xem lịch sử đã đƣợc lƣu lại.
17


 Thống kê về tỉ lệ công việc của mỗi thành viên và thời gian của công việc của
mỗi ngƣời theo biểu đồ.
 Cho phép upload file tài liệu lên hệ thống.
1.2.2 Kế hoạch phát triển hệ thống
Hệ thống sẽ đƣợc phát triển dựa trên một Framework MVC đó là Ruby on Rails,
một framework mới ra đời và còn chƣa đƣợc phổ biến nhiều nhƣ các framework viết
bằng ngôn ngữ PHP nhƣng lại có những ƣu điểm nổi bật, kết hợp với đó là sử dụng
Agile làm quy trình phát triển thế thống và sử dụng Trello một công cụ giúp cho việc

quản lý dự án.
 Lý do chọn framework ruby on rails để phát triển
Hiện nay có rất nhiều các Framework mạnh trong phát triển ứng dụng Web, tuy
nhiên tôi lựa chọn Ruby on Rails cho việc phát triển hệ thống quản lý dự án trong
trƣờng đại học vì Rails là một Framework còn khá mới, mạnh mẽ với những ƣu điểm
nhƣ: Ruby on Rails sử dụng ngôn ngữ ruby là một ngôn ngữ với cú pháp trong sáng,
dễ đọc, dễ hiểu và là ngôn ngữ hƣớng đối tƣợng, việc phát triển ứng dụng với Rails rất
nhanh chóng và ứng dụng đƣợc viết với số lƣợng dòng code ngắn gọn, rất dễ bảo trì,
hỗ trợ nhiều framework cho việc viết test nhƣ unit test, integration test, hệ thống phát
triển bởi Rails sẽ đảm bảo về mặt chất lƣợng.
 Mô hình Agile trong phát triển phần mềm
Phƣơng thức phát triển phần mềm Agile là một tập các phƣơng thức phát triển
lặp trong đó các yêu cầu và giải pháp đƣợc phát triển thông qua sự liên kết cộng tác
giữa các nhóm tự quản và liên chức năng. Agile là cách làm phần mềm linh hoạt để
làm sao đƣa sản phẩm đến tay ngƣời dùng càng nhanh càng tốt và đƣợc xem nhƣ là sự
cải tiến so với những mô hình cũ nhƣ thác nƣớc.
Hệ thống “quản lý dự án trong trƣờng đại học” sẽ đƣợc phát triển dựa trên
phƣơng thức phát triển phần mềm Agile, Giảng viên hƣớng dẫn khóa luận sẽ đóng vai
trò là khách hàng và đƣa ra các “user story” là những kịch bản ngƣời dùng mong muốn
trong hệ thống, hệ thống sẽ đƣợc phát triển qua từng “user story” và dần hoàn thiện hệ
thống.
 Công cụ quản lý công việc Trello
Trello là một công cụ để phối hợp công việc hiệu quả giúp cho mọi ngƣời trong đội
dự án có thể tƣơng tác và quản lý các công việc trong dự án một cách hiệu quả, các
18


thành viên chỉ cần nhìn qua là biết đƣợc có những đầu việc nào, ai đang làm gì, và làm
đến giai đoạn nào. Bạn có thể sử dụng trello một cách miễn phí cho đến khi cần những
tích năng nâng cao và đặc biệt chỉ có bản trả tiền mới có thì bạn mới phải trả, trong dự

án này tôi sử trello để quản lý các kịch bản ngƣời dùng mong muốn trong hệ thống.
Trello có những thành phần cơ bản sau:
Card: là một thẻ thông tin có Title, Description dùng để lƣu trữ công việc. Mỗi
card sẽ có checklist để bạn chia những thông tin đầu việc nhỏ hơn. Card có thể đƣợc
comment, attach hình ảnh trên đó để dùng cho việc trao đổi giữa các thành viên.
List: là một danh sách tổng hợp các card thuộc chung một tình trạng hoặc một
tính chất khác nhau. Ví dụ: List Doing bao gồm những card đang đƣợc thực hiện. List
Done chứa những card đã hoàn thành.
Board: là một bảng thƣờng tƣơng đƣơng với một project hoặc một mảng công
việc. Trong một board có thể có nhiều List để chia tình trạng của những đầu việc của
project đó cho tiện theo dõi.

Hình 1.1: dự án trên trello
2.2.4 Kế quả cần đạt đƣợc
Nắm đƣợc quy trình phát triển và kiểm thử phần mềm dựa trên phƣơng thức
agile. Các thành phần cơ bản của framework Ruby on Rails, áp dụng framework này
trong việc phát triển dự án.
19


Xây dựng thành công hệ thống “quản lý dự án trong trƣờng đại học” thỏa mãn
những kịch bản mà ngƣời sử dùng mong muốn và những chức năng đã phân tích trƣớc
đó, hệ thống có thể phục vụ đƣợc nhu cầu sử dụng của một trƣờng đại học, có thể
deploy hệ thống trên server heroku. Xây dựng bộ test case kiểm thử cho các luồng hoạt
động của hệ thống để đảm bảo hệ thống hoạt động tốt.

20


Chƣơng 2: Framework Ruby On Rails

2.1 Ruby on rails
2.1.1 Giới thiệu về Ruby on rails
Ruby on Rails là một web framework đƣợc viết bằng ngôn ngữ Ruby và tất cả
các ứng dụng trong Rails đều đƣợc viết bằng Ruby. Ruby là ngôn ngữ đƣợc tác giả
Matz tạo ra năm 1993 ở Nhật Bản và đƣợc công bố năm 1995 [2]. Từ đó đến nay nó đã
trở nên phổ biến và nổi tiếng về thiết kế rõ ràng, cú pháp đẹp nhƣ việc không sử dụng
dấu chấm phẩy khi kết thúc câu lệnh hay dùng ngoặc để nhóm các khối lênh. Rails có
một thƣ viện chuẩn phong phú với một hệ thống quản lý các gói thƣ viện có tên là
RubyGems. Đến nay, Rails có một cộng đồng phát triển trên toàn thế giới liên tục cải
tiến ngôn ngữ và hệ sinh thái lập trình cho nó.
Nền tảng cho Ruby on Rails đƣợc bắt đầu xây dựng năm 2004 [2]. Kể từ đó,
Ruby on Rails đã nhanh chóng phát triển thành một trong những framework dẫn đầu
cho việc phát triển ứng dụng web. Ruby on Rails sử dụng các qui ƣớc triệt để và đảm
nhận xử lý rất nhiều các công việc khiến ngƣời lập trình viên không phải bận tâm về
nó nữa nhƣ: việc quản lý email, ánh xạ các đối tƣợng, quản lý các tệp mã nguồn và cấu
trúc thƣ mục, tạo code tự động,... đây chính là đặc điểm nổi bật nhất của Ruby On
Rails, điều này không chỉ giúp các lập trình viên viết code ít hơn, phát triển ứng dụng
nhanh hơn mà còn làm ứng dụng dễ hiểu và dễ bảo trì.
2.1.2.2 Các thành phần chính của Ruby On Rails
Tƣơng ứng với những đặc điểm trên Ruby on Rails gồm các thành phần sau:
Action Mailer [3]: Module này chịu trách nhiệm chuyên cung cấp các dịch vụ
email, nó xử lý các email đến và cho phép tạo mới các email. Module này có thể xử lý
từ những email text đơn giản đến các email có định dạng phức tạp. Action mailer đƣợc
kế thừa từ Action Controller, nó cung cấp các phƣơng thức để tạo email với các
template cũng giống nhƣ Action View sử dụng nó để render các trang lên trình duyệt
Action pack: Module này cung cấp các lớp ở tầng controller và view trong mô
hình MVC. Nó nhận request từ client và sau đó ánh xạ chúng đến các action tƣơng
ứng. Những action đƣợc định nghĩa trong tầng controller và sau đó các action này sẽ
render view hiển thị lên trình duyệt. Action pack đƣợc chia thành ba module con bao
gồm:

21


 Action Dispatch: Thành phần chuyên xử lý, điều hƣớng các request, nó phân
tích các request và xử lý một vài quá trình liên quan đến giao thức HTTP1 nhƣ
xử lý cookies, session.
 Action Controller: Sau khi Action Dispatch xử lý request nó sẽ điều hƣớng các
request đến các controller tƣơng ứng, Mô đun này cung cấp các base controller
để các controller khác có thể kế thừa từ nó. Action Controller chứa các action
để điều khiển model và view, nó cũng quản lý các session ngƣời dùng, luồng
chạy ứng dụng.
 Action View: Đƣợc gọi bởi Action Controller, sau khi đƣợc gọi Action View
sẽ render các view tƣơng ứng. Action View cung cấp các master layouts,
templates và các view helpers, các thành phần này hỗ trợ việc sinh tự động ra
phần khung cho các trang HTML hay các định dạng khác.
Active model: Thành phần định nghĩa interface giữa mô đun Action Pack và
Active Record. Giao diện Action Record có thể đƣợc dùng bên ngoài Rails, cung cấp
các chức năng object relational mapping (ORM). ORM là một kỹ thuật lập trình giúp
chuyển đổi dữ liệu giữa các thệ thống không tƣơng thích đƣợc viết bởi các ngôn ngữ
hƣớng đối tƣợng.
Active Record: [4] đƣợc sử dụng để quản lý dữ liệu trong các cơ sở dữ liệu quan
hệ thông qua các đối tƣợng. Trong Ruby on Rails mô đun Active Record cung cấp
object relational mapping (ORM) đến các class. Module này xây dựng nên tầng model,
giúp kết nối các bảng database với các class tƣơng ứng. Rails cung cấp công cụ để
thực thi chức năng thêm, sửa, xóa mà không phải cấu hình. Thêm vào đó, nó cũng
cung cấp các khả năng tìm kiếm thông minh và khả năng tạo ra các mối quan hệ hay
các liên kết giữa các model. Active record có những quy ƣớc rất chặt chẽ bắt các lập
trình viên phải tuân thủ theo nhƣ: phải đặt tên lớp, các bảng, các khóa chính và khóa
ngoài nhƣ thế nào.
Active Resource: [4]Module này quản lý các kết nối giữa RESTful web services

và các đối tƣợng nghiệp vụ, làm giảm số lƣợng code cần viết để ánh xạ đến các tài
nguyên. Active Resource ánh xạ model class đến các tài nguyên REST ở xa cũng
giống nhƣ cách mà Active Record ánh xạ từ model class đến các bảng cơ sở dữ liệu.
Nó cũng cung cấp các cơ chế proxy giữa Active Resource (client) và một RESTful

1

HTTP: Là một giao thức truyền tải siêu văn bản

22


×