You are on page 1of 52

1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BÁO CÁO BÀI TẬP LỚN


Môn học: Nhập môn công nghệ phần mềm.
Đề tài: Nghiên cứu mô hình quy trình phát triển phần
mềm Thác nước và áp dụng phát triển phần mềm nhà
sách Cá Chép

Giảng viên hướng dẫn : TS.Vũ Đình Minh

Nhóm-Lớp : 10 - 20222IT6082007

Sinh Viên : Dương Mạnh Đạt - 2021601363


Phạm Thanh Bình - 2021600392
Nguyễn Hữu Bắc - 2021600159
Vũ Minh Kha - 2021608283

Hà Nội, 2023
MỤC LỤC

MỤC LỤC 2
LỜI CẢM ƠN 4
DANH MỤC HÌNH VẼ 5
DANH MỤC BẢNG BIỂU 7
MỞ ĐẦU 8
1. Lý do chọn chủ đề/đề tài 8
2. Mục tiêu nghiên cứu 8
3. Đối tượng và phạm vi nghiên cứu. 9
4. Kết quả mong muốn đạt được của đề tài 10
5. Cấu trúc của báo cáo 10
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 11
1.1. Giới thiệu chung về đề tài 11
1.2. Giới thiệu dự án phần mềm 11
1.3. Công cụ, kỹ thuật và phương pháp phát triển phần
mềm 13
1.3.1. Mô hình quy trình ứng dụng để phát triển dự án phần
mềm 13
1.3.2. Công cụ, kỹ thuật và phương pháp 17
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU PHẦN
MỀM 19
2.1. Quy trình yêu cầu kỹ thuật phần mềm 19
2.1.1. Giới thiệu quy trình kỹ thuật yêu cầu 19
2.1.2. Các hoạt động trong quy trình kỹ thuật yêu
cầu 19
2.2. Các tác nhân tham gia vào quy trình kỹ thuật yêu
cầu 19
2.2.1. Giới thiệu các tác nhân tham gia quy trình kỹ
thuật yêu cầu 19
2.2.2. Tác nhân và các chức năng tương ứng 20
2.3. Đặc tả yêu cầu phần mềm 20
2.3.1. Giới thiệu 20
2.3.2. Yêu cầu chức năng 21
2.3.3. Biểu đồ lớp của hệ thống 42
2.3.4. Xây dựng các bảng cơ sở dữ liệu 43
2.3.5. Yêu cầu phi chức năng 44
CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 46
3.1. Tổng quan về thiết kế phần mềm 46
3.1.1. Vai trò và các nhiệm vụ trong hoạt động thiết kế
phần mềm 46
3.1.2. Chiến lược thiết kế phần mềm 47
3.1.3. Công cụ hỗ trợ thiết kế phần mềm 48
3.2. Tài liệu thiết kế phần mềm 49
3.2.1. Giới thiệu 49
3.2.2. Tổng quan về phần mềm 50
3.2.3. Thiết kế kiến trúc phần mềm 50
3.2.4. Thiết kế dữ liệu 56
3.2.5. Thiết kế các thành phần phần mềm 60
3.2.6. Thiết kế giao diện người sử dụng 65

LỜI CẢM ƠN
Bài tập lớn là quá trình đánh giá khả năng làm việc theo
nhóm của sinh viên, cũng như tạo cho sinh viên tạo cho sinh
viên tính tự lập đánh dấu sự trưởng thành của một sinh viên,
và khả năng làm việc dựa vào hướng dẫn của giáo viên, tạo
điều kiện cho sinh viên nghiên cứu Khóa luận tốt nghiệp Kỹ
sư sau này và là sự chuyển tiếp trong quá trình phấn đấu,
học tập và rèn luyện của một sinh viên để trở thành một Kỹ
sư Công nghệ thông tin. Quá trình làm bài tập lớn, quá trình
học tập, tích lũy và kiểm tra lại kiến thức đã học và đem
những kiến thức đó áp dụng vào thực tế.
Nhóm em xin chân thành cảm ơn thầy Vũ Đình Minh. Thầy
đã trực tiếp hướng dẫn nhóm em làm Bài Tập Lớn này.
Trong quá trình thực hiện Bài Tập Lớn, thầy đã tận tình định
hướng, hướng dẫn và giúp đỡ nhóm em giải quyết các khó
khăn trong quá trình thực hiện bài tập lớn này.
Lời cuối cùng, nhóm 10 chúng em xin chân thành cảm ơn
thầy. Chúc thầy và toàn thể gia đình sức khỏe dồi dào và đạt
được nhiều thành công trong cuộc sống.

DANH MỤC HÌNH VẼ

CHƯƠNG 1
Hình 1. 1 Mô hình thác nước 14
CHƯƠNG 2
Hình 2. 1 Sơ đồ Use Case tổng quan 21
Hình 2. 2 Sơ đồ use case của chức năng “Đăng ký”. 22
Hình 2. 3 Sơ đồ hoạt động của chức năng “Đăng ký”. 22
Hình 2. 4 Biểu đồ trình tự chức năng "Đăng ký". 25
Hình 2. 5 Biểu đồ VOPC chức năng "Đăng ký". 26
Hình 2. 6 Sơ đồ Use Case đăng nhập 26
Hình 2. 7 Sơ đồ hoạt động của chức năng “Đăng
nhập” 27
Hình 2. 8 Biểu đồ trình tự chức năng "Đăng nhập". 31
Hình 2. 9 Biểu đồ VOPC chức năng "Đăng nhập". 32
Hình 2. 10 Sơ đồ Use Case “Tìm kiếm sách” 32
Hình 2. 11 Sơ đồ hoạt động của chức năng “Tìm kiếm
sách” 33
Hình 2. 12 Biểu đồ trình tự chức năng"Tìm kiếm
sách" 36
Hình 2. 13 Biểu đồ VOPC chức năng "Tìm kiếm
sách". 37
Hình 2. 14 Sơ đồ use case của chức năng “Thanh
toán”. 38
Hình 2. 15 Sơ đồ hoạt động của chức năng “Thanh
toán”. 38
Hình 2. 16 Biểu đồ trình tự chức năng "Thanh toán". 41
Hình 2. 17 Biểu đồ VOPC chức năng "Thanh toán". 42
Hình 2. 18 Biểu đồ lớp của hệ thống. 42
CHƯƠNG 3
Hình 3. 1 Kiến trúc hướng đối tượng 49
Hình 3. 2 Kiến trúc MVC. 51
Hình 3. 3 Biểu đồ lớp thực thể đầy đủ 53
Hình 3. 4 Biểu đồ thực thể liên kết mức vật lý 54
Hình 3. 5 Giao diện đăng ký 63
Hình 3. 6 Giao diện đăng nhập 63
Hình 3. 7 Giao diện thanh toán 64
Hình 3. 8 Giao diện tìm kiếm 64

DANH MỤC BẢNG BIỂU

CHƯƠNG 2
Bảng 2. 1 Tác nhân và chức năng tương ứng 20
Bảng 2. 2 Đặc tả chức năng “Đăng ký”. 24
Bảng 2. 3 Mô tả chức năng “Đăng ký”. 25
Bảng 2. 4 Đặc tả chức năng "Đăng nhập" 30
Bảng 2. 5 Mô tả chức năng "Đăng nhập". 31
Bảng 2. 6 Đặc tả chức năng "Tìm kiếm sách" 35
Bảng 2. 7 Mô tả chức năng “Tìm kiếm sách” 35
Bảng 2. 8 Đặc tả chức năng “Thanh Toán”. 40
Bảng 2. 9 Mô tả chức năng Thanh Toán 41
Bảng 2. 10 Bảng Quản lý. 43
Bảng 2. 11 Bảng Khách hàng. 43
Bảng 2. 12 Bảng Nhà xuất bản. 43
Bảng 2. 13 Bảng Loại sách. 44
Bảng 2. 14 Bảng Sản phNm. 44
Bảng 2. 15 Bảng Đơn đặt hàng. 44
CHƯƠNG 3
Bảng 3. 1 Bảng Danh mục 56
Bảng 3. 2 Bảng Thể Loại Sách 57
Bảng 3. 3 Bảng Sách 57
Bảng 3. 4 Bảng Đơn hàng – Sản PhNm 58
Bảng 3. 5 Bảng Đơn Hàng 58
Bảng 3. 6 Bảng Khách Hàng 58
Bảng 3. 7 Bảng Sản PhNm – KM 59
Bảng 3. 8 Bảng Khuyến Mại 59

