Tải bản đầy đủ (.doc) (73 trang)

Xây dựng website quản lý dự án cho công ty TNHH dịch vụ và phát triển công nghệ EXP

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 (2.2 MB, 73 trang )

Lời cảm ơn
Trải qua thời gian 5 năm học tập và rèn luyện tại Trường Đại Học Công nghệ
thông tin và truyền thông, đến nay em đã kết thúc khoá học và hoàn thành đồ án tốt
nghiệp. Để có được kết quả này em xin chân thành cảm ơn :
Em xin gửi lời cảm ơn đến các thầy, cô giáo trong ngành công nghệ phần mềm,
Khoa Công Nghệ Thông Tin, Trường Đại học Công Nghệ Thông Tin và Truyền
Thông, những nhà giáo đã truyền dạy cho em những kiến thức quý báu trong suốt
những năm học vừa qua.
Em xin chân thành cảm ơn thầy giáo hướng dẫn TS. Nguyễn Văn Tảo, thầy
luôn quan tâm và rất nhiệt tình hướng dẫn em từ việc tìm tài liệu cho đến việc định
hướng lựa chọn giải pháp để triển khai đồ án. Thầy cũng luôn nhắc nhở, giúp đỡ em
mỗi khi gặp khó khăn, nhờ vậy mà em đã hoàn thành tốt đồ án tốt nghiệp của mình
đúng thời hạn.


Cuối cùng em xin cảm ơn các anh trong công ty TNHH dịch vụ phát triển công
nghệ JoomEXP đã tạo điều kiện cho em được làm việc tại công ty và nhiệt tình giúp
đỡ em trong quá trình thực hiện đồ án này, cùng với gia đình và bạn bè đã luôn động
viên em trong suốt quá trình học và hoàn thành đồ án này.
Do thời gian hoàn thành đồ án có hạn, sự thể hiện đồ án không tránh khỏi có
những khiếm khuyết. Em rất mong được sự động viên và đóng góp ý kiến của các
thầy cô giáo, giúp em hoàn thành tốt đồ án và chuẩn những kỹ năng tốt nhất cho trải
nghiệm sau này, có khả năng ứng dụng trong thực tế.
Em xin chân thành cảm ơn!
Sinh Viên
Nguyễn Công Luận


1


Lời cam đoan
Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ các kiến thức mà sinh viên đã
học được trong suốt thời gian học tập tại trường đại học. Ý thức được điều đó, với
tinh thần nghiêm túc, tự giác cùng sự lao động miệt mài của bản thân và sự hướng
dẫn nhiệt tình của Thầy giáo TS. Nguyễn Văn Tảo em đã hoàn thành xong đồ án tốt
nghiệp của mình.
Em xin cam đoan: nội dung đồ án của em không sao chép nội dung cơ bản từ
các đồ án khác và sản phẩm của đồ án là của chính bản thân em nghiên cứu xây
dựng lên. Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng

bảo vệ.

2


MỤC LỤC
CHƯƠNG 1. TỔNG QUAN VỀ LÝ THUYẾT................................................................................................6
1.1 Tìm hiểu ngôn ngữ PHP..........................................................................................................6
1.1.1 PHP là ngôn ngữ có tốc độ nhanh:........................................................................................6
1.1.2 PHP là ngôn ngữ phù hợp nhiều HDH...................................................................................6
PHP là ngôn ngữ chạy trên nhiều hệ điều hành và kết nối với nhiều loại cơ sở dữ liệu khác nhau.
6

1.1.3 Kiến trúc cơ bản....................................................................................................................7
1.1.4 Client.....................................................................................................................................7
1.1.5 Server...................................................................................................................................7
1.1.6 Hệ điều hành........................................................................................................................8
1.1.7 Web Server..........................................................................................................................8
1.1.8 Website động là gì?...............................................................................................................9
1.1.9 Middleware...........................................................................................................................9
1.1.10 PHP là gì?..........................................................................................................................10
1.1.11 Tại sao cần dùng PHP?......................................................................................................10
1.1.12 Cách làm việc của PHP......................................................................................................10
1.2 Tìm hiểu về hệ cơ sở dữ liệu msql........................................................................................11
1.2.1 MySQL là gì?.......................................................................................................................11

1.2.2 Tại sao sử dụng PHP và MySQL?.........................................................................................13
1.3 Tìm hiểu về ngôn ngữ UML..................................................................................................14
1.4 Giới thiệu về hệ quản trị nội dung Joomla...........................................................................20
1.4.1 Hoàn cảnh ra đời................................................................................................................20
1.4.2 Giới thiệu về MVC (Model-View-Controler)........................................................................21
1.5 Giới thiệu Paypal..................................................................................................................25
1.5.1 Paypal là gì ?.......................................................................................................................25
1.5.2 Vì sao nên sử dụng paypal..................................................................................................26
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.................................................................................27

3



2.1 Khảo sát hệ thống................................................................................................................27
2.1.1 Giới thiệu về công ty TNHH dịch vụ và phát triển công nghệ EXP và yêu cầu hệ thống......27
2.1.2 Môi trường và mô tả hệ thống............................................................................................32
2.2 Phân tích và thiết kế hệ thống..............................................................................................34
2.2.1 Xác định các tác nhân của hệ thống:...................................................................................34
2.2.2 Các biểu đồ usecase............................................................................................................35
2.2.3 Sơ đồ hoạt động của hệ thống............................................................................................40
2.2.4 Sơ đồ trình tự hoạt động của hệ thống...............................................................................46
2.2.5 Sơ đồ lớp............................................................................................................................51
2.2.6 Cơ sở dữ liệu của hệ thống quản lý dự án..........................................................................53
2.2.7 Chi tiết các bảng cơ sở dữ liệu được xây dựng:..................................................................55

