Tải bản đầy đủ (.docx) (55 trang)

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

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

TRƯỜ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 Anh
Lớ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
1


LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo
trong trường Đại học Công Nghệ Thông Tin & Truyền Thông nói chung và các thầy cô
giáo trong khoa Công Nghệ Thông Tin, bộ môn Kỹ Thuật Phần Mềm nói riêng đã tận
tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt
thời gian qua.
Đặ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ình
giú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ời
gian 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òn
họ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, đóng
gó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ập
của mình.


Hà Nội, ngày 15 tháng 4 năm 2019
Người viết

Nguyễn Hoàng Anh

2


MỤ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
3


3.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

4


LỜ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ắp
củ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ống
ngà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ủa

con 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ánh khỏ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.

5


CHƯƠ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ác
quy ướ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ích
hợ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ạo cho 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ển thị 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 ra
cá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ái
qua phải, với 2 phần chính là HEAD và BODY. Các website viết bằng HTML đều
tuâ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ình
duyệ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 -->
</head>
6


<body>
<!-- Comment: Nội dung trang web mà người dùng sẽ thấy -->
<b>Đây là dòng chữ in đậm</b>
<i>Đây là dòng chữ in nghiêng</i>
</body>
</html>
1.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ụng
rấ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ông
giố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án
nà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ần

như 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ượng
vớ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ện
tạ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 trang
web của mình có thể hiển thị hầu như (như nhau) dù trên một hệ thống sử dụng
Windows, 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ình
duyệ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àng
tră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 cho
cá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ụ:
<html>
7


<head>
<title>Chen CSS-Cách 1</title>
<style type="text/css">
//Nội dung CSS đặt bên trong đây
</style>
</head>
<body>
</body>

</html>
Cá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ảng
trắng.
Ví dụ: Ở đây ta chèn CSS vào thẻ mở của cặp thẻ

.
<html>
<head>
<title>Chen CSS-Cách 2</title>
</head>
<body>



</body>
</html>

8


Cá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à linh
hoạ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 đổi
mộ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 href

bạn chỉ cần viết: href="- Nếu file *.css không cùng thư mục với trang web: Bạn cần chỉ trong đường
dẫn tuyệt đối tới file *.css đó trong thuộc tính href
Ví dụ:
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
</body>
</html>
1.2.3 Một số thuộc tính thường dùng trong css
Thuộc tính
background
border

Ví dụ

Mô tả

background:

Định dạng nền (background) cho thành

#ff0000;

phần.

border: 1px solid


Định dạng đường viền cho thành phần.

#ff0000;

border-

border-collapse:

Thuộc tính border-collapse xác định đường

collapse

collapse;

viền củatable có tách biệt ra hay không.

border-

border-spacing:

Xác định khoảng cách giữa các đường viền

spacing

10px;

của các cột lân cận.

bottom


bottom: 10px;

Xác định vị trí dưới cùng của thành phần
9


được định vị trí.
caption-side
clear

caption-side:

Xác định vị trí một chú thích của table.

bottom;

Xác định 2 bên của phần tử (left, right), nơi

clear: both;

mà phần tử float không được cho phép.

clip:

Xác định đoạn cho thành phần khi sử dụng

rect(0,0,50px,10px);

thuộc tính position có giá trị "absolute".


color

color: #ff0000;

Xác định màu sắc cho text.

content

content: "."

counter-

counter-increment:

Gia tăng một hoặc nhiều counter (sắp xếp

increment

section;

có thứ tự, có hiển thị số)

clip

counter-reset

Sử dụng kèm với bộ chọn ":before", ":after"
để chèn nội dung được tạo.

counter-reset:


Tạo hoặc reset một hoặc nhiều counter.

subsection;

cursor

cursor: pointer;

Xác định kiểu con trỏ chuột được hiển thị.

direction

direction: ltr;

Xác định hướng cho văn bản.

display

display: inline;

Xác định loại hiển thị của thành phần.

empty-cells

empty-cells: hide;

float

float: left;


font

font:

Xác định có hay không có đường viền và
nền trong một cột rỗng của table
Xác định có hay không một thành phần
được float.

12px

Thiết lập font cho thành phần, bao gồm font

arial,sans-serif;

chữ, độ rộng,...

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úng
và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
10


so 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ình
web 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 đội
ngữ 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:
Kiểu Dữ Liệu
Integer
Double
String
Boolean
Object
Array

Ví dụ