MỞ ĐẦU
1. Lý do chọn chủ đề/đề tài
Lý do chọn đề tài ”Tìm hiểu mô hình thác nước và viết tài
liệu phân tích đặc tả yêu cầu trang web nhà sách cá chép” để
nghiên cứu vì đây là một chủ đề thú vị và có thể áp dụng
được trong thực tế. Việc nghiên cứu về mô hình thác nước
có thể giúp nhóm hiểu rõ hơn về cách thiết kế và phát triển
trang web. Bên cạnh đó, việc viết tài liệu phân tích đặc tả
yêu cầu có thể giúp nhóm có cái nhìn tổng quan về các yêu
cầu của khách hàng khi muốn tạo ra một trang web nhà
sách. Bản thân mỗi cá nhân có thể mong muốn học được
cách áp dụng kiến thức vào thực tế và phát triển kỹ năng
phân tích và thiết kế hệ thống. Chúng ta sẽ được học 1 quy
trình đầy đủ để tạo ra 1 phần mềm gồm rất nhiều bước
không chỉ riêng gì bước xây dựng phần mềm bằng các ngôn
ngữ lập trình, chúng ta sẽ phải:
- Đặc tả yêu cầu, phân tích yêu cầu, thương lượng với
khách hàng
- Đặc tả chức năng, trạng thái,... bằng các biểu đồ như
DFD, Use-case,...
- Thiết kế UI
- Xây dựng phần mềm
- Kiểm thử
Mục tiêu của bản thân khi học Nhập môn công nghệ phần
mềm:
- Hiểu rõ về cấu trúc và các thành phần của phần mềm
- Nắm được các kỹ thuật phân tích và thiết kế phần mềm
- Có khả năng sử dụng các công cụ phát triển phần mềm
- Hiểu các nguyên tắc của quản lý dự án phần mềm và có
kỹ năng quản lý dự án
2. Mục tiêu nghiên cứu
Mục tiêu sau khi thực hiện bài tập lớn:
- Giải thích, chỉ ra được các hoạt động, thứ tự ưu tiên của
các giai đoạn trong mô hình thác nước;
- Giải thích, chỉ ra các ưu điểm nhược điểm của mô hình
thác nước;
- Giải thích, khi nào nên và không nên sử dụng mô hình
thác nước;
- Vận dụng lựa chọn được mô hình quy trình cụ thể trong
dự án phát triển phần mềm trang web nhà sách “Cá
Chép”
3. Đối tượng và phạm vi nghiên cứu.
Mô hình quy trình thác nước: đây là một mô hình phát triển
phần mềm truyền thống, với các giai đoạn rõ ràng và theo
thứ tự. Các giai đoạn bao gồm phân tích yêu cầu, thiết kế hệ
thống, phát triển, kiểm thử và triển khai.
Các phương pháp và công cụ phát triển phần mềm: Rational
Rose, Studio Case để vẽ biểu đồ, VSCode lập trình xây
dựng giao diện
Các ngôn ngữ lập trình và công nghệ: các ngôn ngữ lập trình
và công nghệ phát triển phần mềm có thể được sử dụng để
phát triển phần mềm bán sách điện tử, chẳng hạn như Java,
Python, ReactJS, v.v.
Lý thuyết phát triển phần mềm: các lý thuyết và nguyên lý
quản lý dự án phần mềm, quản lý chất lượng phần mềm,
kiểm thử phần mềm, v.v. cũng sẽ được xem xét trong đề tài
này.
Phạm vi nghiên cứu cụ thể của đề tài này là tìm hiểu mô
hình quy trình thác nước và áp dụng vào phát triển phần
mềm website bán sách điện tử nhà sách Cá chép. Thời gian
nghiên cứu sẽ tập trung vào hiện tại và quá khứ gần đây,
không giới hạn bởi thời gian cụ thể. Không gian nghiên cứu
sẽ tập trung vào các dự án phát triển phần mềm bán sách
điện tử, tại các công ty phần mềm hoặc các doanh nghiệp
liên quan. Lĩnh vực nghiên cứu sẽ là phát triển phần mềm và
bán sách điện tử.
4. Kết quả mong muốn đạt được của đề tài
Tối ưu hóa quy trình bán hàng và cung cấp trải nghiệm mua
sắm trực tuyến tốt nhất cho khách hàng thông qua việc áp
dụng mô hình quy trình thác nước và phát triển phần mềm
website bán sách điện tử nhà sách Cá chép.
5. Cấu trúc của báo cáo
Ngoài phần Mở đầu và phần Kết thúc, nội dung BTL gồm 3
chương sau:
- Nội dung chương Chương 1: Trình bày về các kiến thức
cơ sở của học phần Nhập môn công nghệ phần mềm.
- Nôi dung Chương 2: Trình bày về phân tích và đặc tả
yêu cầu phần mềm.
- Nội dung Chương 3: Trình bày về thiết kế phần mềm.
CHƯƠNG 1
TỔNG QUAN VỀ ĐỀ TÀI
1.1. Giới thiệu chung về đề tài
Phần mềm website bán sách điện tử là một trong những sản
phNm phần mềm đang được phát triển rộng rãi trong thời đại
công nghệ số hiện nay. Đề tài này được thực hiện để xây
dựng một website bán sách điện tử cho nhà sách Cá Chép
với mục đích giúp khách hàng dễ dàng tìm kiếm và mua
sách trực tuyến một cách thuận tiện và nhanh chóng.
Nội dung cần thực hiện bao gồm thiết kế và phát triển giao
diện website, tạo cơ sở dữ liệu để quản lý thông tin sách và
thông tin khách hàng, kết nối với các cổng thanh toán trực
tuyến để thuận tiện cho khách hàng thanh toán, cung cấp các
tính năng tìm kiếm, đánh giá sách, giỏ hàng và đặt hàng trực
tuyến.
Phần mềm được chủ đầu tư là nhà sách Cá Chép - một trong
những nhà sách uy tín và nổi tiếng tại Việt Nam. Người sử
dụng của phần mềm là nhân viên của nhà sách để quản lý
thông tin sản phNm và các đơn hàng của khách hàng, cùng
với đó là khách hàng của nhà sách Cá Chép để truy cập và
mua sách trực tuyến.
Phần mềm được áp dụng trong lĩnh vực kinh doanh sách
điện tử của nhà sách Cá Chép, mở rộng thị trường bán sách
của nhà sách từ truyền thống sang trực tuyến, đáp ứng nhu
cầu ngày càng tăng của khách hàng trong việc mua sắm và
học tập trực tuyến.
Địa chỉ áp dụng của phần mềm là trên website của nhà sách
Cá Chép, cung cấp địa chỉ trực tuyến cho khách hàng để
truy cập và mua sách một cách dễ dàng.
1.2. Giới thiệu dự án phần mềm
Dự án phần mềm Website Nhà Sách Cá Chép là một giải
pháp kinh doanh trực tuyến cho các nhà sách độc lập và
doanh nghiệp nhỏ với mục tiêu tăng doanh số bán hàng và
nâng cao trải nghiệm mua sắm cho khách hàng. Với
giao diện trực quan và thân thiện, khách hàng có thể dễ dàng
tìm kiếm và mua các sản phNm sách mới nhất, phổ biến nhất
và đáng chú ý nhất trong danh mục của nhà sách.
Dự án này bao gồm một số tính năng chính như hệ thống
đăng ký tài khoản, giỏ hàng, thanh toán trực tuyến, hỗ trợ
khách hàng, quản lý đơn hàng và cập nhật hàng hóa. Với
những tính năng này, khách hàng có thể dễ dàng lưu trữ
thông tin thanh toán, giám sát đơn hàng và được thông báo
về các chương trình khuyến mãi, giảm giá hay các sự kiện
đặc biệt.
Dự án sử dụng các công nghệ phần mềm tiên tiến nhất như
HTML, CSS, JavaScript và PHP để tạo ra giao diện đẹp và
dễ sử dụng, đồng thời tích hợp hệ thống quản lý cơ sở dữ
liệu để lưu trữ thông tin khách hàng và đơn hàng.
Với dự án phần mềm Website Nhà Sách Cá Chép, các nhà
sách sẽ tiết kiệm chi phí cửa hàng và có thể tiếp cận được
nhiều khách hàng hơn thông qua kênh bán hàng trực tuyến.
Các khách hàng sẽ được tận hưởng một trải nghiệm mua
sắm trực tuyến đơn giản và thuận tiện với các tính năng tìm
kiếm nâng cao và thanh toán an toàn.
Tóm lại, dự án phần mềm Website Nhà Sách Cá Chép là một
giải pháp kinh doanh trực tuyến chuyên nghiệp và hiệu quả
cho các nhà sách độc lập và doanh nghiệp nhỏ, đồng thời
nâng cao trải nghiệm mua sắm của khách hàng.
Mô tả kỹ thuật của dự án phần mềm:
● Dữ liệu vào:
- Thông tin sản phNm: Mã sản phNm, tên sản phNm, giá
tiền, số lượng, ảnh sản phNm, mô tả sản phNm
- Thông tin người dùng: Họ và tên, địa chỉ email, mật
khNu, địa chỉ nhận hàng, số điện thoại, thông tin thanh toán
● Dữ liệu ra:
- Giỏ hàng của khách hàng với danh sách sản phNm, giá
tiền và số lượng sản phNm
- Đơn hàng của khách hàng với danh sách sản phNm, giá
tiền, số lượng sản phNm và thông tin giao hàng
- Thông tin chi tiết sản phNm khi khách hàng xem sản
phNm trên trang web
● Tiến trình xử lý:
- Đăng ký và đăng nhập tài khoản người dùng
- Xem thông tin sản phNm và chọn mua sản phNm
- Thêm sản phNm vào giỏ hàng, cập nhật giỏ hàng hoặc
xóa sản phNm khỏi giỏ hàng
- Thanh toán đơn hàng và cập nhật trạng thái đơn hàng
- Quản lý thông tin người dùng và đơn hàng
● Ràng buộc:
- Sản phNm phải được liệt kê với đầy đủ thông tin bao
gồm ảnh, giá tiền, mô tả, số lượng còn lại
- Khách hàng phải đăng nhập hoặc đăng ký tài khoản mới
có thể thêm sản phNm vào giỏ hàng
- Khách hàng phải nhập đúng thông tin giao hàng và
thanh toán đúng số tiền để đơn hàng được xác nhận và giao
hàng đúng địa chỉ.
- Quản lý thông tin người dùng và đơn hàng phải được
bảo mật và chỉ được truy cập bởi các người dùng có đặc
quyền.
1.3. Công cụ, kỹ thuật và phương pháp phát triển phần
mềm
1.3.1. Mô hình quy trình ứng dụng để phát triển dự án
phần mềm
1.2.1.1. Giới thiệu mô hình
Mô hình thác nước (Waterfall model) là Mô hình Quy
trình đầu tiên được giới thiệu. Nó cũng được gọi là mô hình
vòng đời tuần tự tuyến tính. Nó rất đơn giản để hiểu và sử
dụng. Trong mô hình thác nước, mỗi giai đoạn phải được
hoàn thành trước khi giai đoạn tiếp theo có thể bắt đầu và
không có sự chồng chéo trong các giai đoạn.
Waterfall là mô hình quy trình đầu tiên và nổi tiếng
nhất được giới thiệu, với cách tiếp cận Vòng đời phát triển
hệ thống (SDLC) lâu đời nhất, được sử dụng để phát triển
phần mềm.
Mô hình thác nước minh họa quá trình phát triển phần
mềm theo dòng tuần tự tuyến tính. Điều này có nghĩa là bất
kỳ giai đoạn nào trong quá trình phát triển chỉ bắt đầu nếu
giai đoạn trước đó hoàn thành. Trong mô hình thác nước,
các pha không chồng lên nhau.
1.3.1.2. Các giai đoạn của mô hình thác nước.
Hình minh họa sau đây thể hiện các giai đoạn khác nhau của
Mô hình thác nước:

Hình 1. 1 Mô hình thác nước


