Thời đại ngày nay là thời đại của Công nghệ với nền kinh tế thị trường, con người ngày càng làm việc chăm chỉ hơn, với hiệu suất cao hơn để tăng thu nhập, cải thiện cuộc sống cũng như khát vọng khẳng định bản thân
Trang 1Báo cáo Bài tập lớn LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Đề tài
Xây dựng Website Kết bạn bốn phương
Vũ Hồng Hoan 20071195
Nguyễn Đắc Đồng 20070813
Nguyễn Thanh Tùng 20073333
Trần Xuân Vũ 20073529
Trang 2Hà Nội, tháng 5 năm 2010
Trang 3MỤC LỤC
MỤC LỤC……….2
LỜI NÓI ĐẦU……… 3
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM……… 4
I Khảo sát, đặc tả yêu cầu bài toán 5
1.1 Mô tả yêu cầu bài toán 5
1.2 Biểu đồ use - case 6
1.3 Đặc tả use - case 6
1.4 Biểu đồ hoạt động 8
II Phân tích, thiết kế bài toán 9
2.1 Biểu đồ trình tự 9
2.2 Biểu đồ lớp 9
2.3 Thiết kế chi tiết lớp 9
2.4 Thiết kế cơ sở dữ liệu 10
III Công nghệ và thuật toán sử dụng 11
3.1 NET framework và nền tảng ASP.NET 11
3.2 Thuật toán Matching 15
IV Xây dựng chương trình minh họa 16
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 17
TÀI LIỆU THAM KHẢO 18
PHỤ LỤC 19
Trang 4LỜI NÓI ĐẦU.
Thời đại ngày nay là thời đại của Công nghệ với nền kinh tế thị trường, con người ngày càng làm việc chăm chỉ hơn, với hiệu suất cao hơn để tăng thu nhập, cải thiện cuộc sống cũng như khát vọng khẳng định bản thân Công nghệ thông tin
đã đi vào cuộc sống của từng người, từng nhà, hàng ngày chúng ta có thể chỉ cần ở nhà cũng biết được tình hình thế giới, giá xăng, giá vàng, sàn chứng khoán Do đó, việc giao lưu, tiếp xúc giữa con người với con người ngày càng bị hạn chế Con người muốn sống, phát triển toàn diện thì cần có các mối quan hệ cũng như bạn bè Nhưng có phải lúc nào chúng ta cũng có thời gian cũng như điều kiện để tìm bạn đâu, và nhiều khi những người bạn mà mình mong muốn lại không ở gần mà có khi cách nhau hai đầu của đất nước Với mong muốn kết nối con người với con người gần nhau hơn, cũng như có thể tạo điều kiện để mọi người biết đến nhau, tìm được người bạn như ý của mình cũng như có thể phát triển mối quan hệ lên đến
tầm cao hơn; chúng em, nhóm 13, đã chọn đề tài Xây dựng trang Web Kết bạn
bốn phương.
Với mục đích xây dựng một sân chơi lành mạnh và bổ ích cho mọi người, mọi lứa tuổi cũng như tầng lớp trong xã hội, chúng em đã tìm hiểu rất nhiều các trang kết bạn khác nhau để từ đó đúc rút ra các ý tưởng cũng như mô hình một trang kết bạn cần có Với nỗ lực muốn hoàn thiện trang Web một cách tốt nhất có thể, ngoài việc học hỏi các ý tưởng trên mạng, chúng em cũng học và cố gắng nắm vững các ngôn ngữ, công nghệ cũng như mô hình xây dựng trang Web khá lâu trước đó
Do kinh nghiệm làm Web còn yếu, cũng như chưa có nhiều hiểu biết về các trang kết bạn nên bài tập lớn của chúng em còn nhiều hạn chế Trong quá trình làm
đề tài, chúng em rất cám ơn cô Nguyễn Thị Thu Trang, giảng viên trên lớp đã rất
nhiệt tình giúp đỡ, tạo mọi điều kiện để chúng em hoàn thành bài tập này
Hà Nội, tháng 5 năm 2010 Nhóm 13 lớp Hệ thống thông tin k52
Trang 5PHÂN CÔNG THÀNH VIÊN TRONG NHÓM.
Trang 6I KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN.
1.1 Mô tả yêu cầu bài toán
Xây dựng trang Web kết bạn bốn phương
Cho phép mọi người có thể đăng kí làm thành viên của trang, nhập các thông tin cá nhân của mình vào hệ thống như họ tên, ngày sinh, nghề nghiệp, sở thích, sở ghét, yêu cầu tìm bạn, …)
Sau khi đăng nhập, người sử dụng sẽ được xem danh sách thành viên của Website, xem chi tiết thông tin về một thành viên nào đó cũng như chỉnh sửa thông tin đã đăng kí của mình
Thành viên có thể xem các thống kê của trang Web như trang Web có bao nhiêu người, lứa tuổi thế nào, tỉ lệ nghề nghiệp ra sao, …
Thành viên có thể tìm bạn bằng cách đưa ra các yêu cầu của mình để
hệ thống tìm danh sách các bạn thỏa mãn, danh sách đó sẽ được sắp xếp giảm dần theo mức độ thỏa mãn, với mỗi người tìm được trong danh sách thì thành viên cũng có thể xem được thông tin chi tiết của người đó
Người quản trị hệ thống ( administrator ) có quyền xóa các thành viên
vi phạm cũng như chỉnh sửa các thông tin đăng kí của thành viên
Trang 71.2 Biểu đồ use - case.
1.3 Đặc tả use – case
Đăng kí: Người sử dụng bắt buộc phải nhập tên đăng nhập ( nếu đã tồn tại thì không chấp nhận ), mật khẩu, tên thật, ngày tháng năm sinh
Trang 8( nếu không phù hợp thì hệ thống cũng yêu cầu nhập lại ), giới tính, yêu cầu kết bạn, email, nghề nghiệp, chọn vài sở thích và sở ghét trong danh sách cũng như có thể viết thêm sở thích và sở ghét của mình nếu chưa có, nơi sống của mình ( chi tiết cả thành phố và quốc gia )
Đăng nhập: nếu người dùng nhập sai tên đăng nhập hoặc mật khẩu thì hiện ra thông báo yêu cầu nhập lại, nếu tài khoản người dùng là tài khoản thường thì Website sẽ hiện ra trang chủ là danh sách 10 thành viên mới nhất còn nếu tài khoản người dùng là admin thì trang sẽ hiện
ra các chức năng dành cho admin
Xem danh sách và thông tin thành viên trong Website: dù có đăng nhập hay không thì người sử dụng vẫn được quyền xem danh sách các thành viên trong trang Web, danh sách này được hiển thị dưới dạng nhiều trang , mỗi trang có 10 thành viên, sắp xếp theo thứ tự tăng dần của ngày tham gia Tuy nhiên nếu muốn xem thông tin của bất kì thành viên nào thì hệ thống sẽ yêu cầu người sử dụng phải là thành viên chính thức, nếu không sẽ chuyển qua cửa sổ đăng nhập
Xem và sửa thông tin cá nhân: Sau khi đăng nhập thành công thì người sử dụng có thể nhấn vào tên mình ở thanh trạng thái đăng nhập
để xem cũng như chỉnh sửa thông tin cá nhân của mình Thành viên có thể đổi mật khẩu hoặc các thông tin khác, tuy nhiên vẫn phải phù hợp như khi đăng kí và bắt buộc phải nhập lại mật khẩu để xác nhận thay đổi
Tìm bạn dựa trên những tiêu chí cho trước: Thành viên sẽ chọn trong danh sách các tiêu chí để lọc ra các tiêu chí cho người mình cần tìm, sau khi nhập xong và bắt đầu tìm thì hệ thống sẽ hiện ra danh sách các thành viên của Website giảm dần theo mức độ phù hợp và cũng phân trang như danh sách các thành viên, người dùng cũng vẫn có thể nhấn vào tên các thành viên trong danh sách mới để xem thông tin chi tiết của thành viên đó
Xem thống kê chi tiết của Website: Dù là thành viên chính thức hay là khách thì người sử dụng cũng vẫn được xem các thống kê của Website như số lượng thành viên, phân bố thành viên theo độ tuổi, nghề nghiệp, nơi sống, …
Trang 9 Quyền của admin: admin chỉ có quyền xóa các thành viên vi phạm mà không được chỉnh sửa thông tin của bất kì thành viên nào, có thể thêm thành phố và quốc gia chứ không thể xóa đi, chỉnh sửa nghề nghiệp,
sở thích, sở ghét, … 1.4 Biểu đồ hoạt động
Trang 10II.PHÂN TÍCH, THIẾT KẾ BÀI TOÁN.
2.1 Biểu đồ trình tự
2.2 Biểu đồ lớp
2.3 Thiết kế chi tiết lớp
City , Country , Info , Job , Liking , User là các lớp tương ứng với các bảng trong database Trong các lớp này chứa các thuộc tính là các khóa , có thể thêm một vài phương thức hoặc thuộc tính hỗ trợ khác
CityMapper , CountryMapper , InfoMapper , JobMapper , LikingMapper , UserMapper là các lớp gồm 2 phương thức ToModel và ToEntity dùng để chuyển đổi dữ liệu từ database sang các lớp cụ thể phia trên
IService là interface mô tả các chức năng của hệ thống , các chức năng này
sẽ được cụ thể hóa hơn ở lớp Service
Trang 112.4 Thiết kế Cơ sở dữ liệu.
Trang 12III CÔNG NGHỆ VÀ THUẬT TOÁN.
3.1 NET framework và nền tảng ASP.NET
a) Giới thiệu NET framework
.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng dụng và dịch vụ Web Nó cung cấp một môi trường đa ngôn ngữ, dựa trên nền các chuẩn với hiệu nǎng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng và dịch vụ thế hệ kế tiếp và giải quyết những thách thức của việc triển khai
và vận hành các ứng dụng trên quy mô Internet Cơ sở hạ tầng NET Framework bao gồm ba phần chính là Bộ thực hiện ngôn ngữ chung (Common Language Runtime), một tập phân cấp các thư viện lớp hợp nhất (Unified Class Libraries) và ASP.NET
Hoàn cảnh ra đời.
Khi Web mới bắt đầu được tạo ra, về cơ bản nó là một hệ thống tập tin chỉ
có thể đọc, với ưu điểm là nó sử dụng những chuẩn và giao thức công nghiệp, cho phép truy cập dễ dàng đến nội dung các tập tin
Vào buổi ban đầu, Web được phát triển bởi ngôn ngữ lập trình C và CGI Thêm vào đó, phần lớn các ứng dụng Web được xây dựng trên những kiến trúc hai lớp (two-tier), gây ra những thách thức xung quanh khả nǎng biến đổi và tích hợp ứng dụng Lấy một ví dụ cho vấn đề này là một Website kinh doanh các thanh rèm cửa nhưng lại không bán các rèm cửa, bắt buộc khách hàng phải tìm hiểu ít nhất là hai site khác nhau để có thể mua một bộ rèm cửa (bao gồm thanh và rèm cửa) cho cửa sổ của họ
Từ những ưu thế của COM và sự ra đời các công nghệ như Active Server Pages (ASP) của Microsoft nǎm 1996, các Website cho ra nhiều tương tác người dùng hơn ASP thực hiện điều đó một cách dễ dàng để gọi các lôgic doanh nghiệp
và các dịch vụ nền tảng mà người phát triển cần thiết thông qua các ngôn ngữ script đơn giản Với sự hỗ trợ cho COM, các ứng dụng được viết một cách dễ dàng thông qua khả nǎng "đóng gói" lôgic doanh nghiệp này vào trong các khối mô-đun được viết trong một phạm vi rộng các ngôn ngữ lập trình phổ biến như Microsoft Visual Basic, C++ hay COBOL Mặc dù vậy, những chiến lược này cho công việc hợp nhất các ứng dụng vẫn còn có thiếu sót
Những tiến bộ trong việc phát triển Web nhanh chóng chuyển từ kiến trúc hai lớp (two-tier) sang một thiết kế N lớp (N-tier) mà cho phép một chiến lược hợp
Trang 13nhất đa dạng hơn qua việc đưa ra các đối tượng doanh nghiệp hay lôgic tầng giữa (middle-tier) tới việc hợp nhất Web với đối tác Những thách thức trong việc thử
sử dụng lôgic doanh nghiệp được "đóng gói" theo kiểu này là phần lớn các ứng dụng được thiết kế trên nền các giao thức độc quyền, "ghép nối chặt"
Để giải quyết những thách thức trong việc phát triển Internet hiện tại và tương lai, chúng ta phải có khả nǎng viết các ứng dụng trên bất cứ ngôn ngữ lập trình nào, truy nhập vào bất cứ nền tảng nào Chiến lược phát triển ứng dụng rất hấp dẫn này cho phép các công ty tận dụng các hệ thống phần cứng, các ứng dụng hiện hành và thuê các nhà phát triển có sẵn, mà không cần "bắt" họ phải chuyển sang một ngôn ngữ lập trình mới
Giải pháp này gọi là các dịch vụ Web XML và nó đại diện cho việc phát triển ứng dụng cho thế hệ kế tiếp Một dịch vụ Web XML là một ứng dụng cho khả nǎng hoạt động của nó theo chương trình qua Internet hay intranet khi sử dụng những giao thức và những chuẩn Internet như HTTP và XML
Các dịch vụ Web XML giải quyết những thách thức đối với người phát triển Web thông qua kết hợp "ghép nối chặt", những ưu thế của việc tính toán N-tier với
"ghép nối lỏng", và những khái niệm hướng thông điệp của Web Bạn hãy coi các dịch vụ Web XML như lập trình thành phần trên Web
.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các dịch vụ và ứng dụng Web XML Tầm nhìn của nền tảng NET Framework kết hợp một mô hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của Internet Để đạt được tầm nhìn này, việc thiết kế NET Framework nhằm một số mục đích:
- Sự hợp nhất thông qua các chuẩn Internet công cộng
- Khả năng biến đổi được thông qua một kiến trúc “ghép nối lỏng”
- Hỗ trợ nhiều ngôn ngữ
- Nâng cao nǎng suất cho các nhà phát triển
- Bảo vệ những sự đầu tư thông qua việc bảo mật đã được cải tiến
- Tận dụng những dịch vụ của hệ điều hành
Những đặc tính của NET framework.
Hỗ trợ các chuẩn dịch vụ Web XML
Hiệu suất cho người phát triển
Trang 14 Sự nhạy cảm khi giải quyết các thách thức đối với doanh nghiệp thời nay
Cải thiện các thao tác
b) Kiến trúc NET framework
Chúng ta đã biết NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp cơ sở (Base Class Libraries) và một phiên bản cấu thành của Microsoft Active Server Pages gọi là Microsoft ASP.NET Trên thực tế, ASP.NET
và Windows Forms là hai thành phần nằm trong Base Class Libraries, nên trong một số tài liệu .NET Framework được giới thiệu bao gồm 2 phần chính là Common Language Runtime (CLR) và Base Class Libraries (BCL) Một trong các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát triển các dịch vụ
và các ứng dụng NET
Common Language Runtime (gọi tắt là bộ thực thi) được xây dựng trên các dịch vụ hệ điều hành Nó chịu trách nhiệm thực hiện các ứng dụng và đảm bảo các phần liên quan đến ứng dụng đều được đáp ứng như quản lí bộ nhớ, an ninh bảo mật, tích hợp ngôn ngữ v.v Bộ thực thi bao gồm nhiều dịch vụ hỗ trợ phát triển và triển khai ứng dụng cũng như cải thiện tính đáng tin cậy của ứng dụng Tuy vậy, những nhà phát triển trên thực tế không tương tác với CLR Họ sử dụng một tập các thư viện lớp cơ sở được xây dựng bên trên bộ thực thi này thông qua các ngôn ngữ lập trình Như là một phần của các lớp cơ sở, NET Framework còn cung cấp một mô hình lập trình ứng dụng Web ASP.NET và Windows Forms (để xây dựng các ứng dụng trên Windows) Riêng ASP.NET cung cấp các thành phần và các dịch vụ ở mức cao hơn nhằm mục đích phát triển các dịch vụ và các ứng dụng Web XML
Common Language Runtime.
Như các bạn đã biết, các ngôn ngữ lập trình khác nhau đều cung cấp một runtime (bộ thực thi) và NET Framework không phải là một ngoại lệ Tuy vậy bạn
sẽ thấy bộ runtime này là khá đặc biệt so với phần lớn các runtime chúng ta vẫn sử dụng Common Language Runtime trong NET Framework quản lý sự thực hiện
mã và cung cấp sự truy cập vào nhiều loại dịch vụ giúp cho quá trình phát triển được dễ dàng hơn CLR đã được phát triển ở tầm cao hơn so với các runtime trước đây như VB-runtime chẳng hạn, bởi nó đạt được những khả nǎng như tích hợp các
Trang 15ngôn ngữ, bảo mật truy cập mã, quản lý thời gian sống của đối tượng và hỗ trợ gỡ lỗi
Mã được biên dịch và hướng tới CLR có tên "managed code" "Managed code" cung cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các dịch vụ
hỗ trợ đa ngôn ngữ, bảo mật mã, quản lý thời gian sống của đối tượng và quản lý
bộ nhớ
Base Class Libraries.
Thư viện các lớp cơ sở NET Framework cung cấp một tập các lớp ("APIs"), hướng đối tượng, có thứ bậc và có thể mở rộng và chúng được sử dụng bởi bất cứ ngôn ngữ lập trình nào Như vậy, tất cả các ngôn ngữ từ Jscript cho tới C++ trở nên bình đẳng, và các nhà phát triển có thể tự do lựa chọn ngôn ngữ mà họ vẫn quen dùng
Tập các lớp, các kiểu giá trị và giao diện này được tổ chức bằng một hệ thống các Namespace (xem định nghĩa phần dưới) Bảng 1 dưới đây đưa ra một mô
tả chi tiết những Namespace có sẵn trong NET Framework Một điều rất quan trọng là chúng ta không chỉ giới hạn ở các Namespace này Bạn có thể tự tạo ra Namespace và sử dụng chúng trong ứng dụng của bạn hay cũng có thể sử dụng các Namespace của đối tác thứ ba đang có đầy trên thị trường Một ví dụ cho trường hợp này là Namespace System.Data.Oracle
c) ASP.NET
ASP.NET là một tập các lớp nằm trong thư viện lớp cơ sở ASP.NET cung cấp một mô hình ứng dụng Web dưới dạng một tập các control (đối tượng điều khiển) và cơ sở hạ tầng giúp bạn tạo ra các ứng dụng Web một cách dễ dàng Các control này được xây dựng cho các ứng dụng trên máy phục vụ (hay còn gọi là Web Forms) phản ánh những control giao diện người dùng HTML đặc thù như Listbox, Textbox và Button và một tập bổ sung các control Web phức tạp hơn như calendars chẳng hạn Một đặc tính quan trọng của các control trên là chúng được viết để thích nghi với những khả nǎng của các ứng dụng máy khách Nói cách khác các đối tượng điều khiển Web forms có thể "đánh hơi" thấy máy khách đang yêu cầu một trang (page) và trả lại người dùng một cách thích hợp (ví dụ như WML cho phone hay Dynamic HTML cho Internet Explorer 5.5)
ASP.NET cũng cung cấp những đặc tính như quản lý trạng thái "cluster session" và phục hồi tiến trình giúp giảm bớt số lượng mã mà một người phát triển phải viết và tǎng độ tin cậy ứng dụng Ngoài ra ASP.NET cho phép các nhà phát