CHƯƠNG 3. KẾT QUẢ XÂY DỰNG WEBSITE..........................................................................................63
3.1 Hình ảnh cho chức năng yêu cầu dự án...............................................................................63
3.2 Danh sách các dự án khách hàng đang thực hiện với công ty..............................................64
3.3 Danh sách các dự án của người quản lý dự án.....................................................................66
3.4 Danh sách dự án đang trong giai đoạn thảo luận.................................................................67
3.5 Hệ thống phản hồi................................................................................................................69
3.6 Các thống kê trong phần quản trị.........................................................................................69
KẾT LUẬN.............................................................................................................................................71
TÀI LIỆU THAM KHẢO...........................................................................................................................72

4



LỜI MỞ ĐẦU
Công nghệ thông tin đang phát triển hết sức sôi động ở hầu hết các quốc gia
trên thế giới. Việc sử dụng công nghệ thông tin và internet rộng rãi trên khắp thế giới
giúp cho việc thực hiện các công việc được nhanh chóng và giao tiếp giữa con người
đơn giản hơn, không còn lo lắng về khoảng cách địa lý.
Trong thời đại hiện nay các công ty lập trình và phát triển phần mềm rất
nhiều. Việc các công ty có thể quản lý được các dự án và việc giao tiếp với khách
hàng một cách đơn giản là việc hằng mong đợi. Yêu cầu đặt ra là xây dựng một phần
mềm có thể quản lý được các dự án của công ty, giúp người quản lý, khách hàng và
nhân viên lập trình giao tiếp và thực hiện công việc một cách có hiệu quả.
Trên thị trường hiện nay không khó để có thể tìm được phần mềm và phương

pháp quản lý, nhưng để phần mềm đó phù hợp với môi trường công việc hiện tại thì
lại là việc khó khăn. Như vậy, để phù hợp với yêu cầu đặt ra, việc tạo ra một website
có thể quản lý dự án là đúng đắn. Vì là giao diện web nên tất cả mọi người sử dụng
internet đều có thể truy cập được, việc này đồng nghĩa với việc giao tiếp dễ dàng giữa
các đôi tượng trong yêu cầu.
Ngoài ra, ngày nay internet phát triển. Việc sử dụng website để quản lý là việc
phù hợp với thực tại và dễ dàng với người quản lý vì trong mọi lúc có thể vào để theo
dõi và quản lý các thông tin của dự án.
Trong khi thực tập trong đợt thực tập tốt nghiệp tại công ty em nhận thấy công
ty đang không có chương trình phần mềm nào để quản lý các dự án. Việc này gây rất
nhiều khó khăn cho công việc quản lý. Mục tiêu đặt ra là xây dựng một website quản
lý dự án để việc quản lý của công ty được thuận tiện hơn. Chính vì vậy em chọn đề tài

“xây dựng website quản lý dự án cho công ty TNHH dịch vụ và phát triển công nghệ
EXP”.

5


CHƯƠNG 1. TỔNG QUAN VỀ LÝ THUYẾT
1.1 Tìm hiểu ngôn ngữ PHP
Các ngôn ngữ lập trình xem ra giống như các loại giày dép. Có loại có vẻ bắt
mắt với một số người này, nhưng lại khó ưa với người khác và ngược lại. Một số
người chỉ thích sử dụng một hiệu giày nào đó đã quen thuộc và ngôn ngữ lập trình
cũng tương tự như vậy.

Ở đây em muốn ngụ ý là khi lập trình Web, các ngôn ngữ lập trình đều cho kết
quả gần giống nhau. Câu hỏi ngôn ngữ nào tốt nhất không phải là vấn đề nó không có
khả năng thực hiện một số chức năng nào đó mà thường là nó có làm cho mình thực
hiện công việc một cách nhanh chóng và đỡ nhọc công hay không?
1.1.1 PHP là ngôn ngữ có tốc độ nhanh:
Chúng ta hãy bàn về tốc độ. Có 3 thứ mà em chắc chắn khi bàn về việc so sánh
tốc độ giữa các ngôn ngữ lập trình Web. Thứ nhất, ứng dụng viết bằng C chạy nhanh
nhất. Thứ hai, công việc lập trình C khá là phức tạp, và sẽ ngốn nhiều thời gian hơn.
Thứ ba, việc so sánh giữa các ngôn ngữ là một điều khó khăn. Tất cả những gì em biết
là em cảm thấy yên tâm khi nói rằng PHP cũng nhanh như các ngôn ngữ khác. Trở lại
ví dụ so sánh với các loại giày dép: Vina, Đông Hải, Kiến Hoa, Hồng Thạnh, Italy
v.v., chắn chắn mọi người sẽ chọn loại tiện dụng nhất? Nếu như em, mọi người sẽ cảm

thấy rằng PHP có đầy đủ các đặc tính như khả năng, cấu trúc và dễ sử dụng. Xin nói
thêm, đây chỉ là cách nhìn riêng của em thì em tin rằng cú pháp PHP tuyệt hơn ASP
hay JSP. Và theoem thì việc gõ lệnh PHP nhanh hơn ColdFusion và nó không khó học
như Perl. Tóm lại, em cho rằng PHP cung cấp các tính năng mạnh mẽ để thực hiện
ứng dụng Web một cách nhanh chóng.
1.1.2 PHP là ngôn ngữ phù hợp nhiều HDH
PHP là ngôn ngữ chạy trên nhiều hệ điều hành và kết nối với nhiều loại cơ sở
dữ liệu khác nhau.

6



Như đã trình bày ở phần kiến trúc web, em có nói là PHP có thể chạy trên
WindowsNT/2000/2003 và Unix với sự hỗ trợ của IIS và Apache. Nhưng ngoài ra nó
có thể chạy trên một số các platform khác như Netscape, Roxen, hay một vài thứ
khác. Như chúng ta biết ASP có thể chạy trên Unix, ColdFusion có thể chạy trên
Solaris và Linux, JSP có thể chạy trên khá nhiều loại platform. Đối với PHP, nó có thể
chạy tốt trên những platform hỗ trợ các chủng loại trên.
1.1.3 Kiến trúc cơ bản
Kiến trúc cơ bản nhất để trang Dynamic Web hoạt động được là nó phải làm
việc trên mô hình clien/server. Nôm na là mỗi thứ client hay server đều đảm đương
một chức năng riêng để hoàn thành công việc chung đó là cho ra một trang web động.
Ứng dụng Web phải có một mô hình server có thể là một máy tính làm server thôi,
nhằm tập trung hóa việc xử lý dữ liệu. Còn các client, còn được hiểu là máy tính của