Mô tả
5
Là Kiểu số nguyên
7.343
Kiểu số thực
How are you?
Một tập hợp các ký tự
True of False
Giá trị true hoặc false
Kiểu hướng đối tượng trong PHP
Kiểu mảng trong PHP

Hằng số
Hằng là những giá trị không đổi. Chúng ta thường dùng hằng để lưu các giá trị
không đổi trong suốt chương trình.
Khai báo hằng: Ta dùng define() để khai báo hằng.
Ví dụ: define(“version”,4);
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.

11


Nế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ột
dãy như sau:
$str =”222 B Baker Street”;
Ta thấy biến $str có kiểu string, và nếu cộng số 3 với giá trị này thì:
$x = 3 + $str; // $x = 225
Khi đó $x nhận được giá trị 225 vì PHP đã cộng 3 với 3 số đầu. Nhưng nếu ta in giá trị
của $str thì:
Echo $str;// print:”222 B Baker Street
b.Các toán tử
Toán tử số học

Tên
Phép cộng
Phép trừ
Phép nhân
Phép chia
Phép chia lấy dư

Ký hiệu
+
*
/
%


Mô tả
Cộng hai số hạng
Trừ hai số hạng
Nhân hai số hạng
Chia hai số hạng
Chi lấy dư

Ví dụ
$a + $b
$a - $b
$a * b
$a / $b
5%2=1

Phép gán
Ví dụ: $x = 1;
$y = $x + 1;
Toán tử so sánh
Tên

Ký hiệu

So sánh bằng

==

So sánh khác

!=


So sánh lớn hơn
So sánh nhỏ hơn
Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng

>
<
>=
<=

Mô tả
Hai số hạng bằng
nhau
Hai số hạng khác

nhau
So sánh lớn hơn
So sánh nhỏ hơn
Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng
Toán tử logic
12

Ví dụ
$a == $b
$a != $b
$a > b
$a < $b
$a >= $b

$a <= $b


Tên
Phép và

Ký hiệu
Mô tả
Ví dụ
&&
hoặc Cả 2 vế phải thoả mãn $a > $b && $a >
and

Phép hoặc

|| hoặc or

Phủ định

!

điều kiện
$c
Một trong 2 thoả mãn
$a > $b || $a < $c
điều kiện là được
Phủ định 1 điều kiện,
$a != b
giá trị nào đó


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
Dạng 1:
If (biểu thức) câu lệnh;
Câu lệnh ở đây tương đương với một khối lệnh. Một khối lệnh được đặt trong
dấu ngoặc kép.
Dạng 2:
If (biểu thức)
câu lệnh 1;
else
câu lệnh 2;
Câu lệnh switch: là câu lênh rẽ nhánh có điều kiện trong đó thực hiện 1 trong n cái rẽ
nhánh.
Switch(biểu thức n)
{
Case n1;
Câu lệnh 1;
Break;
...
Case nn;
13


Câu lệnh nn;
[defaulf: câu lệnh]

}
Câu lệnh FOR: là lệnh tạo chu kì có điều kiện.
Dạng lệnh: for(bt1;bt2;bt3)
{
Câu lệnh;
}
Câu lệnh WHILE: là một lệnh tạo chu trình có điều kiện, điều kiện được kiểm tra ở
đầu chu trình.
While (biểu thức)
Câu lệnh;
Lê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.
Dạng lệnh:
Do {
Câu lệnh;
} While(biểu thức);
d.Hàm trong PHP
Quy tắc xây dựng hàm
Function tên_ham(danh sách đối số hình thức){
Thân hàm
}
-

Đị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ựng
hà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 định

nghĩa.
Return:
+ Trả một giá trị về cho nơi gọi hàm.
14


+ 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ốn
là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ải
cù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ặc vuông
không có chỉ số
Ví dụ: $mang[] = “ab”;
$mang[] = “ef”;

Ví dụ trên tạo ra một mảng gồm 2 phần tử có chỉ số là 0 và 1. Việc đó cũng tương tự
như gán:
$mang[0] = “ab”;
$mang[1] = “ef”;
Ngoài ra các chỉ số của mảng không nhất thiết phải tăng dần mà có thể được khai báo
như sau:
$mang[50] = “ab”;
$mang[20] = “ef”;
Khi đó để thêm một phần tử mới vào mảng chúng ta có thể viết:
$mang[] = “uk”; //chỉ số sẽ là 51
Một phần tử mới được thêm vào với chỉ số lớn nhất của mảng cộng thêm 1. Ngoài ra
cũng có thể khai báo mảng một chiều bằng câu lênh array.
$mang = array(“ab”, “ef”);
Mảng hai chiều
15


