Điều này đòi hỏi sự hiện diện liên tục trên các nền tảng truyền thông xã hội và quản lý phản hồi từ độc giả.Tối ưu hóa trải nghiệm đọc giả: Một hệ thống blog cần phải đảm bảo trải nghiệm
Trang 1TRƯỜNG ĐẠI HỌC PHENIKA KHOA CÔNG NGHỆ THÔNG TIN
Báo Cáo Dự Án Học Phần Phân Tích Và Thiết Kế Phần Mềm
Đề tài: WeblogThành viên:
Nguyễn Đại Nghĩa – 21012886
Giảng viên hướng dẫn:Mai Xuân Tráng
Hà Nội, Ngày … tháng … năm 2022
Trang 31.3Thông số kỹ thuật bổ sung 3
1.4Mô hình sử dụng hệ thống (Use-case models) 4
1.4.1 Mô tả chi tiết use-case đăng nhập 5
1.4.2 Mô tả chi tiết use-case đăng ký 6
1.4.3 Mô tả chi tiết use-case đăng xuất 7
1.4.4 Mô tả chi tiết use-case đổi mật khẩu 8
1.4.5 Mô tả chi tiết use-case quên mật khẩu 9
1.4.6 Mô tả chi tiết use-case tạo bài đăng 10
1.4.7 Mô tả chi tiết use-case chỉnh sửa bài đăng 11
1.4.8 Mô tả chi tiết use-case tìm kiếm 12
2 Phân tích trường hợp sử dụng (Use-case analysis) 13
2.1Phân tích kiến trúc hệ thống 13
2.1.1 Kiến trúc mức cao của hệ thống 13
2.1.2 Các đối tượng trừu tượng chính của hệ thống (Key abstractions) 13
2.2Thực thi trường hợp sử dụng (Use-case relizations) 14
2.2.1 Các biểu đồ tuần tự (Sequence diagrams) 14
2.2.2 Góc nhìn của các lớp trong hệ thống (Views of participating classes) 23
3 Thiết kế (Use-case design) 24
3.1Xác định các thành phần thiết kế (Identify design elements) 24
Xác định các lớp (Identify classes) 24
3.2Thiết kế trường hợp sử dụng (Use-case design) 25
Thiết kế các biểu đồ hoạt động (Design Activities diagrams) 25
4 Demo giao diện 32
4.1Giao diện trang chủ 32
4.2Giao diện đăng nhập 33
4.3Giao diện đăng ký 34
4.4Giao diện tạo bài đăng 35
4.5Giao diện chỉnh sửa bài đăng 35
4.6Giao diện xem bài đăng 36
5 Bảng phân công công việc 37
Trang 41 Yêu cầu (Requirements)1.1Đặt vấn đề (Problem statement)
Trong thời đại số hóa hiện nay, việc chia sẻ thông tin và kiến thức thông qua các nền tảng trực tuyến, như blog, đã trở thành một phần quan trọng của cuộc sống hàng ngày của chúng ta Tuy nhiên, một số thách thức đáng kể xuất hiện khi người dùng muốn tạo và quản lý một hệ thống blog cá nhân hoặc doanh nghiệp để chia sẻý tưởng, kinh nghiệm và kiến thức với cộng đồng trực tuyến.
Khó khăn trong việc tạo blog cá nhân: Hiện nay, việc tạo một blog cá nhân yêu cầukiến thức kỹ thuật về lập trình và quản trị web, điều này đặt ra rào cản cho những người muốn chia sẻ thông tin cá nhân mà không có kỹ năng này.
Quản lý nội dung phức tạp: Khi blog phát triển, việc quản lý và tổ chức nội dung trở nên phức tạp Người viết blog gặp khó khăn trong việc tìm kiếm, chỉnh sửa và xuất bản bài viết một cách hiệu quả.
Tương tác xã hội và phản hồi độc giả: Giao tiếp với độc giả và tạo mối quan hệ tương tác trên các mạng xã hội cũng là một phần quan trọng của việc quản lý blog Điều này đòi hỏi sự hiện diện liên tục trên các nền tảng truyền thông xã hội và quản lý phản hồi từ độc giả.
Tối ưu hóa trải nghiệm đọc giả: Một hệ thống blog cần phải đảm bảo trải nghiệm đọc giả tốt, với tốc độ tải nhanh, giao diện thân thiện và tương thích trên nhiều thiết bị.
Quản lý dữ liệu và bảo mật: Bảo vệ thông tin cá nhân của người dùng và dữ liệu quan trọng trên blog là một ưu tiên quan trọng Hiệu suất và bảo mật luôn là thách thức khi xây dựng và quản lý một hệ thống blog.
Trang 5Chúng tôi đề xuất xây dựng một hệ thống blog hoàn chỉnh, dễ sử dụng và đa năng, giúp giải quyết những khó khăn được nêu trên Hệ thống này sẽ cung cấp giao diệntrực quan để tạo và quản lý blog, cung cấp công cụ tối ưu hóa trải nghiệm đọc giả và tích hợp các tính năng xã hội để tương tác với độc giả Đặc biệt, sẽ có sự quan tâm đặc biệt đối với bảo mật dữ liệu để đảm bảo sự an toàn của thông tin cá nhân và nội dung quan trọng.
Với hệ thống blog này, chúng tôi muốn tạo ra một nền tảng dễ dàng truy cập và sử dụng, giúp mọi người chia sẻ kiến thức và kinh nghiệm một cách hiệu quả trên internet mà không cần kiến thức kỹ thuật sâu và đồng thời đảm bảo sự bảo mật và tương tác tích cực trong cộng đồng trực tuyến.
1.2Thuật ngữ (Glossary)
1 Blog: Một trang web cá nhân hoặc trang web cộng đồng cho phép người
dùng đăng bài viết, hình ảnh, video và các nội dung khác.
2 Blogger: Người viết blog3 Blogging: Quá trình viết blog4 Post: blog đã đăng tải.
5 Tittle: Câu văn hoặc cụm từ ngắn gọn, súc tích mô tả nội dung của bài viết.6 Desriptions: Văn bản ngắn gọn mô tả nội dung chính của bài viết.7 Tag: Các từ khóa mô tả nội dung của bài viết.
8 Visitor: Người truy cập vào trang web nhưng không đăng nhập, chỉ có quyền
xem các bài đăng.
1.3Thông số kỹ thuật bổ sung
1 Security: Hệ thống phải ngăn người dùng đăng nhập nếu họ không có mật
Chỉ Quản trị viên mới có thể xóa tài khoản Người dùng Một thông tin bài đăng chỉ có thể xóa bởi người quản lí của phân mục chứa bài viết đó Người dùng có thể yêu cầu người quản lí đăng bài hỗ trợ hoặc xóa bài khi đã giải quyết xong vấn đề.
2 Design Contraints: Chỉ Quản trị viên mới có thể phê duyệt các bài đăng
thông tin đang chờ xử lý Ràng buộc thiết kế Hệ thống phải cung cấp giao
Trang 6diện dựa trên web đáp ứng có thể sử dụng được trên máy tính và thiết bị di động.
1.4Mô hình sử dụng hệ thống (Use-case models)
Trang 71.4.1 Mô tả chi tiết use-case đăng nhập
Kịch bản User-case
- Kiểm tra dữ liệu đầu vào gồm
Tên đăng nhập hay email Mật khẩu tài khoản
- Hệ thống kiểm tra tính hợp hệ của tài khoản và mật khẩu- Hệ thống hiển thị giao diện tương ứng với các chức năng của tác
Ngoại lệ
- Tác nhân nhập tài khoản hay mật khẩu không chính xác
Hệ thống yêu cầu nhập lại dữ liệu Tác nhân nhập lại và tiếp tục các bước sau
Trang 81.4.2 Mô tả chi tiết use-case đăng ký
Kịch bản User-case
website để tạo tài khoản
Chuỗi sự kiện chính
- Tác nhân truy cập vào trang web
- Tác nhân chọn chức năng đăng kí tài khoản
- Tác nhân điền đầy đủ thông tin mà hệ thống yêu cầu
- Hệ thống tiến hành cập nhập thông tin và gửi email xác nhận đăng ký tài khoản cho tác nhân
- Tác nhân bấm vào link xác nhận đăng ký
- Hệ thống lưu thông tin đăng ký, đưa ra thông báo đăng ký thành công vàđưa tác nhân đến màn hình đăng nhập
Ngoại lệ
- Hệ thông thông báo tên tài khoản bị trùng Hệ thống yêu cầu nhập lại tên tài khoản Tác nhân nhập lại và tiếp tục các bước sau
Trang 91.4.3 Mô tả chi tiết use-case đăng xuất
Kịch bản User-case
thì sẽ thông qua đăng xuất để thoát
nhập vào hệ thống
Chuỗi sự kiện chính
- Tác nhân tiến hành đăng nhập vào trang web.- Hệ thống xác nhận và cấp quyền đăng nhập tương ứng.- Tác nhân chọn đăng xuất khỏi trang web
- Hệ thống đưa ra thông báo xác nhận đăng xuất- Tác nhân chọn “xác nhận”
- Hệ thống đưa người dùng về trang chủNgoại lệ
- Tác nhân không chọn xác nhận
- Hệ thống trở về giao diện trước đó
Trang 101.4.4 Mô tả chi tiết use-case đổi mật khẩu
Kịch bản User-case
mật hoặc đặt lại mật khẩu nếu quên
- Hệ thống xác nhận mật khẩu cũ có không trùng với tài khoản trong cơ sở dũ
liệu và xác nhận mật khẩu mới
- Hệ thông thông báo đổi mật khẩu thành côngNgoại lệ
- Hệ thống xác nhận mật khẩu cũ trùng với tài khoản trong cở sở dữ liệu
Hệ thống yêu cầu nhập lại dữ liệu Tác nhân nhập lại và tiếp tục các bước sau
Trang 111.4.5 Mô tả chi tiết use-case quên mật khẩu
Kịch bản User-case
mật khẩu
Chuỗi sự kiện chính
- Tác nhân nhấn vào phần quên mật khẩu
- Hệ thống gửi mail xác nhận tới email đã đăng kí của tài khoản
- Tác nhân xác nhận với hệ thống
- Hệ thống yêu cầu tác nhân nhập mật khẩu mới, xác nhận mật khẩu mới
- Hệ thống lưu thông tin mật khẩu của tác nhân
Trang 121.4.6 Mô tả chi tiết use-case tạo bài đăng
Kịch bản User-case
sau đó đăng lên đanh mục bài đăng của bản thân
- Tác nhân ấn đăng bài viết không chứa nội dung (bài viết trống)
Hệ thống tự động xóa bài viết và thông báo lại tác nhân
Trang 131.4.7 Mô tả chi tiết use-case chỉnh sửa bài đăng
Kịch bản User-case
- Hệ thống cập nhật lại bài viết trên danh muc bài đăng của tác nhân
Trang 141.4.8 Mô tả chi tiết use-case tìm kiếm
điểm mình đang quan tâm
Chuỗi sự kiện chính
- Tác nhân truy cập vào trang web
- User chọn tìm kiếm thông tin
- User nhập từ khóa vào thanh tìm kiếm
- Hệ thống hiển thị ra các thông tin chứa từ khóa đó.
Ngoại lệ
- Không có bài viết nào chứa từ khóa tìm kiếm được nhập
Hiẻn thị không có bài viết được tìm thấy
Trang 152 Phân tích trường hợp sử dụng (Use-case analysis)
2.1Phân tích kiến trúc hệ thống
2.1.1 Kiến trúc mức cao của hệ thống
Phân tích yêu cầu Xây dựng một website có đầy đủ các chức năng đáp ứng nhu :
cầu của người dùng và người quản lý.Giao diện:
+ Hiển thị đầy đủ các tính năng của website.Chức năng:
+ Thực hiện được các chức năng cơ bản của người quản lý cũng như người dùng.
2.1.2 Các đối tượng trừu tượng chính của hệ thống (Key abstractions)
Bài viết (Post): Đây là nội dung chính trên một trang blog, bao gồm tiêu đề,
nội dung, hình ảnh và thời gian đăng bài.
Tác giả (Author): Người viết bài viết và quản lý nội dung trên trang blog
Mỗi bài viết thường có tên tác giả kèm theo.
Chủ đề (Category): Một trang blog thường có nhiều chủ đề khác nhau Chủ
đề giúp sắp xếp bài viết thành các danh mục hoặc loại hình để dễ dàng tìm kiếm vàđọc.
Thẻ (Tag): Thẻ là từ khóa hoặc cụm từ mô tả nội dung của bài viết Chúng
giúp tăng khả năng tìm kiếm và gắn kết giữa các bài viết có liên quan.
Trang 16Trang chủ (Homepage): Đây là trang chính của trang web blog, hiển thị
các bài viết mới nhất hoặc được chọn lọc Trang chủ thường có cấu trúc đặc biệt đểgiới thiệu trang web và dẫn dắt người đọc.
Mục đích (Purpose): Mục đích của trang blog, cụ thể là cung cấp thông tin,
giảng dạy, chia sẻ ý kiến, hoặc khuyến nghị sản phẩm/dịch vụ.
2.2Thực thi trường hợp sử dụng (Use-case relizations)
2.2.1 Các biểu đồ tuần tự (Sequence diagrams)
2.2.1.1 Đăng nhập
Trang 172.2.1.2 Đăng xuất
Trang 182.2.1.3 Đăng kí
Trang 192.2.1.4 Đổi mật khẩu
Trang 202.2.1.5 Quên mật khẩu
Trang 212.2.1.6 Xem bài viết
Trang 222.2.1.7 Sửa bài viết
Trang 242.2.1.9 Tìm kiếm bài viết
Trang 252.2.1.10Thêm bài viết
2.2.2 Góc nhìn của các lớp trong hệ thống (Views of participating classes)
Mục đích của views of participating classes trong web blog
Views of participating classes trong web blog (VPCWB) là một loại biểu đồ lớp Unified Modeling Language (UML) cho thấy một cái nhìn tập trung về các lớp và mối quan hệ liên quan đến một web blog cụ thể VPCWB thường được sử dụng trong phát triển web để giúp các nhà phát triển hiểu thiết kế tổng thể của một web blog và xác định các khu vực phức tạp tiềm ẩn.
VPCWB có thể được sử dụng để đại diện cho các phối cảnh khác nhau trên một web blog, chẳng hạn như:
Trang 26Chức năng: View này cho thấy các lớp và mối quan hệ liên quan đến một chức năng cụ thể, chẳng hạn như tạo bài đăng mới, xuất bản bài đăng hoặc hiển thị danh sách bài đăng.
Cấu trúc: View này cho thấy cấu trúc lớp tổng thể của một web blog, bao gồm các mối quan hệ giữa các lớp và các giao diện mà chúng cung cấp.
Hành vi: View này cho thấy cách các lớp tương tác với nhau để đạt được một mục tiêu cụ thể, chẳng hạn như xử lý nhận xét hoặc hiển thị bài đăng cho người dùng.VPCWB cũng có thể được sử dụng để đại diện cho các cấp độ chi tiết khác nhau trong một web blog Ví dụ: VPCWB cấp cao có thể hiển thị các lớp chính trong một web blog và mối quan hệ của chúng, trong khi VPCWB cấp thấp có thể hiển thị các thuộc tính và hoạt động của một lớp cụ thể.
3 Thiết kế (Use-case design)
3.1Xác định các thành phần thiết kế (Identify design elements)
Xác định các lớp (Identify classes)
Lớp User
Trang 27Lớp Admin
Lớp Post
3.2Thiết kế trường hợp sử dụng (Use-case design)
Thiết kế các biểu đồ hoạt động (Design Activities diagrams)
Trang 283.2.1.1 Đăng nhập
Trang 293.2.1.2 Đăng xuất
3.2.1.3 Đăng kí
Trang 303.2.1.4 Đổi mật khẩu
3.2.1.5 Quên mật khẩu
Trang 313.2.1.6 Xem bài viết
3.2.1.7 Sửa bài viết
Trang 323.2.1.8 Xóa bài viết
3.2.1.9 Tìm kiếm bài viết
Trang 333.2.1.10Thêm bài viết
Trang 344 Demo giao diện4.1Giao diện trang chủ
Trang 354.2Giao diện đăng nhập
Trang 364.3Giao diện đăng ký
Trang 374.4Giao diện tạo bài đăng
4.5Giao diện chỉnh sửa bài đăng
Trang 384.6Giao diện xem bài đăng- Xem nội dung bài đăng:
- Xem ảnh trong bài đăng:
Trang 395 Bảng phân công công việc
Đặng Huy ThọNguyễn Đại NghĩaĐào Bá ĐạtĐỗ Quốc Bình