người sử dụng phải được nối mạng với server, giả sử các máy này truy cập vào một
website chẳng hạn, thì có nghĩa họ đã truy cập vào server, sau đó lấy dữ liệu từ server
về thể hiện lên màn hình. Cùng một lúc có thể có hàng trăm người (client) truy cập
vào cùng một Website được xử lý tập trung trên server.
1.1.4 Client
Các ứng dụng phát triển trên nền MySQL và PHP sử dụng tính năng single
client đó là trình duyệt Web. Tuy nhiên, không phải đây chỉ là ngôn ngữ duy nhất để
phát triển ứng dụng Web.
1.1.5 Server
Hầu hết các ứng dụng Web đều hoạt động tập trung trên Server. Một số ứng
dụng đặc trưng gọi là Web Server sẽ đảm trách việc giao tiếp với các trình duyệt.Một
Cơ sở dữ liệu trên Server sẽ lưu trữ tất cả những thông tin đáp ứng yêu cầu cho công

việc của ứng dụng Web. Web Server, Ngôn ngữ lập trình, CSDL phải hoạt động tốt
trên một Hệ Điều Hành nào đó.

7


Hình 1.1: Sơ đồ hoạt động ứng dụng web trên server
1.1.6 Hệ điều hành
Có rất nhiều chủng loại HĐH. PHP và My SQL thuộc nhóm phần mềm ứng
dụng có tên gọi là open source (nguồn mở). Việc này có nghĩa là người dùng sẽ xem
được mã nguồn của các ứng dụng sử dụng PHP/MySQL. Chúng tận dụng được mô
hình phát triển dựa vào nguồn mở, cho phép người nào cảm thấy thích nó đều có thể

góp phần vào việc phát triển các dự án. Sử dụng PHP để tạo ra một sản phẩm phần
mềm tốt.
1.1.7 Web Server
Chức năng của WebServer không phức tạp mấy, nó chỉ ở tại chỗ, chạy trên nền
HĐH, lắng nghe các yêu cầu ai đó trên Web gửi đến, sau đó trả lời những yêu cầu
này, và cấp phát những trang web thích ứng, nhiệm vụ của Web Server là phải cung
cấp tính ổn định cho môi trường Web cho nên đòi hỏi này phải được đáp ứng một
cách nghiêm túc.
Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ thường
sử dụng Apache và IIS (Internet Information Server của Microsoft).
INTERNET INFORMATION SERVER (IIS) được tích hợp rất tốt với PHP.
Trước đây, có một số vấn đề cần phải bàn về tính ổn định của PHP/IIS với việc truyền

tải lớn, nhưng PHP và IIS cũng đã được cải thiện liên tục nên việc này không còn

8


đáng phải bận tâm. APACHE là một kiểu mẫu Web Server rất phổ biến. Giống như
Linux, PHP, MySQL nó là một dự án nguồn mở. APACHE tận dụng được tính năng
của third-party.Bởi vì đây là nguồn mở nên bất kỳ ai có khả năng đều có thể viết
chương trình mở rộng tính năng của Apache.PHP hoạt động với tư cách là một phần
mở rộng của Apache, và người ta gọi là một module của Apache.
Apache có tính ổn định và tốc độ đáng phải nói. Tuy nhiên, cũng có một số sự
phàn nàn về nó là không hỗ trợ công cụ đồ họa trực quan, điều có thể giúp người ta

làm việc một cách dễ dàng hơn. Bạn phải thực hiện các thay đổi đối với Apache bằng
cách sử dụng dòng lệnh, hoặc sử dụng các tập tin text trong folder chương trình
Apache.
Mặc dù Apache chỉ làm việc tốt trên Unix, nhưng cũng có những phiên bản
chạy tốt trên hệ Windows.
1.1.8 Website động là gì?
Website động là những thực thể mạnh và linh hoạt, thường được thực hiện dưới
dạng các ứng dụng hơn là các Website đơn thuần. Các ưu điểm của Website động:
• Đáp ứng nhiều tham số khác nhau (ví dụ như thời gian của ngày hoặc phiên
bản trình duyệt của người dùng)
• Thường có các giao diện cho phép người quản trị có thể quản lý nội dung
của site.

• Có “bộ nhớ”, cho phép người dùng đăng ký và đăng nhập, thực hiện thương
mại điện tử và các quá trình tương tự.
• Dễ dàng duy trì, cập nhật và phát triển.
1.1.9 Middleware
PHP thuộc lớp ngôn ngữ lập trình gọi là middleware. Các ngôn ngữ này hoạt
động cận kề với Web Server để thông dịch các yêu cầu từ trên World Wide Web, sau
đó nhận các trả lời từ Web Server chuyển tải đến trình duyệt Web nhằm đáp ứng các
yêu cầu đó.
9


Middleware là nơi sẽ thực hiện các khối lượng rất lớn công việc chính yếu. Với

hỗ trợ này Web Server sẽ không phải cán đáng quá nhiều khối lượng công việc.
Nhưng khi phát triển ứng dụng sẽ tốn nhiều thời gia viết mã chương trình để cho
chương trình có thể hoạt động được.Ngoài PHP ra có một số ngôn ngữ khác có chức
năng tương tự như ASP, Perl, ColdEusion.
1.1.10 PHP là gì?
PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra năm
1994, để theo dõi người dùng truy cập lý lịch trực tuyến của ông. Vì tính hữu dụng,
khả năng phát triển, PHP đã bắt đầu được sử dụng trong môi trường chuyên nghiệp và
nó đã trở thành “PHP: Hypertext Preprocessor”.
PHP là một công nghệ phía máy chủ (server-side) và không phụ thuộc môi
trường (cross-platform). Cả hai yếu tố này đều rất quan trọng.
1.1.11 Tại sao cần dùng PHP?

