Yêu cầu đặt ra là xây dựng một phầnmề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 q
Trang 1Lờ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ốtnghiệ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ềnThông, những nhà giáo đã truyền dạy cho em những kiến thức quý báu trong suốtnhữ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 địnhhướng lựa chọn giải pháp để triển khai đồ án Thầy cũng luôn nhắc nhở, giúp đỡ emmỗ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ôngnghệ 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 độngviê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ácthầ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ảinghiệ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ênNguyễn Công Luận
Trang 2Lờ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ớitinh 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ướngdẫ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ốtnghiệ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ựnglê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ệ
Trang 3MỤ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
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 24
1.5.1 Paypal là gì ? 24
1.5.2 Vì sao nên sử dụng paypal 25
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 26
2.1 Khảo sát hệ thống 26
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 26
Trang 42.1.2 Môi trường và mô tả hệ thống 31
2.2 Phân tích và thiết kế hệ thống 33
2.2.1 Xác định các tác nhân của hệ thống: 33
2.2.2 Các biểu đồ usecase 34
2.2.3 Sơ đồ hoạt động của hệ thống 39
2.2.4 Sơ đồ trình tự hoạt động của hệ thống 45
2.2.5 Sơ đồ lớp 50
2.2.6 Cơ sở dữ liệu của hệ thống quản lý dự án 52
2.2.7 Chi tiết các bảng cơ sở dữ liệu được xây dựng: 54
CHƯƠNG 3 KẾT QUẢ XÂY DỰNG WEBSITE 62
3.1 Hình ảnh cho chức năng yêu cầu dự án 62
3.2 Danh sách các dự án khách hàng đang thực hiện với công ty 63
3.3 Danh sách các dự án của người quản lý dự án 64
3.4 Danh sách dự án đang trong giai đoạn thảo luận 65
3.5 Hệ thống phản hồi 67
3.6 Các thống kê trong phần quản trị 67
KẾT LUẬN 69
TÀI LIỆU THAM KHẢO 70
Trang 5LỜ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 giatrê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ớigiú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áchhà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ầnmề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ươngphá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ụnginternet đề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ữacá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ệcphù 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 để theodõ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ấtnhiề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”
Trang 6CHƯƠ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ắtmắ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ìnhcũ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ếtquả 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ựchiệ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ánhtố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 nhanhnhấ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, Italyv.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ảmthấ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óithê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 ASPhay JSP Và theoem thì việc gõ lệnh PHP nhanh hơn ColdFusion và nó không khó họcnhư 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
Trang 7Như đã trình bày ở phần kiến trúc web, em có nói là PHP có thể chạy trênWindowsNT/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ốttrê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àmviệc trên mô hình clien/server Nôm na là mỗi thứ client hay server đều đảm đươngmộ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ủangườ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ộtwebsite 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ậpvà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 singleclient đó 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
Trang 8Hì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 ứngdụ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ầnmềm tốt
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ềntả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
Trang 9đá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ăngcủ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ếtchươ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 talà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ằngcách sử dụng dòng lệnh, hoặc sử dụng các tập tin text trong folder chương trìnhApache
Mặc dù Apache chỉ làm việc tốt trên Unix, nhưng cũng có những phiên bảnchạ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ướidạng các ứng dụng hơn là các Website đơn thuần Các ưu điểm của Website động:
bản trình duyệt của người dùng)
của site
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
Trang 10Middleware 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 để chochương trình có thể hoạt động được.Ngoài PHP ra có một số ngôn ngữ khác có chứcnă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ôitrườ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àngnghiê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ểnkhô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ở PHPvừ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ủalập trình viên chuyên nghiệp.PHP la module thông dụng cho Apache (máy chủ Webphổ 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
Trang 11Hì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
Trang 12Hì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ụ:
Safari của Apple, Mozilla, Opera )
Qualifies của Macromedia) hoặc IDE (Intergrated Development Environment: Môitrường phát triển tích hợp)
Đ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ủ đánggờ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ươngdiện đặc thù nào đó
Trong phần trên, chúng ta đã bàn sơ qua MySQL Trong phần này, bạn sẽ đượcbiết về những đặc điểm của những Hệ quản trị CSDL khác mà MySQL không hỗ trợ
Trang 13Vớ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ủanhữ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ácmô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ôikhuyê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ọnlự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
+ Cải tiến liên tục
Trang 141.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 SoftwareEnginering) [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ếutrong 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ệcchọ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ệccá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ẫnkhi 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ộtaggregation trong Booch Thời kỳ này còn được biết đến với tên gọi là cuộc chiếngiữ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ìnhtrong đó 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ớitê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ủaBooch Các phương pháp đã bắt đầu hợp nhất, nhưng các kí hiệu sử dụng ở cácphươ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ộtngô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 đốitượ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êuchuẩn ISO (International Standard Organization) chấp nhận
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?
Trang 15Mô 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ấutrú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ántrở 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 conngườ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óanhữ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ãncá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ôngthể 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ủangô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ứctạ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ườithiế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ácthà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áttriể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ổ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ủakhách hàng
Trang 16Mô 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ộtphầ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âydự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ìnhchúng ta sẽ đạt được 4 mục đích sau:
mà chúng ta muốn nó sẽ như vậy
xây dựng hệ thống
đư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 đangnghiê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àycũng giống như phương pháp “chia để trị” mà Edsger Diskstra đã đưa ra: “Giải quyếtmộ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ảiquyết được.”
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, tuynhiê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
Trang 17Tù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 trungvà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ệnngười dùng thì phần tĩnh và động của Use case sẽ là quan trọng Trong hệ thống thờigian 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ựatrê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 để
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ợpcá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àoviệ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úctố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
Đố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ảiquyế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ọ
Trang 18viế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ộtngô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ộtngười mới vào để có thể hiểu được những việc đang được tiến hành Hơn nữa, tronglĩ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 trongtrườ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
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 địnhquan 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
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 CSDLhướng đối tượng
Trang 19Việ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ềunà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âydự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:
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ư:
Trang 20UML 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ôngviệ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, songsong 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 2008nà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ưởnglớ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ànhviên trong nhóm phát triển Mambo đồng loạt rời công ty, lập ra nhóm “Open SourceMatters” Họ xây dựng thương hiệu mới “Joomla!” dựa trên Mambo và phát hành lạivào gần một tháng sau Joomla! 1.0 ra đời trong hoàn cảnh đó
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 joomla1.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 đặtcá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
Trang 21Joomla!, đơn vị dữ liệu cơ bản là content item (ở bản 1.5 đổi thành article) chứa trongcategory, 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 theocategory chỉ được tổ chức theo các cấp của category Tức là category sẽ phân thànhnhiề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ểmkhác là Joomla! được thiết kế dành cho người dùng cuối, nên không cung cấp nhiềuphươ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ứctạ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 codengô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 ralà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ácyê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+ Controller: Đồng bộ hóa giữa view và model Tức là nhận yêu cầu của clientthao 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
Trang 22Đây là những khái niệm chung nhất về các thành phần trong MVC, khi bạnnghiê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ưngvẫ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ệchiển thị dữ liệu thì view cũng có thể gọi model để lấy kết quả trả về sau đó truyềnsang 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 đượcthê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 đượcdùng để tổ chức các đoạn mã theo cách mà việc xử lý dữ liệu (business logic) và việcbiể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ếubussiness logic được nhóm vào trong một section thì giao diện và tương tác ngườidù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ờinhau, 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ốibà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 đó,trong đó có bổ sung thêm các thủ tục để lấy dữ liệu từ model Trong trường hợp củachú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áchcá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 sangviệ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,
Trang 23thì chỉ có thành phần model là thay đổi, các thành phần view và controler là khôngđổi.
Trang 24View 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ôngthườ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ợpbằ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ểndự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:
Trang 251.5 Giới thiệu Paypal
1.5.1 Paypal là gì ?
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à chitrả 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ệtNam) 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àikhoả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
Trang 26Hiện nay trên thế giới có rất nhiều công ty hoạt động trong lĩnh vực giống như của
Lượng, Mobivi của Việt Nam v v Nhưng qua nhiều năm hoạt động, thì PayPal đãtrở thành 1 cổng thanh toán trực tuyến có uy tín và độ bảo mật cũng như phổ biến caonhất thế giới trong lĩnh vực mua bán trực tuyến, điều này cũng dễ hiểu tại sao lại cónhiều người lựa chọn sử dụng nó đến thế
1.5.2 Vì sao nên sử dụng paypal
- Như đã nói ở trên, sử dụng paypal đơn giản và bảo mật hơn rất nhiều, ngoài ra còn
có các lý do sau:
+Cực kì bảo mật
+Hỗ trợ an toàn cho cả người mua và người bán
+Thanh toán qua paypal rất nhanh chóng, an toàn và tiện lợi
+Một khi sử dụng paypal để thanh toán, bạn sẽ không phải nhập số thẻ thanh toán như visa…
+Một điểm khác biệt khá lớn là sự uyển chuyển trong việc quản lý tiền của kháchhàng Đó là chức năng chanrgebank, khách hàng có thể đòi lại số tiền sau khi đã gửitiền vào tài khoản khác Mặc dù rất phức tạp nhưng khách hàng vẫn yên tâm không bịlừa đảo
Trang 27CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Hiện tại số dự án của công ty rất nhiều nhưng chưa có chương trình quản lý nênviệc theo dõi tiến độ triển khai, quản lý tổng thể các dự án và việc phản hồi của kháchhàng vẫn còn hạn chế Chính vì vậy, em đã đưa ra mục tiêu xây dựng một ứng dụngtrên nền web có thể quản lý được các dự án của công ty Việc này sẽ giúp cho việcquản lý và phân công công việc dễ dàng hơn Ngoài ra, Ứng dụng còn cho phép traođổi thông tin giữa khách hàng và người quản lý một cách dễ dàng
Sau quá trình khảo sát tại công ty, từ yêu cầu em đưa ra quy trình của một dự
án được thực hiện tại công ty như sau:
- Toàn bộ quy trình thực hiện một dự án được mô tả trong sơ đồ sau:
Hình 2.1: Quy trình thực hiện một dự án
Trang 28Quá trình được thể hiện qua các bước sau:
- Khách hàng yêu cầu thực hiện dự án
- Quá trình thảo luận giữa khách hàng và người quản lý
- Xây dựng yêu cầu ở mức chung
- Tính toán thời gian
- Khách hàng đặt cọc tiền
- Kiểm tra số tiền khách hàng gửi
- Bắt đầu thực hiện dự án
- Xây dựng yêu cầu ở mức chi tiết
- Xây dựng kế hoạch (thời gian) (*)
- Phân công công việc cho nhân viên
- Nhân viên thực hiện công việc
- Báo cáo công việc theo từng ngày (thời gian và tiến độ)
- Kiểm tra các yêu cầu hoàn thành
- Báo cáo trạng thái dự án
- Nếu khách hàng cảm thấy không hài lòng -> *
- Nếu khách hàng hài lòng -> Hoàn thành dự án
Trong quy trình trên ta còn có thể phân chia thành các quy trình con như sau:
Trang 29Hình 2.2: Quy trình con thực hiện một dự án
Trên đây là quy trình yêu cầu một dự án mới của khách hàng Quy trình được mô tảnhư sau:
- Khách hàng từ trang chủ của website chọn yêu cầu một dự án mới
- Hệ thống sẽ đưa ra form cho khách hàng điền thông tin
- Trong khi khách hàng điền thông tin hệ thống sẽ kiểm tra thông tin khách hàngnhập
- Hệ thống đưa thông tin khách hàng nhập vào cơ sở dữ liệu và báo cho ngườiquản lý biết để liên lạc với khách hàng trong thời gian
Trang 30Hình 2.3: Quy trình thực hiện yêu cầu một dự án của khách hàng
Trên đây là quy trình quản lý dự án Toàn bộ quy trình được mô tả như sau:
- Người quản lý yêu cầu thông tin
- Hệ thống sẽ kiểm tra quyền truy cập
- Nếu không phải là người quản lý hệ thống sẽ không cho vào và kết thúc phiênlàm việc
- Nếu là người quản lý hệ thống sẽ nhận tiêp yêu cầu của người quản lý:
- Thêm dự án,sửa, xóa và xem chi tiết dự án: Hệ thống sẽ xử lý yêu cầu và đưa rakết quả
Trang 31Hình 2.4: Đăng nhập hệ thống
Trên đây là quá trình đăng nhập vào hệ thống Quá trình đăng nhập được thể hiện nhưsau:
- Hệ thống hiển thị form đăng nhập
- Người sử dụng sẽ điền thông tin vào form
- Sau khi kiểm tra thông tin đăng nhập nếu không hợp lệ hệ thống sẽ đưa người sửdụng quay trở về form đăng nhập để người dùng đăng nhập lại và thông báo ngườidùng nhập sai
Trang 32- Nếu thỏa mãn hệ thống sẽ kiểm tra quyền truy cập của người sử dụng thông quagroup của người sử dụng.
- Hệ thống sẽ hiển thị thông tin riêng biệt cho từng nhóm người sử dụng theoquyền truy cập của họ
Hình 2.5: Quy trình người sử dụng sử dụng chức năng phản hồi
2.1.2 Môi trường và mô tả hệ thống
Mục đích chính của hệ thống được xây dựng hệ thống quản lý dự án sẽ manglại lợi thế cạnh tranh cho công ty gia công phần mềm bằng cách tăng sự cộng tác củanhóm phát triển, cung cấp cho khách hàng một phương pháp dễ dàng hơn để truy cập
và cung cấp thông tin phản hồi kịp thời cho các dự án đang diễn ra
Môi trường hệ thống chủ yếu sẽ chạy trên Internet Nó đòi hỏi một máy chủ có
hỗ trợ PHP, MySQL để chạy các ứng dụng web và di động Các dữ liệu sẽ được
Trang 33chuyển qua mạng Internet Hệ thống này sẽ được sử dụng trên toàn thế giới cho kháchhàng đến từ khắp nơi trên thế giới những người muốn bắt đầu dự án với công ty
Hệ thống sẽ được phát triển dựa trên 5 hợp phần, đó là: quản lý dự án, quản lýtài nguyên, các thành viên đội ngũ quản lý, quản lý khách hàng, quản lý quản lý.Những hệ thống được xây dựng riêng biệt và tương tác với nhau thông qua hệ thốngdựa trên web
Các giao dịch trong hệ thống chủ yếu được tập trung vào quản lý dự án Cáckhách hàng sẽ bắt đầu một dự án bằng cách gửi một yêu cầu người quản lý dự án,quản lý sau đó sẽ kiểm tra các chi tiết dự án và quyết định để làm điều đó hay không,sau khi dự án đã được phê duyệt, danh sách yêu cầu của dự án sẽ được xây dựng dựatrên khách hàng và quản lý dự án quyết định, yêu cầu dự án sẽ được giao cho thànhviên trong nhóm phát triển, sẽ có thông tin phản hồi từ thành viên nhóm quản lý dự
án, khách hàng luôn luôn có thể kiểm tra chi tiết dự án và hoàn thành dự án trong thờihạn được giao
Mặc dù hệ thống có thể dễ dàng hỗ trợ tất cả các bên liên quan trong hệ thốngquản lý dự án, tuy nhiên nó sẽ có một số khả năng sử dụng hạn chế và chức năng.Hiện tại, hệ thống chỉ có thể làm việc với các dự án công nghệ thông tin, chủ yếu là dự
án phát triển web và môi trường gia công phần mềm, nó sẽ cần phải phát triển để quản
lý một dạng khác của dự án
Trang 342.2 Phân tích và thiết kế hệ thống
cơ bản của việc sử dụng máy tính, trình duyệt và Web
Quản lý dự án là actor chính của hệ thống Họ sẽ quản lý dự án và tất cả cácnguồn lực khác để hoàn thành công việc Quản lý dự án sẽ cần phải có một số kỹ năng
cơ bản để quản lý một dự án như: kỹ năng kỹ thuật mạnh mẽ, ước tính, quản lý nguồnnhân lực, mối quan hệ tốt và lãnh đạo tốt
Nhóm thành viên là người sẽ làm việc cho dự án Trong hệ thống này, dự án sẽđược chia thành các nhiệm vụ và cung cấp cho các thành viên, nó có thể được trựctuyến và tất cả mọi người ở khắp mọi nơi có thể làm việc cho dự án Nó có lợi thếnhưng cũng có những bất lợi, làm việc trực tuyến quản lý dự án sẽ rất khó để quản lýquá trình Các thành viên trong nhóm cần phải có kỹ năng sau đây để làm việc trong
hệ thống: kỹ năng kỹ thuật trong nghiên cứu và làm việc cho dự án, kỹ năng làm việctheo nhóm để giao tiếp với một thành viên khác trong nhóm và quản lý dự án Họcũng cần phải có trách nhiệm cho số lượng công việc và gắn bó với các mốc thời giancủa dự án
Trang 352.2.2 Các biểu đồ usecase
Quản lý tài khoản: Trường hợp này sử dụng tất cả các công việc mà các actortrong hệ thống sẽ sử dụng để quản lý tài khoản của họ trong khi tương tác với hệthống Nó sẽ cung cấp cho người sử dụng chức năng để làm: đăng nhập/ đăng xuất,đăng ký và cập nhật hồ sơ người dùng của họ
Xem danh sách dự án: Điều kiện cho usecase này sử dụng là người truy cập cầnphải đăng nhập và được phép cho tài khoản đó Mỗi actor trong hệ thống quản lý dự
án sẽ có phần khác nhau sau khi đăng nhập vào hệ thống Quản lý dự án có thể liệt kêtất cả các dự án Các thành viên trong nhóm có thể liệt kê các dự án mà họ đang làmviệc trên đó Các khách hàng chỉ có thể liệt kê các dự án mà họ bắt đầu
Yêu cầu trích dẫn nội dung bài viết dự án: Khách hàng có thể bắt đầu một dự
án với công ty bằng cách yêu cầu một báo giá cho dự án của họ Sau khi yêu cầu hệthống tự động có thể tạo một tài khoản của khách hàng cho khách
Quản lý chi tiết dự án: Đây là trường hợp sử dụng chính cho hệ thống.Tìnhtrạng trước khi cho trường hợp này sử dụng là khách truy cập cần đăng nhập và cácloại người dùng đã được xác định Mỗi loại thành viên cũng có thể có các phươngpháp và quan điểm khác nhau Quản lý dự án có thể liệt kê tất cả các yêu cầu của dự
án, thêm yêu cầu và phân công công việc cho các thành viên trong nhóm Các thànhviên trong nhóm có thể liệt kê các yêu cầu của dự án được giao và xem chi tiết yêucầu Các khách hàng có thể xem chi tiết dự án và các chi tiết yêu cầu
Thông tin phản hồi: Trường hợp sử dụng sẽ hỗ trợ tất cả các actor trong hệthống giao tiếp với nhau trong 2 phần, thành viên nhóm và khách hàng
Tạo các báo cáo: Trường hợp sử dụng sẽ hỗ trợ quản lý dự án để có được báocáo của dự án
Trang 36Hình 2.1: Usecase cho toàn bộ hệ thống