● Thu thập và phân tích yêu cầu (Requirement Analysis):
Tất cả các yêu cầu có thể có của hệ thống được phát triển
đều được ghi lại trong giai đoạn này và được ghi lại trong tài
liệu đặc tả yêu cầu để phục vụ cho các giai đoạn sau.
● Thiết kế hệ thống (System Design): Các thông số kỹ
thuật yêu cầu từ giai đoạn đầu được nghiên cứu trong giai
đoạn này và thiết kế hệ thống được chuNn bị. Thiết kế hệ
thống này giúp xác định các yêu cầu phần cứng và hệ thống
cũng như giúp xác định kiến trúc hệ thống tổng thể.
● Thực hiện (Implementation): Với đầu vào từ thiết kế hệ
thống, hệ thống được phát triển đầu tiên trong các chương
trình nhỏ gọi là đơn vị, được tích hợp trong giai đoạn tiếp
theo. Mỗi đơn vị được phát triển và kiểm tra chức năng của
nó (hay còn có thể được gọi là Kiểm thử đơn vị).
● Tích hợp và Kiểm thử (Integration and Testing): Tất cả
các đơn vị được phát triển trong giai đoạn triển khai được
tích hợp vào một hệ thống sau khi thử nghiệm của mỗi đơn
vị. Sau khi tích hợp, toàn bộ hệ thống được kiểm tra xem có
bất kỳ lỗi và hỏng hóc nào không (giai đoạn này còn được
gọi là kiểm thử tích hợp).
● Triển khai hệ thống (Deployment of system): Sau khi
kiểm tra chức năng và phi chức năng được thực hiện; sản
phNm được triển khai trong môi trường khách hàng hayđược
tung ra thị trường.
● Bảo trì (Maintenance): Có một số vấn đề xảy ra trong
môi trường khách hàng. Để khắc phục những vấn đề đó, các
bản vá lỗi được phát hành. Ngoài ra để nâng cao sản phNm
một số phiên bản tốt hơn được phát hành. Bảo trì được thực
hiện để mang lại những thay đổi này trong môi trường khách
hàng.
1.3.1.1. Đánh giá
Khi nào nên sử dụng mô hình thác nước:
- Khi dự án có quy mô lớn.
- Khi việc đánh giá (phân tích) các chi phí và các rủi ro là
quan trọng.
- Bất cứ lúc nào cũng có thể có yêu cầu thay đổi từ phía
khách hàng.
- Khi dự án được yêu cầu release thường xuyên.
- Khi yêu cầu không rõ ràng và phức tạp.
- Đối với các dự án có độ rủi ro từ trung bình đến cao.
- Những người sử dụng không chắc chắn về các nhu cầu
của họ.
- Các yêu cầu phần mềm phức tạp và lớn.
- Cần phát triển một dòng sản phNm mới.
- Khi có các thay đổi quan trọng.
Ưu điểm
Mô hình thác nước cho phép thiết lập một lịch trình với các
thời hạn cho từng giai đoạn phát triển và một sản phNm, và
có thể tiến hành từng giai đoạn của mô hình quy trình phát
triển. Sự phát triển di chuyển từ ý tưởng, thông qua thiết kế,
thực hiện, thử nghiệm, cài đặt, khắc phục sự cố và kết thúc
là vận hành và bảo trì. Mỗi giai đoạn phát triển diễn ra theo
thứ tự nghiêm ngặt. Một số ưu điểm chính của mô hình thác
nước như sau:
- Đơn giản, dễ hiểu và sử dụng
- Dễ dàng quản lý do độ cứng của mô hình.
- Mỗi giai đoạn có các phân phối cụ thể và một quy trình
xem xét.
- Các giai đoạn được xử lý và hoàn thành cùng một lúc.
- Hoạt động tốt cho các dự án nhỏ hơn, nơi các yêu cầu
được hiểu rất rõ.
- Các giai đoạn được xác định rõ ràng.
- Các mốc quan trọng được hiểu rõ.
- Dễ dàng sắp xếp các công việc.
- Quá trình và kết quả được ghi chép đầy đủ.
Nhược điểm
Mô hình thác nước không cho phép phản ánh hoặc sửa đổi
nhiều. Một khi ứng dụng đang trong giai đoạn thử nghiệm,
rất khó để quay lại và thay đổi một cái gì đó không được ghi
chép đầy đủ hoặc được nghĩ đến trong giai đoạn khái niệm.
Những nhược điểm chính của Mô hình thác nước như sau:
- Không có phần mềm đang hoạt động nào được sản xuất
cho đến cuối vòng đời.
- Lượng rủi ro cao và không chắc chắn.
- Không phải là một mô hình tốt cho các dự án phức tạp
và hướng đối tượng.
- Mô hình kém cho các dự án dài và đang diễn ra. Không
phù hợp với các dự án mà các yêu cầu có nguy cơ thay
đổi từ trung bình đến cao.
- Vì vậy, rủi ro và sự không chắc chắn là cao với mô hình
quy trình này.
- Rất khó để đo lường sự tiến bộ trong các giai đoạn.
- Không thể đáp ứng các yêu cầu thay đổi.
1.3.2. Công cụ, kỹ thuật và phương pháp
● Công cụ:
- Công cụ quản lý dự án: là một phần mềm được sử
dụng để giúp quản lý, theo dõi, phân chia và tổ chức
công việc của các thành viên trong dự án. Các công cụ
quản lý dự án thường có các tính năng như lên kế
hoạch, quản lý tài nguyên, theo dõi tiến độ, phân chia
công việc, giao tiếp và báo cáo tiến độ dự án.
VD: Trello, Asana,...
- Công cụ thiết kế: là các phần mềm được sử dụng để tạo
ra các thiết kế, mô hình hoặc bản vẽ cho các sản phNm
và dự án. Trong lĩnh vực phát triển phần mềm, các công
cụ thiết kế được sử dụng để tạo ra các thiết kế cấu trúc,
giao diện, cơ sở dữ liệu và các yếu tố khác trong một
ứng dụng hoặc hệ thống phần mềm.
VD: Adobe Photoshop, Figma,...
- Công cụ phát triển: là các phần mềm được sử dụng để
phát triển, xây dựng, kiểm thử và triển khai các ứng
dụng và hệ thống phần mềm. Trong lĩnh vực phát triển
phần mềm, các công cụ này đóng vai trò quan trọng
trong việc giúp các nhà phát triển tạo ra các sản phNm
phần mềm chất lượng cao và nhanh chóng.
VD: Visual Studio, Eclipse,…
- Công cụ kiểm thử: là các phần mềm được sử dụng để
thực hiện các kiểm thử tự động hoặc thủ công trên các
phần mềm, hệ thống hoặc ứng dụng để đảm bảo chất
lượng và độ tin cậy của chúng. Các công cụ kiểm thử
có thể giúp tăng hiệu quả, tiết kiệm thời gian và giảm
thiểu sai sót trong quá trình kiểm thử.
VD: Senelium, Appium,…
● Kỹ thuật:
- HTML/CSS/Javascript: Đây là các ngôn ngữ lập trình
cơ bản được sử dụng để thiết kế và phát triển trang
web.
- PHP: PHP là một ngôn ngữ lập trình phía server được
sử dụng để tạo các trang web động, liên kết với cơ sở
dữ liệu và xử lý các yêu cầu từ phía người dùng.
- MySQL: MySQL là một hệ quản trị cơ sở dữ liệu được
sử dụng để lưu trữ dữ liệu của các khách hàng, sản
phNm, đơn hàng và các thông tin liên quan khác.
● Phương pháp:
- Phương pháp Waterfall: là phương pháp phát triển phần
mềm tuyến tính, trong đó các giai đoạn phát triển được
thực hiện theo một quy trình tuyến tính và theo thứ tự
cụ thể. Các giai đoạn phát triển bao gồm yêu cầu, thiết
kế, phát triển, kiểm thử và triển khai.

CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU


PHẦN MỀM
2.1. Quy trình yêu cầu kỹ thuật phần mềm
2.1.1. Giới thiệu quy trình kỹ thuật yêu cầu
Các kỹ thuật xác định yêu cầu phần mềm dẫn đến sự hiểu
biết tường minh về các yêu cầu được gọi là kỹ thuật yêu cầu
(requirements engineering) hay kỹ thuật yêu cầu phần mềm
(software requirements engineering).
Từ quan điểm quy trình phần mềm, kỹ thuật yêu cầu là một
hành động kỹ thuật phần mềm chính bắt đầu trong hoạt động
giao tiếp và tiếp tục vào hoạt động mô hình hóa. Nó phải
được điều chỉnh cho phù hợp với nhu cầu của quá trình, dự
án, sản phNm và những người tham gia dự án.
2.1.2. Các hoạt động trong quy trình kỹ thuật yêu cầu
Kỹ thuật yêu cầu là một cách tiếp cận theo hướng quy trình,
theo đúng trình tự các bước được xác định trước để có tài
liệu yêu cầu và duy trì các yêu cầu phần mềm trong suốt
vòng đời phát triển phần mềm.
Kỹ thuật yêu cầu phần mềm được tạo thành từ hai quy trình
chính: phát triển yêu cầu (Requirements Development) và
quản lý yêu cầu (Requirements Management).
Phát triển yêu cầu bao gồm tất cả các hoạt động liên quan
đến việc phát hiện, phân tích, xác định và xác thực các yêu
cầu:
● Phát hiện các yêu cầu phần mềm (Requirements
elicitation)
● Phân tích các yêu cầu phần mềm (Requirements
analysis)
● Mô tả các yêu cầu phần mềm (Requirements
specification)
● Kiểm tra tính hợp lý các yêu cầu phần mềm
(Requirements validation)
2.2. Các tác nhân tham gia vào quy trình kỹ thuật yêu
cầu
2.2.1. Giới thiệu các tác nhân tham gia quy trình kỹ
thuật yêu cầu
Hệ thống gồm các tác nhân là Khách hàng và Quản trị viên:
● Khách hàng có vai trò là người dùng khi chưa truy cập
vào hệ thống.
● Quản trị viên có vai trò quản trị hoạt động của hệ
thống.
2.2.2. Tác nhân và các chức năng tương ứng
Tác nhân Hoạt động
Khách hàng 1. Đăng ký
2. Đăng nhập
3. Tìm kiếm sách
4. Thanh toán

Quản lí 1. Đăng nhập

Bảng 2. 1 Tác nhân và chức năng tương ứng


2.3. Đặc tả yêu cầu phần mềm
2.3.1. Giới thiệu

Để có thể hình dung rõ hơn về các tác nhân cũng như yêu
cầu chức năng của hệ thống bằng cách mô hình hóa chúng
dưới các sơ đồ use case, các sơ đồ sẽ được trình bày phía
sau:
Hình 2. 1 Sơ đồ Use Case tổng quan
2.3.2. Yêu cầu chức năng
2.3.2.1. Đặc tả, mô tả chức năng “Đăng ký”
(i) Giới thiệu
Use case cho phép khách hàng đăng ký tài khoản trên
website để tiến hành đăng nhập vào hệ thống.
Hình 2. 2 Sơ đồ use case của chức năng “Đăng ký”.
(ii)

Quy trình
Hình 2. 3 Sơ đồ hoạt động của chức năng “Đăng ký”.

(iii) Đặc tả use case