PHP được sử dụng để phát triển Website động vì nó tốt, nhanh và dễ dàng
nghiên cứu hơn các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ
với hầu hết các cơ sở dữ liệu có sẵn, tính bền vững, linh động và khả năng phát triển
không giới hạn. Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở. PHP
vừa dễ với người sử dụng và vừa có khả năng làm được mọi thứ, đáo ứng yêu cầu của
lập trình viên chuyên nghiệp.PHP la module thông dụng cho Apache (máy chủ Web
phổ biến nhất) và nó đã có mặt trên 12 triệu Website.
1.1.12 Cách làm việc của PHP
PHP là một ngôn ngữ máy chủ, mã lệnh PHP sẽ tập trung trên máy chủ để phục
vụ các trang web theo yêu cầu của người dùng thông qua trình duyệt.
Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP và
xử lý chúng theo các hướng dẫn đã được mã hóa.


10


Hình 1.2: Cách làm việc của PHP phù hợp vói mô hình khách-chủ khi người
dùng yêu cầu một trang Web

Hình 1.3: Quá trình xử lý yêu cầu đối với một trang HTML tĩnh
1.2 Tìm hiểu về hệ cơ sở dữ liệu msql
1.2.1 MySQL là gì?
Là cơ sử dữ liệu phố biến nhất thế giới.Giống như PHP, MySQL có một khả năng
thự thi hoàn hảo, rất linh động, đáng tin cậy, dễ nắm bắt và ít chi phí hoặc miễn phí.


Hình 1.4: Trang chủ ứng dụng cơ sở dữ liệu MySQL

11


Hình 1.5: Cách hoạt động của phần lớn các ứng dụng Web động sử dụng PHP và
MySQL
Để thực hiện phát triển Website động dùng PHP và MySQL cần những công cụ:
• Một ứng dụng máy chủ Web (ví dụ Apache, Xitami hoặc IIS).
• PHP.
• MySQL.

• Trình duyệt Web ( như Internet Explorer của Microsodt, Navigator của Netscape,
Safari của Apple, Mozilla, Opera...).
• Trình soạn thảo văn bản, ứng dụng WYSIWYG có hỗ trợ PHP (Dreamweaver
Qualifies của Macromedia) hoặc IDE (Intergrated Development Environment: Môi
trường phát triển tích hợp).
• Ứng dụng FTP nếu dùng máy chủ ở xa.
Điều hấp dẫn của việc phát triển các Website động dùng PHP và MySQL là tất cả
các yêu càu có thể được đáp ứng mà không tốn tiền, bất kể hệ ddieuf hành đang sử
dụng. Apache, PHP và MySQL là những mà nguồn mở.
Mặc dù MySQL được phổ biến rất nhiều nhưng nó vẫn có những đối thủ đáng
gờm đang cạnh tranh với nó. Những đối thủ của nó có thể trội hơn về một phương
diện đặc thù nào đó.


12


Trong phần trên, chúng ta đã bàn sơ qua MySQL. Trong phần này, bạn sẽ được
biết về những đặc điểm của những Hệ quản trị CSDL khác mà MySQL không hỗ trợ.
Với những hạn chế đó đã làm cho MySQL không được chọn để chạy trên một
số các môi trường. Nếu bạn đang có kế hoạch bắt đầu cho một ngân hàng chẳng hạn,
thì tôi khuyên bạn là MySQL không thích hợp cho bạn.
Nhưng đối với phần đông mọi người và phần lớn các ứng dụng, MySQL là sự
chọn lựa của họ bởi nó rất thích hợp cho những ứng dụng Web.
1.2.2 Tại sao sử dụng PHP và MySQL?

Nói về PHP:
+ Tốc độ nhanh, dễ sử dụng
+ Chạy trên nhiều hệ điều hành.
+ Truy cập bất kỳ loại CSDL nào
+ Luôn được cải tiến và cập nhật
+ Được hướng dẫn kỹ thuật bất cứ lúc nào
+ Hoàn toàn miễn phí
Nói về MySQL: Mặc dù MySQL được phổ biến rất nhiều. Trong phần trên, chúng ta
đã bàn sơ qua MySQL.Trong phần này, bạn sẽ được biết về những đặc điểm của
những Hệ quản trị CSDL khác mà MySQL không hỗ trợ.
Với những hạn chế đó đã làm cho MySQL không được chọn để chạy trên một số các
môi trường.Nếu bạn đang có kế hoạch bắt đầu cho một ngân hàng chẳng hạn, thì tôi

khuyên bạn là MySQL không thích hợp cho bạn.
Nhưng đối với phần đông mọi người và phần lớn các ứng dụng, MySQL là sự chọn
lựa của họ bởi nó rất thích hợp cho những ứng dụng Web.
+ Vừa túi tiền
+ Nhanh và mạnh
13


+ Cải tiến liên tục

1.3 Tìm hiểu về ngôn ngữ UML
Những năm đầu của thập kỷ 90 có rất nhiều phương pháp phân tích, thiết kế hệ

thống hướng đối tượng và cùng với chúng là các ký hiệu riêng cho từng phương pháp.
Số lượng các phương pháp trong khoảng từ 10 đã lên đến gần 50 trong những năm từ
1989 đến 1994. Ba phương pháp phổ biến nhất là OMT (Object Modeling Technique)
[James Rumbaugh], Booch91 [Grady Booch] và OOSE (Object-Oriented Software
Enginering) [Ivar Jacobson]. Mỗi phương pháp đều có những điểm mạnh và yếu. Như
OMT mạnh trong phân tích và yếu ở khâu thiết kế, Booch91 thì mạnh ở thiết kế và
yếu ở phân tích. OOSE mạnh ở phân tích các ứng xử, đáp ứng của hệ thống mà yếu
trong các khâu khác.
Do các phương pháp chưa hoàn thiện nên người dùng rất phân vân trong việc
chọn ra một phương pháp phù hợp nhất để giải quyết bài toán của họ. Hơn nữa, việc
các ký hiệu khác nhau của các phương pháp đã gây ra những sự mập mờ, nhầm lẫn
khi mà một ký hiệu có thể mang những ý nghĩa khác nhau trong mỗi phương pháp. Ví

