Với sự hướng dẫn của cô giáo Phạm Bích Trà – Giảng viên khoa Công nghệ thông tin – ĐH Thái Nguyên, em đã đi vào xây dựng một hệ thống đó là website phục vụ cho việc giới thiệu và phân ph
Trang 1MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 3
CHƯƠNG 1 : TỔNG QUAN VỀ ASP 4
1.1 Tổng quan ASP 4
1.2 Mô tả hoạt động của mô hình ASP 5
1.2.1 Cú pháp của ASP 5
1.2.2 Thẻ scipt (script tag) và việc tạo thủ tục với ngôn ngữ script 6
1.2.3 Các đối tượng của ASP (Object) .6
1.2.4 Các đối tượng Database Access Component 6
1.2.5 File Global.asa 9
CHƯƠNG 2 TỔNG QUAN VỀ JAVA SCRIPT 10
2.1 Java script là gì? 10
2.2 Nhúng Java Script vào file HTML 11
2.3 Điểm lại các lệnh và mở rộng 12
2.4 Biến và phân loại biến 13
2.5 Biểu diễn từ tố trong JavaScript 13
2.6 Kiểu dữ liệu .13
2.7 Các toán tử (operator) .14
CHƯƠNG 3 THƯƠNG MẠI ĐIỆN TỬ 18
3.1 Thương mại điện tử 18
3.2 Các đặc trưng của thương mại điện tử 18
3.2.1 Cơ sở để phát triển TMĐT 18
3.2.2 Các loại giao dịch TMĐT 19
3.2.3 Các hình thức hoạt động của thương mại điện tử .19
3.2.4 Các bên tham gia thương mại điện tử 20
3.2.5 Lợi ích của thương mại điện tử 21
3.2.6 Thị trường TMĐT 21
3.2.7 Cơ sở pháp lý cho việc phát triển TMĐT 22
CHƯƠNG 4 KHẢO SÁT & PHÂN TÍCH BÀI TOÁN 23
4.1 GIỚI THIỆU HỆ THỐNG .23
4.1.1 Thực trạng sự dụng phần mềm hiện nay tại Việt Nam .23
4.1.2 Hoạt động giới thiệu và phân phối phần mềm 23
4.1.3 Yêu cầu hệ thống .25
4.2 PHÂN TÍCH HỆ THỐNG .26
4.2.1 Xây dựng biểu đồ Use case .26
4.2.2 Xây dựng biểu đồ lớp phân tích 32
4.2.3 Biểu đồ trạng thái 36
CHƯƠNG 5 THIẾT KẾ CHI TIẾT HỆ THỐNG .39
5.1 Nội dung thiết kế chi tiết 39
5.2 Biểu đồ tương tác 39
5.3 Biểu đồ lớp chi tiết 49
5.4 Thiết kế chi tiết .50
5.4.1 Xây dựng biểu đồ hoạt động 50
5.4.2 Xây dựng bảng thiết kế chi tiết 51
5.5 Biểu đồ thành phần và biểu đồ triển khai 51
5.5.1 Biểu đồ thành phần .51
5.5.2 Biểu đồ triển khai 52
Trang 25.6 Thiết kế cơ sở dữ liệu trên hệ quản trị CSDL .52
5.7 Thiết kế giao diện .56
CHƯƠNG 6 CÀI ĐẶT WEBSITE & ĐÁNH GIÁ KẾT QUẢ 58
6.1 Giới thiệu chung .58
6.2 Giao diện một số trang trong website .59
6.2.1 Giao diện trang chủ và một số trang thành viên .59
6.2.2 Giao diện trang quản trị website .61
6.3 ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 65
6.3.1 Đánh giá kết quả phân tích hệ thống 65
6.3.2 Đánh giá kết quả thiết kế và triển khai hệ thống .65
KẾT LUẬN 67
NHẬN XÉT CỦA GIÁO VIÊN Error! Bookmark not defined TÀI LIỆU THAM KHẢO 68
Trang 3MỞ ĐẦU
Hiện nay với sự phát triển chóng mặt của công nghệ thông tin nói chung và công nghệ số nói riêng, máy tính cá nhân không còn là thứ xa lạ với mỗi người Công nghệ sản xuất máy tính cũng không ngừng phát triển từng ngày, từng giờ
để theo kịp với xu thế chạy đua về tốc độ, đa dạng về hình thức Bên cạnh đó, lĩnh vực phần mềm cũng có những thay đổi đáng kể Phần mềm được viết ra ngày càng được tối ưu hơn, đáp ứng tốt hơn các yêu cầu của người dùng
Tuy nhiên không phải lúc nào phần mềm cũng đến tay người dùng một cách tốt nhất, ngược lại các công ty sản xuất phần mềm không phải lúc nào cũng tránh được những thất thu do phần mềm bị bẻ khóa hoặc sao chép bất hợp pháp Trước xu thế hội nhập kinh tế thế giới hiện nay, Việt Nam là một trong những nước đang phải đối đầu với nhiều thử thách Trong lĩnh vực phần mềm hiện nay, vấn đề về luật sở hữu trí tuệ, bảo vệ quyền tác giả ngày càng trở nên phức tạp, khi mà thói quen của người Việt vẫn còn hiện hữu từng ngày đó là sao chép bản quyền một cách bất hợp pháp
Song song với đó cũng còn tồn tại nhiều bất cập nảy sinh trong việc lựa chọn, quảng bá, giới thiệu và phân phối các sản phẩm phần mềm sao cho hiệu quả nhất mà lại giảm được những chi phí đáng kế, khi mà trên khắp thế giới đang phải thắt chặt chi tiêu do suy thoái kinh tế toàn cầu gây ra
Trước tình hình đó, cần thiết phải có một mạng lưới giới thiệu và phân phối các sản phẩm phần mềm sao cho lợp lý, giúp cho cả người sản xuất phần mềm và người sử dụng phần mềm có một hướng đi phù hợp Với sự hướng dẫn của cô giáo Phạm Bích Trà – Giảng viên khoa Công nghệ thông tin – ĐH Thái Nguyên,
em đã đi vào xây dựng một hệ thống đó là website phục vụ cho việc giới thiệu
và phân phối các sản phẩm phần mềm trong đồ án của mình Rất mong được sự đóng góp, phê bình của các thầy cô để đồ án có tính thực thi cao, sớm áp dụng vào thực tế Việt Nam hiện nay
Trang 4
CHƯƠNG 1 : TỔNG QUAN VỀ ASP 1.1 Tổng quan ASP
ASP là môi trường kịch bản trên máy chủ (Server - Side Scripting Enviroment)
Microsoft Active Server Page là một ứng dụng giúp ta áp dụng các ngôn ngữ Script để tạo những ưngs dụng động, có tính bảo mật cao và làm tăng khả năng giao tiếp của chương trình ứng dụng Các đoạn chương trình nhỏ được gọi
là Script sẽ được nhúng vào các trang của ASP phục vụ cho việc đóng mở và thao tác với dữ liệu cũng như điều khiển các trang Web tương tác với người dùng như thế nào Một khái niệm sau đây liên quan đến ASP
Script: là một dãy các lệnh đặc tả (Script) Một Sript có thể :
Gán một giá trị cho một biến Một biến là một tên xác định để lưư giữ dữ liệu, như một giá trị
Chỉ thị cho Web Server gửi trả lại cho trình duyệt một giá trị nào đó, như giá trị cho một biến Một chỉ thị trả cho trình duyệt một giá trị là một biểu thức đầu ra( output expression)
Tổ hợp của các lệnh được đặt trong các thủ tục Một số thủ tục là tên gọi tuần tự của các lệnh và khai báo cho phép hoạt động như một ngôn ngữ ( unit)
Có hai ngôn ngữ Script mà ASP hỗ trợ chính là Visual Basic Script và Java Script Ngôn ngữ được ASP hỗ trợ mặc định là VBScript nên khi muốn dùng ngôn ngữ Script mặc định là Java Script chẳng hạn thì phải có dòng khai báo sau: <%@ Language = Javarscript %>
Cách viết các file ASP script:
ASP xây dựng các file ở khắp nơi với phần đuôi mở rộng là asp File asp là một file text và có thể bao gồm các sự kết hợp sau:
Text
Các thẻ của HTML
Các câu lệnh của script của một ngôn ngữ script nào đó chẳng hạn VBScript hay Jscript
Trang 51.2 Mô tả hoạt động của mô hình ASP
Cách hoạt động của mô hình ASP được mô tả tóm tắt qua 3 bước sau:
Một ASP bắt đầu chạy khi trình duyệt yêu cầu một file asp cho Web Server
File asp đó được nạp vào bộ nhớ và thực hiện ( tại máy chủ) Các đoạn chương trình Script trong file asp đó có thể là mở dữ liệu, thao tác với dữ liệu để lấy những thông tin mà người dùng cần đến Trong giai đoạn này, file asp đó cũng xác định xem là đoạn script nào chạy trên máy người sử dụng
Sau khi thực hiện xong thì kết quả thực hiện của file asp đó sẽ được trả
về cho Web Server Browser của người sủ dụng dưới dạng trang Web tĩnh
Mô hình hoạt động của ASP
1.2.1 Cú pháp của ASP
ASP chỉ cung cấp một môi trường để xử lý các script mà ta chèn vào trong
các file asp chứ ASP không phải là ngôn ngữ script Tuy nhiên, ASP quy định việc chèn các script phải tuân theo cú pháp nhất định của ASP như sau:
Dấu ngăn cách (Delimiter):
Trong trang ASP ta sử dụng các dấu <% và %> để ngăn cách phần văn bản HTML với phần script, bất cứ một phát biếu script nào cũng đều phải nằm giữa hai dấu ngăn cách <% và %>
Phát biểu(Statement):
Một phát biêu, trong Vbscript hay trong ngôn ngữ Script khác là một cấu trúc dùng để thực hiện một thao tác, phát biểu phải được khai báo hoặc định nghĩa trong ngôn ngữ script mà ta sử dụng
Client
HTTP Decoding
Server
Request Page
Active Server Pages
VBScript or JavaScript
HTTP Encoding
Add the HTTP Wrapper
Dynamic Page
Disk
Trang 6Kết hợp HTML trong các phát biểu:
Chúng ta có thể chèn HTML text giữa các phát biểu của script
1.2.2 Thẻ scipt (script tag) và việc tạo thủ tục với ngôn ngữ script:
Các thủ tục phải được đặt trong thẻ <SCRIPT> và </SCRIPT>, và cho phép
ta sử dụng ngôn ngữ script khác với ngôn ngữ mặc định đã cài đặt trong môi trường ASP ( là VBscript)
Include file:
Khi tạo một ứng dụng trang web,bao gồm nhiều trang ASP, nếu như toàn
bộ các trang này đều cần sử dụng những thông tin chung như các hằng,hyperlink,…để tráng việc định nghĩa lại các giá trị này ở mỗi trang ASP cho phép ta include file bằng các sử dụng hướng dẫn tiền xử lý sau:
<! #include virtual | file = “filename”>
Trong đó:filename bao gồm cả đường dẫn và tên file Tham số vitual chỉ định đường dẫn bắt đầu bằng một Vitual Directory Tham số file chỉ định đường dẫn bắt đầu với tên thư mục chứa filename cần include
1.2.3 Các đối tượng của ASP (Object)
Một đối tượng là kết hợp giữa lập trình và dữ liệu mà có thể xem như là một đơn vị ASP có 5 đối tượng sau:
Đối tượng Request Lấy thông tin từ người dùng
Đối tượng Response Gửi thông tin cho người dùng
Đối tượng Session Lưu trữ thông tin từ một phiên session) của người dùng Đối tượng pplication Chia xẻ thông tin cho các người dùng của một ứng dụng
1.2.4 Các đối tượng Database Access Component
Database Access Component còn gọi là thư viện ADO (ActiveX Data
Object), các object của ADO cung cấp cơ chế tạo kết nối (connection) với hầu hết các kiểu database, cũng như việc truy xuất, cập nhật các database này
Trang 7ADO Interface:
Các đối tượng trong ADO giao tiếp với database thông qua ODBC (Open Database Connectivity), chúng có thể được sử dụng với bất kỳ loại database nào nếu như có ODBC driver hỗ trợ ASP cài đặt sẵn hầu hết các driver thông dụng như Foxpro, Access, SQL server,Oracle…
Mô hình ADO
Các đối tượng trong ADO:
Gồm các đối tượng:connection, recordset và command Sử dụng connection
ta có thể thiết lập sự liên kết với cơ sở dữ liệu, thông qua đó ta có thể lấy ra các
record hoặc cập nhật một record bằng cách sử dụng đối tượng command Kết
quả thực hiện các query trên database sẽ được lưu vào đối tượng recordset Trên đối tượng này ta có thể duyệt và lấy ra một hay nhiều record
Đối tượng connection:
Trước tiên ta phải tạo instance cho đối tượng connection bằng phát biểu sau:
<%
Set Connection_Name=Server.CreateObject(“ADODB.Connection”)
%>
Các phương thức của đối tượng connection:
Phương thức Open:Được sử dụng để mở một liên kết với Database Ngay
sau khi tạo instance cho đối tượng connection , ta có thể mở một kết nối tới Data Source để truy xuất dữ liệu
Cú pháp: Connection.Open ConnectionString [User][Password]
Active Server Pages
Data Provider Interface
Data Source
Trang 8 Phương thức Execute: Cho phép thực thi một câu lệnh tác động lên Data Source
Cú pháp: Connection.Execute(commandText,RecordAffect,Options)
Trong đó CommandText là chuỗi lệnh cần thực hiện, thông số option các giá
trị khác nhau quy định CommandText
Phương thức Close: Đóng các kết nối đã mở
Cú pháp: Connection.Close
Đối tượng command:
Thay vì dùng phương thưc Excute của connection để cập nhật cơ sở dữ liệu
nguồn, ta có thể sử dụng command
Các phương thức của đối tượng command:
Phương thức CreateParameter: Dùng để tạo một đối tượng Parameter
Phương thức Excute: dùng để thực thi câu lệnh được đặc tả trong thuộc
tính commandText
Đối tượng Recordset:
Là kết quả trả về khi thực thi một truy vấn dữ liệu, thực chất nó là một bảng trong bộ nhớ, ta có thể truy xuất các recordset của nó qua các phương thức và thuộc
tính
Các phương thức của đối tượng Recordset:
Open, AddNew, Update, Delete, Move, MoveFirst, MoveNext,
MovePrevious, MoveLast, Requery, GetRow, close
Các properties:
AbsolutePosition:Số thứ tự vị trí (Vật lý) của record hiện tại
BOF: Là true nếu con trỏ nằm trước record đầu tiên
EOF: Là true nếu con trỏ nằm sau record cuối cùng
CursorType: Kiểu của con trỏ được sử dụng trong recordset
RecordCount: Trả về tổng số record trong recordset
Tạo recordset:
Trước tiên ta tạo instance cho recordset bằng phát biểu:
Recordset_name=Server.CreateObject(“ADODB.Recordset”)
Trang 9số và được gán giá trị qua các tên hằng
LockType: Là kiểu locking sử dụng khi mở recordset
Ta có thể truy xuất tới các trường của từng bản ghi trong recordset bằng
cách sử dụng collection Fields với các thuộc tình Count, Item
Recordset_name.Fields.Item(“tên field”):Trả về nội dung của field có trong
record hiện hành
Recordset_name.Fields.Item(Index): Trả về nội dung của field thứ index
trong record hiện hành
Recordset_name.Fields.(“index”): Trả về tên của field thứ index trong
record hiện tại
1.2.5 File Global.asa
Mỗi ứng dụng ASP có thể có một file Global.asa, file này phải được lưu trữ trong thư mục gốc của ứng dụng ASP đọc file Global.asa trong các trường hợp sau:
Khi web server nhận được một yêu cầu đầu tiên yêu cầu một file ASP nào
đó trong ứng dụng
Khi một người dùng chưa có một session yêu cầu một file ASP nào đó trong ứng dụng
Trong file Global có các thành phần:
Application_Onstart,Session_Onstart hoặc cả hai
Application_OnEnd,Session_OnEnd hoặc cả hai
Các thẻ <OBJECT> dùng để khai báo các đối tượng
Trang 10CHƯƠNG 2 TỔNG QUAN VỀ JAVA SCRIPT
2.1 Java script là gì?
Với HTML and Microsoft FrontPage bạn đã biết cách tạo ra trang Web - tuy nhiên chỉ mới ở mức biểu diễn thông tin chứ chưa phải là các trang Web động có khả năng đáp ứng các sự kiện từ phía người dùng Hãng Netscape đã đưa
ra ngôn ngữ script có tên là LiveScript để thực hiện chức năng này Sau đó ngôn ngữ này được đổi tên thành JavaScript để tận dụng tính đại chúng của ngôn ngữ lập trình Java Mặc dù có những điểm tương đồng giữa Java và JavaScript, nhưng chúng vẫn là hai ngôn ngữ riêng biệt
JavaScript là ngôn ngữ dưới dạng script có thể gắn với các file HTML Nó không được biên dịch mà được trình duyệt diễn dịch Không giống Java phải chuyển thành các mã dễ biên dịch, trình duyệt đọc JavaScript dưới dạng mã nguồn Chính vì vậy bạn có thể dễ dàng học JavaScript qua ví dụ bởi vì bạn có thể thấy cách sử dụng JavaScript trên các trang Web
JavaScript là ngôn ngữ dựa trên đối tượng, có nghĩa là bao gồm nhiều kiểu đối
tượng, ví dụ đối tượng Math với tất cả các chức năng toán học Tuy vậy
JavaScript không là ngôn ngữ hướng đối tượng như C ++ hay Java do không hỗ trợ các lớp hay tính kế thừa
JavaScript có thể đáp ứng các sự kiện như tải hay loại bỏ các form Khả năng này cho phép JavaScript trở thành một ngôn ngữ script động
Giống với HTML và Java, JavaScript được thiết kế độc lập với hệ điều hành Nó có thể chạy trên bất kỳ hệ điều hành nào có trình duyệt hỗ trợ JavaScript Ngoài ra JavaScript giống Java ở khía cạnh an ninh: JavaScript không thể đọc và viết vào file của người dùng
Các trình duyệt web như Nescape Navigator 2.0 trở đi có thể hiển thị những câu lệnh JavaScript được nhúng vào trang HTML Khi trình duyệt yêu cầu một trang, server sẽ gửi đầy đủ nội dung của trang đó, bao gồm cả HTML và các câu lệnh JavaScript qua mạng tới client Client sẽ đọc trang đó từ đầu đến cuối, hiển thị các kết quả của HTML và xử lý các câu lệnh JavaScript khi nào chúng xuất hiện
Trang 11Các câu lệnh JavaScript được nhúng trong một trang HTML có thể trả lời cho các sự kiện của người sử dụng như kích chuột, nhập vào một form và điều hướng trang Ví dụ bạn có thể kiểm tra các giá trị thông tin mà người sử dụng đưa vào mà không cần đến bất cứ một quá trình truyền trên mạng nào Trang HTML với JavaScript được nhúng sẽ kiểm tra các giá trị được đưa vào và sẽ thông báo với người sử dụng khi giá trị đưa vào là không hợp lệ
Mục đích của phần này là giới thiệu về ngôn ngữ lập trình JavaScript để bạn có thể viết các script vào file HTML của mình
2.2 Nhúng Java Script vào file HTML
Bạn có thể nhúng JavaScript vào một file HTML theo một trong các cách sau đây:
Sử dụng các câu lệnh và các hàm trong cặp thẻ <SCRIPT>
Sử dụng các file nguồn JavaScript
Sử dụng một biểu thức JavaScript làm giá trị của một thuộc tính HTML
Sử dụng thẻ sự kiện (event handlers) trong một thẻ HTML nào đó Trong đó, sử dụng cặp thẻ < SCRIPT > </ SCRIPT > và nhúng một file nguồn JavaScript là được sử dụng nhiều hơn cả
Sử dụng thẻ SCRIPT
Script được đưa vào file HTML bằng cách sử dụng cặp thẻ <SCRIPT> và
<\SCRIPT> Các thẻ <SCRIPT> có thể xuất hiện trong phần <HEAD> hay <BODY> của file HTML Nếu đặt trong phần <HEAD>, nó sẽ được tải và sẵn sàng trước khi phần còn lại của văn bản được tải
Thuộc tính duy nhất được định nghĩa hiện thời cho thẻ <SCRIPT> là “LANGUAGE= “ dùng để xác định ngôn ngữ script được sử dụng Có hai giá trị được định nghĩa là
"JavaScript" và "VBScript" Với chương trình viết bằng JavaScript bạn sử dụng
cú pháp sau :
<SCRIPT LANGUAGE=”JavaScript”>
Trang 12// INSERT ALL JavaScript HERE
</SCRIPT>
Điểm khác nhau giữa cú pháp viết các ghi chú giữa HTML và JavaScript là cho phép bạn ẩn các mã JavaScript trong các ghi chú của file HTML, để các trình duyệt cũ không hỗ trợ cho JavaScript có thể đọc được nó như trong ví dụ sau đây:
<SCRIPT LANGUAGE=”JavaScript”>
<! From here the JavaScript code hidden
// INSERT ALL JavaScript HERE
// This is where the hidden ends >
Trang 132.4 Biến và phân loại biến
Tên biến trong JavaScript phải bắt đầu bằng chữ hay dấu gạch dưới Các chữ số không được sử dụng để mở đầu tên một biến nhưng có thể sử dụng sau ký
tự đầu tiên
Phạm vi của biến có thể là một trong hai kiểu sau:
Biến toàn cục: Có thể được truy cập từ bất kỳ đâu trong ứng dụng
được khai báo như sau:
x = 0;
Biến cục bộ: Chỉ được truy cập trong phạm vi chương trình mà nó khai
báo Biến cục bộ được khai báo trong một hàm với từ khoá var như sau:
var x = 0;
Biến toàn cục có thể sử dụng từ khoá var, tuy nhiên điều này không thực sự cần thiết
2.5 Biểu diễn từ tố trong JavaScript
Từ tố là các giá trị trong chương trình không thay đổi Sau đây là các ví dụ
Kiểu nguyên (INTERGER)
Số nguyên có thể được biểu diễn theo ba cách:
Hệ cơ số 10 (hệ thập phân) - có thể biểu diễn số nguyên theo cơ số 10, chú
ý rằng chữ số đầu tiên phải khác 0
Trang 14Hệ cơ số 8 (hệ bát phân) - số nguyên có thể biểu diễn dưới dạng bát phân
với chữ số đầu tiên là số 0
Hệ cơ số 16 (hệ thập lục phân) - số nguyên có thể biểu diễn dưới dạng thập
lục phân với hai chữ số đầu tiên là 0x
Kiểu dấu phẩy động (FLOATING POINT)
Một literal có kiểu dấu phẩy động có 4 thành phần sau:
Phần nguyên thập phân
Dấu chấm thập phân (.)
Phần dư
Phần mũ
Để phân biệt kiểu dấu phẩy động với kiểu số nguyên, phải có ít nhất một
chữ số theo sau dấu chấm hay E Ví dụ: 9.87; -0.85E4; 9.87E14; 98E-3
Kiểu logic (BOOLEAN)
Kiểu logic được sử dụng để chỉ hai điều kiện: đúng hoặc sai Miền giá trị của kiểu này chỉ có hai giá trị true và false
Kiểu chuỗi (STRING)
Một literal kiểu chuỗi được biểu diễn bởi không hay nhiều ký tự được đặt trong cặp dấu " " hay ' ' Ví dụ:
“The dog ran up the tree”
‘The dog barked’
“100”
Để biểu diễn dấu nháy kép ( " ), trong chuỗi sử dụng ( \" ), ví dụ:
document.write(“ \”This text inside
Trang 15Toán tử gán là dấu bằng (=)nhằm thực hiện việc gán giá trị của toán hạng bên phải cho toán hạng bên trái Bên cạnh đó JavaScript còn hỗ trợ một số kiểu toán tử gán rút gọn
Kiểu gán thông thường Kiểu gán rút gọn
= Trả lại giá trị đúng nếu toán hạng bên trái bằng toán hạng bên
>= Trả lại giá trị đúng nếu toán hạng bên trái lớn hơn hoặc bằng
toán hạng bên phải
< Trả lại giá trị đúng nếu toán hạng bên trái nhỏ hơn toán hạng
bên phải
<= Trả lại giá trị đúng nếu toán hạng bên trái nhỏ hơn hoặc bằng
toán hạng bên phải
Số học
Trang 16Bên cạnh các toán tử cộng (+),trừ t (-),nhân n (*), chia (/)thông thườngt, JavaScript còn hỗ trợ các toán tử sau đây:
var1% var2 Toán tử phần dư, trả lại phần dư khi chia var1 cho
var2
var++ Toán tử này tăng var lên 1 (có thể biểu diễn là ++var)
var Toán tử này giảm var đi 1 (có thể biểu diễn là var)
Chú ý
Nếu bạn gán giá trị của toán tử ++ hay vào một biến, như y = x++, có thể có các kết quả khác nhau phụ thuộc vào vị trí xuất hiện trước hay sau của ++ hay với tên biến (là x trong trường hợp này) Nếu ++ đứng trước x, x sẽ được tăng hoặc giảm trước khi giá trị x được gán cho y Nếu ++ hay đứng sau x, giá trị của x được gán cho y trước khi nó được tăng hay giảm
JavaScript hỗ trợ các toán tử logic sau đây:
expr1 && expr2 Là toán tử logic AND, trả lại giá trị đúng nếu cả
expr1 và expr2 cùng đúng
expr1 || expr2 Là toán tử logic OR, trả lại giá trị đúng nếu ít
nhất một trong hai expr1 và expr2 đúng
! expr Là toán tử logic NOT phủ định giá trị của expr
Trang 17| Toán tử bitwise OR, trả lại giá trị 1 nếu một trong hai bit là 1
^ Toán tử bitwise XOR, trả lại giá trị 1 nếu hai bit có giá trị khác nhau
Ngoài ra còn có một số toán tử dịch chuyển bitwise Giá trị được chuyển thành số nguyên 32 bit trước khi dịch chuyển Sau khi dịch chuyển, giá trị lại được chuyển thành kiểu của toán hạng bên trái Sau đây là các toán tử dịch chuyển:
<< Toán tử dịch trái Dịch chuyển toán hạng trái sang trái một số lượng bit bằng toán hạng phải Các bit bị chuyển sang trái bị mất và 0 thay vào phía bên phải Ví dụ: 4<<2 trở thành 16 (số nhị phân 100 trở thành số nhị phân 10000)
>> Toán tử dịch phải Dịch chuyển toán hạng trái sang phải một số lượng bit bằng toán hạng phải Các bit bị chuyển sang phải bị mất và dấu của toán hạng bên trái được giữ nguyên Ví dụ: 16>>2 trở thành 4 (số nhị phân
10000 trở thành số nhị phân 100)
>>> Toán tử dịch phải có chèn 0 Dịch chuyển toán hạng trái sang phải một số lượng bit bằng toán hạng phải Bit dấu được dịch chuyển từ trái (giống >>) Những bit được dịch sang phải bị xoá đi Ví dụ: -8>>>2 trở thành
1073741822 (bởi các bit dấu đã trở thành một phần của số) Tất nhiên với
số dương kết quả của toán tử >> và >>> là giống nhau
Có một số toán tử dịch chuyển bitwise rút gọn:
Kiểu bitwise thông thường Kiểu bitwise rút gọn
Trang 18CHƯƠNG 3 THƯƠNG MẠI ĐIỆN TỬ 3.1 Thương mại điện tử
Thương mại điện tử (Ecommerce) là hình thái hoạt động thương mại bằng phương pháp điện tử, là việc trao đổi thông tin thông qua các phương tiện điện tử nói chung không phải in ra giấy trong bất cứ công đoạn nào của quá trình giao dịch (còn gọi là thương mại “không giấy tờ”)
3.2 Các đặc trưng của thương mại điện tử
Các bên tiến hành giao dịch trong thương mại điện tử không tiếp xúc trực tiếp với nhau và không đòi hỏi phải biết nhau từ trước
Các giao dịch thương mại truyền thống được thực hiện với sự tồn tại của khái niệm biên giới quốc gia, còn thương mại điện tử được thực hiện trong một thị trường không có biên giới (thị trường thống nhất toàn cầu) Thương mại điện
tử trực tiếp tác động tới môi trường cạnh tranh toàn cầu
Trong hoạt động giao dịch thương mại điện tử đều có sự tham ra của ít nhất
ba chủ thể, trong đó có một bên không thể thiếu được là người cung cấp dịch vụ mạng, các cơ quan chứng thực
Đối với thương mại truyền thống thì mạng lưới thông tin chỉ là phương tiện
để trao đổi dữ liệu, còn đối với thương mại điện tử thì mạng lưới thông tin chính
là thị trường
3.2.1 Cơ sở để phát triển TMĐT
Để phát triển TMĐT cần phải có hội đủ một số cơ sở:
Hạ tầng kỹ thuật internet phải đủ nhanh, mạnh đảm bảo truyền tải các nội dung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động
Hạ tầng pháp lý: Phải có luật về TMĐT công nhận tính pháp lý của các chứng từ điện tử, các hợp đồng điện tử ký qua mạng; phải có luật bảo vệ quyền
sở hữu trí tuệ, bảo vệ sự riêng tư, bảo vệ người tiêu dùng v.v
Phải có cơ sở thanh toán điện tử an toàn bảo mật, thanh toán điện tử qua thẻ, qua tiền điện tử, thanh toán qua EDI Các ngân hàng phải triển khai hệ thống thanh toán điện tử rộng khắp
Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy
Trang 19Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập trái phép, chống virus, chống thoái thác
Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng
3.2.2 Các loại giao dịch TMĐT
Business-to-business (B2B): Mô hình TMĐT giữa các doanh nghiệp với doanh
nghiệp Có các loại giao dịch B2B cơ bản:
+ Bên Bán — (một bên bán nhiều bên mua) là mô hình dựa trên công nghệ web trong đó một cty bán cho nhiều cty mua Có 3 phương pháp bán trực tiếp trong mô hình này: Bán từ catalog điện tử, Bán qua quá trình đấu giá, Bán theo hợp đồng cung ứng dài hạn đã thoả thuận trước Cty bán có thể là nhà sản xuất hoặc nhà trung gian thông thường là nhà phân phối hay đại lý
+ Bên Mua — một bên mua - nhiều bên bán
+ Sàn Giao Dịch — nhiều bên bán - nhiều bên mua
+ TMĐT phối hợp — Các đôi tác phối hợp nhau ngay trong quá trình thiết
kế chế tạo sản phẩm
Business-to-consumer (B2C): Mô hình TMĐT giữa doanh nghiệp và người tiêu
dùng
+ Đây là mô hình bán lẻ trực tiếp đến người tiêu dùng
+ Mô hình kinh doanh bán lẻ có thể phân loại theo quy mô các loại hàng hoá bán (Tổng hợp, chuyên ngành), theo phạm vi địa lý (toàn cầu , khu vực), theo kênh bán (bán trực tiếp, bán qua kênh phân bố)
+ Một số hình thức các cửa hàng bán lẻ trên mạng
Brick-and-mortar
Click-and-mortar
3.2.3 Các hình thức hoạt động của thương mại điện tử
Thư điện tử: Các doanh nghiệp, các cơ quan Nhà nước, sử dụng thư điện
tử để gửi thư cho nhau một cách “trực tuyến” thông qua mạng, gọi là thư điện tử (electronic mail, viết tắt là e-mail)
Trang 20Thanh toán điện tử: Thanh toán điện tử (electronic payment) là việc thanh
toán tiền thông qua thư điện tử (electronic message) Ngày nay, với sự phát triển của TMĐT, thanh toán điện tử đã mở rộng sang các lĩnh vực mới đó là:
+ Trao đổi dữ liệu điện tử tài chính (Financial Electronic Data Interchange, gọi tắt là FEDI): + Tiền lẻ điện tử (Internet Cash)
+ Ví điện tử (electronic purse):
+ Giao dịch điện tử của ngân hàng (digital banking
Trao đổi dữ liệu điện tử: Trao đổi dữ liệu điện tử (electronic data interchange, viết tắt là EDI) là việc trao đổi các dữ liệu dưới dạng “có cấu trúc” (stuctured form), từ máy tính điện tử này sang máy tính điện tử khác, giữa các công ty hoặc đơn vị đã thỏa thuận buôn bán với nhau Công việc trao đổi EDI trong TMĐT thường gồm các nội dung sau:
1/ Giao dịch kết nối
2/ Đặt hàng
3/ Giao dịch gửi hàng
4/Thanh toán
Truyền dung liệu: Dung liệu (content) là nội dung của hàng hóa số, giá trị
của nó không phải trong vật mang tin mà nằm trong bản thân nội dung của nó Hàng hoá số có thể được giao qua mạng
Mua bán hàng hóa hữu hình:
Mua bán trên mạng thông qua hình thức giỏ hàng-xe hàng Người mua sẽ gắp hàng hóa mà họ muốn mua vào giỏ hàng của mình và chọn hình thức thanh toán
3.2.4 Các bên tham gia thương mại điện tử
Các bên tham gia trực tiếp vào quá trình trao đổi hàng hóa qua mạng là: Khách hàng, nhà quản trị, đơn vị phát hành thẻ và ngân hàng Mỗi bên sẽ đảm nhận vai trò riêng nhưng để giao dịch thành công thì nhất thiết phải đầy đủ cả bốn tác nhân trên
Doanh nghiệp muốn triển khai hình thức kinh doanh TMĐT thì cần có một Merchant Account là tài khoản đặc biệt của doanh nghiệp, cho phép chuyển
Trang 21tiền vào Merchant Account hoặc hoàn trả lại cho khách hàng Merchant Account phải được đăng ký tại các ngân hàng hay tổ chức thanh toán bằng thẻ tín dụng Khách hàng muốn tham gia giao dịch điện tử cũng phải có một tài khoản và phải đăng ký thẻ tín dụng, đăng ký chứng thực thẻ với cơ quan chứng thực (chứng thực được tích hợp vào thẻ tín dụng)
3.2.5 Lợi ích của thương mại điện tử
TMĐT giúp thu thập được nhiều thông tin
TMĐT giúp giảm chi phí sản xuất
TMĐT giúp giảm chi phí chi phí bán hàng tiếp thị và giao dịch
TMĐT giúp bên bán và bên mua giảm đáng kể thời gian về giao dịch TMĐT tạo điều kiện thiết lập và củng cố mối quan hệ giữa các thành phần tham gia vào thương mại điện tử
TMĐT tạo điều kiện sớm tiếp cận nền kinh tế trí thức
3.2.6 Thị trường TMĐT
Thị trường là nơi dùng để trao đổi Thông tin, Hàng hoá, Dịch vụ, Thanh toán Thị trường tạo ra giá trị cho các bên tham gia: Người mua, Người bán, Người môi giới, Toàn xã hội Đối với doanh nghiệp thị trường chính là khách hàng Các yếu tố cấu thành thị trường TMĐT gồm:
Khách hàng: là người đi dạo trên web tìm kiếm, trả giá, đặt mua các sản phâm
Khách hàng là tổ chức, doanh nghiệp chiếm 85% hoạt động của TMĐT
Người bán: Có hàng trăm ngàn cửa hàng trên web thực hiện quảng cáo và giới
thiệu hàng trên các Websites Người bán có thể bán trực tiếp từ Website hoặc qua chợ điện tử
Hàng hoá : Là các sản phẩm vật thể, hay số hoá, dịch vụ
Cơ sợ hạ tầng: Phần cứng, phần mềm, mạng internet
Front-end: Cổng người bán, Catalogs điện tử, Giỏ mua hàng, Công cụ tìm kiếm,
Cổng thanh toán
Back-end: Xử lý và thực hiện đơn hàng, Quản lý kho, Nhập hàng từ các nhà cung
cấp, Xử lý thanh toán, Đóng gói và giao hàng
Trang 22Đối tác, nhà môi giới: Nhà môi giới là người trung gian đứng giữa người mua và
Siêu thị điện tử (e-malls): Là một trung tâm bán hàng trực tuyến trong đó
có nhiều cửa hàng điện tử
Sàn giao dịch (E-marketplaces): Là thị trường trực tuyến thông thường là B2B, trong đó người mua và người bán có thể đàm phán với nhau, có một doanh nghiệp hoặc một tổ chức đứng ra sở hữu
Cổng thông tin (Portal): Là một điểm truy cập thông tin duy nhất để thông qua trình duyệt có thể thu nhận các loại thông tin từ bên trong một tổ chức
3.2.7 Cơ sở pháp lý cho việc phát triển TMĐT
Giá trị pháp lý của các chứng từ điện tử
Giá trị pháp lý của chữ ký điện tử
Luật Bảo vệ sự riêng tư trong TMĐT
Luật Bảo vệ quyền sở hữu trí tuệ
Trang 23CHƯƠNG 4 KHẢO SÁT & PHÂN TÍCH BÀI TOÁN
4.1 GIỚI THIỆU HỆ THỐNG
4.1.1 Thực trạng sự dụng phần mềm hiện nay tại Việt Nam
Hiện nay, do thói quen của người dùng máy tính, kể cả đối với một số cơ quan, doanh nghiệp có sử dụng phần mềm phục vụ cho chuyên môn của mình vẫn còn chưa quen với việc sử dụng phần mềm có bản quyền, vẫn coi nhẹ việc
vi phạm bản quyền, hay đúng hơn là vi phạm luật sở hữu trí tuệ trong lĩnh vực phần mềm máy tính Hơn nữa phần mềm bản quyền được phân phối chủ yếu từ các công ty kinh doanh về máy tính kiêm nhiệm nên giá thành còn đắt, chưa thu hút và tạo được lòng tin với khách hàng
Mặt khác, hiện nay một số khách hàng sử dụng phần mềm vẫn còn chưa tìm được một giải pháp cho vấn đề phần mềm phục vụ cho công việc của mình, từ đó
sẽ ảnh hưởng đến hiệu quả công việc Ví dụ như một số cơ quan, doanh nghiệp vẫn còn chưa tìm được một phần mềm hiệu quả cho công việc của mình, trong khi thị trường vẫn có khả năng đáp ứng được, thậm chí là tốt hơn
Tại một số nơi, do đặc điểm kinh tế xã hội kém phát triển, đặc điểm về vị trí địa lý, đặc biệt là một số nơi vùng núi, vùng sâu, vùng xa thì việc để có một phần mềm là rất khó khăn, trong khi đó với sự phát triển của thương mại điện tử kết hợp với hạ tầng viễn thông phát triển như hiện nay thì để có một phần mềm không còn là quá khó khăn
Từ những tồn tại trên, thì việc thúc đẩy các hoạt động quảng bá, giới thiệu
và phân phối phần mềm thông qua thương mại điện tử là việc cần làm hơn bao giờ hết Xuất phát từ thực tế đó, em đã đi vào xây dựng một hệ thống hỗ trợ việc giới thiệu và phân phối các sản phẩm phần mềm bằng website
4.1.2 Hoạt động giới thiệu và phân phối phần mềm
Theo nghiệp vụ giới thiệu và phân phối phần mềm thông thường của một công ty chuyên phân phối phần mềm sẽ hoạt động như sau:
Công ty sẽ có một website để phục vụ việc giới thiệu và phân phối phần mềm Về mặt nội dung thì website sẽ chia thành 2 mảng nội dung chính:
Trang 24Quản lý việc giới thiệu và quảng bá phần mềm:
Các thông tin về xu thế phần mềm mới, các thông tin mới về phần mềm, các hình thức quảng bá và kích thích nhu cầu sử dụng phần mềm chuyên nghiệp của công ty dành cho khách hàng
Quản lý việc phân phối phần mềm:
Một phần mềm thì gồm có các thông tin như sau:
Thông tin kèm theo phần mềm
Người quản trị sẽ lưu trữ các thông tin về phần mềm trong cơ sở dữ liệu của website Cơ sở dữ liệu này sẽ được cập nhật thường xuyên khi có yêu cầu thay đổi các thông tin liên quan
Khi khách hàng có nhu cầu về phần mềm cho cá nhân hoặc tổ chức của họ thì sẽ bằng cách nào đó, thông qua nhân viên marketing hoặc truy cập trực tiếp website để tìm phần mềm phù hợp với nhu cầu Tiếp đó khách hàng sẽ thông qua chức năng mua hàng trên website để tiến hành điền các thông tin cần thiết để ký kết hợp đồng hoặc mua hàng trực tuyến
Trường hợp khách hàng không tìm được phần mềm ưng ý trong số phần mềm có trong website thì có thể đặt yêu cầu với công ty để công ty tiến hành lập trình theo yêu cầu khách hàng hoặc đặt hàng với các công ty sản xuất phần mềm khác
Trang 25Người quản trị (đúng hơn là bộ phận kinh doanh) tại công ty sẽ căn cứ vào các yêu cầu trong đơn đặt hàng để tiến hành xác minh thông tin khách hàng và xúc tiến ký kết hợp đồng hoặc giao hàng tới tận nơi khách hàng yêu cầu
Sau khi giao hàng xong, nhân viên đưa hàng sẽ báo cáo với bộ phận kinh doanh để cập nhật lại trạng thái đơn hàng
Ngoài ra, để phục vụ cho hoạt động kinh doanh được thuận lợi thì công ty
sẽ thiết lập các mối quan hệ đối tác trong lĩnh vực phần mềm để đáp ứng tốt hơn nhu cầu của khách hàng Cụ thể hơn là các công ty sản xuất phần mềm và các công ty phân phối phần mềm
4.1.3 Yêu cầu hệ thống
Website quản lý việc Giới thiệu và phân phối các sản phẩm phần mềm là một hệ thống được xây dựng nhằm đáp ứng các yêu cầu cơ bản sau:
- Giới thiệu, quảng bá các loại phần mềm trong nhiều lĩnh vực khác nhau
- Tư vấn giải pháp phần mềm cho nhiều đối tượng khách hàng khác nhau
- Giúp khách hàng có thể tìm kiếm được phần mềm cần thiết cho mình một cách nhanh nhất bằng nhiều cách như: Tìm theo tên, theo nhóm, loại hoặc theo đặc trưng của phần mềm
- Cung cấp thống kê về số lần được xem, được mua của từng phần mềm, thống kê các phần mềm được ưa chuộng nhất, xem nhiều nhất, mới nhất,…
- Hỗ trợ người quản trị quản lý khách hàng, thành viên của website,…
- Hỗ trợ người quản trị câp nhật phầm mềm (thêm, sửa, xóa) thông tin phần mềm
- Hỗ trợ người quản trị quản lý các thành viên VIP hoặc các nhân viên khác
- Hỗ trợ người quản trị quản lý các đối tác của mình cũng như các hoạt động kinh doanh khác trên website
- Hỗ trợ người quản trị quản lý tình trạng hàng hóa trong kho như: xuất nhập, tồn kho,…
- Hỗ trợ người quản trị quản lý đơn đặt hàng của khách hàng như xem trạng thái, xóa, hoặc giao hàng,…
Trang 264.2 PHÂN TÍCH HỆ THỐNG
Trước tiên ta cần hiểu hệ thống ở đây là webiste quản lý việc giới thiệu và
phân phối các sản phẩm phần mềm Hay để ngắn gọn ta gọi là website Quản lý phần mềm
4.2.1 Xây dựng biểu đồ Use case
Một biểu đồ Use case chứa các phần tử mô hình biểu thị hệ thống, tác nhân cũng như các trường hợp sử dụng và các mối quan hệ giữa các Use case
Do đó điều trước tiên ta cần tìm hiểu khái quát về các thành phần trong biểu
đồ Use case
- Tác nhân (Actor) và Use case là gì?
Có thể coi một use case là tập hợp của một loạt các kịch bản (scenario) liên quan đến việc sử dụng hệ thống theo một cách thức (method) nào đó Mỗi kịch bản mô tả một chuỗi các sự kiện mà một người hay một hệ thống khác kích hoạt vào hệ thống đang phát triển theo tuần tự thời gian Những thực thể tạo nên các chuỗi sự kiện như thế gọi là các tác nhân (Actor)
Trong hệ thống quản lý phần mềm thì có 2 tác nhân đó là Khách hàng và Người quản trị (Admin) Người quản trị ở đây có thể là quản trị website kết hợp với nhân viên kinh doanh Các tác nhân này tác động vào hệ thống bằng một loạt các kịch bản gọi là các Use case
Các Use case cụ thể trong hệ thống quản lý phần mềm sẽ được trình bày trong biểu đồ Use case tổng quát
- Mối quan hệ giữa các Use case
Trong biểu đồ Use case, các dạng quan hệ sẽ được sử dụng trong các trường hợp tương ứng như sau:
+ Quan hệ <<include>> : Được sử dụng để chỉ ra rằng một Use case được sử dụng bởi một Use case khác
+ Quan hệ mở rộng <<extend>> : Sử dụng để chỉ ra rằng một use case được mở rộng từ một use case khác bằng cách thêm vào một chức năng cụ thể
Trang 27+ Quan hệ kết hợp: Thường được dùng để biểu diễn mối liên hệ giữa actor và các use case (một actor kích hoạt một use case)
Chi tiết các mối quan hệ giữa các use case sẽ được đề cập trong các biểu đồ sau
a Biểu đồ use case tổng quát
Từ các tác nhân và các use case đã được xác định ở trên, ta có thể thấy các chức năng chính của hệ thống thông qua biểu đồ use case tổng quát như sau:
Admin
Quan ly cac dich vu
Tro giup
Quan ly phan mem
Quan ly khach hang
Thong ke
Dat/mua hang
Thanh toan Dang nhap
Tim kiem
Khach hang
Dang nhap ADmin
Quan ly dat/mua hang
Hình 4.1 Biểu đồ Use case tổng quát hệ thống quản lý phần mềm
Trong đó chức năng tìm kiếm phần mềm được mở rộng từ chức năng mua hàng và đặt hàng Chức năng thanh toán được mở rộng từ chức năng Quản lý đặt/mua hàng
Biểu đồ use case tổng quát cho ta thấy được một cách tổng quan các chức năng chính của hệ thống Các chức năng cụ thể sẽ được phân rã từ các chức năng chính thông qua các biểu đồ use case phân rã sau:
Trang 28b Phân rã biểu đồ use case
Từ biểu đồ use case tổng quát, ta tiến hành phân rã các use case chính thành các use chi tiết hơn sử dụng quan hệ “extend” Các use case con (mức thấp) được lựa chọn bằng cách thêm vào các use case cha một chức năng cụ thể nào đó
và thường được mở rộng dựa trên cơ sở sự chuyển tiếp và phân rã các chức năng của hệ thống Cụ thể với từng use case cha sẽ có các use case con như sau:
Phân rã use case Quản lý phần mềm:
Them phan mem
Quan ly phan mem
Sua thong tin phan mem
Xoa phan mem Quan ly kho hang
<<extend>>
<<extend>>
<<extend>>
<<extend>>
Hình 4.2 Phân rã use case Quản lý phần mềm
Use case Quản lý phần mềm được phân rã thành các use con với các chức năng tương ứng như sau:
- Thêm phần mềm: Giúp quản trị có thể thêm phần mềm mới vào kho hàng hóa của mình
- Quản lý kho hàng: Hiển thị một loạt các phần mềm theo danh sách, người quản trị có thể sửa thông tin hoặc xóa phần mềm nào đó trong danh sách trên cùng một giao diện tương tác
Phân rã use case Quản lý khách hàng
Use case quản lý khách hàng được phân rã ra 3 use case con có các chức năng tương ứng như sau:
- Sửa khách hàng: Cho phép sửa các thông tin của khách hàng
Trang 29- Thêm khách hàng mới: Admin có thêm các khách hàng mới để giúp họ tiện liên lạc với công ty phân phối nếu họ yêu cầu
- Xóa khách hàng: Xóa khách hàng không cần thiết
Bên cạnh đó, để tiện quản lý thì Admin có thể quản lý luôn các quyền truy cập của khách hàng cũng như các thành viên khác ở đây Cụ thể, Admin
có thể phân quyền cho một thành viên hay một khác hàng nào đó là quản trị viên hay chỉ là khách hàng đơn thuần
Quan ly khach hang Them khach hang moi
Sua khach hang
Xoa khach hang
<<extend>>
<<extend>>
<<extend>>
Hình 4.3 Phân rã use case Quản lý khách hàng
Phân rã use case Thanh toán
Use case thanh toán được mở rộng thành các use case con là các hình thức thanh toán cho khách hàng lựa chọn
Khách hàng có thể lựa chọn các hình thức thanh toán như: Trực tiếp, chuyển khoản qua ngân hàng, thanh toán qua một đối tượng trung gian nào đó
Trang 30Thanh toan
Thanh toan truc tiep
Chuyen khoan qua ngan hang
Hinh thuc khac
<<extend>>
<<extend>>
<<extend>>
Hình 4.4 Phân rã use case Thanh toán
Phân rã use case Thống kê
Thong ke Thong ke khach hang
Thong ke phan mem
Thong ke khac
<<extend>>
<<extend>>
<<extend>>
Hình 4.5 Phân rã use case Thống kê
Use case thống kê được phân rã thành 3 use case con có các chức năng tương ứng như sau:
- Thống kê phần mềm: Cho biết hiện tại có bao nhiêu phần mềm, thuộc nhóm/loại nào, bao nhiêu nhóm/loại, phần mềm đó được mua bao nhiêu lần,…
- Thống kê khách hàng: Cho biết hiện tại có bao nhiêu khách hàng, có bao nhiêu quản trị viên và một số thống kê khác…
Trang 31 Phân rã use case tìm kiếm
Hình 4.6 Phân rã use case Tìm kiếm
Use case tìm kiếm được phân rã thành 3 use case con với các chức năng
tương ứng như sau:
- Tìm kiếm theo tên: Giúp người tìm kiếm tìm theo tên phần mềm
- Tìm kiếm theo nhóm/loại: Giúp người tìm kiếm tìm kiếm theo nhóm/loại, ví dụ có thể tìm theo nhóm phần mềm Hệ điều hành, nhóm phần mềm kế toán,…
- Tìm kiếm tất cả: Có thể tìm kiếm theo tất cả các thông tin của phần mềm
Phân rã use case quản lý dịch vụ:
Use case quản lý dịch vụ được phân rã thành nhiều use case con khác
để tiện quản lý theo từng modul riêng, vì khi hệ thống hoạt động trong thời gian dài có thể sẽ có nhiều dịch vụ đi kèm và theo đó là sự phức tạp
về cấu trúc quản lý, nên cần thiết phải tách ra từng modul nhỏ để dễ quản
lý
Trang 32Quan ly cac dich vu
Quan ly logo quang cao
Quan ly tin tuc
Quan ly nha cung cap
<<extend>>
<<extend>> <<extend>>
Quan ly dich vu khac
<<extend>>
Hình 4.7 Phân rã use case Quản lý dịch vụ
4.2.2 Xây dựng biểu đồ lớp phân tích
Biểu đồ lớp là một trong những biểu đồ quan trọng nhất, có tính quyết định trong tiến trình phát triển phần mềm hướng đối tượng Trong pha phân tích, biểu
đồ lớp chưa được xây dựng hoàn chỉnh mà chỉ có các nhiệm vụ chính là:
- Xác định các lớp
- Xác định các thuộc tính và một số phương thức cơ bản (chưa chi tiết các phương thức)
- Bước đầu chỉ ra một số quan hệ trong sơ đồ lớp
Để hiểu hơn về biểu đồ lớp, trước hết ta cần tìm hiểu một số khái niệm cơ bản
về lớp trong phân tích thiết kế hướng đối tượng
a Khái quát về xác định lớp:
Khái niệm cơ bản nhất trong phương pháp hướng đối tượng là khái niệm đối tượng Một đối tượng được hiểu là một thực thể có thực hoặc là một thực thể khái niệm Mỗi đối tượng được mô tả bởi các trạng thái và hành vi cho biết đối tượng đó sẽ hành động như thế nào khi nhận được thông điệp từ các đối tượng khác
Hoạt động của hệ thống được thể hiện qua trạng thái của các đối tượng và sự tương tác giữa các đối tượng đó
Trang 33Một nhóm đối tượng có chung thuộc tính và phương thớc tạo thành một lớp Vấn đề xác định lớp trở thành một trong những nhiệm vụ cơ bản của phân tích, thiết kế hệ thống hướng đối tượng
Mối tương tác giữa các đối tượng trong hệ thống sẽ được biểu diễn thông qua mối quan hệ giữa các lớp Các lớp (bao gồm cả các thuộc tính và phương thức) cùng với các mối quan hệ sẽ tạo thành biểu đồ lớp
Biểu đồ lớp là một biểu đồ dạng mô hình tĩnh Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa chúng với nhau
Một trong các mục đích của biểu đồ lớp là tạo nền tảng cho các biểu đồ khác, thể hiện khía cạnh khác của hệ thống Một lớp trong biểu đồ lớp có thể được thực thi trực tiếp trọng một ngôn ngữ hướng đối tượng có hỗ trợ trực tiếp khái niệm lớp Một biểu đồ lớp chỉ chỉ ra các lớp, nhưng bên cạnh đó còn có một biến tấu hơi khác đi một chút chỉ ra các đối tượng thật sự là các thực thể của các lớp này (biểu đồ đối tượng)
Xác định lớp là một trong những bước khó nhất trong phát triển phần mềm hướng đối tượng Không có một quy tắc chung nào cho việc xác định lớp trong mọi hệ thống Kết quả của bước xác định lớp phụ thuộc nhiều vào kinh nghiệm của các nhóm phát triển phần mềm khác nhau Các phương pháp xác định lớp được đưa ra chỉ mang tính chất hướng cho nhóm phát triển chứ không giúp nhóm phát triển tìm ra cụ thể lớp nào là cần thiết hay không cần thiết, đúng hay sai
Có nhiều phương pháp xác định lớp khác nhau nhưng trong đồ án này chọn phương pháp xác định lớp từ use case và scenario (kịch bản)
Trang 34nhận một hành động trong scenario, ) Các danh từ này sẽ trở thành các lớp ứng cử viên
- Loại bỏ các lớp ứng cử viên không thích hợp Các danh từ không thích hợp thuộc vào một trong các trường hợp sau:
Lớp dư thừa: Do có hai hay nhiều danh từ cùng chỉ một thực thể nên ta chỉ cần giữ lại một từ duy nhất và loại bỏ các từ khác
Danh từ không thích hợp: Đó là các danh từ không liên quan đến phạm vi của bải toán
Danh từ mô tả những lớp không rõ ràng: Đó là các damh từ hoặc không biểu diễn một thực thể cụ thể hoặc các khái niệm không rõ nghĩa
Các danh từ chỉ một vai trò trong mối quan hệ với một lớp khác
Các danh từ biểu diễn các công cụ xây dựng phần mềm hoặc các thuật ngữ trong lập trình hay thuật toán (ví dụ stack, list, array,…)
Xem xét bài toán quản lý phần mềm, từ các use case và các scenario, ta có thể liệt kê một số các danh từ điển hình như sau: Quản trị, tên quản trị, username, mật khẩu, phần mềm, tên phần mềm, dung lượng, ngày ra mắt, loại phần mềm, nhóm phần mềm,…
c Xác định các thuộc tính và một số phương thức cơ bản
Dựa trên tập các lớp đã được xác định, ta tiếp tục nghiên cứu kỹ các use case và scenario và trả lời các câu hỏi sau:
- Với mỗi lớp, những danh từ nào mô tả thông tin của lớp đó Trả lời câu hỏi này sẽ giúp ta tìm ra các thuộc tính
- Những thông tin nào của lớp thực sự liên quan đến lĩnh vực quan tâm của hệ thống Trả lời câu hỏi này giúp ta loại bỏ được các thuộc tính không cần thiết