3. Mã use case Tên use case Đăng kí
Tác nhân Người dùng, hệ thống
Mô tả -Người dùng là tác nhân chính, người dùng tạo tài khoản để đăng
nhập
-Hệ thống hiển thị giao diện đăng kí, kiểm tra tính hợp lệ của
thông tin
Sự kiên kích hoạt Click vào nút đăng ký trên cùng bên phải của giao diện chính
chức năng website
Tiền điều kiện Không

Luồng sự kiện chính


Thực hiện bởi Hành động
1 Người dùng Truy cập vào trang đăng kí
2 Hệ thống Hiển thị giao diện yêu cầu
nhập họ tên, gmail, mật khNu
3 Người dùng Nhập thông tin hệ thống yêu
cầu và ấn nút đăng ký.
4 Hệ thống Kiểm tra thông tin vừa được
nhập
5 Hệ thống Tạo tài khoản với thông tin
trên
Luồng sự kiện thay thế
# Thực hiện bởi Hành động
4a Hệ thống Nếu email đã được dùng hoặc
email không đúng định dạng
thì thông báo lỗi và yêu cầu
nhập lại
4b Hệ thống Nếu mật khNu không đúng
định dạng thông báo lỗi và
yêu cầu nhập lại

Hậu điều kiện Tạo tài khoản thành công sẽ đưa người dùng đến trang thông tin
tài khoản

Bảng 2. 2 Đặc tả chức năng “Đăng ký”.

Bắt buộc Điều kiện


# Trường dữ liệu Mô tả Ví dụ
(Y/N) hợp lệ
1 Gmail Nhập gmail Có Gmail Abc123@gmail.
com
2 Mật khNu Nhập mật khNu Có Không có kí Abc1234
tự đặc biệt
Bảng 2. 3 Mô tả chức năng “Đăng ký”.

(iv)

Biểu đồ trình tự
Hình 2. 4 Biểu đồ trình tự chức năng "Đăng ký".

(v)
Biểu đồ VOPC
Hình 2. 5 Biểu đồ VOPC chức năng "Đăng ký".

2.3.2.2. Đặc tả, mô tả chức năng “Đăng nhập”


(i) Giới thiệu

Use case cho phép khách hàng đăng nhập vào trang web và
thực hiện các thao tác trong website.
Hình 2. 6 Sơ đồ Use Case đăng nhập
(ii) Quy trình

Hình 2. 7 Sơ đồ
hoạt động của
chức năng
“Đăng nhập”

(iii) Đặc
tả Use case

Mã Use case …… Tên Use case Đăng nhập


Tác nhân Người dùng, Hệ thống.
Mô tả - Người dùng: là tác nhân chính, người dùng sử dụng tài khoản để
đăng nhập vào hệ thống.
- Hệ thống: đảm bảo việc kiểm tra và xác thực thông tin đăng nhập
của người dùng. Hệ thống sẽ hiển thị giao diện đăng nhập, kiểm tra
thông tin đăng nhập của người dùng, xác thực thông tin và cho
phép người dùng truy cập vào hệ thống nếu thông tin đăng nhập
hợp lệ.
Sự kiện kích hoạt - Người dùng click vào ô đăng nhập ở góc trên cùng bên phải của
chức năng giao diện chính website.
Tiền điều kiện - Người dùng đã đăng ký tài khoản: Trước khi đăng nhập, người
dùng cần phải đã đăng ký tài khoản với thông tin đăng ký đầy đủ
và chính xác. Nếu người dùng chưa đăng ký tài khoản, họ cần phải
thực hiện đăng ký trước đó để có thể đăng nhập.
Luồng sự kiện chính
# Thực hiện bởi Hành động
1 Người dùng Truy cập vào trang đăng nhập của
website.
2 Hệ thống Hiển thị giao diện đăng nhập yêu
cầu người dùng nhập tên đăng nhập
và mật khNu.
3 Người dùng Nhập thông tin tên đăng nhập và mật
khNu của mình.
4 Người dùng Nhấn nút “Đăng nhập”.

5 Hệ thống Xác thực thông tin của người dùng.

6 Người dùng Hoàn thành việc đăng nhập và có thể


sử dụng các chức năng của website.

Luồng sự kiện thay


thế # Thực hiện bởi Hành động
5a Hệ thống Nếu người dùng không nhập đầy đủ
thông tin tên đăng nhập và mật khNu
hoặc nhập sai định dạng thông tin,
hệ thống sẽ hiển thị thông báo lỗi”
Thông tin sai định dạnh !” và hệ
thống đưa người dùng quay lại bước
3.
5b Hệ thống Nếu người dùng nhập sai tên đăng
nhập hoặc mật khNu, hệ thống sẽ
hiển thị thông báo lỗi”Thông tin
không hợp lệ!” và hệ thống đưa
người dùng quay lại bước 3.
3a Hệ thống Nếu người dùng đã quên mật khNu,
hệ thống cung cấp tính năng khôi
phục mật khNu bằng cách gửi một
liên kết đến email đã đăng ký của
người dùng để cập nhật mật khNu
mới. Người dùng sẽ phải truy cập
vào email của mình để cập nhật lại
mật khNu. Sau đó, hệ thống đưa
người dùng lên bước 6.
3b Người dùng Nếu người dùng không muốn tiếp
tục thực hiện đăng nhập thì nhấn nút
“Trở về”.

Hậu điều kiện - Truy cập thành công: Nếu người dùng nhập đúng thông tin đăng
nhập, hệ thống sẽ chuyển hướng người dùng đến trang chủ hoặc
trang người dùng, cho phép họ truy cập vào các tính năng của
website.
- Hiển thị thông báo lỗi nếu đăng nhập không thành công: Nếu
người dùng nhập sai thông tin đăng nhập, hệ thống sẽ hiển thị
thông báo lỗi và yêu cầu người dùng nhập lại thông tin đăng nhập
hoặc sử dụng tính năng khôi phục mật khNu.
- Hỗ trợ khôi phục mật khNu: Nếu người dùng quên mật khNu hoặc
không thể đăng nhập bằng thông tin đăng nhập hiện tại, hệ thống sẽ
hỗ trợ người dùng khôi phục mật khNu thông qua email hoặc số
điện thoại đã đăng ký.

Bảng 2. 4 Đặc tả chức năng "Đăng nhập"

Bắt
STT Trường dữ liệu Mô tả Điều kiện hợp lệ Ví dụ
buộc
1 Tài khoản Email Có Không chứa ký tự Abc@gmail.com
đặc biệt
2 Mật khNu Chuỗi kí tự Có Không chứa ký tự Abc12345
đặc biệt

Bảng 2. 5 Mô tả chức năng "Đăng nhập".


(iv) Biểu đồ trình tự

Hình 2. 8 Biểu đồ trình tự chức năng "Đăng nhập".

(v)
Biểu
đồ VOPC
Hình 2. 9 Biểu đồ VOPC chức năng "Đăng nhập".
2.3.2.3. Đặc tả chức năng “Tìm kiếm sách
(i) Giới thiệu
Usecase thực hiện tìm kiếm sách theo tên sách, tên tác giả
giúp khách hàng biết thông tin của sách mà mình muốn

Hình 2. 10 Sơ đồ Use Case “Tìm kiếm sách”

(ii) Quy trình

Hình 2. 11 Sơ đồ hoạt động của chức năng “Tìm kiếm sách”


(iii) Đặc tả Use case
Mã use case: ………. Tên use case Tìm kiếm sách
Mục đích: Khách hàng có thể tìm kiếm thông tin của sách
Mô tả: Usecase thực hiện tìm kiếm sách theo tên sách, tên tác giả giúp
khách hàng biết thông tin của sách mà mình muốn

Tác nhân: Khách hàng, hệ thống


Điều kiện Khách hàng đã đăng nhập vào tài khoản của mình trên website
trước bán sách của nhà sách cá chép
Luồng sự
kiện chính # Thực hiện bởi Hành động
(Basic flows) 1 Khách hàng Kích vào thanh tìm kiếm
2 Hệ thống Hiện thị giao diện tìm kiếm cho
khách hàng
3 Khách hàng Khách hàng nhập vào tên sách
hoặc tên tác giả của sách muốn
tìm sau đó nhấn nút tìm kiếm.
4 Hệ thống Xác nhận thông tin tìm kiếm của
khách hàng và đưa ra danh sách
các sảng phNm tương ứng
5 Khách hàng Chọn vào sản phNm cần tìm trong
danh sách hệ thống đã đưa ra
6 Hệ thống Đưa ra thông tin của sản phNm
khách hàng đã chọn

Luồng sự
kiện thay thế # Thực hiện bởi Hành động
(Alternative 4a Hệ thống Nếu khách hàng nhập không đúng
Flows): hoặc tên sách/tác giả của khách
hàng không tồn tại hệ thống sễ
đưa ra thông báo “KHÔNG TÌM
THẤY KẾT QUẢ TÌM KIẾM
CHO: NHÓM SẢN PHẨM:/”.
Quay lại bước 3.
6a Hệ thống Nếu sản phNm chưa có hàng thì
hệ thống không đưa ra thông tin
cho tiết của sản phNm

Điều kiện sau Hệ thống đã tiếp nhận được thông tin sản phNm cần tìm và
đưa ra danh sách sản phNm tương ứng.
Khách hàng nhận được thông tin sản phNm cần tìm.
Bảng 2. 6 Đặc tả chức năng "Tìm kiếm sách"

Bắt buộc Điều kiện


# Trường dữ liệu Mô tả Ví dụ
(Y/N) hợp lệ
1 Tên sách Nhập tên sách Có Không có ký Tuổi trẻ đáng giá
tự đặc biệt bao nhiêu
2 Tên tác giả Nhập tên tác giả Có/không Không có kí Rosie Nguyễn
tự đặc biệt
Bảng 2. 7 Mô tả chức năng Tìm kiếm sách

(iv) Biểu đồ trình tự


Hình 2. 12 Biểu đồ trình tự chức năng"Tìm kiếm sách"

(v) Biểu đồ VOPC

Hình 2. 13 Biểu đồ VOPC chức năng "Tìm kiếm sách".


2.3.2.4. Đặc tả, mô tả chức năng “Thanh Toán”
(i) Giới thiệu
Use case cho phép khách hàng tiến hành thanh toán cho đơn
hàng trên website bán sách.

Hình 2. 14 Sơ đồ use case của chức năng “Thanh toán”.

(ii) Quy trình

Hình 2. 15 Sơ đồ hoạt động của chức năng “Thanh toán”.

(iii) Đặc tả use case

Mã Use case …… Tên Use case Thanh toán