dụ như một hình tròn được tô đen biểu hiện một multiplicity trong OMT lại là một
aggregation trong Booch. Thời kỳ này còn được biết đến với tên gọi là cuộc chiến
giữa các phương pháp. Khoảng đầu năm 94, Booch đã cải tiến phương pháp của mình
trong đó có ứng dụng những ưu điểm của các phương pháp của Rumbaugh và
Jacobson. Tương tự Rumbaugh cũng cho đăng một loạt các bài báo được biết đến với
tên gọi phương pháp OMT-2 cũng sử dụng nhiều ưu điểm của phương pháp của
Booch. Các phương pháp đã bắt đầu hợp nhất, nhưng các kí hiệu sử dụng ở các
phương pháp vẫn còn nhiều điểm khác biệt.
Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) là một
ngôn ngữ trực quan cung cấp cho các nhà phân tích thiết kế các hệ thống hướng đối
tượng một cách hình dung ra các hệ thống phần mềm, mô hình hóa các tổ chức nghiệp
vụ và sử dụng hệ thống phần mềm này, cũng như xây dựng và làm tài liệu về chúng.

UML đang tiến triển như là chuẩn và trở thành một chuẩn quốc tế được tổ chức tiêu
chuẩn ISO (International Standard Organization) chấp nhận.

14


Chúng ta hãy đưa ra câu hỏi: Tại sao phải xây dựng mô hình cho hệ thống?
Mô hình hóa là cách xem xét một bài toán thông qua việc sử dụng các mô hình.
Mô hình dùng để hiểu rõ bài toán, trao đổi thông tin giữa những người liên quan như
khách hàng, chuyên gia, người phân tích, người thiết kế… Mô hình giúp cho việc xác
định các yêu cầu tốt hơn, thiết kế rõ ràng hơn và khả năng bảo trì hệ thống cao hơn.
Mô hình là sự trừu tượng hóa, mô tả mặt bản chất của một vấn đề hoặc một cấu

trúc phức tạp bằng cách loại bỏ những chi tiết không quan trọng, khiến cho bài toán
trở nên dễ hiểu và dễ nắm bắt hơn. Trừu tượng hóa là một khả năng cơ bản của con
người trong việc giải quyết các vấn đề phức tạp. Các kỹ sư, kiến trúc sư, các nghệ sĩ
đã từng xây dựng những mô hình từ hàng nghìn năm nay để thử các thiết kế của họ
trước khi thực hiện chúng.Việc phát triển các hệ thống phần mềm cũng không ngoại
lệ. Để xây dựng một hệ thống phức tạp, những người phát triển phải trừu tượng hóa
những khía cạnh (View) khác nhau của hệ thống, xây dựng các mô hình bằng cách sử
dụng các kí hiệu một cách rõ ràng, cẩn thận, kiểm tra xem các mô hình đã thoả mãn
các yêu cầu của hệ thống chưa và dần dần thêm vào các chi tiết để có thể chuyển đổi
từ mô hình sang một cài đặt cụ thể.
Chúng ta xây dựng mô hình của những hệ thống phức tạp bởi vì chúng ta không
thể lĩnh hội một lúc toàn bộ hệ thống đó. Ví dụ như khi xây một nhà kho chúng ta có

thể bắt tay vào xây ngay, khi xây một ngôi nhà chúng ta có thể cần bản thiết kế của
ngôi nhà đó. Khi cần xây môt tòa nhà cao tầng, chúng ta chắc chắn cần bản thiết kế
của toà nhà đó. Điều này cũng đúng trong lĩnh vực phần mềm. Hệ thống càng phức
tạp thì việc xây dựng mô hình càng quan trọng. Xây dựng mô hình cho phép người
thiết kế thấy được bức tranh tổng quan của hệ thống, thấy được các thành phần của hệ
thống tương tác với nhau như thế nào hơn là việc sa lầy vào chi tiết bên trong của các
thành phần đó.
Trong thế giới luôn biến động của các ứng dụng hướng đối tượng thì việc phát
triển và bảo trì các ứng dụng có chất lượng cao trong một khoảng thời gian hợp lý
ngày càng trở nên khó khăn hơn. Một tổ chức phát triển phần mềm thành công là tổ

15



chức xây dựng được các phần mềm có chất lượng, thoả mãn được mọi yêu cầu của
khách hàng.
Mô hình hóa là phần trung tâm trong các công việc, các hoạt động để dẫn tới một
phần mềm tốt. Chúng ta xây dựng mô hình để trao đổi, bàn bạc về cấu trúc và ứng xử
(behavior) mong muốn của hệ thống. Chúng ta xây dựng mô hình để trực quan hóa và
kiểm soát kiến trúc của hệ thống.
Mô hình có thể mô tả các cấu trúc, nhấn mạnh về mặt tổ chức của hệ thống hoặc
nó có thể mô tả các hành vi, tập trung vào mặt động của hệ thống.
Chúng ta xây dựng mô hình để hiểu rõ hơn về hệ thống mà chúng ta đang xây
dựng, tạo ra cơ hội để có thể đơn giản hóa và tái sử dụng. Chúng ta xây dựng mô hình

để kiểm soát rủi ro.
Việc lập mô hình không chỉ dành cho các hệ thống lớn. Khi xây dựng mô hình
chúng ta sẽ đạt được 4 mục đích sau:


Mô hình giúp chúng ta trực quan hóa hệ thống như là nó vốn có hay theo cách
mà chúng ta muốn nó sẽ như vậy.



Mô hình cho phép chúng ta chỉ rõ cấu trúc và ứng xử của hệ thống




Mô hình cho chúng ta một khuôn mẫu để hướng dẫn chúng ta trong quá trình
xây dựng hệ thống.



Mô hình đưa ra các dẫn chứng bằng tài liệu về các quyết định mà chúng ta đã
đưa ra trong quá trình thiết kế hệ thống.
Thông qua việc mô hình hóa, chúng ta thu hẹp bài toán mà chúng ta đang

nghiên cứu bằng cách chỉ tập trung vào một khía cạnh tại một thời điểm. Điều này

