Ngày nay, với sự phát triển của công nghệ thông tin và máy tính đã được sử dụng rộng rãi trong các cơ quan, nhà máy, trường học… giúp cholàm việc được thực hiện tốt hơn, nhanh hơn.. Hơn
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
� ��
MÔN HỌC: NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Đề tài: Xây dựng phần mềm quản lý kho hàng của siêu thị Đức Thành
Giảng viên hướng dẫn: Th.S Lê Hữu Dũng
Nhóm sinh viên thực hiện: Vũ Đức Anh - 1810A04
Trần Thanh Minh - 1810A04 Nguyễn Tiến Dũng - 1710A06 Nguyễn Thị Minh Thư - 1810A01 Phan Văn Hào - 1810A01 Phạm Đình Ngọc - 1810A03 Nguyễn Thị Hoa - 1810A05
Đỗ Quang Linh - 1710A03 Hoàng Thanh Thúy - 1810A02
Hà Nội – 2021
Trang 2MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU 3
1.1 Tổng quan về đề tài 3
1.2 Giới thiệu về bài toán 3
1.3 Mục tiêu của đề tài 4
1.4 Các đề tài/hệ thống liên quan 4
1.5 Phương pháp phát triển - Agile 6
1.5.1 Khái niệm 6
1.5.2 Áp dụng mô hình với dự án phần mềm 6
1.6 Vai trò của thành viên dự án 9
1.7 Phân công nhiệm vụ 10
1.8 Kế hoạch triển khai chi tiết 14
CHƯƠNG 2 SẢN PHẨM CHUYỂN GIAO GIỮA CÁC PHA VÀ TIÊU CHUẨN ĐÁNH GIÁ 17
2.1 Danh mục tài liệu, sản phẩm 17
2.2 Quy tắc đặt tên 21
2.3 Xác định mục tiêu chất lượng của dự án 23
CHƯƠNG 3 XÁC ĐỊNH YÊU CẦU 25
3.1 Vai trò của việc Xác định yêu cầu đối với dự án phần mềm 25
3.2 Phương pháp đánh giá chất lượng của yêu cầu 25
3.3 Danh sách các yêu cầu của hệ thống 26
3.3.1 Yêu cầu chức năng 26
3.3.2 Yêu cầu phi chức năng 30
3.4 Kết quả đánh giá chất lượng các yêu cầu 31
CHƯƠNG 4 KIẾN TRÚC PHẦN MỀM 36
4.1 Vai trò của kiến trúc phần mềm với quá trình phát triển dự án phần mềm .36
4.2 Một số kiến trúc phần mềm phổ biến 37
4.3 Kiến trúc tổng thể của hệ thống 41
Trang 34.4 Lựa chọn công nghệ phát triển cho hệ thống 41
4.5 Kiến trúc phần mềm của hệ thống 42
4.6 Cơ sở dữ liệu mức vật lý của hệ thống 42
4.7 Một số thiết kế chi tiết theo kiến trúc được chọn 50
CHƯƠNG 5: XÂY DỰNG VÀ KIỂM THỬ HỆ THỐNG 59
5.1 Kết quả xây dựng 1 module/nhóm chức năng 59
5.1.1 Kết quả giao diện đã thiết kế 59
5.1.2 Kết quả chức năng đã thiết kế 60
5.2 Kiểm thử hệ thống 61
5.2.1 Tổng quan về kiểm thử phần mềm 61
5.2.2 Mô hình kiểm thử được áp dụng trong đề tài 62
5.2.3 Kế hoạch kiểm thử 63
5.2.4 Kết quả kiểm thử 66
CHƯƠNG 6: KẾT LUẬN 72
6.1 Đánh giá chất lượng phần mềm 72
6.1.3.1 Các định nghĩa về độ đo chất lượng phần mềm 73
6.2 Ưu & nhược điểm của đề tài 75
6.3 Hướng phát triển 78
TÀI LIỆU THAM KHẢO 79
PHỤ LỤC A: QUY TẮC ĐẶT TÊN 80
PHỤ LỤC B: CÁC BIỂU MẪU TÀI LIỆU THU THẬP ĐƯỢC 80
PHỤ LỤC C: CÁC BIÊN BẢN TIẾN ĐỘ 80
PHỤ LỤC D: CÁC BIÊN BẢN RÀ SOÁT KỸ THUẬT 80
PHỤ LỤC E: HỒ SƠ DỰ ÁN 80
Trang 4CHƯƠNG 1 GIỚI THIỆU
1.1 Tổng quan về đề tài
Trong thời đại ngày nay, Công nghệ thông tin đang được phát triển mạnh mẽ,nhanh chóng và xâm nhập vào nhiều lĩnh vực khoa học, kỹ thuật, cũng nhưtrong cuộc sống Nó trở thành công cụ đắc lực trong nhiều ngành như giaothông, quân sự, y học… và đặc biệt trong công tác quản lý nói chung và quán
cà phê nói riêng
Trước đây khi máy tính chưa được ứng dụng rộng rãi, các công việc quán
cà phê đều được làm thủ công rất mất thời gian và tốn kém về nhân lực cũngnhư tài chính Ngày nay, với sự phát triển của công nghệ thông tin và máy tính
đã được sử dụng rộng rãi trong các cơ quan, nhà máy, trường học… giúp cholàm việc được thực hiện tốt hơn, nhanh hơn Việc sử dụng máy tính vào côngtác quán cà phê là một yêu cầu cần thiết nhằm xóa bỏ những phương pháp lạchậu, lỗi thời, gây tốn kém về nhiều mặt
Hơn nữa do việc quản lý cà phê ngày càng trở nên rộng rãi với các quy mô vừa
và nhỏ được phát triển tự phát nên việc tạo ra một hệ thống quản lý thông minhgiúp hỗ trợ các cửa hàng quản lý dễ dàng hơn trong việc quản lý các công việc,quy trình và thống kê các mẫu biểu
Vì vậy, một quán cà phê muốn hoạt động hiệu quả, nhất là trong môitrường cạnh tranh khắc nghiệt của nền kinh tế thị trường hiện nay thì trước hếtphải có hệ thống quản lý tốt và chặt chẽ Đồng thời phải đưa ra được những đồuống, các món và có giá cả hợp lý đến với khách hàng
1.2 Giới thiệu về bài toán
Ngày nay quán cà phê là nơi mà hầu hết mọi người lựa chọn để ngồi thư giãn
và gặp mặt, vì các quán cà phê thường là nơi có không gian thoáng và yên tĩnh Bài toán được phát triển để hỗ trợ giải quyết các vấn đề hoạt động trong quán
cà phê Việc sử dụng máy tính vào công tác quản lý cà phê là một yêu cầu cầnthiết nhằm xóa bỏ những phương pháp lạc hậu, lỗi thời gây tốn kém về nhiều
Trang 5mặt Chính vì vậy, để nhà hàng hoạt động tốt, hiệu quả nhất là trong môi trườngcạnh tranh khốc liệt của thị trường thì hiện nay nhóm chúng em thực hiện đề tài
“Xây dựng hệ thống quản lý quán cà phê Memories” nhằm giải quyết các vấn
1.3 Mục tiêu của đề tài
- Đơn giản hóa các Quy trình nghiệp vụ, báo cáo và kiểm soát
- Đảm bảo một hệ thống đa thiết bị (máy tính, điện thoại, máy in) trên hệđiều hành window
- Đơn giản, thuận tiện và có hiệu suất cao
- Có tính bảo mật tốt, dễ dàng bảo trì, nâng cấp sửa chữa
- Lưu trữ thông tin chính xác với số lượng lớn
- Xây dựng 1 hệ thống có đầy đủ tính năng: phân quyền người dùng, lưutrữ thông tin khách hàng, nhân viên quản lý mặt hàng nhập về, quản lýhoá đơn, quản lý nguyên vật liệu
- Xây dựng được hệ thống giúp nhân viên, quản lý của nhà hàng làm việcnhanh chóng, hiệu quả hơn, giúp rút ngắn thời gian làm các công việc.
1.4 Các đề tài/hệ thống liên quan
Trang 6Đề tài tham khảo : Xây dựng phần mềm quản lý quán trà sữa Lee TeaLink : https://bitly.com.vn/4qgcz9
Giảng viên hướng dẫn: ThS Lê Hữu Dũng
Nhóm Sinh viên:
Ưu điểm:
Khảo sát đầy đủ và chặt chẽ nghiệp vụ tại cửa hàng
Đã cài đặt được đầy đủ các nghiệp vụ cơ bản tại cửa hàng và có thể hiện dưới
sơ đồ để dễ đối chiếu so sánh
Chưa triển khai tích hợp công nghệ xác thực
Chưa đảm bảo độ bảo mật cho tài khoản
Trang 71.5 Phương pháp phát triển - Agile
Do thời gian của dự án ngắn và dự án quản lý quán cà phê không phải là một
dự án quá khó khăn và phổ biến nên để xây dựng trong thời gian ngắn phươngpháp để nhóm có thể lựa chọn triển khai đó là mô hình Agile
1.5.1 Khái niệm
Phương thức phát triển phần mềm Agile là một tập hợp các phương thức pháttriển lặp và tăng dần trong đó các yêu cầu và giải pháp được phát triển thôngqua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng Agile là cáchthức làm phần mềm linh hoạt để làm sao đưa sản phẩm đến tay người dùngcàng nhanh càng tốt càng sớm càng tốt và được xem như là sự cải tiến so vớinhững mô hình cũ như mô hình “Thác nước (waterfall)” hay “CMMI”.Agile có vai trò vô cùng quan trọng trong việc thúc đẩy cho sự phát triển và đổimới của các dự án đã được thực hiện trước đó Chính điều này giúp cho cácdoanh nghiệp dễ dàng có được sự hài lòng từ chính những khách hàng củamình
Ngày nay khái niệm Agile không chỉ được sử dụng trong phạm vị của ngànhcông nghệ thông tin mà còn được sử dụng rộng rãi và phổ biến hơn ở các lĩnhvực khác, đặc biệt là trong lĩnh vực quản lý, sản xuất, kinh doanh, và còn córất nhiều các lĩnh vực khác nữa Agile giờ đây đã được trở thành một trongnhững phương thức quản lý dự án cho các công ty/doanh nghiệp trong thờiđiểm hiện tại
1.5.2 Áp dụng mô hình với dự án phần mềm
- Kiểm thử giúp dự án nhanh chóng được bàn giao
Ở dự án truyền thống, kiểm thử thường được xem là bước cuối kiểm tra chấtlượng sản phẩm Và việc ngăn chặn lỗi của phần mềm bị coi như trách nhiệmcủa QA/tester Bug được tìm thấy dù quan trọng hay không thì cũng sẽ làmchậm quá trình bàn giao sản phẩm
Trang 8Trong dự án Agile, chúng ta xây dựng một sản phẩm tốt ngay từ ban đầu, sửdụng kiểm thử để phản hồi trên ngay khi phát triển để làm thế nào cho sảnphẩm tương đồng với yêu cầu.
Nghe có vẻ là thay đổi nhỏ, nhưng thực chất thì việc này có ý nghĩa lớn Mốiliên hệ giữa tester và dev cần là sự cộng tác, tương hỗ lẫn nhau
- Kiểm thử không chỉ là một giai đoạn của dự án
Kiểm thử không phải là một giai đoạn trong quá trình phát triển Agile mà cầnđược tham gia sâu vào quy trình phát triển từ sớm
Cách tiếp cận Agile tập trung vào việc xác nhận những điều đúng đắn ngay từđầu, giảm sự cần thiết phải có nhiều kiểm thử viên (QA Tester) ở cuối quy trình
để đạt được kết quả Đảm bảo tiến độ dự án được liên tục
Cá nhân và sự tương hỗ quan trọng hơn quy trình
Với dự án truyền thống, tester làm việc độc lập và chịu trách nhiệm với toàn bộhoạt động test
Đối với Agile, các hoạt động test được thực hiện bởi toàn bộ dự án Để thựchiện được hết test thì cần thực hiện lặp lại qua các sprint
Tuy nhiên tới khi dự án lớn hoặc phức tạp lên thì sẽ có lúc không thể test hếtcác testcase đề ra và không thể thực hiện được mục tiêu ban đầu đề ra Có nghĩateam không thể thực hiện nhanh như họ nghĩ Vì nếu test chưa xong thì featurecũng không thể xong được, vì vậy để đẩy nhanh tốc độ thì cả team phải làmcùng nhau và đẩy nhanh phần chậm nhất, test cùng nhau
Trang 9Agile sử dụng nhiều test tự động vì nó trả lại phản hồi nhanh Test hồi quy thủcông mất nhiều thời gian thực hiện hơn, cần có nhân lực và có thể không thựchiện ngay lập tức được Kiểm tra thủ công vẫn còn quan trọng.
Tuy nhiên, đội Agile thường thấy rằng những thông tin phản hồi nhanh chóngtạo nên bởi hồi quy tự động là chìa khóa để phát hiện các vấn đề một cáchnhanh chóng, do đó làm giảm rủi ro và giảm việc phải làm lại
- Thỏa mãn mong muốn của khách hàng
Cho dù là test tự động hay test thủ công thì kịch bản test cần phải khớp với yêucầu và mong đợi của khách hàng Trước khi tốn thời gian tìm bug nên đặt câuhỏi để làm sáng tỏ mong muốn của khách hàng đối với chức năng sản phẩm
● Giản lược tài liệu kiểm thử
● Thay vì viết dài dòng thì Agile test
● Tái sử dụng checklist
● Tập trung vào bản chất của các thử nghiệm chứ không phải là các chi tiếtngẫu nhiên
● Sử dụng các tài liệu hướng dẫn đơn giản
● Nắm bắt những ý tưởng thử nghiệm trong điều lệ kiểm nghiệm thăm dò
- Chưa thể hoàn thành khi chưa qua giai đoạn kiểm thử
Trong dự án truyền thống có sự phân tách rõ ràng giữa dev và test, đó là đặctrưng cho việc dev nói “xong” với phần họ phát triển nhưng nó vẫn chưa đượctest Do đó thực tế là phần phát triển ấy vẫn chưa xong cho tới khi test xong vàbug được fix
Trang 10Đó là lý do vì sao mà phần mềm chỉ được để “90% done” Agile không tính là
“done” mà nó cần được sẵn sàng cho sự chấp nhận của Product Owner vàkhách hàng cho tới khi nó được thực thi và test
Trang 111.7 Phân công nhiệm vụ
Trang 151.8 Kế hoạch triển khai chi tiết
hiện
Thời gianbắt đầu
Thời giankết thúc
Đỗ QuangLinh15/01/2021 25/01/2021
Trang 16Đỗ QuangLinhNguyễn ThịMinh Thư
Đỗ QuangLinhNguyễn ThịMinh Thư
02/02/2021 06/03/2021
Trang 17- Kiểm thử xử
lý rủi ro
Trang 18CHƯƠNG 2 SẢN PHẨM CHUYỂN GIAO GIỮA CÁC PHA VÀ TIÊU CHUẨN ĐÁNH GIÁ
2.1 Danh mục tài liệu, sản phẩm
kê khi khảo sát, cóminh chứng các tàiliệu liệt kê
đã khảo sát,miêu tả chi tiết chứcnăng của bộ phận
Trang 19nghiệp vụ định dựa trên các
quy trình đã đượckhảo sát
5 Xác định
quá trình
nghiệp vụ
Các quá trìnhnghiệp vụ bám sát
Out In In
Trang 20khảo sát
10 Thiết kế
vật lý
Đưa ra được cácchức năng chia theoluồng dữ liệu mứcngười, máy
Có sơ đồ đặc tả hệthống theo kiến trúcđược chọn
Dữ liệu được chuẩnhóa theo chuẩn NF
Hạn chế thao tác khithực hiện các chứcnăng nhiều nhất 10
Out In In
Trang 21thao tácĐáp ứng được cácchức năng đã xácđịnh
Các lớp giao diệnđược chia nhỏ vàđược kiểm soát theoquyền người dùng
14 Thiết kế
kiểm soát
Mã hóa thông tincác mã khóa chínhcủa các trường dữliệu trong các bảng
dữ liệuNgăn chặn việc truyxuất trái phép từngười dùng
đã đưa ra và đápứng được với côngnghệ đã được khảosát từ trước
Out In
gồm:
Tính thực thi củacác đơn vị chứcnăng đã xác định
In Out
Trang 22Tính thực thi củacác quy trình đã đưa
2 i Int - dữ liệu kiểu số nguyên
3 b Binary - dữ liệu kiểu nhị phân
4 s String - dữ liệu kiểu chữ, ký tự
5 dm Danh mục - dành cho các bảng danh mục, thường là khóa
cứng
6 t Text - dữ liệu kiểu text
Trang 237 f Float - dữ liệu kiểu float
8 PK_ Primary key - khóa chính của bảng
10 d Date - dữ liệu kiểu ngày, tháng
Nếu trong một không gian tên được nhập theo mặc định trong một dự án,không cần phải đáp ứng đầy đủ các tên từ không gian tên đó Tên đủ điều kiện
có thể bị ngắt sau dấu chấm (.) nếu chúng quá dài so với một dòng
Gọi phương thức bằng cách sử dụng chữ ký được xác định bởi đại biểu Func
<> hoặc Action <>
Sử dụng câu lệnh try-catch cho hầu hết các xử lý ngoại lệ
Đơn giản hóa mã của bạn bằng cách sử dụng câu lệnh C # using Nếu bạn cómột try-final trong đó mã duy nhất trong khối cuối cùng là lệnh gọi đếnDispose thay vào đó, hãy sử dụng một câu lệnh using
Để tránh các trường hợp ngoại lệ và tăng hiệu suất bằng cách bỏ qua các sosánh không cần thiết, sử dụng && thay cho & và || thay vì | khi bạn thực hiện
so sánh
Sử dụng một trong những hình thức ngắn gọn của việc tạo đối tượng.Nếu bạn đang xác định một trình xử lý sự kiện mà bạn không cần xóa sau này,hãy sử dụng lambda biểu hiện
Gọi các thành viên tĩnh bằng cách sử dụng tên lớp: ClassName.StaticMember.Bằng cách này làm cho mã dễ đọc hơn bằng cách làm rõ ràng truy cập tĩnh.Không đủ tiêu chuẩn là static member được định nghĩa trong một lớp cơ sở vớitên của một lớp dẫn xuất Trong khi mã đó biên dịch, khả năng đọc mã dễ gâyhiểu lầm và mã có thể bị hỏng trong tương lai nếu bạn thêm đối tượng tĩnh cócùng tên với lớp dẫn xuất
Đổi tên thuộc tính khi tên thuộc tính trong kết quả sẽ không rõ ràng
Trang 24Ví dụ: nếu truy vấn của bạn trả về tên khách hàng và ID nhà phân phối, thayvào đó khi để chúng là Tên và ID trong kết quả, hãy đổi tên chúng để làm rõrằng Tên là tên của khách hàng và ID là ID của nhà phân phối.
Căn chỉnh các mệnh đề truy vấn dưới mệnh đề from
Sử dụng mệnh đề where trước các mệnh đề truy vấn khác để đảm bảo rằng cácmệnh đề truy vấn sau hoạt động trên tập hợp dữ liệu đã lọc, giảm bớt.[1]
2.3 Xác định mục tiêu chất lượng của dự án
HỆ THỐNG CHUẨN ÁP DỤNG CHO NGÀNH CÔNG NGHỆ PHẦN MỀM[2]
ISO 9001-2015: Bộ tiêu chuẩn quốc tế được xây dựng nhằm trợ giúp, địnhhướng cho các tổ chức và mọi loại hình, quy mô trong việc xây dựng, áp dụng
và đảm bảo chất lượng
ISO 9000: Bộ tiêu chuẩn ISO 9000 là Bộ tiêu chuẩn quốc tế được xây dựngnhằm trợ giúp các tổ chức, thuộc mọi loại hình và quy mô trong việc xây dựng,
áp dụng và vận hành các hệ thống quản lý chất lượng có hiệu lực
ISO 27000: Bộ tiêu chuẩn ISO 27000 là Bộ tiêu chuẩn quốc tế về Hệ thốngquản lý An toàn thông tin
ITIL là viết tắt của Information Technology Infrastructure Library – Thư viện
cơ sở hạ tầng CNTT, là bộ tập hợp các best practice của Quản lý dịch vụ CNTT(ISMS)
CMMI là viết tắt của Capability Maturity Model Integration – Mô hình nănglực trưởng thành tích hợp là khuôn khổ cải tiến quy trình dành cho các doanhnghiệp phần mềm
Trang 25Thông tư 28/2010/TT-BTTTT ban hành ngày 13/12/2010: Quy định nội dunggiám sát thi công dự án CNTT sử dụng nguồn vốn ngân sách nhà nướcAgile/ Scrum/ Lean
Đánh giá chất lượng phần mềm có 2 phương pháp:
Đánh giá hậu kiểm: cuối giai đoạn sẽ xem xét và đánh giá kết quả công việcthực
tế đạt được so với mục tiêu đề ra
Đánh giá trong quá trình: đi cùng quá trình sản xuất phần mềm và thực hiệnđánh
giá chất lượng trong quá trình
Trang 26CHƯƠNG 3 XÁC ĐỊNH YÊU CẦU
3.1 Vai trò của việc Xác định yêu cầu đối với dự án phần mềm
Với mỗi một dự án phát triển phần mềm thì việc xác định yêu cầu là việcquan trọng và cần làm đầu tiên sau đó mới tới các pha tiếp theo Vai trò củangười phân tích thiết kế hệ thống là phải hiểu rõ các yêu cầu chức năng và phichức năng của phía khách hàng và các bên liên quan Từ đó phân tích và thiếtkế các chức năng chương trình phù hợp, đáp ứng đúng các yêu cầu của kháchhàng và các bên liên quan
Bằng việc xác định yêu yêu cầu đối với dự án phần mềm sẽ giúp cho dự ánphần mềm:
- Giảm thiểu chi phí cần thiết để mở rộng
- Giảm thiểu số lần làm lại trong quá trình thiết kế
- Giảm thiểu khả năng sai sót trong quá trình xây dựng thiết kế
- Hạn chế dữ liệu hỗn độn trong dự án
- Gia tăng khả năng thỏa mãn khách hàng
- Tránh dư thừa và sai sót dữ liệu
3.2 Phương pháp đánh giá chất lượng của yêu cầu
Hầu hết các công ty phát triển phần mềm có một mẫu chuẩn “Kế hoạchquản lý yêu cầu” cho tất cả các dự án Tuy nhiên, nó dùng để tham khảo choviệc phát triển kế hoạch quản lý yêu cầu cho một dự án cụ thể Vì thế, phạm vicủa kế hoạch sẽ giúp xác định mục tiêu “Kế hoạch quản lý yêu cầu” được sửdụng
Các phạm vi của kế hoạch quản lý yêu cầu của cần xác định những nộidung ví dụ như:
- Trọng tâm chính của tài liệu này là dành cho quản lý yêu cầu đối với dự án
“Quản lý quán cà phê”
Trang 27- Người quản lý dự án để làm sáng tỏ các yêu cầu chất lượng, giám sát vàkiểm soát chất lượng của phần mềm trong quá trình phát triển và đưa ra cácquyết định đảm bảo rằng chất lượng yêu cầu được xây dựng.
- Người thiết kế phần mềm xác định các đặc tính riêng phải được xây dựngtrong phần mềm hoặc thay đổi nhằm thỏa mãn các yêu cầu chất lượng.Phạm vi của kế hoạch quản lý yêu cầu rất cần thiết để chỉ ra thông tin gìcần tài liệu hoá hoặc không nằm trong phạm vi công việc
Các thành phần mà một bản quản lý yêu cầu cần phải có:
- Các công cụ sử dụng để quản lý yêu cầu
- Ma trận truy vết yêu cầu – Requirement Traceability matrix
- Các thuộc tính của yêu cầu
- Các báo cáo của yêu cầu
3.3 Danh sách các yêu cầu của hệ thống
3.3.1 Yêu cầu chức năng
- Bộ phận nhà bếp sẽ lập yêu cầu nhập nguyên liệu (MB5) Sau đó,gửi yêu cầu nhập nguyên liệu đến quản lý rồi chờ quản lý phê duyệt
- Bộ phận nhà bếp tiếp nhận đơn đặt món (MB3) từ bộ phận phục vụ
và pha chế theo công thức đã được cho (MB6)
- Bộ phận nhà bếp cần nắm bắt, theo dõi nguyên liệu trong nhà bếp
và cập nhật vào phiếu kiểm kê (MB2) và lưu thông tin kho nhà bếp
- Bộ phận nhà bếp phải nắm bắt theo dõi được thực đơn, đồ uốngtrong menu (MB1)
Trang 28- Bộ phận phục vụ cần giới thiệu đồ uống có trong menu (MB1) chokhách và lập đơn đặt (MB3) cho khách hàng.
- Bộ phận kế toán - thu ngân phải thực hiện thanh toán (MB3), inhóa đơn cho khách hàng theo 3 điều kiện:
- Bộ phận quản lý, kế toán - thu ngân có thể tìm kiếm được báo cáodoanh thu (MB7)
- Bộ phận nhà bếp khi muốn bổ sung món sẽ lập phiếu bổ sung món(MB4) và gửi cho bộ phận quản lý xét duyệt
3.3.1.1 Danh sách chức năng:
1 Đăng nhập
2 Đăng xuất
3 Tạo tài khoản
4 Cập nhật thông tin tài khoản
5 Chỉnh sửa trạng thái tài khoản
6 Phân quyền tài khoản
7 Lập hóa đơn
8 Thanh toán hóa đơn
9 Lập danh sách nguyên liệu nhập
Trang 2910 Cập nhập nguyên liệu
11 Tìm kiếm nguyên liệu
12 Kiểm kê nguyên liệu
13 Tạo công thức pha chế
14 Cập nhật công thức pha chế
15 Tìm kiếm công thức pha chế
16 Tìm kiếm yêu cầu pha chế
22 Thống kê doanh thu ngày, tháng, năm
23 Thống kê lãi suất ngày, tháng, năm3.3.1.2 Nhóm chức năng
Quản lý tài khoản
Trang 303.3.1.3 Sơ đồ gom nhóm chức năng
Hình 1 Sơ đồ phân rã chức năng
Trang 313.3.2 Yêu cầu phi chức năng
Định nghĩa: Yêu cầu phi chức năng (non-functional requirements) là
các ràng buộc về các loại giải pháp thỏa mãn các yêu cầu chức năng Hay
nó là các đặc tính mà hệ thống cần có Nó khác với yêu cầu chức năng lànhững gì phần mềm phải làm, như vậy theo nhóm em hiểu thì nó là nhữngyêu cầu “nên” có mà hệ thống mới cần đáp ứng
Với các chức năng miêu tả như trên, để hệ thống hoạt động tốt thì hệthống mới nên đáp ứng một số các yêu cầu sau:
- Tính tin cậy (Reliability)
+ Có thể chỉnh sửa order khách nếu bị đặt sai khi đơn chưa được thanhtoán
+ Kết quả tìm kiếm, lọc đảm bảo sát hoặc gần giống với dữ liệu đưa vàotìm kiếm
+ Khi xảy ra các sự cố làm ngừng vận hành hệ thống, hệ thống đảm bảophục hồi 100% trong vòng 24h
+ Có lưu lịch sử truy vết khi thực hiện truy vấn CSDL, truy cập chứcnăng
- Tính hiệu năng (Performance)
+ Giảm thời gian truy cập, xử lý yêu cầu từ người dùng khi tìm kiếmbằng cách thu hẹp thông tin cần thiết để tra cứu:
● Phải có ít nhất từ 3 ký tự trở lên khi tìm kiếm
● Với các trường dữ liệu nhỏ, cố định sử dụng các công cụdanh sách để lựa chọn nhanh chóng
+ Mỗi hoá đơn sẽ lưu trữ chi tiết theo ngày, tháng, năm
+ Khả năng chịu tải của hệ thống khi có nhiều người truy cập phải đảmbảo hoạt động bình thường
- Tính hữu dụng (Usability)
+ Có tài liệu hướng dẫn sử dụng, đào tạo, vận hành hệ thống
Trang 32+ Giao diện hệ thống phải đơn giản, dễ dàng nhận biết, có tính thốngnhất.
+ Truy cập hệ thống phải đơn giản dễ dàng
+ Xuất báo cáo phải đơn giản, chuẩn xác, hỗ trợ xuất các file định dạng
hỗ trợ word, excel
+ Hệ thống phải luôn sẵn sàng với việc nhập, xuất dữ liệu sau mỗi ngày(12 giờ) có thể sao lưu dữ liệu để tránh trường hợp mất dữ liệu của kháchhàng
- Tính bảo mật (Security)
+ Các thông tin như thông tin khách hàng (gồm địa chỉ, số điện thoại),thông tin nhân viên, thông tin hóa đơn, thông tin nhập xuất, thông tin doanhthu… phải được hệ thống bảo vệ chống rò rỉ thông tin ra bên ngoài.+ Hệ thống phải có thể sao lưu dữ liệu để tránh bị mất dữ liệu khi gặp
sự cố và khả năng khôi phục dữ liệu nhanh hơn
+ Các tài khoản, mật khẩu người dùng như nhân viên được cài đặttrong hệ thống phải không quá đơn giản và thay đổi định kỳ Mật khẩu phảiđược mã hóa theo phương thức SHA1 và tên tài khoản không được phéptrùng lặp
+ Yêu cầu xác thực khi truy cập hệ thống
+ Có lưu dấu truy vết truy cập dữ liệu (gồm thời gian, id tài khoản)
- Tính tương thích (Compatibility)
+ Hệ thống mới phải tương thích với quy trình thủ công cũ (đặc biệt làyêu cầu nhập nguyên liệu, lập hóa đơn thanh toán cho khách hàng).+ Tương thích với hệ điều hành Windows từ Win 7 (vì phần lớn cácmáy tính trong nhà hàng cài hệ điều hành Windows) và hỗ trợ các loại máy
in không màu các kích cỡ
+ Dễ dàng chuyển đổi khi nâng cấp, thay đổi hệ điều hành
- Khả năng bảo trì (Maintainability)
Trang 33+ Có thể đóng, mở hệ thống để tiến hành bảo trì, nâng cấp.+ Có đánh dấu phiên bản để khôi phục, theo dõi.
3.4 Kết quả đánh giá chất lượng các yêu cầu
Trang 34- Rà soát các chức năng theo các yêu cầu chức năng.
Nhóm người dùng
Chức năng
Bộ phậnquản lý
Bộ phậnnhà bếp
Bộ phận kếtoán thungân
Bộ phậnphục vụ
Lập yêu cầu nhập
phiếu nguyên liệu
x
Duyệt yêu cầu nhập
phiếu nguyên liệu
Trang 35Tìm kiếm nhân viên x
Trang 36Thông tin
bàn
kế toánthu ngân
quản lý
Danh sách yêu cầu nhập
- Rà soát các yêu cầu phi chức năng:
Các kịch bản sao lưu, phục hồi dữ liệu, ứng phó rủi ro, kiểm tra an toànthông tin:
+ Sao lưu phục hồi dữ liệu: tránh trường hợp dữ liệu đang nhập bị mất đikhi mất điện hay hỏng phần cứng Xây dựng server dự phòng, dữ liệu tựđộng sao lưu lại và khi mất điện hay mất dữ liệu tại máy đang làm việc,người dùng có thể truy cập vào server dự phòng để lấy lại
+ Ứng phó rủi ro: Trường hợp nếu một tài khoản nào đó đăng nhập vào hệthống cần phải có xác minh khi đăng nhập và mật khẩu được thay đổi 6tháng một lần, để đảm bảo khi bị lộ tài khoản người lạ cũng không thểđăng nhập được
Trang 37Chế độ mã hoá đối với những thông tin nhạy cảm/mật :
+ Mã hoá mật khẩu bằng mã hoá bằng key xác thực+ Mật khẩu phải tối thiểu 8 ký tự và được đổi 6 tháng một lần
Trang 38❖Một kiến trúc xác định một tập hợp các ràng buộc khi thực hiện tiếp theo.
❖Kiến trúc quyết định cấu trúc của một tổ chức, hoặc ngược lại
❖Một kiến trúc có thể cung cấp cơ sở cho việc phát triển
❖Một kiến trúc là yếu tố quan trọng cho phép người thiết kế và người quản
lý dự án lập luận về chi phí và tiến độ
❖Một kiến trúc có thể được tạo ra như một mô hình có thể chuyển nhượng,
có thể tái sử dụng, hình thành
❖trung tâm của một dòng sản phẩm
❖Phát triển dựa trên kiến trúc tập trung sự chú ý vào việc lắp ráp các thànhphần, thay vì chỉ đơn giản là tạo ra chúng
❖Bằng cách hạn chế các lựa chọn thay thế thiết kế, kiến trúc phân luồng sựsáng tạo của các nhà phát triển, giảm độ phức tạp của thiết kế và hệthống
❖Một kiến trúc có thể là nền tảng để đào tạo một thành viên mới trongnhóm
Trang 394.2 Một số kiến trúc phần mềm phổ biến
1 Layered pattern
Mẫu kiến trúc này có thể được sử dụng trong các chương trình cấu trúc mà cóthể được phân tách thành các nhóm gồm nhiều công việc nhỏ, mỗi nhóm ở cácmức độ trừu tượng hóa cụ thể Mỗi tầng cung cấp các dịch vụ cho các tầng kếtiếp cao hơn
Phổ biến nhất là hệ thống thông tin chung gồm 4 tầng như sau:
❏Tầng trình diễn – Presentation layer (còn được gọi là UI layer)
❏Tầng ứng dụng – Application layer (còn được gọi là service layer)
❏Tầng xử lý logic nghiệp vụ – Business logic layer (còn được gọi làdomain layer)
❏Tầng truy xuất dữ liệu – Data access layer (còn được gọi là persistencelayer)
Sử dụng: các ứng dụng desktop nói chung và các ứng dụng web thương mạiđiện tử
2 Shared-data (or repository) pattern
Mẫu này bao gồm các thành phần và trình kết nối tạo, lưu trữ và truy cập dữliệu liên tục Kho lưu trữ thường có dạng cơ sở dữ liệu (thương mại) Các trìnhkết nối là các giao thức để quản lý dữ liệu, chẳng hạn như SQL
3 Multi-tier pattern
Mô tả cách phân phối và cấp phát các thành phần của hệ thống trong các tậpcon riêng biệt của phần cứng và phần mềm, được kết nối bởi một số phươngtiện truyền thông Mô hình này chuyên về cấu trúc triển khai chung (phân bổphần mềm-phần cứng)
4 Pipe-filter pattern
Mẫu này có thể được sử dụng trong các hệ thống cấu trúc mà gồm các thủ tục
và xử lý 1 luồng dữ liệu Mỗi bước xử lý được khép kín bên trong 1 thành phầnlọc (filter) Dữ liệu cần xử lý được truyền qua đường ống (pipes) Các đườngống này có thể được sử dụng cho việc buffer hoặc cho mục đích đồng bộ hóa
Trang 40This pattern can be used to structure systems which produce and process astream of data Each processing step is enclosed within a filter component Data
to be processed is passed through pipes These pipes can be used for buffering
or for synchronization purposes
Các server publish các năng lực của nó (các dịch vụ và các thuộc tính) chobroker Các client yêu cầu 1 dịch vụ từ broker và broker sẽ điều hướng client tớidịch vụ phù hợp tương ứng từ bộ đăng ký của nó
Sử dụng : phần mềm Message broker như Apache ActiveMQ Apache Kafka, ,RabbitMQ and JBoss Messaging
6 Competence center and platform
Là các mẫu chuyên biệt hóa cấu trúc phân công công việc của hệ thống phầnmềm Trong trung tâm năng lực, công việc được phân bổ cho các địa điểm tùythuộc vào chuyên môn kỹ thuật hoặc lĩnh vực đặt tại một địa điểm Ví dụ: thiết
kế giao diện người dùng được thực hiện tại một địa điểm có các chuyên gia kỹthuật về khả năng sử dụng Trong nền tảng, một trang web được giao nhiệm vụphát triển các tài sản cốt lõi có thể tái sử dụng của dòng sản phẩm phần mềm(xem Chương 25) và các trang web khác phát triển các ứng dụng sử dụng tàisản cốt lõi
7 Event-bus pattern