Tác nhân Khách hàng
Mô tả Khách hàng tiến hành thanh toán cho đơn hàng trên website bán
sách
Sự kiện kích hoạt Người dùng click vào nút “Tiến hành thanh toán” trên giỏ hàng.
chức năng
Tiền điều kiện Khách hàng đã đăng nhập vào tài khoản của mình trên website bán
sách của nhà sách cá chép và chọn sản phNm muốn mua và thêm
vào giỏ hàng trên website.
Luồng sự kiện
chính # Thực hiện bởi Hành động
1 Khách hàng Chọn sản phNm muốn mua và
thêm vào giỏ hàng trên website.
2 Khách hàng Nhấn nút “Tiến hành thanh toán

3 Hệ thống Hiện thị giao diện thanh toán cho


khách hàng
4 Khách hàng Chọn phương thức thanh toán và
cung cấp thông tin thanh toán cần
thiết
5 Hệ thống Xác nhận thông tin khách hàng và
tiến hành thanh toán cho khách.

Luồng sự kiện
thay thế # Thực hiện bởi Hành động
4a Khách hàng Nếu khách hàng nhập không đúng
hoặc thông tin không hợp lệ đưa
ra thông báo “Vui lòng nhập đúng
thông tin” và quay lại bước 3
2a Khách hàng Nếu sản phNm khách hàng chọn
hết hàng hoặc không thể mua hiện
thị thông báo “Không còn sản
phNm” và quay lại bước 1
5a Hệ thống Nếu hệ thống gặp sự cố hoặc ngân
hàng bảo trì đưa ra thông báo
“Tạm thời chưa thể thanh toán vui
lòng thử lại sau”

Hậu điều kiện Hệ thống đã tiếp nhận thông tin thanh toán và xác nhận giao dịch
thanh toán thành công.
Khách hàng đã nhận được thông tin xác nhận đơn hàng và hướng
dẫn về việc nhận sản phNm.
Bảng 2. 8 Đặc tả chức năng “Thanh Toán”.

STT Trường dữ Mô tả Bắt Điều kiện hợp lệ Ví dụ


liệu buộc
1 Họ tên Nhập họ tên Y Đúng tên Nguyễn Văn A

2 Email Nhập email Y Email hợp lệ Abc123@gmail.com


3 Điện thoại Nhập điện Y Số điện thoại hợp 09xxxxxxxx
thoại lệ
4 Địa chỉ Nhập địa chỉ Y Địa chỉ Hà Nội
5 Phương thức Nhập phương Y Phương thức hợp Thanh toán trực tiếp
thanh toán thức lệ

Bảng 2. 9 Mô tả chức năng Thanh Toán


(iv) Biểu đồ trình tự

Hình 2. 16 Biểu đồ trình tự chức năng "Thanh toán".


(v) Biểu đồ VOPC

Hình 2. 17 Biểu đồ VOPC chức năng "Thanh toán".


2.3.3.

Biểu đồ lớp của hệ thống

Hình 2. 18 Biểu đồ lớp của hệ thống.


2.3.4. Xây dựng các bảng cơ sở dữ liệu
Bảng QuanLy
Name Type Null Chú thích
Maquanli nvarchar(256) No Mã quản lí
Hoten Nvarchar(256) No Họ và tên
Ngaysinh Date No Ngày sinh
Gioitinh Nvarchar(256) No Giới tính
Diachi Nvarchar(256) No Địa chỉ
Email Nvarchar(256) No Email
sdt Nvarchar(256) no Số điện thoại
Bảng 2. 10 Bảng Quản lý.
Bảng KhachHang
Name Type Null Chú thích
Makhachhang nvarchar(256) No Mã khách hàng
Hoten Nvarchar(256) No Họ và tên
Ngaysinh Date No Ngày sinh
Gioitinh Nvarchar(256) No Giới tính
Diachi Nvarchar(256) No Địa chỉ
Email Nvarchar(256) No Email
sdt Nvarchar(256) no Số điện thoại
Bảng 2. 11 Bảng Khách hàng.
Bảng NhaXuatBan
Name Type Null Chú thích
Manhaxuatban nvarchar(256) No Mã nhà xuất bản
Tennhaxuatban nvarchar(256) No Tên nhà xuất bản
Diachi nvarchar(256) No Địa chỉ
Sdt nvarchar(256) No Số điện thoại
Email nvarchar(256) no Email
Bảng 2. 12 Bảng Nhà xuất bản.
Bảng LoaiSach
Name Type Null Chú thích
Masanpham nvarchar(256) No Mã sản phNm
Tensanpham nvarchar(256) No Tên sản phNm
Theloai nvarchar(256) No Thể loại
Bảng 2. 13 Bảng Loại sách.
Bảng SanPham
Name Type Null Chú thích
Masanpham nvarchar(256) No Mã sản phNm
Tensanpham nvarchar(256) No Tên sản phNm
Theloai nvarchar(256) No Thể loại
Manhaxuatban nvarchar(256) No Mã nhà xuất bản
Giatien Float No Giá tiền
Thanhtien Float No Thành tiền
Bảng 2. 14 Bảng Sản phẩm.
Bảng Dondathang
Name Type Null Chú thích
Sophieu Int No Số phiếu
Mammathang nvarchar(256) No Mã mặt hàng
Makhachhang nvarchar(256) No Mã khách hàng
Soluong Int No Số lượng
Dongia Float No Đơn giá
Bảng 2. 15 Bảng Đơn đặt hàng.
2.3.5. Yêu cầu phi chức năng
2.3.5.1. Giao diện người dùng
Giao diện hiển thị tốt trên các thiết bị khác nhau.
Đối với Khách hàng khi truy cập sử dụng hệ thống thông
qua trình duyệt web, hệ thống sẽ nhận yêu cầu truy cập từ
phía máy Khách hàng thông qua trình duyệt và gửi trả về
cho trình duyệt các menu chức năng tương ứng với phạm vi
của từng người dùng.
Trong trường hợp này Khách hàng có thể tương tác với
hệ thống thông qua cửa sổ màn hình trên trình duyệt với cấu
trúc trang gồm có:
● Phần thân trang cung cấp thông tin về danh sách các
sản phNm.
● Thông tin sản phNm.
● Phần cuối trang cung cấp thông tin liên quan đến hệ
thống
Khi Người dùng truy cập hệ thống và đăng ký tài khoản và
tiến hành mua hàng
Khi Quản trị viên truy cập sử dụng chức năng hệ thống thì
phần thân trang cũng sẽ phân bổ theo cấu trúc trái-phải hay
sidebar menu, với mỗi phần tử trong menu sẽ tương ứng với
từng chức năng quản lý của Quản trị viên.
2.3.5.2. Tính bảo mật
Người dùng chỉ có thể sử dụng các chức năng và truy cập
các dữ liệu phù hợp với vai trò của người dùng đó.
2.3.5.3. Ràng buộc
ELCs là hệ thống dựa trên website do vậy người dùng cần
có các thiết bị có kết nối với internet như máy vi tính và
được cung cấp các dịch vụ như thư điện tử, hình ảnh, văn
bản, đa phương tiện, giao thức truyền thông siêu văn bản để
có thể gửi và nhận thông tin, dữ liệu giữa máy Khách hàng
và website server.
Bên phía máy Khách hàng – người dùng cần có phần mềm
ứng dụng duyệt website như: Google Chrome, Internet
Explore, Mozilla Firefox, Opera với phiên bản mới nhất có
hỗ trợ JavaScript.

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM


3.1. Tổng quan về thiết kế phần mềm
3.1.1. Vai trò và các nhiệm vụ trong hoạt động thiết kế
phần mềm
3.1.1.1. Khái niệm
Thiết kế phần mềm là quá trình thiết kế cấu trúc phần mềm
dựa trên những tài liệu đặc tả.
Nếu không có thiết kế hoặc thiết kế tồi:
- Làm tăng công sức viết mã
- Làm tăng công sức bảo trì
- Có nguy cơ dựng lên một hệ thống không ổn định - một
hệ thống sẽ thất bại khi có một thay đổi nhỏ;
- Thiết kế tốt là chìa khoá cho công trình hữu hiệu.
3.1.1.2. Vai trò
Vai trò của thiết kế :
- Là cách duy nhất để chuyển hóa một cách chính xác các
yêu cầu của khách hàng thành mô hình thiết kế hệ
thống phần mềm cuối cùng làm cơ sở cho việc triển
khai chương trình phần mềm
- Là công cụ giao tiếp giữa các nhóm cùng tham gia phát
triển sản phNm, quản lý rủi ro, đạt được phần mềm hiệu
quả
- Là tài liệu cung cấp đầy đủ các thông tin cần thiết cho để
bảo trì hệ thống
- Nếu không có thiết kế thì hệ thống không tin cậy dẫn tới
nguy cơ thất bại
- Thiết kế tốt là chìa khóa làm cho phần mềm trở nên hữu
hiệu
3.1.1.3. Yêu cầu
Yêu cầu của thiết kế:
- Thiết kế phải thỏa yêu cầu tường minh cũng như ngầm
định
- Thiết kế phải dễ hiểu, dễ đọc và hỗ trợcho việc tạo code,
test và hỗ trợ phần mềm
- Thiết kế phải cung cấp hình ảnh đầy đủ của phần mềm,
xác định dữ liệu, chức năng và hành vi.
3.1.2. Chiến lược thiết kế phần mềm
3.1.2.1. Khái niệm OOAD (Object Oriented Analysis and
Design)
Phân tích và thiết kế hướng đối tượng là một kỹ thuật tiếp
cận phổ biến dùng để phân tích, thiết kế một ứng dụng, hệ
thống. Nó dựa trên bộ các nguyên tắc chung, đó là một tập
các hướng dẫn để giúp chúng ta tránh khỏi một thiết kế xấu.
5 nguyên tắc SOLID trong thiết kế hướng đối tượng:
- Một lớp chỉ nên có một lý do để thay đổi, tức là một lớp
chỉ nên xử lý một chức năng đơn lẻ, duy nhất thôi. Nếu
đặt nhiều chức năng vào trong một lớp sẽ dẫn đến sự
phụ thuộc giữa các chức năng với nhau và mặc dù sau
đó ta chỉ thay đổi ở một chức năng thì cũng phá vỡ các
chức năng còn lại.
- Các lớp, module, chức năng nên dễ dàng Mở (Open) cho
việc mở rộng (thêm chức năng mới) và Đóng (Close)
cho việc thay đổi.
- Lớp dẫn xuất phải có khả năng thay thế được lớp cha
của nó.
- Chương trình không nên buộc phải cài đặt một interface
mà nó không sử dụng đến.
- Các module cấp cao không nên phụ thuộc vào các
module cấp thấp. Cả hai nên phụ thuộc thông qua lớp
trừu tượng. Lớp trừu tượng không nên phụ thuộc vào
chi tiết. Chi tiết nên phụ thuộc vào trừu tượng.
3.1.2.2. Khái niệm UML
Một số khái niệm UML:
- ULM là ngôn ngữ mô hình hóa thống nhất, là ngôn ngữ
chuNn cho phát triển phần mềm hướng đối tượng
- Lớp (class) để đặc tả các đối tượng được biểu diên bằng
hình vuông có tên và các thuộc tính cũng như phương
thức
- Các lớp có mối quan hệ với nhau: quan hệ phục thuộc,
quan hệ kế thừa, quan hệ kết hợp (giữa toàn thể và bộ
phận), quan hệ kết tập(đối tượng và thành phần cấu
thành của nó)
3.1.2.3. Tiến trình thiết kế hướng đối tượng
- Là 1 phần của của chiến lược phát triển định hướng đối
tượng
- Đầu vào là là các mô hình nhận được ở giai đoạn phân
tích
- Gồm các bước:
+ Xác định kiến trúc của hệ thống
+ Sắp thứ tự ưu tiên các gói
+ Với mỗi gói thiết kế ca sử dụng tương ứng
+ Xây dựng biểu đồ tương tác
+ Thiết kế chi tiết các lớp
+ Phân tích và hoàn thiện biểu đồ lớp dựa trên mẫu
thiết kế
3.1.2.4. Ưu và nhược điểm
- Dễ bảo trì, mọi thay đổi của đối tượng không làm ảnh
hưởng đến các đối tượng khác
- Các đối tượng có thể sử dụng lại được
- Có thể phản ánh được thế giới thực một cách cụ thể
- Tuy nhiên có nhược điểm như: khó thực hiện vì khó xác
định đối tượng của hệ thống. Thường cách nhìn tự
nhiên là nhìn chức năng
3.1.3. Công cụ hỗ trợ thiết kế phần mềm
Các công cụ được sử dụng trong thiết kế phần mềm:
- MockUp – Thiết kế giao diện
- Rational Rose – Xây dựng các Use Case chức năng
- Draw.io – Vẽ các biểu đồ chức năng
3.2. Tài liệu thiết kế phần mềm
3.2.1. Giới thiệu
3.2.1.1. Mục đích tài liệu
Tài liệu này mô tả chi tiết về thiết kế phần mềm "Website
Nhà sách Cá Chép" phục vụ hoạt động bán sách trực tuyến
của Công ty Nhà sách Cá Chép.
Mục đích của tài liệu này là cung cấp một hướng dẫn chi tiết
về kiến trúc và các thành phần chính của phần mềm website
Nhà sách Cá Chép. Nó sẽ giúp đội phát triển và quản lý dự
án hiểu rõ về cách phần mềm được thiết kế và hoạt động, từ
đó đảm bảo sự phát triển và vận hành hiệu quả của trang
web Nhà sách Cá Chép.
3.2.1.2. Phạm vi tài liệu
Tài liệu này là cơ sở giao tiếp của các thành viên trong đội
phát triển dự án Website nhà sách Cá Chép và tài liệu này
cũng là căn cứ trong hoạt động kiểm thử, vận hành và bảo trì
phần mềm.
3.2.1.3. Tài liệu tham khảo
- Tài liệu trên trang đại học Công Nghiệp Hà Nội
- https://www.tutorialspoint.com/sdlc/index.htm
3.2.1.4. Bố cục tài liệu thiết kế phần mềm
Ngoài phần giới thiệu, cấu trúc Tài liệu mô tả thiết kế
Website nhà sách Cá chép còn gồm các nội dung chính sau:
● Tổng quan về phần mềm;
● Thiết kế kiến trúc phần mềm;
● Thiết kế dữ liệu;
● Thiết kế các thành phần phần mềm;
● Thiết kế giao diện;
3.2.2. Tổng quan về phần mềm
Tài liệu đặc tả yêu cầu phần mềm này được xây dựng nhằm
phục vụ cho dự án phát triển trang website bán sách của nhà
sách Cá Chép.
Mục đích của tài liệu đặc tả yêu cầu phần mềm này là cung
cấp một cái nhìn tổng quan, dễ hiểu về các yêu cầu cho
website nhà sách Cá Chép.Tài liệu này được cung cấp như
một tài liệu tham khảo cho sinh vi trực tiếp tham gia phát
triển dự án phục vụ cho việc hoàn thành các công việc.
Ngoài ra trong môi trường thực tế bên ngoài tài liệu này còn
phục vụ cho những nhà phát triển phần mềm, kiểm thử viên,
nhà quản lý dự án cũng như các bên liên quan.
Việc phát triển hệ thống bán, giới thiệu và cung cấp sách cho
User hàng, tổ chức cá nhân một trang website uy tín và dễ
sử dụng sẽ mang lại nhiều lợi ích về kinh tế với chi phí thấp
nhưng vẫn đảm bảo được chất lượng.
3.2.3. Thiết kế kiến trúc phần mềm
3.2.3.1. Mô hình kiến trúc
3.2.3.1.1. Tổng quan về thiết kế kiến trúc phần mềm
- Khái niệm:
• Kiến trúc phần mềm (Software Architecture) là một
cấu trúc tổng thể của phần mềm, qua đó cung cấp sự
tích hợp về mặt khái niệm của một hệ thống.
• Hiểu một cách đơn giản, kiến trúc là cấu trúc phân cấp
của các thành phần chương trình, qua đó thể hiện sự
tương tác giữa chúng với nhau và với cấu trúc dữ liệu
mà chúng sử dụng.
• Theo nghĩa rộng, kiến trúc biểu diễn các thành phần
lớn, cốt lõi của hệ thống và mối quan hệ giữa chúng
với nhau được nhìn theo những quan điểm khác nhau
- Vai trò và tầm quan trọng của kiến trúc:
• Là công cụ giao tiếp giữa những người có liên quan
(Stackholder Communication) quan trọng của kiến
trúc.
• Phân tích hệ thống (System Analysis).
• Tái sử dụng ở quy mô lớn (Large-Scale Reuse).
- Kiến trúc và đặc điểm của hệ thống:
• Kiến trúc hệ thống ảnh hưởng tới sự thực thi, tính hiệu
quả, tính phân tán và bảo trì của hệ thống.
• Kiểu và cấu trúc được lựa chọn cho một ứng dụng
cũng có thể phụ thuộc vào những yêu cầu phi chức
năng của hệ thống:
+ Tính hiệu năng (Performance).
+ Tính bảo mật (Security).
+ Tính an toàn (Safety).
+ Tính sẵn sàng (Availability).
+ Tính bảo trì (Maintainability).
3.2.3.1.2. Các mô hình kiến trúc phổ dụng
- Kiến trúc hướng đối tượng (Objects based
Architecture):
● Kiến trúc hướng đối tượng là: việc mô tả cách mà các
đối tượng, lớp và mối quan hệ giữa chúng được tổ chức và
tương tác trong hệ thống phần mềm. Đặc tả kiến trúc hướng
đối tượng giúp xác định cách mà các thành phần của hệ
thống tương tác với nhau, cung cấp cái nhìn tổng quan về
kiến trúc của hệ thống và định nghĩa các quy tắc và hướng
dẫn cho việc triển khai phần mềm.

Hình 3. 1 Kiến trúc hướng đối


tượng

● Đối tượng : là nguyên tử cấu thành phần mềm, có 1 số


tính chất sau:
- Tính đóng gói (Encapsulation): Tính đóng gói cho phép
đối tượng giấu đi thông tin bên trong và chỉ tiết lộ
những phương thức công khai để tương tác với đối
tượng đó. Điều này giúp bảo vệ tính toàn vẹn của dữ
liệu và đảm bảo sự ổn định của giao diện công khai.
- Tính trạng thái (State): Mỗi đối tượng có thể có một
trạng thái hiện tại, biểu thị thông qua các giá trị của các
thuộc tính của đối tượng. Trạng thái có thể thay đổi khi
đối tượng thực hiện các phương thức hoặc tương tác
với các sự kiện khác trong hệ thống.
- Tính kế thừa (Inheritance): Kế thừa cho phép đối tượng
kế thừa các thuộc tính và phương thức từ một đối tượng
cha, gọi là lớp cha. Điều này giúp tạo ra các cấu trúc
phân cấp trong hệ thống, nâng cao khả năng tái sử dụng
mã nguồn và thúc đNy tính linh hoạt và mở rộng của
kiến trúc.
- Tính đa hình (Polymorphism): Đa hình cho phép các đối
tượng của các lớp khác nhau có thể thực hiện cùng một
phương thức theo cách riêng biệt. Điều này cho phép
việc gọi phương thức dễ dàng và linh hoạt, tùy thuộc
vào loại đối tượng cụ thể mà phương thức được gọi.
- Tính truy cập (Access): Đối tượng có thể có các thuộc
tính và phương thức với các mức độ truy cập khác
nhau. Các mức độ truy cập, chẳng hạn như public,
private và protected, quy định phạm vi mà các thành
phần của đối tượng có thể được truy cập.
● Các nguyên tắc chính yếu của kiến trúc hướng đối
tượng:
- Nguyên tắc đóng gói
- Nguyên tắc kế thừa
- Nguyên tắc đa hình
- Nguyên tắc trừu tượng
- Nguyên tắc đóng
● Ưu điểm của kiến trúc hướng đối tượng:
- Tái sử dụng mã nguồn
- Tính đóng gói
- Tính kế thừa
- Đa hình
- Dễ quản lí
● Nhược điểm của kiến trúc hướng đối tượng
- Độ phức tạp cao
- Tốn nhiều tài nguyên máy tính
- Đòi hỏi kĩ năng lập trình viên cao hơn
- Khó hiểu và khó bảo trì nếu không thiết kế đúng
- Hiệu suất thấp
● Khi nào nên sử dụng
- Khi xây dựng phần mềm lớn và phức tạp
- Khi cần tái sử dụng mã nguồn
- Khi cần mở rộng và thay đổi dễ dàng
- Khi cần tạo ra các lớp trừu tượng
- Khi cần tăng tính linh hoạt và bảo trì
-
Kiến trúc MVC ( Model-View-Controller ):
Hình 3. 2 Kiến trúc MVC.
• Kiến trúc MVC (Model-View-Controller) là một kiến
trúc phần mềm được sử dụng rộng rãi trong phát triển phần
mềm. Nó giúp phân tách các thành phần của ứng dụng thành
các phần riêng biệt và giúp cho việc phát triển, bảo trì và mở
rộng ứng dụng trở nên dễ dàng hơn.
• Mô tả chi tiết kiến trúc MVC như sau:
- Model: là thành phần chịu trách nhiệm xử lý dữ liệu và
truy xuất cơ sở dữ liệu. Nó lưu trữ thông tin và xử lý
các yêu cầu từ người dùng hoặc từ các thành phần khác
của ứng dụng.
- View: là thành phần chịu trách nhiệm hiển thị dữ liệu
cho người dùng. Nó sẽ lấy dữ liệu từ model và hiển thị
cho người dùng dưới dạng giao diện người dùng.
- Controller: là thành phần trung gian giữa model và view.
Nó chịu trách nhiệm xử lý yêu cầu từ người dùng và
điều phối các thành phần khác của ứng dụng. Nó sẽ lấy
dữ liệu từ model và chuyển cho view để hiển thị cho
người dùng và cũng sẽ nhận các yêu cầu từ view và
chuyển đến model để xử lý.