cũng giống như phương pháp “chia để trị” mà Edsger Diskstra đã đưa ra: “Giải quyết
một vấn đề khó bằng cách chia nó thành những bài toán nhỏ hơn mà bạn có thể giải
quyết được.”

16


Mô hình hóa là việc đơn giản hóa thực tế, loại bỏ những điểm thứ yếu, tuy
nhiên ta phải chắc chắn rằng không bỏ sót một chi tiết quan trọng nào.
Tùy thuộc vào đặc điểm tự nhiên của hệ thống, mỗi mô hình có thể tập trung
vào những mặt khác nhau của hệ thống. Như hệ thống tập trung vào dữ liệu thì các mô
hình về phần thiết kế tĩnh của hệ thống sẽ được chú ý hơn. Trong hệ thống giao diện

người dùng thì phần tĩnh và động của Use case sẽ là quan trọng. Trong hệ thống thời
gian thực, các tiến trình động là quan trọng. Cuối cùng, trong hệ thống phân tán dựa
trên cở sở Web thì các mô hình về thực thi và triển khai là quan trọng nhất.
Unified Modeling Language là gì?
UML là một ngôn ngữ dùng để


Trực quan hóa



Cụ thể hóa




Sinh mã ở dạng nguyên mẫu



Lập và cung cấp tài liệu
UML là một ngôn ngữ bao gồm một bảng từ vựng và các quy tắc để kết hợp

các từ vựng đó phục vụ cho mục đích giao tiếp. Một ngôn ngữ dùng cho việc lập mô
hình là ngôn ngữ mà bảng từ vựng (các ký hiệu) và các quy tắc của nó tập trung vào

việc thể hiện về mặt khái niệm cũng như vật lý của một hệ thống.
Mô hình hóa mang lại sự hiểu biết về một hệ thống. Một mô hình không thể
giúp chúng ta hiểu rõ một hệ thống, thường là phải xây dựng một số mô hình xét từ
những góc độ khác nhau. Các mô hình này có quan hệ với nhau.
UML sẽ cho ta biết cách tạo ra và đọc hiểu được một mô hình đươc cấu trúc
tốt, nhưng nó không cho ta biết những mô hình nào nên tạo ra và khi nào tạo ra chúng.
Đó là nhiệm vụ của quy trình phát triển phần mềm.
UML là ngôn ngữ dùng để trực quan hóa

17



Đối với nhiều lập trình viên, không có khoảng cách nào giữa ý tưởng để giải
quyết một vấn đề và việc thể hiện điều đó thông qua các đoạn mã. Họ nghĩ ra và họ
viết mã. Trên thực tế, điều này gặp một số vấn đề. Thứ nhất, việc trao đổi về các ý
tưởng giữa những người lập trình sẽ gặp khó khăn, trừ khi tất cả đều nói cùng một
ngôn ngữ. Thậm chí ngay cả khi không gặp trở ngại về ngôn ngữ thì đối với từng công
ty, từng nhóm cũng có những “ngôn ngữ” riêng của họ. Điều này gây trở ngại cho một
người mới vào để có thể hiểu được những việc đang được tiến hành. Hơn nữa, trong
lĩnh vực phần mềm, nhiều khi khó có thể hiểu được nếu chỉ xem xét các đoạn mã
lệnh. Ví dụ như sự phân cấp của các lớp, ta có thể phải duyệt rất nhiều đoạn lệnh để
hiểu được sự phân cấp của các lớp. Và nếu như người lập trình không mô tả các ý
tưởng mà anh ta đã xây dựng thành mã lệnh thì nhiều khi cách tốt nhất là xây dựng lại
trong trường hợp một người khác đảm nhận tiếp nhiệm vụ khi anh ta rời khỏi nhóm.

Xây dựng mô hình sử dụng ngôn ngữ UML đã giải quyết được các khó khăn trên.
Khi trở thành một chuẩn trong việc lập mô hình, mỗi kí hiệu mang một ý nghĩa
rõ ràng và duy nhất, một nhà phát triển có thể đọc được mô hình xây dựng bằng UML
do một người khác viết.
Những cấu trúc mà việc nắm bắt thông qua đọc mã lệnh là khó khăn nay đã
được thể hiện trực quan.
Một mô hình rõ ràng, sáng sủa làm tăng khả năng giao tiếp, trao đổi giữa các
nhà phát triển.
UML là ngôn ngữ dùng để chi tiết hóa
Có nghĩa là xây dựng các mô hình một các tỉ mỉ, rõ ràng, đầy đủ ở các mức độ
chi tiết khác nhau. Đặc biệt là UML thực hiện việc chi tiết hoá tất cả các quyết định
quan trọng trong phân tích, thiết kế và thực thi một hệ thống phần mềm.

UML là ngôn ngữ để sinh ra mã ở dạng nguyên mẫu

18


Các mô hình xây dựng bởi UML có thể ánh xạ tới một ngôn ngữ lập trình cụ
thể như: Java, C++… thậm chí cả các bảng trong một CSDL quan hệ hay CSDL
hướng đối tượng.
Việc các yêu cầu có khả năng thường xuyên thay đổi trong quá trình phát triển
hệ thống dẫn đến việc các cấu trúc và hành vi của hệ thống được xây dựng có thể khác
mô hình mà ta đã xây dựng. Điều này có thể làm cho một mô hình tốt trở nên vô nghĩa
vì nó không còn phản ánh đúng hệ thống nữa. Cho nên phải có một cơ chế để đồng bộ

hóa giữa mô hình và mã lệnh.
UML cho phép cập nhật một mô hình từ các mã thực thi (ánh xạ ngược). Điều
này tạo ra sự nhất quán giữa mô hình của hệ thống và các đoạn mã thực thi mà ta xây
dựng cho hệ thống đó.
UML là ngôn ngữ để lập và cung cấp tài liệu
Một tổ chức phần mềm ngoài việc tạo ra các đoạn mã lệnh (thực thi) thì còn tạo
ra các tài liệu sau:


Ghi chép về các yêu cầu của hệ thống