Ta 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”]
[0]
[1]
“de”
“uk”

$mang[“north america”]
[0]
[1]

[2]
“ca”
“cr”
“us”

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:
Class sesion
{
//Định nghĩa các thuộc tính và phương thức
// Xây dựng các phương thức cho lớp
//Kết thúc một lớp
}
?>
Để định nghĩa thuộc tính cho lớp, chúng ta đặt từ khóa var trước thuộc tính đó.
Class sesion
{
Var $splhost = “localhost”;
...
//Định nghĩa các phương thức ở đây
//Kết thúc định nghĩa lớp
}
?>
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.

16


//Định nghĩa lớp session
Class sesion
{
//Định nghĩa các thuộc tính
...
// Định nghĩa các phương thức
Function sesion($localseshID,$localuserID = 0)
{
$this->seshid = $localseshid;
$this->userid = $localuserid;
// Kết nối với mysql
$this->linked = mysql_connect($this->sqlhost,$this->sqluser,$this->sqlpass);
If(!$this->linked)
{
$this->err = mysql_error();
$this->error_no = 102;
}
}
}
?>
Sử dụng lớp đã được định nghĩa
Để khai báo một đối tượng có kiểu thuộc tính lớp đã xây dựng ta dùng toán tử new
nhưu sau:
Require(“classes/sesion.php”);//include class;
$mysesh = new session($seshid);

If ($mysesh->error_no)
{
//Thông báo lỗi
}
$user = $mysesh->sessdata(userid);
17


?>
<html>
<head>
<title>Chào mừng bạn tới website của tôi, <? Echo $user; ?></title>
</head>
<body>
next page</a>
<FORM action=”nextpage.php” METHOD=”POST”>
</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 Oracle
mua 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ệu của
ứng dụng website khi người dùng thao tác trên website của chúng ta. Nếu các bạn đã
từng học SQL Server một hệ cơ sở dữ liệu quan hệ của Microsoft thì khi tiếp cậ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', '',
'01672022521');
18


Lệnh Update
Lệnh Update là câu lệnh SQL dùng để cập nhật giá trị cho một hoặc nhiều bản
ghi đ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 ghi
mì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ỏ)
Ví dụ:
DELETE FROM tbl_teachers WHERE teacher_id = 1
Câu lệnh này sẽ thực hiện xóa bản ghi có mã giảng viên = 1
Lệnh SELECT
Câu lệnh SELECT là câu lệnh SQL dùng để truy vấn các bản ghi trong cơ sở dữ
liệu của bạn. Đây là câu lệnh SQL được sử dụng nhiều nhất, tùy biến nhất để giải
quyết mọi yêu cầu khai thác dữ liệu của bài toán.
Cú pháp:
SELECT field1, field2, FROM table_name WHERE điều_kiện ORDER BY
field 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
19


+ WHERE điều_kiện là các điều kiện để có được dữ liệu mong muốn
+ 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
Ví dụ:
SELECT * FROM tbl_teachers WHERE teacher_id = 1
Câu lệnh trên sẽ lấy được toàn bộ các trường dữ liệu của mã giảng viên = 1
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

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ởi
JamesRumbaugh, 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ều
ràng buộc khác nhau.
+ Tạo một ngôn ngữ mô hh́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ững
ký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ây
dự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ần
mề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ân
tí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ống
cầ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ự
20


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
loạ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 được
chọ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ác
biể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 quen
thuộ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ệm
nà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ác
thô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òn
cung cấp thêm cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp với một phương
phá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ê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 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.

21


Hì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à đại

diện cho các “vật” đượ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 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 đó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ấu trú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 đệ 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ớp
tổ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
22


 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ía
cạ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ửi
giữ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 ra
tạ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ời
gian 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ác
thườ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 theo nguyê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ải nhầ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ãy chọ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ý
23


hiệ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èm
theo 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ác
thô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ị được
trả 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 động
mỗ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 mua
thì 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ái
hoạt động. Trong đó, từ một trạng thái hoạt động sẽ chuyển sang một trạng thái khác
sau 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ình
thự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 bao
gồ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 được
thiế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,

24


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ển
khai tính của công nghệ.
1.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ì hai
lớ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ủa
lớ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ông
nghệ 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ạo
website kết hợp bán hàng Truyền Thống và bán hàng qua Mạng để đáp ứng được nhu
cầ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
25


×