• Quá trình hoạt động của kiến trúc MVC:


- Người dùng tương tác với giao diện người dùng (View).
- View gửi yêu cầu đến Controller.
- Controller nhận yêu cầu và xử lý chúng bằng cách truy
xuất Model.
- Model xử lý yêu cầu và trả lại kết quả cho Controller.
- Controller nhận kết quả từ Model và chuyển đến View
để hiển thị kết quả cho người dùng.

• Ưu điểm của MVC:


- Bảo trì code dễ dàng, dễ dàng mở rộng và phát triển.
- Hỗ trợ dễ dàng hơn cho khách hàng mới.
- Việc phát triển các thành phần khác nhau có thể được
thực hiện song song.
- Nó giúp bạn tránh sự phức tạp bằng cách chia ứng dụng
thành ba đơn vị Model, View và Controller.
- Cung cấp hỗ trợ tốt nhất cho phát triển theo hướng thử
nghiệm.
- Nó hoạt động tốt cho các ứng dụng Web được hỗ trợ bởi
các nhóm lớn các nhà thiết kế và phát triển web.
- Cung cấp khả năng phân tách rõ ràng các mối quan tâm.
- Thân thiện với Công cụ Tìm kiếm (SEO).
- Tất cả các đối tượng được phân loại và đối tượng độc
lập với nhau để bạn có thể kiểm tra -chúng một cách
riêng biệt.
- Nhược điểm của việc sử dụng MVC
- Khó đọc, thay đổi, kiểm tra và sử dụng lại mô hình này.
- Không có hỗ trợ xác thực chính thức.
- Tăng độ phức tạp và tính kém hiệu quả của dữ liệu.
- Khó khăn khi sử dụng MVC với giao diện người dùng
hiện đại.
- Cần có nhiều người lập trình để tiến hành lập trình song
song.
- Cần có kiến thức về nhiều công nghệ.
- Bảo trì nhiều code trong Controller.

3.2.4. Thiết kế dữ liệu

Hình 3. 3 Biểu đồ lớp thực thể đầy đủ


Từ biểu đồ lớp thực thể đầy đủ, ta chuNn hoá các bảng thành
dạng 3NF:
• DanhMuc (MaDanhMuc, TenDanhMuc)
• TheLoaiSach (MaTheLoai, MaDanhMuc,
TenTLSanPham)
• Sach (MaSach, MaTheLoai, TenSach,
NhaXuatBan, SoTrang, TrongLuong, GiaBan,
KichThuoc, SoLuongTon)
• GioHang (MaGioHang, GhiChu)
• DonHang (MaDonHang,
MaKhachHang,TrangThai,SoLuong)
• Khach(MaKhach , Email, Pass, HoTen, SDT,
DiaChi)
• KhuyenMai(MaKM, TenKM, ThoiGian, MoTa)
Chú thích:
• Khóa chính: Chữ thẳng và gạch chân
• Khoá ngoài: Chữ in nghiêng

Hình 3. 4 Biểu đồ thực thể liên kết mức vật lý

Bảng 3. 1 Bảng Danh mục

Bảng 3. 2 Bảng Thể Loại Sách


Bảng 3. 3 Bảng Sách

Bảng 3. 4 Bảng Đơn hàng – Sản Phẩm

Bảng 3. 5 Bảng Đơn Hàng

Bảng 3. 6 Bảng Khách Hàng


Bảng 3. 7 Bảng Sản Phẩm – KM
Bảng 3. 8 Bảng Khuyến Mại

3.2. 5. Thiết kế các thành phần phần mềm


Sử dụng mã giả để mô tả thiết kế thành phần phần mềm:
3.2.5.1. Đăng ký
class Nguoi_dung:
def __init__(self, ten_dang_nhap, mat_khau):
self.ten_dang_nhap = ten_dang_nhap
self.mat_khau = mat_khau
self.dang_nhap = False