Kiến trúc của hệ thống



Thiết kế



Mã nguồn




Kế hoạch dự án



Tests



Các nguyên mẫu






Ứng dụng của UML

19


Mục đích chính của UML là để xây dựng mô hình cho các hệ thống phần mềm,
nó có thể được sử dụng một cách hiệu quả trong nhiều lĩnh vực như:



Hệ thống thông tin doanh nghiệp (enterprise)



Ngân hàng và dịch vụ tài chính



Viễn thông




Giao thông



Hàng không và quốc phòng



Máy móc điện tử dùng trong y tế




Khoa học



Các ứng dụng phân tán dựa trên Web

UML không chỉ giới hạn trong lĩnh vực phần mềm. Nó còn có thể dùng để lập mô
hình cho các hệ thống không phải là phần mềm như hệ thống pháp luật (luồng công
việc–workflow), thiết kế phần cứng,…
1.4 Giới thiệu về hệ quản trị nội dung Joomla
1.4.1 Hoàn cảnh ra đời
Tiền thân của Joomla là Mambo, một sản phẩm của Miro. Năm 2002, song

song với bản thương mại hóa, Miro cho phát hành Mambo Open Source (gọi tắt là
MOS, chữ thường thấy trong mã nguồn Mambo và cả Joomlacho đến tận năm 2008
này). Đến năm 2005, Mambo bước vào giai đoạn chín mùi và giành nhiều giải thưởng
lớn như là “Giải pháp nguồn mở tốt nhất” và “Giải pháp hoàn hảo cho công nghiệp”
tại LinuxWorld. Tuy nhiên, đến cuối tháng 8/2005, do bất đồng với Miro, tất cả thành
viên trong nhóm phát triển Mambo đồng loạt rời công ty, lập ra nhóm “Open Source
Matters”. Họ xây dựng thương hiệu mới “Joomla!” dựa trên Mambo và phát hành lại
vào gần một tháng sau. Joomla! 1.0 ra đời trong hoàn cảnh đó.

20



Từ đó đến nay, Joomla! liên tục được cải tiến, đặc biệt là vá các lỗi bảo mật.
Bản Joomla! mới nhất là 1.0.13 ra đời tháng 7/2007, ngoài ra thế hệ kế tiếp là Joomla!
1.5 được bắt đâu phát triển từ cuối năm 2006, đến nay đang có phiên bản joomla
1.5.25, Joomla còn phát triển thêm một số phiên bản như 1.6, 1.7 và 2.5.
Joomla! thực sự dễ dùng. Giao diện quản trị (back end) bắt mắt, việc cài đặt
các phần mở rộng chỉ đơn giản là tải lên và chạy chương trình cài đặt. Theo triết lí của
Joomla!, đơn vị dữ liệu cơ bản là content item (ở bản 1.5 đổi thành article) chứa trong
category, bản thân category được chứa trong section. Như vậy dữ liệu trong Joomla!
tổ chức thành 3 cấp, nhưng trong joomla 1.6 trở lên lại khác, các phiên bản tiếp theo
category chỉ được tổ chức theo các cấp của category. Tức là category sẽ phân thành
nhiều category cha và con.
Cách tổ chức này rất logic và không gây rắc rối cho người dùng mới. Dù vậy,

Joomla! không có nền tảng để hỗ trợ các kiểu dữ liệu phức tạp hơn. Một nhược điểm
khác là Joomla! được thiết kế dành cho người dùng cuối, nên không cung cấp nhiều
phương tiện can thiệp vào hoạt động bên trong.
1.4.2 Giới thiệu về MVC (Model-View-Controler)
Khi chưa có mô hình MVC ta nhận việc lập trình web theo mô hình cổ điển rất phức
tạp và khó kiểm soát lỗi. Trong khi lập trình một trang jsp,asp hay php ta nhận thấy
mã do server thực thi luôn đi kèm với mã HTML. Do vậy sẽ gặp những khó khăn:
- Người thiết kế giao diện cũng cần phải biết các ngôn ngữ lập trình do code
ngôn ngữ lập trình và mã HTML đan xem nhau
- Việc bảo trì website rất khó khăn.
- Khi có lỗi xảy ra việc tìm và sửa lỗi,xác định vị trí lỗi là vấn đề nan giải.
Để khắc phục những khó khăn trên, người ta đã đưa ra mô hình MVC (Model – View

– Controller) tức là tương ứng với một trang PHP viết theo kiểu cổ điển ta sẽ tách ra
làm ba phần:
+ Model: là các lớp nhận yêu cầu để thao tác với cơ sở dữ liệu, tính toán các
yêu cầu và trả về kết quả sang view
+ View: Chính là form nhập dữ liệu hoặc hiển thị dữ liệu được lấy từ model

21


+ Controller: Đồng bộ hóa giữa view và model. Tức là nhận yêu cầu của client
thao tác trên view và sau đó yêu cầu model thực hiện để trả về kết quả trên view.
Như vậy ta đã có thể tách được mã php và mã html. Việc xử lí dữ liệu bây giờ

chỉ cần xử lí thao tác trong model và controller. Các layout hiển thị trong view sẽ
được người thiết kế giao diện xử lí bằng mã HTML. Như vậy việc debug và xử lí lỗi
được dễ dàng hơn.
Đây là những khái niệm chung nhất về các thành phần trong MVC, khi bạn
nghiên cứu nhiều frameworks thì mô hình này được biến tấu khác đi một chút nhưng
vẫn dựa trên nền tảng này.
Việc xử lí kết quả trả về của model có thể được gọi trong controller rồi sau đó
truyền qua view để hiển thị. Ngoài ra nếu client không có yêu cầu xử lí ngoài việc
hiển thị dữ liệu thì view cũng có thể gọi model để lấy kết quả trả về sau đó truyền
sang layout để hiển thị.
Trong khi ý tưởng phía sau một component dường như là khá đơn giản thì các
đoạn code có thể nhanh chóng trở lên rất phức tạp khi các đặc điểm bổ sung được

