Thực tập chuyên ngành trình bày về một ngôn ngữ lập trình web hiện đang được sử dụng phổ biến đó là ngôn ngữ PHP. Để hiểu rõ hơn, mời các bạn tham khảo chi tiết nội dung thực tập này
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CHUYÊN NGÀNH
ĐỀ TÀI: PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG WEBSITE GIỚI THIỆU SẢN PHẨM CHO SHOP THỜI TRANG DAISY
Sinh viên thực hiện: Nguyễn Hoàng AnhLớp ĐHLT - CNTT- K16D
Giáo viên hướng dẫn:Ths Quách Xuân Trưởng
Hà Nội, Ngày 15 Tháng 4 Năm 2019
Trang 2Đặc biệt em xin gửi lời cảm ơn đến thầy Quách Xuân Trưởng, thầy đã tận tìnhgiúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đề tài Trong thờigian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà cònhọc tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả,đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này.
Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đónggóp ý kiến và giúp đỡ trong quá trình học tâp, nghiên cứu và hoàn thành đề tài thực tậpcủa mình
Hà Nội, ngày 15 tháng 4 năm 2019 Người viết
Nguyễn Hoàng Anh
Trang 3MỤC LỤC
MỤC LỤC 3
LỜI NÓI ĐẦU 8
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 9
1.1 HTML (HyperText Markup Language) 9
1.2 CSS (Cascading Style Sheets) 10
1.2.1 Tại sao phải sử dụng CSS 10
1.2.2 Cách chèn CSS vào trang HTML 10
1.2.3 Một số thuộc tính thường dùng trong css 12
1.3 PHP (Hypertext Preprocessor) 13
1.3.1 Giới thiệu về PHP 13
1.3.2 Tại sao nên sử dụng PHP 14
1.3.3 Một số thuộc tính thường dùng trong PHP 14
1.4 Tìm hiểu về Mysql 21
1.4.1 Giới thiệu về Mysql 21
1.4.2 Một số câu lệnh truy vấn cơ sở dữ liệu 21
1.5 Tìm hiều về phân tích thiết kế hệ thống hướng đối tượng và mô hình hóa hệ thống 22
1.5.1 Giới thiệu về UML 22
1.5.2 Các thành phần của ngôn ngữ UML 23
1.5.3 Biểu đồ (diagram) 23
1.5.4 Các mối quan hệ 27
CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
2.1 Khảo sát hệ thống 28
2.1.1 Khảo sát hiện trạng 28
2.1.2 Phân tích yêu cầu bài toán 29
2.2 Phân tích thiết kế hệ thống 32
2.2.1 Biểu đồ Use Case 32
2.2.2 Kịch bản cho Use Case 34
2.2.4 Bảng dữ liệu 52
CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH 53
3.1 Trang chủ 53
Trang 43.2 Đăng nhập 53
KẾT LUẬN 54
Kết quả đạt được 55
Hướng phát triển 55
TÀI LIỆU THAM KHẢO 56
Trang 5LỜI NÓI ĐẦU
Với sự phát triển mạnh mẽ của công nghệ thông tin và sự lớn mạnh, rộng khắpcủa mạng máy tính toàn cầu Việc ứng dụng tin học vào các lĩnh vực của cuộc sốngngày càng được quan tâm và sử dụng hiệu quả, đem lại lợi ích to lớn về mọimặt Sựlớn mạnh của mạng máy tính đã xóa bỏ mọi gianh giới về không gian và thời gian đểđem con người và tri thức xích lại gần nhau hơn Thông qua mạng máy tính, con người
có thể được tiếp xúc với mọi loại tri thức như tri thức văn hóa, xã hội, khoa học kỹthuật Do vậy ngày càng có nhiều ứng dụng được viết để hỗ trợ công việc thủ công củacon người, đặc biệt là các ứng dụng quản lý như quản lý nhân sự, quản lý hàng hóa,quản lý điểm Trước kia khi mạng Internet còn chưa phổ biến thì các ứng dụng thườngđược viết trên máy Desktop, ngày nay Internet không còn xa lạ với bất cứ ai do vậy
các ứng dụng cũng có xu thế phát triển dần trên nền Web.Trong đề tài “Phân tích
thiết kế và xây dựng website giới thiệu sản phẩm cho shop thời trang Daisy” này tôi
xin trình bày về một ngôn ngữ lập trình web hiện đang được sử dụng phổ biến đó làngôn ngữ PHP Trong quá trình phân tích và cài đặt ứng dụng không thể không tránhkhỏi những thiếu sót, rất mong sự giúp đỡ tận tình của các thầy cô trong Bộ môn vàbạn bè đồng nghiệp
Trang 6CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 HTML (HyperText Markup Language)
HyperText Markup Language (HTML) là hàng loạt các đoạn mã chuẩn với cácquy ước được thiết kế để tạo ra trang web, giúp tạo và chia sẻ các tài liệu điện tử tíchhợp đa phương tiện qua Internet và được hiển thị bởi những trình duyệt Web.HTML lànền tảng của World Wide Web, một dịch vụ toàn cầu của Internet Weblà dịch vụmang tính đồ hoạ cao trong các dịch vụ Internet, cho phép người dùng có thể tự tạocho riêng họ những trang Web HTML cho phép áp dụng siêu liên kết chotài liệu vàtrình bày tài liệu với phông chữ, hình ảnh, kiểu gióng hàng phù hợp vớihệ thống hiểnthị văn bản
HTML không phải ngôn ngữ lập trình Thay vào đó, tạo các trang Web
thường nói đến như là “authoring” (sáng tác) và đơn giản hơn nhiều so với việc tạo racác ứng dụng trên máy tính.Có nhiều trình soạn thảo HTML và Web khác nhau như:NotePad, InternetExplorer, Microsoft FrontPage hay Netscape Navigator có công cụsoạn thảo đơngiản cho phép tạo và hiệu chỉnh tập tin HTML
Cấu trúc của HTML rất đơn giản và logic, với bố cục từ trên xuống dưới, từ tráiqua phải, với 2 phần chính là HEAD và BODY Các website viết bằng HTML đềutuân theo cấu trúc cơ bản như sau:
+ Mọi trang HTML đều phải khai báo DOCTYPE (định nghĩa chuẩn văn bản)ngay từ dòng đầu tiên
+ Thẻ <html> cho trình duyệt biết mở đầu và kết thúc của trang HTML
+ Thẻ <head> chứa tiêu đề và các thông tin khai báo, các thông tin ẩn khác.+ Thẻ <body> sẽ hiển thị nội dung của trang web Đây là phần thông tin màngười dùng sẽ nhìn thấy khi trình duyệt đọc các mã HTML
+ Mọi kí tự nằm giữa dấu <!– và –> sẽ được xem là thẻ comment và sẽ bị trìnhduyệt bỏ qua, không xử lý và không hiển thị
Ví dụ:
<html>
<head>
<title>Đây là thẻ đánh dấu tiêu đề trang web</title>
<! Comment: Các thông tin khai báo, các thông tin ẩn >
Trang 71.2 CSS (Cascading Style Sheets)
CSS là viết tắt của cụm từ "Cascading Style Sheet", nó là một ngôn ngữ quyđịnh cách trình bày của các thẻ html trên trang web Là ngôn ngữ đang được sử dụngrất nhiều trong lập trình web, có thể nói CSS ra đời đã tạo nên một cuộc cách mạng.Đôi khi các bạn sẽ bối rối khi nhận thấy rằng các đoạn code mình viết hiển thị khônggiống nhau trên các trình duyệt khác nhau, CSS sẽ giúp các bạn giải quyết bài toánnày.CSS quy định cách hiển thị nội dung của các thẻ HTML trên các trình duyệt gầnnhư giống nhau,bằng cách quy định các thuộc tính cho thẻ HTML đó
1.2.1 Tại sao phải sử dụng CSS
- CSS cung cấp cho bạn hàng trăm thuộc tính trình bày dành cho các đối tượngvới sự sáng tạo cao trong kết hợp các thuộc tính giúp mang lại hiệu quả Ngoài ra, hiệntại CSS đã được hỗ trợ bởi tất cả các trình duyệt, nên bạn hoàn toàn có thể tự tin trangweb của mình có thể hiển thị hầu như (như nhau) dù trên một hệ thống sử dụngWindows, Linux hay trên một máy Mac miễn là bạn đang sử dụng một phiên bản trìnhduyệt mới nhất
- CSS đưa ra phương thức “ngoại tuyến” giúp áp dụng một khuôn mẫu chuẩn từmột file CSS ở ngoài Nó thật sự có hiệu quả đồng bộ khi bạn tạo một website có hàngtrăm trang hay cả khi bạn muốn thay đổi một thuộc tính trình bày nào đó
- Sử dụng CSS làm thay đổi font chữ hay màu chữ cho một thành phần nào đó
- Ngoài ra, CSS còn cho phép bạn áp đặt những kiểu trình bày thích hợp hơn chocác phương tiện khác nhau như màn hình máy tính, máy in, điện thoại,…
1.2.2 Cách chèn CSS vào trang HTML
Cách 1: Chèn nội dung CSS vào trong cặp thẻ <style></style> trong phần
<head></head> của trang web:
Ví dụ:
Trang 8Cách 2: Chèn trực tiếp vào bên trong thẻ HTML
- Chèn trực tiếp CSS vào bên trong các thẻ mở của HTML
- Nếu có nhiều thuộc tính cần quy định, ta ngăn cách giữa chúng bằng khoảngtrắng
Ví dụ: Ở đây ta chèn CSS vào thẻ mở của cặp thẻ <p></p>
Trang 9Cách 3: Liên kết với một file *.css bên ngoài
- Đây là cách được dùng nhiều nhất trong sử dụng CSS vì tính tiện dụng và linhhoạt của nó Giả sử, bạn có một website gồm hàng trăm trang, khi bạn muốn thay đổimột chút cách trình này của website, thay vì gạch cạch đi gõ từng trang một, bạn chỉcần sửa file CSS bên ngoài một chút, hàng trăm trang web của bạn đều được thay đổi
- Cú pháp: Thực hiện liên kết bằng thẻ <link>( Không có tag đóng ), theo cúpháp sau:
<link rel="stylesheet" href="Đường dẫn đên file css" type="text/css" />
Tag này được đặt trong cặp tag <head></head> của trang web, và không cầnđặt trong tag <style></style>
- Nếu bạn đặt file *.css cùng thư mục với trang web, thì trong thuộc tính hrefbạn chỉ cần viết: href="<ten_file_css.css"
- Nếu file *.css không cùng thư mục với trang web: Bạn cần chỉ trong đườngdẫn tuyệt đối tới file *.css đó trong thuộc tính href
border border: 1px solid
#ff0000; Định dạng đường viền cho thành phần.border-
Trang 10được định vị trí.
caption-side caption-side:
bottom; Xác định vị trí một chú thích của table.
clear clear: both; Xác định 2 bên của phần tử (left, right), nơi
mà phần tử float không được cho phép
rect(0,0,50px,10px);
Xác định đoạn cho thành phần khi sử dụngthuộc tính position có giá trị "absolute".color color: #ff0000; Xác định màu sắc cho text
content content: "." Sử dụng kèm với bộ chọn ":before", ":after"
để chèn nội dung được tạo
display display: inline; Xác định loại hiển thị của thành phần
empty-cells empty-cells: hide; Xác định có hay không có đường viền và
nền trong một cột rỗng của table
float float: left; Xác định có hay không một thành phần
height height: 50px; Thiết lập chiều cao của thành phần
line-height line-height: 1.5; Thiết lập chiều cao giữa các dòng
min-height min-height: 100px; Thiết lập chiều cao tối thiểu của thành phần
1.3 PHP (Hypertext Preprocessor)
1.3.1 Giới thiệu về PHP
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại
mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn
mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúngvào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn,
cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn
Trang 11so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trìnhweb phổ biến nhất thế giới.
1.3.2 Tại sao nên sử dụng PHP
- PHP được sử dụng rộng rãi, miễn phí, cấu hình nhanh chóng, nhỏ gọn
- PHP có khả năng đạt hiệu suất cao trong làm việc
- PHP có tính khả chuyển, một ứng dụng dù được phát triển trên Windows vẫn
có thể chạy bình thường trên
- PHP là một dự án mã nguồn mở Ngôn ngữ này được phát triển bởi một độingữ những người tình nguyện trên toàn cầu
1.3.3 Một số thuộc tính thường dùng trong PHP
a.Biến, hằng số, kiểu dữ liệu trong PHP
Kiểu dữ liệu
- Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được
xử lý theo cách khác nhau khi chúng được thao tác trong một script
Trong ngôn ngữ lập trình PHP chúng ta có 6 kiểu dữ liệu chính như sau:
String How are you? Một tập hợp các ký tự
Boolean True of False Giá trị true hoặc false
Object Kiểu hướng đối tượng trong PHP
Hàm define(): dùng để kiểm tra xem một hằng nào đó đã được khai báo chưa
Biến và giá trị logic
PHP không có khái niệm TRUE hoặc FALSE Các giá trị TRUE được hiểu lànhững giá trị bằng 1, và giá trị FALSE là những giá trị bằng 0 hoặc xâu rỗng
Khi sử dụng biến chúng ta không cần khai báo kiểu
Trang 12Nếu như thực hiện phép toán có kiểu số và kiểu string PHP sẽ coi chuỗi là mộtdãy như sau:
Lớn hơn hoặc bằng >= Lớn hơn hoặc bằng $a >= $b
Nhỏ hơn hoặc bằng <= Nhỏ hơn hoặc bằng $a <= $b
Toán tử logic
Trang 13Tên Ký hiệu Mô tả Ví dụ
Phép và && hoặc
and
Cả 2 vế phải thoả mãnđiều kiện
$a > $b && $a >
$cPhép hoặc || hoặc or Một trong 2 thoả mãn
điều kiện là được $a > $b || $a < $c
giá trị nào đó $a != b
Các phép toán với biến kiểu string
Ta sử dụng dấu “.” để ghép 2 biến kiểu string với nhau
Để có thể chèn một biến vào trong toán hạng có kiểu string thì tên biến phải đểtrong dấu đóng mở ngoặc nhọn
Echo (“${last} ‘bycycles”);
c.Các câu lệnh điều khiển
Lệnh If_else: đây là lệnh rẽ nhánh có điều kiện
Trang 14Lênh DO WHILE: là một lệnh tạo chu trình có điều kiện, trong đó điều kiện thực
hiện chu trình được kiểm tra cở cuối chu trình
- Định nghĩa hàm không nhất thiết phải nằm ngoài thân mọi hàm, trong hàm cóthể có hàm khác Nhưng việc sử dụng một hàm không khác nhau giữa xây dựnghàm trong thân một hàm và ngoài một hàm
- Tên hàm tùy đặt và khác tên hàm chuẩn
- Hàm có thể có giá trị trả về hoặc không
Các câu lệnh được quyền gọi bất kì hàm nào đã được khai báo và đã được địnhnghĩa
Return:
+ Trả một giá trị về cho nơi gọi hàm
Trang 15+ Là nơi báo kết thúc hàm.
Gọi hàm
+ Hàm phải được xây dựng trước khi gọi
+ Khi gọi hàm, nếu có giá trị trả về thường được đặt trong biểu thức
Biến toàn cục và biến cục bộ
Thông thường PHP coi các biến được sử dụng trong thân của hàm là biến cục bộ.Nghĩa là biến trong thân hàm không làm thay đổi giá trị của biến ở ngoài hàm đó Muốnlàm thay đổi giá trị của biến ta cần khai báo global trước biến đó trong thân hàm
e.Biến mảng trong PHP
Mảng một chiều
Mảng là một biến bao gồm nhiều phần tử có cùng tên nhưng khác nhau về chỉ
số (các chỉ số này tăng dần từ 0 đến n) Các phần tử của mảng không nhất thiết phảicùng kiểu
+ Khai báo mảng 1 chiều:
Ta có thể khai báo mảng bằng cách gán tên mảng với dấu đóng mở ngoặcvuông không có chỉ số
Trang 16Ta có thể khai báo mảng hai chiều như sau:
$mang = array(“europs” => (“de”, “uk”), “north america” =>(“ca”, “cr”, “us”));
Echo ($mang[“europs”][1]);
Ta có cấu trúc của mảng trên như sau:
$mang[“europs”] $mang[“north america”]
f Lập trình hướng đối tượng
Định nghĩa lớp
Chúng ta có thể định nghĩa lớp bằng toán tử class, và trong mỗi một lớp chúng
ta sẽ xây dựng các phương thức và thuộc tính cho lớp đó
Giả sử muốn xây dựng lớp “sesion” chúng ta làm như sau:
Tiếp theo chúng ra sẽ định nghĩa các phương thức cho lớp trên
Phương thức cần xây dựng đầu tiên là sesion(), sau đó đến các phương thức khác
Trang 18<a href=”nextpage.php?seshid=<? Echo $user; ?>”>next page</a>
<FORM action=”nextpage.php” METHOD=”POST”>
<input type=”hidden” name=”seshid” value=”<? Echo $user;?>”/>
</FORM>
</body>
</html>
1.4 Tìm hiểu về Mysql
1.4.1 Giới thiệu về Mysql
MySQL là một cơ sở dữ liệu quan hệ miễn phí hiện nay đã được hãng Oraclemua lại từ hãng Sun Nó thường được sử dụng kết hợp với PHP để lưu trữ dữ liệucủa ứng dụng website khi người dùng thao tác trên website của chúng ta Nếu cácbạn đã từng học SQL Server một hệ cơ sở dữ liệu quan hệ của Microsoft thì khi tiếpcận với MySQL sẽ dễ dàng hơn, vì chúng vẫn được xây dựng giống nhau về tưtưởng, kiến trúc
1.4.2 Một số câu lệnh truy vấn cơ sở dữ liệu
Lệnh: Insert
Lệnh Insert là câu lệnh SQL dùng để chèn một bản ghi vào table
Cú pháp:
INSERT INTO table_name (field1, field2) VALUES (‘value1′, ‘value2′);
table_name: là tên của bảng
field: là trường dữ liệu, các field được tách nhau bởi dấu phẩy
value: là giá trị tương ứng với các field cũng được tách nhau bởi dấu phẩy
Ví dụ
INSERT INTO `friday`.`tbl_teachers` (`teacher_id`, `teacher_name`, `teacher_email`,
`teacher_phone`) VALUES (NULL, 'Vũ Văn Khương', 'vukhuong@gmail.com','01672022521');
Lệnh Update
Trang 19Lệnh Update là câu lệnh SQL dùng để cập nhật giá trị cho một hoặc nhiều bảnghi đang có trong bảng (tùy vào điều kiện giới hạn số bản ghi thực hiện của bạn).
Cú pháp:
UPDATE table_name SET field1 = ‘value1′, field2 = ‘value2′ WHEREđiều_kiện
+ table_name: là bảng dữ liệu cần cập nhật
+ field = ‘value’: các trường và giá trị tương ứng cần cập nhật
+ WHERE điều_kiện: Điều kiện giới hạn số bản ghi cần thực hiện (nếu không
có điều kiện WHERE) MySQL sẽ xử lý toàn bộ các bản ghi trên bảng
Ví dụ:
UPDATE tbl_teachers SET teacher_name = 'Đỗ Chiến' WHERE teacher_id = 1
Câu lệnh này sẽ thực hiện sửa tên của bản ghi có mã giảng viên = 1, chính là bản ghimình vừa thực hiện INSERT vào
Lệnh Delete
Lệnh Delete là câu lệnh SQL dùng để xóa một hay nhiều bản ghi
Cú pháp:
DELETE FROM table_name WHERE điều_kiện
+ table_name: là tên bảng dữ liệu cần xóa
+ WHERE điều_kiện: là các điều kiện để giới hạn số bản ghi bị tác động (nếu
bỏ trống toàn bộ các bản ghi trong bảng này sẽ bị xóa bỏ)
Cú pháp:
SELECT field1, field2, FROM table_name WHERE điều_kiện ORDER BYfield ASC|field DESC|rand() LIMIT Số bản ghi|Giá trị đầu, giá trị cuối
+ Field1, Field2 là các trường dữ liệu cần truy vấn
+ tablename là bảng dữ liệu cần truy suất
+ WHERE điều_kiện là các điều kiện để có được dữ liệu mong muốn
Trang 20+ ORDER BY field ASC lệnh sắp xếp dữ liệu tăng dần
+ ORDER BY field DESC lệnh sắp xếp dữ liệu giảm dần
+ ORDER BY rand() lệnh lấy ngẫu nhiên
+ LIMIT số_bản_ghi lấy n bản ghi
+ LIMIT 0,n: lấy n bản ghi từ vị trí 0
1.5.1 Giới thiệu về UML
- Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language - UML) làmột ngôn ngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng bởiJamesRumbaugh, Grady Booch và Ivar Jacobson với chủ đích là:
+ Mô hình hóa các hệ thống sử dụng các khái niệm hướng đối tượng
+ Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hình hóa.+ Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiềuràng buộc khác nhau
+ Tạo một ngôn ngữ mô h́nh hóa có thể sử dụng được bởi người và máy
- UML là một ngôn ngữ mô hình hóa thống nhất có phần chính bao gồm nhữngkýhiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu
tả các thiêt kế của một hệ thống Nó là một ngôn ngữ để đặc tả, trực quan hóa, xâydựng và làm tư liệu cho nhiều khía cạnh khác nhau của một hệ thống có nồng độ phầnmềm cao UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà phântích, nhà thiết kế và nhà phát triển phần mềm
1.5.2 Các thành phần của ngôn ngữ UML
Ngôn ngữ UML bao gồm một loạt các phần tử đồ họa (graphic element) có thểđược kết hợp với nhau để tạo ra các biểu đồ Bởi đây là một ngôn ngữ, nên UML cũng
có các nguyên tắc để kết hợp các phần tử đó
Một số những thành phần chủ yêu của ngôn ngữ UML:
+ Hướng nhìn (view): hướng nhìn chỉ ra các khía cạnh khác nhau của hệ thốngcần phải được mô hình hóa Một hướng nhìn không phải là một bản vẽ mà là một sựtrừu tượng hóa bao gồm một loạt các biểu đồ khác nhau Chỉ qua việc định nghĩa một
Trang 21loạt các hướng nhìn khác nhau, mỗi hướng nhìn chỉ rao một khía cạnh riêng biệt của
hệ thống, người ta mới có thể tạo dựng nên một bức tranh hoàn thiện về hệ thống.Cũng chính các hướng nhìn này nối kết ngôn ngữ mô hình hóa với quy trình đượcchọn cho giai đoạn phát triển
+ Biểu đồ (diagram): là các hình vẽ miêu tả nội dung trong 1 hướng nhìn UML
có tất cả 9 loại biểu đồ kahcs nhau được sử dụng trong những sự kết hợp khác nhau đểcung cấp tất cả các hướng nhìn của một hệ thống
+ Phần tử mô hình hóa (model element): các khái niệm được sử dụng trong cácbiểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng quenthuộc Ví dụ như lớp, đối tượng, thông điệp cũng như các quan hệ giữa các khái niệmnày, bao gồm cả liên kết, phụ thuộc, khái quát hóa Một phần tử mô hình thường được
sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luônn có chỉ một ý nghĩa vàmột ký hiệu
+ Cơ chế chung: cư chế chung cung cấp thêm những lời nhận xét bổ sung, cácthông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình, chúng còncung cấp thêm cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp với một phươngpháp xác định (một quy trình, một tổ chức hoặc một người dùng)
1.5.3 Biểu đồ (diagram)
Biểu đồ User case (Use Case Diagram)
Một biểu đồ use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liênkế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ảntài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động Các Use case đượcmiê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ốngtheo 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ặtchức năng đối với hệ thống
Trang 22Hình 1.1 Biểu đồ User Case
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à đạidiện cho các “vật” được xử lý trong hệ thống Các lớp có thể quan hệ với nhau trongnhiều dạng thức: liên kết (associated – được kết nối với nhau), 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 một lớp khác), hay đónggói (packaged - hợp với nhau thành một đơn vị) Tất cả các mối quan hệ đó đều đượcthể 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êmthuộc tính (attribute) và thủ tục (operation) Biểu đồ được coi là biểu đồ tĩnh theophương diện cấu trúc được miêu tả ở đây có hiệu lực tại bất kỳ thời điểm nào trongtoàn bộ vòng đời đệ thống Một hệ thống sẽ thường có một loạt các biểu đồ lớp –chẳ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ớptổng thể duy nhất – và một lớp có thể tham gia vào nhiều biểu đồ lớp
Hình 1.2 Biểu đồ lớp
Trang 23 Biều đồ trình tự (Sequence Diagram)
Một biểu đồ trình tự chỉ ra một cộng tác động giữa một loạt các đối tượng Khíacạnh quan trọng của biểu đồ này là chỉ ra trình tự các thông điệp (message) được gửigiữa các đối tượng Nó cũng chỉ ra trình tự tương tác giữa các đối tượng, điều sẽ xảy ratại một thời điểm cụ thể nào đó trong trình tự thực thi của hệ thống Các biểu đồ trình
tự chứa một loạt các đối tượng được biểu diễn bằng các đường thằng đứng Trục thờigian có hướng từ trên xuống dưới trong biểu đồ, và biểu đồ chỉ ra sự trao đổi thôngđiệp giữa các đối tượng khi thời gian trôi qua Các thông điệp được biểu diễn bằng cácđường gạch ngang gắn liền với mũi tên (biểu thị thông điệp) nối liền giữa nhữngđường thẳng đứng thể hiện đối tượng Trục thời gian cùng những lời nhận xét khácthường sẽ được đưa vào phần lề của biểu đồ
Hình 1.3 Biểu đồ trình tự
Biểu đồ cộng tác (Collaboration Diagram)
+ Một biều đồ cộng tác chỉ ra một sự cộng tác động, cũng giống như một biểu
đồ trình tự, thường người ta sẽ chọn hoặc dùng biểu đồ trình tự hoặc dùng biểu đồcộng tác Bên cạnh việc thể hiện sự trao đổi thông điệp (được gọi là tương tác), biều đồcộng tác chỉ ra các đối tượng và quan hệ của chúng (nhiều khi được gọi là ngữ cảnh).Việc nên sử dụng biểu đồ trình tự hay biều đồ cộng tác thường sẽ được quyết định theonguyên tắc chung sau: nếu thời gian hay trình tự là yếu tố quan trọng nhất cần phảinhần mạnh thì hãy chọn biều đồ trình tự, nếu ngữ cảnh là yếu tố quan trọng hơn, hãychọn biều đồ cộng tác Trình tự tương tác giữa các đối tượng được thể hiện trong cảhai loại biểu đồ này
+ Biểu đồ cộng tác được vẽ theo dạng một biểu đồ đối tượng, nơi một loạt cácđối tượng được chỉ ra cùng với mối quan hệ giữa chúng với nhau (sử dụng những ký
Trang 24hiệu như trong biểu đồ lớp/biểu đồ tượng) Các mũi tên được vẽ giữa các đối tượng đểchỉ ra dòng chạy thông điệp giữa các đối tượng Các thông điệp thường được đính kèmtheo các nhãn (label), một trong những chức năng của nhãn là chỉ ra thứ tự mà cácthông điệp được gửi đi Nó cũng có thể chỉ ra các điều kiện, chỉ ra những giá trị đượctrả về Khi đã làm quen với cách viết nhãn, một nhà phát triển có thể đọc biểu đồcộng tác và tuân thủ theo dòng thực thi cũng như sự trao đổi thông điệp.
Biểu đồ trạng thái
Biểu đồ trạng thái thể hiện chu kỳ hoạt động của các đối tượng, hệ thống con và
cả hệ thống Nó là một loại oto mát hữu hạn trạng thái, mô tả các trạng thái hành độngmỗi đối tượng có thể có và các sự kiện gắn với trạng thái theo thời gian
Biểu đồ trạng thái có điểm mở đầu và điểm kết thúc như hình vẽ dưới:
Hình 1.4 Biểu đồ trạng thái
Khi một hóa đơn được tạo lập thì nó ở trạng thái chưa thanh toán, sau đó khi có
sự kiện khách hàng thanh toán nghĩa là khách trả tiền cho các mặt hàng đã chọn muathì nó chuyển sang trạng thái thanh toán
Biều đồ hoạt động
Biểu đồ hoạt động chỉ ra dòng hoạt động của hệ thống, bao gồm các trạng tháihoạt động Trong đó, từ một trạng thái hoạt động sẽ chuyển sang một trạng thái khácsau khi một hoạt động tương ứng được thực hiện, nó chỉ ra trình tự các bước, tiến trìnhthực hiện cũng như các điểm quyết định và sự rẽ nhánh theo luồng sự kiện
Biểu đồ thành phần
Biều đồ thành phần chỉ ra cấu trúc vật lý của các thành phần trong hệ thống baogồm: các thành phần mã nguồn, mã nhị phân, thư viện và các thành phần thực thi
Biểu đồ triển khai
Biểu đồ triển khai chỉ ra cách bố trí vật lý các thành phần theo kiến trúc đượcthiết kế của hệ thống Trong biểu đồ này xác định các máy tính và thiết bị hoạt động,cũng như cách nối các nút lại với nhau Biểu đồ triển khai địa chỉ hóa tới quan sát triểnkhai tính của công nghệ
Trang 251.5.4 Các mối quan hệ
UML cho phép biểu diễn 4 mối quan hệ giữa các đối tượng trong các hệ thống
Đó là: quan hệ phụ thuộc, quan hệ kết hợp, quan hệ tổng quát hóa, hiện thực hóa
Quan hệ phụ thuộc
Đây là quan hệ ngữ nghĩa giữa hai phần tử trong đó sự thay đổi của 1 phân tử sẽtác động đến ngữ nghĩa của phần tử phụ thuộc
Quan hệ kết hợp
Kết hợp là quan hệ cấu trúc xác định mối liên kết giữa các lớp đối tượng Khi
có một đối tượng của lớp này gửi/nhận thông điệp từ chỗ đối tượng của lớp kia thì hailớp đó có quan hệ kết hợp
Quan hệ tổng quát
Đây là quan hệ mô tả sự khái quát hóa mà trong đó một số đối tượng cụ thể (củalớp con) sẽ được thừa kế các thuộc tính, các phương thức của các đối tượng tổng quát(lớp cơ sở)
Quan hệ hiện thực hóa
Hiện thực hóa là quan hệ ngữ nghĩa giữa giao diện và lớp (hay thành phần) nóthực hiện cài đặt các dịch vụ có cuộc khai báo trong các giao diện
CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Khảo sát hệ thống
2.1.1 Khảo sát hiện trạng
a Thông tin cửa hàng
Tên cửa hàng: Daisy shop
Địa chỉ:131 Kim Mã, Q Ba Đình, Hà Nội
Hiện tại cửa hàng chuyên kinh doanh thời trang sinh viên – công sở Do côngnghệ thông tin ngày càng tiên tiến, internet ngày càng phát triển vì vậy Daisy tạowebsite kết hợp bán hàng Truyền Thống và bán hàng qua Mạng để đáp ứng được nhucầu của thị trường
b Các hoạt động mua bán kinh doanh của cửa hàng
Hoạt động của khách hàng
+ Một khách hàng khi tham quan cửa hàng, họ sẽ đặt vấn đề cửa hàngbánnhững gì, thông tin gì về những mặt hàng được bán, giá cả và hình thức thanh toán Do
Trang 26đó để đáp ứng những nhu cầu tối thiểu trên, cửa hàngtrên Internet phải đảm bảo cungcấp những thông tin cần thiết, có giá trị và hơn thế nữa là dễ thao tác Mặt hàng khibán phải có hìnhảnh,giá cả,thông tin liên quan đến mặt hàng đó.
+ Khách hàng có thể vào cửa hàng ảo (Web Site) để tìm kiếm các sản phẩm cầnmua và đặt hàng với cửa hàng Khách hàng có thể tìm mặt hàng mà mình cần theo tênmặt hàng
+ Mỗi khách hàng được cung cấp một giỏ mua hàng tương ứng Khi kháchhàng thêm những mặt hàng vào giỏ mua hàng của mình thì một trang đăng ký sẽ xuấthiện yêu cầu khách hàng đăng nhập Nếu đây là lần đầu tiên khách hàng tới cửa hàngthì khách hàng được yêu cầu nhập vào thông tin đăng ký trong đó có họ tên, thông tinđịa chỉ, username và password của khách hàng Nếu khách hàng đã đăng ký rồi thì họ
có thể truy xuất giỏ mua hàng của mình chỉ bằng cách nhập vào username và passwordcủa khách hàng
+ Khi khách hàng đã sẳn sàng hoàn thành đơn đặt hàng của mình thì các mặthàng mà khách hàng hiện có trong giỏ mua hàng của mình sẽ chuyển vào đơn đặt hàngthực hiện đặt hàng với cửa hàng, giỏ mua hàng của khách hàng sẽ rỗng
+ Sau khi khách hàng đã đặt hàng tại cửa hàng rồi, họ có thể theo dõi đơn đặthàng của mình để trực tiếp kiểm tra đơn đặt hàng tại trang Web của cửa hàng khi cónhững băn khoăn
Hoạt động của người quản trị
Người quản trị ngoài việc nhận thông tin từ khách hàng còn phải đưa thông tin
về loại mặt hàng mà mình bán trên Internet Hoạt động của người quản trị có thể phân
ra những nhiệm vụ sau:
+ Hướng dẫn, giới thiệu mặt hàng Phải nhanh chóng đưa khách hàng tới nơi cómặt hàng mà họ cần, đó là nhiệm vụ của nhà quản lý Việc lưu trữ các thông tin về mặthàng trong một cơ sở dữ liệu trực tuyến, cơ sở dữ liệu này chứa những thông tin vềmặt hàng như: tên mặt hàng, loại mặt hàng, thông tin mô tả, tên tập tin chứa hình ảnhcủa mặt hàng đó
+ Quản lý mặt hàng: người quản trị có thể bổ sung, loại bỏ và cập nhật mặthàng để phù hợp với tình hình hoạt động của cửa hàng và nhu cầu thị hiếu của kháchhàng,…
+ Cung cấp giỏ mua hàng cho khách hàng
+Theo dõi khách hàng
+ Nhận đơn đặt hàng: Sau khi khách hàng kết thúc giao dịch, đơn đặt hàngđược tổng hợp lại và gởi qua cho các bộ phận khác như thống kê kế toán, kinh
Trang 27doanh, ngoài ra sau một thời gian nhất định, nhà quản lý có thể xử lý đơn đặt hàngmới và cũ nếu cần.
+ Bán hàng và xúc tiến khuyến mãi: Có hàng trong kho là một chuyện và bàybán như thế nào mới là vấn đề Ở đây chúng ta chỉ bày bán đơn giản, các mặt hàng sẽđược bày bán thông qua loại mặt hàng trên trang web Việc ưu đãi khách hàng thườngxuyên và đặt mua với số lượng nhiều là một việc cần thiết đồng thời các thông tinkhuyến mãi cũng kèm theo mặt hàng để cho khách hàng biết
+ Quản lý và xử lý đơn đặt hàng:
- Hiển thị danh sách các đơn đặt hàng đã giao hay chưa giao
- Đánh dấu tình trạng giao hàng ứng với đơn đặt hàng đã giao
- Xóa đơn đặt hàng
- Thành lập hóa đơn cho khách hàng khi giao hàng,…
c Hiện trạng lưu trữ của cửa hàng
Hiện tại cửa hàng đang luu trữ những thông tin sau:
+ Thông tin về hàng hóa
+ Thông tin về nhân viên
+ Thông tin về khách hàng
+ Thông tin về kho hàng
+ Thông tin về đơn hàng
+ Thông tin về hóa đơn bán hàng
2.1.2 Phân tích yêu cầu bài toán
a Phân tích bài toán
Với sự phát triển của công nghệ thông tin và đặc biệt là sự ra đời của Internet đãlàm thay đổi rất nhiều trong việc hoạch định và phát triển kinh tế của từng doanhnghiệp, quốc gia Cùng với những sự quảng bá đó, mỗi doanh nghiệp có thể giới thiệusản phẩm tới khách hàng thông qua Internet Đó là hình thức trao đổi mua bán thông quawebsite của doanh nghiệp đó mà không phải in giấy tờ trong các công đoạn giao dịch
Mỗi hệ thống bán hàng thường gồm 2 thành phần chính:
+ Phần thứ nhất là phần giao dịch với khách hàng trên Internet
+ Phần thứ hai dành cho nhân viên quản trị hệ thống
Mỗi phần có các chức năng con khác nhau phục vụ cho mục địch kinh doanh và quản