def dang_ky(self):
ten_dang_nhap = input("Nhập tên đăng nhập: ")
mat_khau = input("Nhập mật khNu: ")
# Kiểm tra các điều kiện đăng ký (ví dụ: độ dài tối thiểu
của mật khẩu)
# ...
self.ten_dang_nhap = ten_dang_nhap
self.mat_khau = mat_khau
print("Đăng ký thành công!")
class Tai_Khoan:
def __init__(self, email):
self.email = email
def getEmail(self):
return self.email
def setEmail(self, email_moi):
self.email = email_moi
print("Đã cập nhật email!")
3.2.5.2. Đăng nhập
class Nguoi_dung:
def __init__(self, ten_dang_nhap, mat_khau):
self.ten_dang_nhap = ten_dang_nhap
self.mat_khau = mat_khau
self.dang_nhap = False
def dang_nhap(self):
ten_dang_nhap = input("Nhập tên đăng nhập: ")
mat_khau = input("Nhập mật khNu: ")
if ten_dang_nhap == self.ten_dang_nhap and mat_khau
== self.mat_khau:
self.dang_nhap = True
print("Đăng nhập thành công!")
else:
print("Đăng nhập thất bại!")
def dang_xuat(self):
self.dang_nhap = False
print("Đăng xuất thành công!")
class Tai_Khoan:
def __init__(self, ma_tk):
self.ma_tk = ma_tk
def getMaTK(self):
return self.ma_tk
def setMaTK(self, ma_tk_moi):
self.ma_tk = ma_tk_moi
print("Đã cập nhật mã tài khoản!")
3.2.5.3. Thanh toán
class Nguoi_dung:
def __init__(self, ten_nguoi_dung):
self.ten_nguoi_dung = ten_nguoi_dung
def thanh_toan(self, don_hang):
tong_tien = don_hang.getTongTien()
phuong_thuc_thanh_toan = input("Chọn phương thức
thanh toán: ")
# Thực hiện thanh toán theo phương thức đã chọn
# ...
print(f"{self.ten_nguoi_dung} đã thanh toán thành công
{tong_tien} đơn hàng.")
class Don_hang:
def __init__(self):
self.san_pham = []
self.tong_tien = 0
def addSanPham(self, san_pham, gia):
self.san_pham.append(san_pham)
self.tong_tien += gia
def getTongTien(self):
return self.tong_tien
3.2.5.4. Tìm kiếm
class Nguoi_dung:
def __init__(self, ten_nguoi_dung):
self.ten_nguoi_dung = ten_nguoi_dung
def tim_kiem_san_pham(self, danh_sach_san_pham,
tu_khoa):
ket_qua = []
for san_pham in danh_sach_san_pham:
if tu_khoa.lower() in
san_pham.ten_san_pham.lower():
ket_qua.append(san_pham)
return ket_qua
class San_Pham:
def __init__(self, ma_san_pham, ten_san_pham):
self.ma_san_pham = ma_san_pham
self.ten_san_pham = ten_san_pham
def getMaSP(self):
return self.ma_san_pham
def setMaSP(self, ma_san_pham_moi):
self.ma_san_pham = ma_san_pham_moi
print("Đã cập nhật mã sản phNm!")
3.2.6. Thiết kế giao diện người sử dụng
3.2.6.1 Mô tả tổng quan
Chức năng đăng ký:
• Khi khách hàng đăng ký hệ thống sẽ hiển thị lên màn
hình giao diện thông tin đăng ký khi đó khách hàng cần
nhập đầy đủ thông tin gồm: họ, tên, email, mật khNu và kích
vào nút đăng kí (nếu không muốn đăng kí có thể ấn nút trở
về) sau đó hệ thống sẽ xác nhận thông tin, thông tin hợp lệ
hệ thống xác nhận tạo tài khoản còn không sẽ yêu cầu khách
hàng nhập lại thông tin.
Chức năng đăng nhập:
• Khi khách hàng đăng nhập hệ thống sẽ hiển thị lên màn
hình giao diện thông tin đăng nhập khi đó khách hàng cần
phải nhập đủ các thông tin gồm: email, mật khNu và kích
vào nút “Đăng nhập”. Còn nếu như khách hàng quên mật
khNu thì kích vào nút “Quên mật khNu” sau đó khách hàng
điền thông tin email và đợi hệ thống xác nhận sau đó nhập
mật khNu mới. Nếu như khách hàng không muốn tiếp tục
đăng nhập thì có thể kích nút “Quay lại”.

Chức năng thanh toán:


• Khi khách hàng đặt hàng: Hệ thống hiển thị lên màn
hình nhập thông tin khách hàng (tên khách hàng, ngày sinh,
địa chỉ, email,mã số thẻ thành viên , hình thức thanh toán)
và hiển thị thông tin sản phNm(mã sản phNm, tên sản phNm,
số lượng,kích thước ,hình ảnh, đơn giá) bên dưới. Khách
hàng nhập thông tin gồm: tên khách hàng, ngày sinh, địa chỉ,
số điện thoại, email, mã số thẻ thành viên, hình thức thanh
toán và kích vào nút “Gửi đơn hàng”. Hệ thống sẽ lưu thông
tin chi tiết (tên khách hàng, ngày sinh, địa chỉ, số điện thoại,
email, mã số thẻ thành viên, hình thức thanh toán) hiển thị
thông báo đặt hàng thành công.

Chức năng tìm kiếm sách:


• Khi khách hàng kích vào thanh tìm kiếm hệ thống sẽ
hiển thi lên màn hình tìm kiếm khi đó khách hàng nhập vào
các từ khóa có liên quan đến cuốn sách cần tìm rồi kích vào
nút tìm kiếm.Sau đó hệ thống sẽ đưa ra những cuốn sách có
liên quan đến từ khóa khách hàng nhập vào.Còn nếu như từ
khóa không liên quan đến cuốn sách nào hay không tồn tại
thì hệ thống sẽ đưa ra thông báo không tìm thấy kết quả
3.2.6.2 Hình ảnh giao diện

Giao diện đăng ký


Hình 3. 5 Giao diện đăng ký
Giao diện đăng nhập
Hình 3. 6 Giao diện đăng nhập
Giao diện thanh toán

Hình 3. 7 Giao diện thanh toán

Giao diện tìm kiếm


Hình 3. 8 Giao diện tìm kiếm

Kết luận chương 3


Trong chương 3, thông qua việc sử dụng phương pháp
hướng đối tượng kết hợp với các công cụ thiết kế để mô tả
và thiết kế kiến trúc phần mềm cho website nhà sách Cá
Chép. Qua quá trình này, sẽ tạo ra các thành phần cần thiết
cho phần mềm, bao gồm các lớp, đối tượng và các mối quan
hệ giữa chúng. Cùng với đó sẽ thiết kế giao diện người dùng
cho phần mềm, đảm bảo rằng nó cung cấp trải nghiệm tốt
cho người dùng khi tương tác với website.

KẾT LUẬN
Trên cơ sở những nghiên cứu và phân tích đã được trình bày,
việc thiết kế và xây dựng một website nhà sách Cá Chép có
thể mang lại nhiều lợi ích và tiềm năng phát triển cho doanh
nghiệp. Qua việc tạo ra một trang web chuyên nghiệp và
thân thiện với người dùng, nhà sách Cá Chép có thể thu hút
được đối tượng khách hàng rộng lớn, tăng cường quảng bá
và tiếp cận đến đám đông.
Đầu tiên, việc có một website nhà sách giúp mở rộng thị
trường và nâng cao sự hiện diện của doanh nghiệp trên
mạng. Với một giao diện trực quan, dễ sử dụng và tích hợp
các công cụ tìm kiếm tiện lợi, khách hàng có thể tìm kiếm
và mua sách một cách dễ dàng và thuận tiện từ bất kỳ đâu.
Điều này mang lại lợi ích cho nhà sách bằng cách thu hút
khách hàng không chỉ ở khu vực gần địa phương mà còn từ
xa.
Thứ hai, website cung cấp một nền tảng để quảng bá các sản
phNm và dịch vụ của nhà sách. Bằng cách trưng bày thông
tin chi tiết về các loại sách, tác giả, bài viết, đánh giá và
khuyến mãi, khách hàng có thể dễ dàng tìm hiểu và tạo niềm
tin vào chất lượng sản phNm của nhà sách. Đồng thời, việc
tích hợp các công cụ xã hội như chia sẻ trực tuyến và đánh
giá sách cũng giúp tạo ra sự tương tác và tạo đà tăng trưởng
cho doanh nghiệp.
Ngoài ra, một website nhà sách còn cho phép nhà sách quản
lý hiệu quả các thông tin liên quan đến đơn hàng, kho sách
và khách hàng. Các chức năng như giỏ hàng, thanh toán trực
tuyến và theo dõi đơn hàng giúp cải thiện trải nghiệm mua
sắm của khách hàng và tăng tính chuyên nghiệp của doanh
nghiệp.

SLIDE BÁO CÁO


PHIẾU ĐỀ XUẤT CHỦ ĐỀ BÀI TẬP LỚN
HỆ ĐẠI HỌC
1. Tên lớp: Nhập môn công nghệ phần mềm - 20222IT6082007 Khóa: 16
2. Tên nhóm: Nhóm 10 Số nhóm:10
3. Họ và tên thành viên trong nhóm:
(1) Họ và tên SV: Nguyễn Hữu Bắc Mã SV: 2021600159
(2) Họ và tên SV: Phạm Thanh Bình Mã SV: 2021600392
(3) Họ và tên SV: Dương Mạnh Đạt Mã SV: 2021601363
(4) Họ và tên SV: Vũ Minh Kha Mã SV: 2021608283
4. Tên ngành:
Kỹ thuật phần mềm
5. Chủ đề nghiên cứu:
Tìm hiểu mô hình quy trình thác nước và áp dụng vào phát triển phần mềm website
bán sách điện tử nhà sách Cá chép.
6. Mục đích:
Nghiên cứu, tìm hiểu về:
- Quy trình phát triển phần mềm.
- Mô hình quy trình thác nước
- Các hoạt động cơ bản trong phát triển sản phNm phần mềm thực tế
- Các phương pháp, công cụ, kỹ thuật trong các hoạt động phân tích, thiết kế
và kiểm thử phần mềm
- Lập kế hoạch phát triển sản phNm phần mềm dựa trên mô hình quy trình
phát triển phần mềm thực tế.
- Mục tiêu chính của phần mềm website bán sách nhà sách Cá chép là cung
cấp một nền tảng trực tuyến để khách hàng có thể dễ dàng mua sách và thực
hiện các giao dịch mua bán sách trực tuyến.
7. Mục tiêu thực hiện Bài tập lớn:
- Giải thích được các hoạt động và thứ tự ưu tiên của các hoạt động trong
quy trình phát triển phần mềm;
- Hiểu rõ được mô hình thác nước là gì.
- Nghiên cứu về mô hình quy trình thác nước và hiểu rõ các bước trong quy
thác nước.
- Nêu được khi nào thì nên sử dụng mô hình thác nước.
- Ưu và nhược điểm của mô hình thác nước.
- Vận dụng vào dự án dự án phát triển phần mềm website bán sách điện tử
nhà sách Cá chép

8. Kết quả thu được:


(1) Quyển Báo cáo Bài tập lớn, đính kèm các tài liệu (mẫu số 3 đến 7) vào
cuối quyển báo cáo Bài tập lớn;
(2) Slide báo cáo;
(3) Phiếu đề xuất chủ đề Bài tập lớn;
(4) Phiếu học nhóm (BM01);
(5) Kế hoạch thực hiện Bài tập lớn (BM02);
(6) Biên bản họp, làm việc nhóm (BM03);
(7) Đề cương nghiên cứu (Phụ lục B).
9. Nơi thực hiện: Tại trường
10. Ngày giao đề tài: 13 / 03 / 2023 Ngày hoàn thành: 25/05/
2023
11. Giáo viên hướng dẫn: Vũ Đình Minh

PHIẾU HỌC TẬP NHÓM


I. Thông tin chung
1. Tên lớp: 20222IT6082007 Khóa: 16
2. Tên nhóm: Nhóm 10
Họ và tên thành viên trong nhóm:
(1) Họ và tên SV: Dương Mạnh Đạt. Mã SV: 2021601363
(2) Họ và tên SV: Phạm Thanh Bình. Mã SV: 2021600392
(3) Họ và tên SV: Nguyễn Hữu Bắc. Mã SV: 2021600159
(4) Họ và tên SV: Vũ Minh Kha Mã SV: 2021608283

II. Nội dung học tập


1. Tên chủ đề: Tìm hiểu mô hình quy trình thác nước và
áp dụng vào phát triển phần mềm website bán sách điện tử
nhà sách Cá chép.
2. Hoạt động của sinh viên:
● Hoạt động 1: Đề xuất chủ đề nghiên cứu
● Nội dung:

● Viết đề xuất lựa chọn chủ đề nghiên cứu và xin ý

kiến người hướng dẫn về chủ đề nghiên cứu;


● Lập kế hoạch thực hiện bài tập lớn

● Đặt ra các quy tắc làm việc nhóm

● Mục tiêu/chuẩn đầu ra: Viết được phiếu đề xuất lựa

chọn chủ đề nghiên cứu và lập kế hoạch thực hiện


bài tập lớn.
● Hoạt động 2: Viết đề cương nghiên cứu.

● Nội dung:

● Viết đề cương nghiên cứu

● Bảo vệ đề cương nghiên cứu

+ Mục tiêu/chuNn đầu ra: Viết được đề cương nghiên


cứu.
● Hoạt động 3: Báo cáo tiến độ lần 1.

● Nội dung:

+ Mục tiêu/chuNn đầu ra: Viết được nội dung phần Mở


đầu và Chương 1: Tổng quan về đề tài
● Hoạt động 4: Báo cáo tiến độ lần 2.

Mục tiêu/chuNn đầu ra: Viết được nội dung Chương 2


và phần Kết luận: Phân tích và đặc tả yêu cầu phần
mềm
● Hoạt động 5: Báo cáo tiến độ lần 3.

Mục tiêu/chuNn đầu ra: Cuốn báo cáo Bài tập lớn
● Hoạt động 6: Nộp cuốn Báo cáo Bài tập lớn.

Mục tiêu/chuNn đầu ra: Hoàn thiện và nộp sản phẩm


nghiên cứu
3. Sản phNm nghiên cứu: Quyển báo cáo Bài tập lớn và
Slide báo cáo.
III. Nhiệm vụ học tập
1. Hoàn thành báo cáo Bài tập lớn theo đúng thời gian quy
định (từ ngày 13/03/2023 đến ngày 25/5/2023)
BIÊN BẢN LÀM VIỆC NHÓM
Tuần 1

Tuần 2
Tuần 3

Tuần 4
KẾ HOẠCH LÀM VIỆC NHÓM

1. Tên lớp: 20222IT6082007 Khóa: K16


2. Tên nhóm: Nhóm 10
3. Ngày bắt đầu: 10/04/2023 Ngày kết thúc 07/05/2023
4. Họ và tên thành viên trong nhóm:
(1) Họ và tên SV: Nguyễn Hữu Bắc Mã SV: 2021600159
(2) Họ và tên SV: Phạm Thanh Bình Mã SV: 2021600392
(3) Họ và tên SV: Dương Mạnh Đạt Mã SV: 2021601363
(4) Họ và tên SV: Vũ Minh Kha Mã SV: 2021608283
5. Tên chủ đề: Tìm hiểu mô hình quy trình bản Waterfall và
viết tài liệu đặc tả yêu cầu phần mềm website nhà sách Cá
Chép
Ngày bắt Ngày kết Ngày kết Người
Công Ngày bắt Trạng Ghi
# đầu dự thúc dự thúc thực thực
việc đầu thực tế thái chú
kiến kiến tế hiện
Thống
nhất đề
tài và
cách 10/04/202 Cả
1 10/04/2023 16/04/2023 16/04/2023 online
thức 3 nhóm
trao
đổi của
nhóm
Hoàn
thành 17/04/202 Cả
2 17/04/2023 23/04/2023 23/04/2023 online
chương 3 nhóm
1
Hoàn
thành 24/04/202 Cả
3 24/04/2023 30/04/2023 30/04/2023 online
chương 3 nhóm
2
Hoàn
thành 01/05/202 Cả
4 01/05/2023 07/05/2023 07/05/2023 online
chương 3 nhóm
3

You might also like