mẫu báo cáo đồ án xây dựng website đấu thầu trực tuyến, phân tích và thiết kế theo hướng đối tượng UML giới thiệu về framework laravel, có hình ảnh tham khảo, Chi tiết code đồ án xin liên hệ doantran1690gmail.com
Trang 2Danh mục chữ cái viết tắt
7 XHTML Extensible HyperText Markup Language
10 SATD Structured Analysis and Design Technique
Trang 3Danh mục hình ảnh
Trang 4Lý do chọn đề tài
Công nghệ thông tin nói chung và nghành lập trình website nói riêng ngày càng phát triển trong thời đại ngày nay Nó mang lại lợi ích to lớn cho nên kinh tế Ở bên khách hàng đó là: giúp cho người dùng tiếp cận sản phẩm
rõ ràng hơn, tiếp cận được nhiều sản phẩm hơn, có nhiều dịch vụ hơn, có nhiều sự lựa chọn hơn cũng như được chăm sóc kỹ càng hơn.Còn ở bên cung cấp dịch vụ, được tiếp cận khách hàng nhiều hơn, nắm rõ được nhu cầu kháchhàng từ đó đưa các dịch vụ cũng như cải thiện các dịch vụ của mình
Trong thời đại số này, mọi việc đều cần phải nhanh nhưng hiệu quả phải cao, mang lại lợi ích kinh tế, một trong số đó là việc vận chuyển các loại mặt hàng(thuỷ sản, hoa quả, thực phẩm, ) Đây là một phần quan trong trong tất cả các ngành nghề nhưng chưa được quan tâm đầu tư một cách xứng đáng.Người có nhu cầu vận chuyển chưa tìm được dịch vụ vận chuyển một cách hợp lý nhất, trong khi đó thì các công ty vận chuyển lại chưa tiếp xúc được với người có nhu cầu, hoặc có tình trạng công ty vận chuyển lại đang độc quyền dẫn đến giá và các dịch vụ quá cao, khiến cho người dùng phải chịu nhiều thiệt thòi
Chính vì những lý do trên em chọn đề tài “ Xây dựng sàn đấu thầu vận chuyển trực tuyến”
Mục đích của đề tài
• Tạo ra một nền tảng giúp đầu thầu dễ dàng tiện lợi hơn
• Người dùng có thể chọn cho mình giá cả và dịch vụ tốt nhất
• Công ty vận chuyển có thể tiếp xúc được với nhiều tầng lớp khách hàng,
từ đó đưa ra các chiến thuật phát triển cho công ty, doanh nghiệp
• Tránh tình trạng chèn ép giá của các công ty, doanh nghiệp
Trang 5• Chương 1: Cơ sở lý thuyết 1.1 Ngôn ngữ lập trình PHP
• Ví dụ như người dùng có thể nhập số lượng hàng hóa muốn mua khi thanh toán online, và PHP có thể được dùng để xử lí thông số này
• 1.1.4 Một số quy tắc code của PHP
• Đuôi file được dùng là php
• Những file mặc định được xử lí như mã PHP
có đuôi file định nghĩa là “.php” Như đã nói ở trên, PHP có thể được lồng ghép trong codeHTML như sau, ví dụ một file tên
• Mã PHP được đặt ở giữa phần mở đầu ở dòng
1 và phần kết thực ở dòng 3 như sau
Trang 6• Đặt dấu chấm phẩy ở cuối mỗi dòng code
• PHP quy định mỗi dòng mã cần phải kết thực bằng dấu chấm phẩy (, ví dụ như:
• <?php
• echo ‘Message 1’;
• echo ‘Message 2’;
• ?>
• Trong ví dụ trên, các dòng chữ “Message 1”
và “Message 2” sẽ lần lượt hiển thị ra màn hình, bạn có thể thấy mỗi dòng echo đều đượckết thúc bằng dấu chấm phẩy
• Có 3 cách để viết comment trong mã PHP như sau:
Trang 7• nhiều dòng
• */
• ?>
• 1.1.5 Cú pháp cơ bản của PHP
• Sau đây là một số cú pháp cơ bản của PHP
• Khai báo biến
• Khi viết phần mềm, sẽ có những chuỗi thông tin có thể sử dụng lại, được lưu dưới dạng biến (variable)
• Biến có thể được dùng để lưu hầu hết loại dữ liệu, từ những chuỗi text dài ngoằng, đến những con số, true false (Boolean) …
• Tuy nhiên, PHP có một số biến được định nghĩa sẵn không thể bị ghi đè, ví dụ như
$GLOBALS, hay $_GET
• Ví dụ ta có một đoạn code sau:
đó có thể được thay đổi tùy theo logic của ứng dụng
• Có một số quy tắc cho việc định nghĩa biến trong PHP như sau:
• Bắt đầu bằng kí tự dollar ($)
• Nhưng ký tự được cho phép dùng cho tên biến bao gồm a-z, A-Z, 0-9
và _
• Không thể đặt tên biến bắt đầu bằng chữ số 0-9
• Tiếng nhật cũng có thể được dùng như tên biến, nhưng không nên vậy
�
Trang 8• Các đặt tên biến cũng không quá khắt khe, tuy nhiên nên đặt sao cho rõ ràng, dễ hiểu và đúng bản chất biến.
• Các toán tử (operator)
• Toán tử trong PHP là các ký hiệu có thể được
sử dụng trong việc tính toán
• Có các toán tử số học như cộng trừ nhân chia,các toán tử dùng để so sánh, hoặc toán tử dùng cho suy luận…
• Ví dụ ta có một đoạn code sau:
• If statement / while statement
• Đoạn mã “if” thường được dùng để kiểm tra phần sau đó có giá trị đúng (TRUE) hay không, và sẽ thực thị đoạn mã bên trong nếu thỏa điều kiện trên
Trang 9• Đoạn mã “while” được dùng để chạy những đoạn code lặp đi lặp lại, cho đến khi điều kiệnwhile không còn được thỏa.
• Khai báo hàm (function)
• Các hàm (function) trong PHP là tổng hợp của nhiều đoạn code được nhóm lại và có thể thực thi toàn bộ khi hàm được gọi
Trang 10• 1.2 Cơ sở dữ liệu Mysql
• MySQL thêm dữ liệu vào cơ sở dữ liệu
• MySQL sửa dữ liệu trong cơ sở dữ liệu
• MySQL xóa dữ liệu khỏi cơ sở dữ liệu
• MySQL truy vấn dữ liệu từ cơ sở dữ liệu
• MySQL tạo cơ sở dữ liệu, tạo bảng
• 1.2.3 Tầm quan trong của MySQL đối với website
• Website luôn cần phải làm việc với cơ sở dữ liệu MySQL là một hệ quản trị cơ sở dữ liệu
có tốc độ cao, ổn định, dễ sử dụng, và có lượng người dùng hỗ trợ đông đảo Do đó, nó
là sự lựa chọn hàng đầu trong việc phát triển website
• 1.2.4 Các kiểu dữ liệu trong MySQL
• Trong MySQL, kiểu dữ liệu được chia làm baloại chính: kiểu số, kiểu văn bản, kiểu ngày tháng
• Kiểu Số
Trang 11• Kiểu văn bản
Trang 12• CREATE DATABASE database_name;
• Ví dụ: Tạo một Database có tên là Quantriduan
Trang 13• Trong MySQL để chọn một database nào đó
ta sẽ sử dụng cú pháp sau:
• USE database_name;
• Ví dụ: Để sử dụng Database Quantriduan ta dùng câu lệnh như sau:
• Use Quantriduan;
•
• b Câu lệnh tạo bảng
• Để tạo một bảng trong MySQL, chúng ta sử dụng cú pháp dưới đây:
• CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), );
• Trong đó:
• table_name là tên của bảng mà bạn muốn tạo
• column_name1 là tên cột thứ nhất của bảng (Tương tự: column_name2
và column_name3 lần lượt là tên cột thứ hai và cột thứ ba)
• data_type là kiểu dữ liệu của cột
• size là kích thước tối đa của kiểu dữ liệu của cột
Trang 14• c Cú pháp thêm dữ liệu vào bảng
• INSERT INTO table_name (column1,column2,column3)
Trang 15• e Câu Lệnh truy xuất dữ liệu
• Khi bạn muốn truy xuất dữ liệu (lấy dữ liệu) của một bảng nào đó, chúng ta có 2 cú pháp:
• Cú pháp 1:
• SELECT * FROM name_table;
• Cú pháp này sẽ truy xuất tất cả dữ liệu của bảng có tên là name_table
• Lưu ý: Dấu sao (*) có nghĩa là chọn hết các cột của bảng
• Cú pháp 2:
• SELECT name_column1, name_column2 FROM name_table;
Trang 16• Cú pháp này sẽ truy xuất tất cả dữ liệu của haicột có tên là name_column1 và
name_column2 trong bảng có tên là name_table
• 1.3 Giới thiệu mô hình MVC
• MVC là chữ viết tắt của Model - View - Controller, đây là một
mô hình kiến phần mềm được tạo ra với mục đích quản lý và xây dựng dự án phần mềm có hệ thống hơn Mô hình này được dùng khá rộng rãi và đặc biệt
là trong các ngôn ngữ lập trình web
• Trong mô hình này thì:
• Model: có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất
cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu
và controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi
gửi qua View
• View: có nhiệm vụ tiếp nhận dữ liệu từ controller và hiển thị nội dung
sang các đoạn mã HTML, bạn có thể hiểu nôm na đây người ta còn gọi
là thành phần giao diện
• Controller: đóng vài trò trung gian giữa Model và View Nó có nhiệm
vụ tiếp nhận yêu cầu từ client sau đó xử lý request, load model tương ứng và gửi data qua view tương ứng rồi trả kết quả về cho client
• Ưu điểm:
• Hệ thống phân ra từng phần nên dễ dáng phát triển
Trang 17• Chia thành nhiều modun nhỏ nên nhiều người có thể làm chung dự án
• Vấn đề bảo trì cũng tương đối ok, dễ nâng cấp
• Dễ dàng debug trong quá trình xây dựng
• Laravel là một PHP Framework mã nguồn
mở miễn phí, được phát triển bởi Taylor Otwell với phiên bản đầu tiên được ra mắt
vào tháng 6 năm 2011 Laravel ra đời nhằm
mục đích hỗ trợ phát triển các ứng dụng web, dựa trên mô hình MVC (Model – View – Controller)
• Laravel hiện được phát hành theo giấy phép
MIT, với source code được lưu trữ tại Gitthub
• 1.4.2 Tại sao nên sử dụng Laravel?
• 1 Bắt đầu dễ dàng
Trang 18• Lý do đầu tiên phải kể đến chính
việc Laravel có thể sử dụng cực dễ dàng cho
người mới bắt đầu, kể cả khi bạn chỉ biết sơ
về PHP, bạn vẫn có khả năng phát triển 1 website với 5 trang trong vòng vài giờ
• 2 Có mã nguồn mở
• Framework Laravel với mã nguồn mở miễn
phí, cho phép bạn xây dựng ứng dụng web lớn và phức tạp một cách nhanh chóng, dễ dàng
• Tất cả điều bạn cần làm ở đây là cài đặt PHP, cộng với một trình soạn thảo văn bản để bắt đầu
• 3 Hỗ trợ cộng đồng
• Trường hợp bạn mắc kẹt với những bug khó nhằn, nhưng có người đã trải qua và hướng dẫn bạn thì không còn gì tuyệt hơn
• Laravel có một hệ thống thư viện hỗ trợ vô
cùng lớn và mạnh hơn hẳn các Framework khác
• Nếu bạn report lỗi hoặc vi phạm bảo mật trong Framework, phản hồi của cộng đồng sẽ rất nhanh chóng
• 4 Dựa trên cấu trúc MVC
• Cấu trúc MVC và lập trình hướng đối tượng OOP vẫn được giữ lại trong
Framework Laravel, giúp cung cấp tài liệu
tốt hơn, và tăng hiệu suất hơn
Trang 19• 5 Được xây dựng dựa trên những Framework hiệu quả nhất
• Vì ra đời muộn nên Laravel được thừa hưởng
những ưu điểm và thế mạnh của Framework khác, khi có phần route cực mạnh Ví dụ
điện hình là Laravel sử dụng một số thành
phần tốt nhất của Symfony
• 6 Di chuyển Database dễ dàng
• Di chuyển Database là một trong những tính
năng trọng yếu của Laravel Nó cho phép bạn
duy trì cấu trúc cơ sở dữ liệu ứng dụng mà không nhất thiết phải tạo lại
• Di chuyển Database còn cho phép bạn viết
mã PHP để kiểm soát Database, thay vì sử
Trang 20dụng SQL Nó còn cho phép bạn khôi phục những thay đổi gần đây nhất trong Database
• 7 Tính năng bảo mật hoàn thiện
• Ứng dụng của bạn sẽ an toàn khi dùng
Framework Laravel Kỹ thuật ORM của Laravel sử dụng PDO, chống chèn SOL
• Ngoài ra, tính năng bảo vệ crsf
của Laravel giúp ngăn chặn giả mạo từ yêu
cầu trang chéo Đó là cú pháp tự động thoát bất kì HTML nào đang được truyền qua các tham số xem, nhằm ngăn chặn kịch bản chéo trên trang web
• Điều bạn cần thực hiện ở đây là sử dụng các thành phần thích hợp của khuôn khổ
• Với 7 lợi ích tuyệt vời như thế thì sẽ là một mất mát lớn nếu bạn không sử dụng
Framework Laravel này
• Dưới đây, HYBRID TECHNOLOGIES sẽ chỉbạn cách cài đặt phiên bản mới nhất
– Laravel 5.8 trong vòng 3 phút.
• Cách cài đặt Laravel
• 1 Yêu cầu máy chủ
• Framework Laravel cần một vài yêu cầu về
hệ thống để cài đặt thành công Tất cả các yêucầu này hiện được đáp ứng bởi máy
ảo Laravel Homestead Do đó nếu được, bạn
nên sử dụng Homestead làm môi trường phát triển Laravel
• Tuy nhiên, nếu bạn không sử dụng Homestead, bạn sẽ cần đảm bảo rằng máy chủcủa bạn đáp ứng được các yêu cầu sau:
• PHP >= 7.1.3
• OpenSSL PHP Extension
Trang 21• Laravel sử dụng Composer để quản lý
các dependencies của nó Vì vậy, trước khi sử
dụng Laravel, hãy đảm bảo bạn đã cài
đặt Composer trên máy của mình
• Cách 1: Thông qua Laravel Installer
• Đầu tiên, tải xuống Laravel Installer bằng
Composer:
•
• Khi cài đặt xong bạn cần chắc chắn rằng
đường dẫn tập tin thực thi của Composer đã
được thêm vào nhằm giúp hệ thống
thực thi Laravel có thể được định vị bởi hệ
thống của bạn Đường dẫn này tồn tại ở những vị trí khác nhau tùy vào hệ điều hành của bạn, tuy nhiên, dưới đây là những vị trí phổ biến:
Trang 22bạn mở cửa sổ lệnh (đối với Windows
thì chọn Shift + click chuột phải và
chọn Commad Window Here hoặc Git BASH Here) và gõ dòng lệnh sau:
•
• Sau khi hoàn tất cài đặt , lệnh sẽ
tạo ra một bản cài đặt Laravel hoàn toàn mới
trong thư mục bạn chỉ định Ví dụ: sẽ tạo ra một thư mục có
tên chứa một bản cài đặt Laravel mới với tất cả các dependencies của Laravel đã
được cài đặt Trong đó, chính là tên thư
mục Laravel project của bạn.
• Và chúng ta đã cài đặt xong Laravel.
• Cách 2: Thông qua Composer
• Ngoài ra, bạn cũng có thể cài
đặt Laravel bằng cách ban hành
lệnh cho Composer trong giao diện dòng lệnh Terminal của bạn
•
• Trong đó, chính là tên thư
mục Laravel project của bạn Và chúng ta đã cài đặt xong Laravel rồi
• 3 Chạy Laravel
Trang 23• Sau khi cài đặt thành công, mở WebServer và tìm thư mục trong thư mục Laravel project, hoặc thực thi lệnh dưới đây:
•
• Khi đó, màn hình console xuất hiện thông báo:
•
• Tức là Laravel project của bạn đã khởi chạy.
• Lúc này, vào trình duyệt gõ:
• 1.5 thiết kế hướng đối tượng UML
• 1.5.1 Giới Thiệu
•
• Ngôn ngữ mô hình hóa thống nhất (tiếng Anh: Unified Modeling Language, viết tắt thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng
• Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao
Trang 24quát và đầy đủ về hệ thống thông tin dự định xây dựng Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin Các mô hình hướng đối tượng được lập cũng là cơ sở cho việcứng dụng các chương trình tự động sinh mã trong các ngôn ngữ lập trình hướng đối tượng, chẳng hạn như ngôn ngữ C++, Java, Phương pháp mô hình này rất hữu dụng trong lập trình hướng đối tượng Các mô hình được sử dụng bao gồm Mô hình đối tượng (mô hình tĩnh) và Mô hình động.
• UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình (model elements) Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML (UML diagrams) Có các loại sơ đồ UML chủ yếu sau:
• Sơ đồ lớp (Class Diagram)
• Sơ đồ đối tượng (Object Diagram)
• Sơ đồ tình huống sử dụng (Use Cases Diagram)
• Sơ đồ trình tự (Sequence Diagram)
• Sơ đồ cộng tác (Collaboration Diagram hay làComposite Structure Diagram)
• Sơ đồ trạng thái (State Machine Diagram)
• Sơ đồ thành phần (Component Diagram)
• Sơ đồ hoạt động (Activity Diagram)
• Sơ đồ triển khai (Deployment Diagram)
• Sơ đồ gói (Package Diagram)
• Sơ đồ liên lạc (Communication Diagram)
• 1.5.2 Một số dạng biểu đồ UML phổ biến
• a) Biểu đồ Use case (Use Case Diagram)
Trang 25• Một biểu đồ Use case chỉ ra một số lượng cáctác nhân ngoại cảnh và mối liên kết của chúngđối với Use case mà hệ thống cung cấp Một Use case là một lời miêu tả của một chức năng mà hệ thống cung cấp Lời miêu tả Use case thường là một văn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động Các Use case được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân (hành vi của hệ thống theo như sự mongđợi của người sử dụng), không miêu tả chức năng được cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao Các Use case định nghĩa các yêu cầu về mặt chức năng đối với hệ thống.
• Hệ thống: Với vai trò là thành phần của biểu đồ use case, hệ thống biểu diễn ranh giới giữa bên trong và bên ngoài của một chủ thể trong phần mềm chúng ta xây dựng.Một hệ thống ở trong biểu đồ use case không nhất thiết là một hệ phần mềm; nó có thể là một chiếc máy,hoặc là một hệ thống thực như một doanh nghiệp, một trường đại học,…
• Tác nhân(actor):là người dùng của hệ thống, một tác nhân có thể là mộtngười dùng thực hoặc các hệ thống máy tính khác có vai trò nào đó trong hoạt động của hệ thống Như vậy, tác nhân thực hiện các use case.Một tác nhân có thể thực hiện nhiều use case và ngược lại một use case cũng có thể được thực hiện bởi nhiều tác nhân
• Tác nhân được kí hiệu:
• hoặc
Trang 26• Các use case: Đây là thành phần cơ bản của biểu đồ use case Các use case được biểu diễn bởi các hình elip.Tên các use case thể hiện một chức năng xác định của hệ thống
• Các Use case được kí hiệu bằng hình elips
•
• Mối quan hệ giữa các use case:
o Association: thường được dùng để mô tả mối quan hệ giữa Actor
và Use Case và giữa các Use Case với nhau
•
Trang 27• Ví dụ quan hệ include:
o Extent: Extend dùng để mô tả quan hệ giữa 2 Use Case Quan hệ Extend được sử dụng khi có một Use Case được tạo ra để bổ sung chức năng cho một Use Case có sẵn và được sử dụng trong một điều kiện nhất định nào đó
Trang 28• b) Biểu đồ lớp (Class Diagram)
• Một biểu đồ lớp chỉ ra cấu trúc tĩnh của các lớp trong hệ thống Các lớp là đại diện cho các “đối tượng” được xử lý trong hệ thống Các lớp có thể quan hệ với nhau trong nhiều dạng thức:
• liên kết (associated - được nối kết với nhau),
• phụ thuộc (dependent - một lớp này phụ thuộc vào lớp khác),
• chuyên biệt hóa (specialized - một lớp này là một kết quả chuyên biệt hóa của lớp khác),
• hay đóng gói ( packaged - hợp với nhau thành một đơn vị)
• Tất cả các mối quan hệ đó đều được thể hiện trong biểu đồ lớp, đi kèm với cấu trúc bên trong của các lớp theo khái niệm thuộc tính (attribute) và thủ tục (operation) Biểu đồ được coi là biểu đồ tĩnh theo phương diện cấutrúc được miêu tả ở đây có hiệu lực tại bất kỳ thời điểm nào trong toàn bộ vòng đời hệ thống
• Một hệ thống thường sẽ có một loạt các biểu
đồ lớp – không phải bao giờ tất cả các biểu đồlớp này cũng được nhập vào một biểu đồ lớp tổng thể duy nhất – và một lớp có thể tham gia vào nhiều biểu đồ lớp
• Một lớp có các thành phần sau
• Tên lớp
• Các thuộc tính
• Các phương thức
Trang 29• Ví dụ:
• Với mỗi đối tượng của Professor, có nhiều Course Offerings có thể được dạy Với mỗi đối tượng của Course Offering, có thể có 1 hoặc 0 Professor giảng dạy
• Biểu diễn bội số quan hệ:
Trang 30o Kết tập là mối quan hệ “là một phần” (“is a part-of”).
o Bội số quan hệ được biểu diễn giống như các liên kết khác
•
o Cấu thành (Composition) là :Một dạng của kết tập với quyền sở hữu mạnh và các vòng đời trùng khớp giữa hai lớp
• ▫ Whole sở hữu Part, tạo và hủy Part
• ▫ Part bị bỏ đi khi Whole bị bỏ, Part không thể tồn tại nếu Whole không tồn tại
•
• Sự khác nhau giữa Association, Aggregation
và Composition
Trang 31• Tổng quát hóa (Generalization)
o Mối quan hệ giữa các lớp trong đó một lớp chia sẻ cấu trúc và/hoặc hành vi với một hoặc nhiều lớp khác
o Xác định sự phân cấp về mức độ trừu tượng hóa trong đó lớp con
kế thừa từ một hoặc nhiều lớp cha
• ▫ Đơn kế thừa (Single inheritance)
• ▫ Đa kế thừa (Multiple inheritance)
o Là mối liên hệ “là một loại” (“is a kind of”)
• Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class)
Trang 32• Các thành phần của biểu đồ tuần tự
• Đối tượng (object or class): biểu diễn bằng các hình chữ nhật
Trang 33• Thông điệp được dùng để giao tiếp giữa các đối tượng và lớp Có nhiều loại thông điệp được định nghĩa ở phần 1.3
•
• Xử lí bên trong đối tượng (biểu diễn bằng các đoạn hình chữ nhật rỗng nối với các đường đời đối tượng)
•
• Các loại thông điệp trong biểu đồ tuần tự
• Thông điệp đồng bộ (Synchronous Message)
• Thông điệp đồng bộ cần có một request trước hành động tiếp theo
•
• Thông điệp không đồng bộ (Asynchronous Message)
• Thông điệp không đồng bộ không cần có một request trước hành động tiếp theo
•
• Thông điệp chính mình (Self Message)
• Là thông điệp mà đối tượng gửi cho chính nó
để thực hiện các hàm nội tại
•
• Thông điệp trả lời hoặc trả về (Reply or Return Message)
Trang 34• Là thông điệp trả lời lại khi có request hoặc sau khi kiểm tra tính đúng đắn của một điều kiện nào đó Ví dụ thông điệp loại này như tinnhắn trả về là success hoặc fail
•
• Thông điệp tạo mới (Create Message)
• Là thông điệp được trả về khi tạo mới một đốitượng
Trang 35• Trong sơ đồ trên có 3 đối tượng là : người dùng, hệ thống và tài khoản Luồng xử lí của chức năng đăng nhập có thể diễn giải như sau.
1. Người dùng gửi yêu cầu đăng nhập đến hệ thống
2. Hệ thống yêu cầu người dùng nhập email và mật khẩu
3. Người dùng nhập email và mật khẩu
4. Hệ thống gửi email và mật khẩu của người dùng để kiểm tra
5. Tài khỏan kiểm tra thông tin email và password có đúng hay không
6. Tài khoản trả về kết qủa kiểm tra cho hệ thống
7. Hệ thống trả về thông báo cho người dùng
• d)Biểu đồ trạng thái (State Diagram)
• Biểu đồ trạng thái
• Biểu đồ trạng thái là dạng biểu đồ mô tả các trạng thái có thể có và sự chuyển đổi giữa cáctrạng thái đó khi có các sự kiện tác động của một đối tượng
• Đối với các đối tượng có nhiều trạng thái thì biểu đồ trạng thái là sự lựa chọn tốt nhất giúp chúng ta có thể hiểu rõ hơn về hệ thống
• Các thành phần của biểu đồ trạng thái
• Trạng thái bắt đầu: (Initial State)
Trang 37mượn, hết hạn lưu hành, đã mượn, mất và haitrạng thái phụ là trạng thái khởi tạo và trạng thái kết thúc.
1. Sách khởi tạo ở trạng thái "sẵn sàng cho mượn"
2. Sách chuyển từ trạng thái "sẵn sàng cho mượn" sang trạng thái "Đã mượn" khi có người mượn sách
3. Sách chuyển từ trạng thái "sẵn sàng cho mượn" sang trạng thái "Hết hạn lưu hành" khi có quyết định hết hạn lưu hành
4. Sách "đã có người mượn" chuyển sang trạng thái "Hết hạn lưu hành" khi có quyết định hết hạn lưu hành
5. Sách chuyển từ trạng thái "hết hạn lưu hành" sang trạng thái "lưu trữ" khi có quyết định lưu trữ
6. Sách chuyển từ trạng thái "đã có người mượn" sang trạng thái "mất" khi làm mất
7. Sách chuyển từ trạng thái "đã có người mượn" sang trạng thái "sẵn sàng cho mượn" khi trả sách
• e) Biểu đồ hoạt động (Activity Diagram)
dễ gây nhầm lẫn Khi vẽ chúng ta cần phải xác định rõ điểm khác nhau giữa hai dạng biểu đồ này là biểu đồ hoạt động tập trung mô
tả các hoạt động và kết qủa thu được từ việc thay đổi trạng thái của đối tượng còn biểu đồ trạng thái chỉ mô tả tập tất cả các trạng thái của một đối tượng và những sự kiện dẫn tới
sự thay đổi qua lại giữa các trạng thái đó
Trang 38• Các thành phần của biểu đồ hoạt động
• Trạng thái khởi tạo hoặc điểm bắt đầu (Initial State or Start Point)
•
• Hoạt động hoặc trạng thái hoạt động (Activity or Action State)
•
• Hoạt động và sự chuyển đổi hoạt động được
ký hiệu và cách sử dụng hoàn toàn giống như trạng thái trong biểu đồ trạng thái đã nêu ở trên
• Nút quyết định và rẽ nhánh
• Nút rẽ nhánh trong biểu đồ hoạt động được kíhiệu bằng hình thoi màu trắng
•
• Thanh tương tranh hay thanh đồng bộ
• Có thể có nhiều luồng hành động được bắt đầu thực hiện hay kết thúc đồng thời trong hệ thống
• Thanh đồng bộ kết hợp:
•
• Thanh đồng bộ chia nhánh:
Trang 39rõ luồng hoạt động của các đối tượng riêng biệt.
• Thời gian sự kiện (Time Event)
Trang 40• Như trên hình vẽ ta thấy có ba hoạt động cùng diễn ra là xác nhận thẻ, xác nhận mã số PIN và xác nhận số tiền rút.Chỉ khi sử dụng biểu đồ hoạt động mới có thể miêu tả được các hoạt động song song như vậy
• VD2: Thêm một ví dụ nữa để chúng ta hiểu hơn về biểu đồ hoạt động với các hành động được phân làn
• Biểu đồ hoạt động thể hiện một qúa trình đặt