thêm vào hoặc giao diện được tùy biến.
Model-View-Controler (gọitắtlàMVC) là một mẫu thiết kế phần mềm được
dùng để tổ chức các đoạn mã theo cách mà việc xử lý dữ liệu (business logic) và việc
biểu diễn dữ liệu là tách rời nhau. Tiền đề nằm sau hướng tiếp cận này là nếu
bussiness logic được nhóm vào trong một section thì giao diện và tương tác người
dùng bao quanh dữ liệu có thể định dạng và tùy biến lại mà không có ảnh hưởng
đến việc phải lập trình lại bussiness logic. (nghĩa là hình thức và nội dung là tách rời
nhau, do đó khi thay đổi hình thức thể hiện thì không ảnh hưởng đến nội dung).
Có ba phần chính trong một MVC component (ba phần này bao gồm Model,
View và Controler).
Chúng được mô tả một cách vắn tắt ở dưới đây. Nếu bạn cần nhiều thông tin
đầy đủ hơn xin vui lòng tham khảo thêm trong các đường dẫn được cung cấp ở cuối

bài hướng dẫn này.
Model
Một model là thành phần của component đóng gói dữ liệu của ứng dụng. Nó
thường cung cấp các thủ tục để quản lý và thao tác dữ liệu này theo một cách nào đó,

22


trong đó có bổ sung thêm các thủ tục để lấy dữ liệu từ model. Trong trường hợp của
chúng ta model sẽ chứa các phương thức như bổ sung, loại bỏ và cập nhật thông tin về
những lời chào mừng trong cơ sở dữ liệu. Nó còn chứa phương thức để lấy danh sách
các lời chào trong CSDL. Nói một cách tổng quát, việc truy cập vào CSDL lớp dưới

sẽ được đóng gói trong model. Theo cách này, nếu một ứng dụng chuyển đổi sang
việc sử dụng một file bình thường để lưu trữ thông tin của nó thay vì sử dụng CSDL,
thì chỉ có thành phần model là thay đổi, các thành phần view và controler là không
đổi.

23


View
View là một thành phần của component được sử dụng để trả lại dữ liệu từ
model theo cách phù hợp với tương tác. Đối với các ứng dụng web, view thông
thường là các trang HTML để trả lại dữ liệu. View lấy dữ liệu từ model (dữ liệu này

được chuyển qua nó để tới controler). Và đưa dữ liệu vào trong template (dữ liệu sẽ
hiển thị với người dùng). View không làm thay đổi dữ liệu. Nó chỉ hiển thị dữ liệu lấy
từ model.
Controller
Controler chịu trách nhiệm phản hồi các hành động của người dùng. Trong các
ứng dụng web, một hành động của người dùng thông thường là một yêu cầu tải trang.
Controler sẽ xác định yêu cầu gì được đưa ra bởi người sử dụng và phản hồi thích hợp
bằng việc yêu cầu model tính toán dữ liệu phù hợp và chuyển từ model vào view.
Controler không thể hiện dữ liệu từ model, nó kích hoạt các phương thức trong model
để hiệu chỉnh dữ liệu và sau đó chuyển từ model sang view để hiển thị dữ liệu.
Trong joomla thành phần quan trọng nhất là components, nó được phát triển
dựa trên mô hình MVC và được hỗ trợ thông qua ba lớp la JModel, JController,

JView.
Trong joomla component ta thường thấy cấu trúc các thư mục như sau:
- Controllers
- Models
- Views
- Helpers: lưu trữ các hàm được định nghĩa thêm để hỗ trợ cho việc
tương tác giữa các thành phần.
- Tables: định nghĩa cấu trúc của table ứng với một component, thư mục
này đa phần xuất hiện trong component ở phần admin.
Ngoài ra khi làm việc bạn sẽ thấy thêm một số thư mục khác như assets,
classes, elements,… điều này tùy thuộc vào nhu cầu để phát triển hoặc chức năng của
từng component.


24


1.5 Giới thiệu Paypal
1.5.1 Paypal là gì ?
- Nói ngắn gọn, PayPal là một cổng thanh toán trực tuyến (dịch vụ trung gian) giúp
bạn đưa tiền từ tài khoản vào tài khoản PayPal để giao dịch trên mạng. Hoặc rút tiền
từ tài khoản PayPal về ngân hàng. Khi có PayPal trung gian thì quá trình giao dịch
đơn giản hơn và bảo mật hơn rất nhiều. Chi tiết hơn:
- Paypal là một công ty hoạt động trong lĩnh vực thương mại điện tử, chuyên cung
cấp các dịch vụ thanh toán và chuyển tiền qua mạng Internet. Đây là dịch vụ thanh

toán và chuyển khoản điện tử thay thế cho các phương thức truyền thống sử dụng giấy
tờ như séc và các lệnh chuyển tiền. Paypal thu phí thông qua thực hiện việc xử lý
thanh toán cho các hãng hoạt động trực tuyến, các trang đấu giá, và các khách hàng
doanh nghiệp khác. Vào tháng 10 năm 2002, eBay đã mua lại toàn bộ Paypal. Trụ sở
chính của Paypal hiện đặt tại khu các công ty con của eBay trong toà nhà North First
Street, thung lũng Sillicon, San Jose, California. Paypal cũng có các hoạt động quan
trọng tại Omaha, Nebraska; Dublin, Ireland; và Berlin, Đức.

Mọi khách hàng muốn lập tài khoản Paypal đều phải trên 18 tuổi có thẻ ghi nợ
(debit card)/thẻ tín dụng (credit card) (thẻ dùng để xác nhận tài khoản PayPal và chi
trả cho việc thanh toán online), một tài khoản ngân hàng (dùng để rút tiền về Việt
Nam) và một địa chỉ e-mail. Thẻ và tài khoản ngân hàng không bắt buộc khi đăng kí

nhưng để sử dụng PayPal lâu dài tốt nhất bạn nên ra ngân hàng để mở thẻ và mở tài
khoản.
Hình thức hoạt động của PayPal cũng như của các cổng thanh toán trực tuyến khác:

Hình 1.6: Sơ đồ hoạt động khi thanh toán bằng paypal
25


×