ỨNG DỤNG CHIA SẺ CÔNG THỨC NẤU ĂN YUMMY TRÊN IOS
Niên khóa: 2011 – 2015
VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐINH NGỌC LÊ QUÂN
XÂY DỰNG ỨNG DỤNG CHIA SẺ CÔNG THỨC NẤU ĂN
YUMMY TRÊN HỆ ĐIỀU HÀNH IOS
Chuyên ngành: Công Nghệ Thông Tin
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – Năm 2016
VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐINH NGỌC LÊ QUÂN
XÂY DỰNG ỨNG DỤNG CHIA SẺ CÔNG THỨC NẤU ĂN
YUMMY TRÊN HỆ ĐIỀU HÀNH IOS
Chuyên ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn: TS. Nguyễn Đức Tuấn
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – Năm 2016
VIỆN ĐẠI HỌC MỞ HÀ NỘI
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
Độc lập – Tự do – Hạnh phúc
---------------------------------------
------------------------------------
Hà Nội, ngày
tháng
năm 2016
NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
Họ và tên:
Đinh Ngọc Lê Quân
Giới tính: Nam
Ngày, tháng, năm sinh: 30/04/1993
Nơi sinh: Hà Nội
Chuyên ngành:
Mã SV: 11A100292
Công nghệ thông tin
TÊN ĐỀ TÀI
Xây dựng ứng dụng chia sẻ công thức nấu ăn YMMY
trên hệ điều hành IOS
NHIỆM VỤ VÀ NỘI DUNG
Nghiên cứu, tìm hiểu hệ điều hành IOS. Xây dựng ứng dụng chia sẻ công
thức nấu ăn trên hệ điều hành IOS.
NGÀY GIAO NHIỆM VỤ:24/08/2016
NGÀY HOÀN THÀNH NHIỆM VỤ:20/11/2016
CÁN BỘ HƢỚNG DẪN: TS. Nguyễn Đức Tuấn
Nội dung và đề cương Đồ án đã được Hội đồng chuyên ngành thông qua.
Ngày
CÁN BỘ HƢỚNG DẪN
tháng
năm 2016
KHOA CÔNG NGHỆ THÔNG TIN
NHIỆM VỤ ĐƢỢC GIAO
Đinh Ngọc Lê Quân
-
Khảo sát thực tế
-
Phân tích và thiết kế hệ thống.
-
Xây dựng ứng dụng phía Server - side.
-
Nghiên cứu ngôn ngữ Objective-C.
-
Xây dựng ứng dụng chạy trên thiết bị phía Client – side.
-
Tổng hợp và xây dựng báo cáo đồ án.
LỜI NÓI ĐẦU
Lời đầu tiên em xin gửi đến thầy Nguyễn Đức Tuấn, người đã trực tiếp
hướng dẫn em trong suốt quá trình thực hiện đồ án của mình. Những nhận
xét, đánh giá và nhất là những chia sẻ kinh nghiệm làm việc của thầy là
những thông tin vô cùng hữu ích cho việc hoàn thành dự án của em. Em xin
trân trọng cảm ơn thầy, chúc thầy và gia đình luôn luôn mạnh khỏe và đạt
được mọi thành công trong cuộc sống.
Bên cạnh đó, em cũng xin cảm ơn các thầy cô thuộc hội đồng kiểm tra
tiến độ và chuyên môn đồ án tốt nghiệp những lời khuyên, góp ý, đánh giá và
động viên của các thầy cô đã giúp em rất nhiều trong quá trình hoàn thành đồ
án, giúp em thấy được những sai sót mắc phải. Em xin chúc các thầy cô và gia
đình mạnh khỏe, luôn luôn là người lái đó ân cần dìu dắt các thế hệ tiếp theo
của FITHOU trưởng thành.
Đinh Ngọc Lê Quân
Hà Nội, tháng 11 năm 2016
MỤC LỤC
Chƣơng 1 KHẢO SÁT HỆ THỐNG .................................................................. 1
1.1. Khảo sát thực tế ...................................................................................... 1
1.2. Nhiệm vụ cơ bản .................................................................................... 2
1.3. Quy trình sử dụng................................................................................... 2
Chƣơng 2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG ................................ 4
2.1. Sơ đồ phân rã chức năng ........................................................................ 4
2.1.1. Xác định chức năng......................................................................... 4
2.1.2. Gom nhóm chức năng ..................................................................... 5
2.1.3. Sơ đồ phân rã chức năng hệ thống .................................................. 8
2.2. Sơ đồ luồng dữ liệu ................................................................................ 9
2.2.1. Ký hiệu sử dụng .............................................................................. 9
2.2.2. DFD mức khung cảnh ..................................................................... 9
2.2.3. DFD mức đỉnh .............................................................................. 10
2.2.4. DFD mức dưới đỉnh ...................................................................... 10
2.3. Đặc tả chức năng chi tiết ...................................................................... 13
Chƣơng 3 PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU ...................................... 25
3.1. ER mở rộng .......................................................................................... 25
3.1.1. Xác định kiểu thực thể, kiểu thuộc tính ........................................ 25
3.1.2. Xác định kiểu liên kết ................................................................... 27
3.1.3. Mô hình ER mở rộng .................................................................... 28
3.2. Chuẩn hóa dữ liệu ................................................................................ 29
3.2.1. Chuyển đổi từ ER mở rộng về ER kinh điển ................................ 29
3.2.2. Chuyển đổi từ ER kinh điển về ER hạn chế ................................. 34
3.2.3. Chuyển đổi từ ER hạn chế về mô hình quan hệ............................ 38
3.3. Đặc tả bảng dữ liệu trong mô hình quan hệ ......................................... 41
3.4. Hoàn thiện quá trình phân tích ............................................................. 48
Chƣơng 4 THIẾT KẾ HỆ THỐNG .................................................................. 52
4.1. Thiết kế tổng thể................................................................................... 52
4.1.1. Phân định công việc giữa người và máy ....................................... 52
4.2. Thiết kế kiểm soát ................................................................................ 54
4.2.1. Xác định nhóm người dùng .......................................................... 54
4.2.2. Phân định quyền hạn nhóm người dùng ....................................... 54
4.3. Thiết kế CSDL vật lý ........................................................................... 57
4.3.1. Mô hình dữ liệu hệ thống .............................................................. 57
4.3.2. Đặc tả bảng dữ liệu ....................................................................... 57
4.4. Thiết kế kiến trúc chương trình và giao diện ....................................... 69
4.4.1. Thiết kế kiến trúc .......................................................................... 69
4.4.2. Thiết kế màn hình giao diện.......................................................... 70
Chƣơng 5 TRIỂN KHAI.................................................................................... 87
5.1. Cơ sở lý thuyết ..................................................................................... 87
5.1.1. JSON và ứng dụng ........................................................................ 87
5.2. Lập trình ứng dụng xử lý phía Server .................................................. 91
5.2.1. Cơ sở dữ liệu của hệ thống............................................................ 91
5.2.2. Lập trình Website hệ thống ........................................................... 91
5.3. Lập trình ứng dụng xử lý phía thiết bị ................................................. 92
Chƣơng 6 TỔNG KẾT VÀ ĐÁNH GIÁ .......................................................... 97
6.1. Cấu hình yêu cầu .................................................................................. 97
6.2. Kết quả đạt được .................................................................................. 97
6.3. Các mặt hạn chế ................................................................................... 97
TÀI LIỆU THAM KHẢO ................................................................................. 99
TÓM TẮT ĐỒ ÁN
- Họ và tên: Đinh Ngọc Lê Quân
- Chuyên ngành: Công nghệ thông tin
Khóa: 11
- Cán bộ hướng dẫn: TS.Nguyễn Đức Tuấn
- Tên đề tài: Xây dựng ứng dụng chia sẻ công thức nấu ăn YUMMY trên
hệ điều hành iOS.
- Tóm tắt: Thực hiện đồ án lần này đã giúp em có thêm những kiến thức mới
về lập trình iOS, đó là sử dụng JSON để thao tác với Web server và sử
dụng ngôn ngữ lập trình objective-C trong việc viết ứng dụng cho các thiết
bị iDevice. Qua đó đã giúp em tìm hiểu thêm được rất nhiều kiến thức về
việc xây dựng và triển khai một ứng dụng iOS ra thực tế.
DANH MỤC CÁC CHỮ VIẾT TẮT
STT
Tên viết tắt
Tên đầy đủ
Bussiness Function
Dịch ra Tiếng Việt
Sơ đồ phân rã chức năng
1
BFD
2
C
Char
3
CSDL
Cơ sở dữ liệu
4
D
Date
Ngày tháng
5
DFD
Data Flow Diagram
Sơ đồ luồng dữ liệu
6
ER
Entity Relationship
Thực thể quan hệ
7
FK
Foreign Key
Khóa ngoại
8
MT
Máy tính
9
N
Number
Số
10
PK
Primary Key
Khóa chính
11
TC
Thủ công
Diagram
Ký tự
DANH MỤC BẢNG BIỂU
Bảng 2.1. Đặc tả đăng ký tài khoản ................................................................ 13
Bảng 2.2. Đặc tả đăng nhập tài khoản............................................................. 14
Bảng 2.3. Đặc tả xác thực tài khoản................................................................ 14
Bảng 2.4. Đặc tả thay đổi thông tin cá nhân ................................................... 15
Bảng 2.5. Đặc tả đổi mật khẩu ........................................................................ 15
Bảng 2.6. Đặc tả hiện công thức đã tạo .......................................................... 16
Bảng 2.7. Đặc tả hiện công thức đã đánh dấu ................................................. 16
Bảng 2.8. Đặc tả follow người dùng ............................................................... 17
Bảng 2.9. Đặc tả tạo công thức ....................................................................... 17
Bảng 2.10. Đặc tả tạo các bước trong công thức ............................................ 18
Bảng 2.11. Đặc tả nhận xét (comment) với mỗi công thức ............................ 18
Bảng 2.12. Đặc tả yêu thích (like) với mỗi công thức .................................... 19
Bảng 2.13. Đặc tả đánh dấu (Bookmark) với mỗi công thức ......................... 19
Bảng 2.14. Đặc tả cập nhật công thức` ........................................................... 20
Bảng 2.15. Đặc tả xóa công thức .................................................................... 20
Bảng 2.16. Đặc tả cập nhật bước làm ............................................................. 21
Bảng 2.17. Đặc tả xóa bước làm ..................................................................... 21
Bảng 2.18. Đặc tả sửa nhận xét ....................................................................... 22
Bảng 2.19. Đặc tả xóa nhận xét....................................................................... 22
Bảng 2.20. Đặc tả bỏ yêu thích ....................................................................... 23
Bảng 2.21. Đặc tả bỏ đánh dấu ....................................................................... 23
Bảng 2.22. Đặc tả tìm kiếm công thức theo tên .............................................. 24
Bảng 2.23. Đặc tả tìm kiếm công thức theo danh mục ................................... 24
Bảng 2.24. Đặc tả thông báo ........................................................................... 24
Bảng 3.1. Các kiểu thực thể của hệ thống ....................................................... 25
Bảng 3.2. Các kiểu liên kết của hệ thống ........................................................ 27
Bảng 3.3. Xử lý kiểu thuộc tính đa trị ............................................................. 29
Bảng 3.4. Xử lý kiểu thuộc tính không sơ đẳng.............................................. 30
Bảng 3.5. Tìm khóa cho kiểu thực thể chính .................................................. 31
Bảng 3.6. Xác định kiểu thuộc tính kết nối..................................................... 34
Bảng 3.7. Xác định khóa chính cho từng kiểu thực thể .................................. 36
Bảng 3.8. Mã hóa kiểu thực thể chuyển thành bảng quan hệ ......................... 38
Bảng 3.9. Mã hóa kiểu thuộc tính chuyển thành trường dữ liệu..................... 39
Bảng 3.10. Bảng đặc tả các trường của tbl_User ............................................ 41
Bảng 3.11. Bảng đặc tả các trường của tbl_Congthuc .................................... 42
Bảng 3.12. Bảng đặc tả các trường của tbl_Comment.................................... 43
Bảng 3.13. Bảng đặc tả các trường của tbl_Like ............................................ 43
Bảng 3.14. Bảng đặc tả các trường của tbl_Bookmark .................................. 44
Bảng 3.15. Bảng đặc tả các trường của tbl_Thongbao ................................... 44
Bảng 3.16. Bảng đặc tả các trường của tbl_Nguyenlieu ................................. 45
Bảng 3.17. Bảng đặc tả các trường của tbl_Loaicongthuc ............................. 45
Bảng 3.18. Bảng đặc tả các trường của tbl_Loainguyenlieu .......................... 46
Bảng 3.19. Bảng đặc tả các trường của tbl_Buoc ........................................... 46
Bảng 3.20. Bảng đặc tả các trường của tbl_Congthuc_Loaicongthuc ............ 47
Bảng 3.21. Bảng đặc tả các trường của tbl_Congthuc_Nguyenlieu ............... 47
Bảng 3.22. Bảng đặc tả các trường của tbl_Follow ........................................ 48
Bảng 3.23. Ma trận Chức năng – Kho dữ liệu ................................................ 48
Bảng 3.24. Ma trận Kho dữ liệu – Bảng quan hệ............................................ 50
Bảng 4.1. Bảng quyền Người dùng – Dữ liệu................................................. 55
Bảng 4.2. Bảng quyền Người dùng – Tiến trình ............................................. 56
Bảng 4.3. Đặc tả dữ liệu của bảng tbl_Users .................................................. 57
Bảng 4.4. Đặc tả dữ liệu của bảng tbl_Thongbao ........................................... 58
Bảng 4.5. Đặc tả dữ liệu của bảng tbl_Follow ................................................ 59
Bảng 4.6. Đặc tả dữ liệu của bảng tbl_Congthuc............................................ 60
Bảng 4.7. Đặc tả dữ liệu của bảng tbl_Bookmark .......................................... 61
Bảng 4.8. Đặc tả dữ liệu của bảng tbl_Like .................................................... 62
Bảng 4.9. Đặc tả dữ liệu của bảng tbl_Comment ........................................... 63
Bảng 4.10. Đặc tả dữ liệu của bảng tbl_Buoc ................................................. 64
Bảng 4.11. Đặc tả dữ liệu của bảng tbl_Loaicongthuc ................................... 65
Bảng 4.12. Đặc tả dữ liệu của bảng tbl_Congthuc_Loaicongthuc ................. 65
Bảng 4.13. Đặc tả dữ liệu của bảng tbl_ Loainguyenlieu ............................... 66
Bảng 4.14. Đặc tả dữ liệu của bảng tbl_Nguyenlieu ...................................... 67
Bảng 4.15. Đặc tả dữ liệu của bảng tbl_Congthuc_Nguyenlieu ..................... 68
DANH SÁCH HÌNH VẼ
Hình 2.1. Sơ đồ phân rã chức năng ................................................................... 8
Hình 2.2. Các thành phần .................................................................................. 9
Hình 2.3. Quan hệ giữa kho dữ liệu, tiến trình, luồng dữ liệu .......................... 9
Hình 2.4. DFD mức khung cảnh ....................................................................... 9
Hình 2.5. DFD mức đỉnh................................................................................. 10
Hình 2.6. DFD Quản lý tài khoản người dùng................................................ 10
Hình 2.7. DFD Chia sẻ nội dung ..................................................................... 11
Hình 2.8. DFD Tìm kiếm ................................................................................ 12
Hình 3.1. Mô hình ER mở rộng ...................................................................... 28
Hình 3.2. Mô hình ER kinh điển ..................................................................... 33
Hình 3.3. Mô hình ER hạn chế........................................................................ 38
Hình 3.4. Mô hình quan hệ.............................................................................. 41
Hình 4.1. Phân định người - máy chức năng đăng ký, đăng nhập .................. 52
Hình 4.2. Phân định người - máy chức năng Tạo, sửa, xóa, yêu thích, đánh
dấu công thức .................................................................................................. 53
Hình 4.3. Phân định người – máy chức năng tìm kiếm .................................. 54
Hình 4.4. Mô hình cơ sở dữ liệu hệ thống ...................................................... 57
Hình 4.6. Giao diện đăng nhập trên ứng dụng ................................................ 70
Hình 4.7. Biểu đồ trình tự hoạt đông view đăng nhập .................................... 71
Hình 4.8. Giao diện đăng ký trên ứng dụng .................................................... 72
Hình 4.9. Biểu đồ trình tự hoạt đông view đăng ký ........................................ 73
Hình 4.10. Giao diện trang chính trên ứng dụng ............................................ 74
Hình 4.11. Biểu đồ trình tự hoạt đông view trang chính ................................ 75
Hình 4.12. Giao diện chi tiết công thức trên ứng dụng................................... 76
Hình 4.13. Biểu đồ trình tự hoạt đông view chi tiết công thức....................... 77
Hình 4.14. Giao diện tìm kiếm công thức trên ứng dụng ............................... 78
Hình 4.15. Biểu đồ trình tự hoạt đông view tìm kiếm .................................... 79
Hình 4.16. Giao diện tạo công thức trên ứng dụng ......................................... 80
Hình 4.17. Biểu đồ trình tự hoạt đông view tạo công thức ............................. 81
Hình 4.18. Giao diện thông báo trên ứng dụng............................................... 82
Hình 4.19. Biểu đồ trình tự hoạt đông view thông báo................................... 84
Hình 4.20. Giao diện thông tin người dùng trên ứng dụng ............................. 85
Hình 4.21. Biểu đồ trình tự hoạt đông view thông tin người dùng................. 86
Hình 5.1. Mô hình client - server .................................................................... 88
Hình 5.2. CSDL trên server............................................................................. 91
Hình 5.3. Cấu trúc phân bố thư mục gốc Website .......................................... 91
Hình 5.4. Cấu trúc mã lệnh chương trình........................................................ 92
Hình 5.5. Cấu trúc các màn hình (view controller)......................................... 94
Hình 5.6. Cấu trúc nhóm MainController ....................................................... 95
1
Chƣơng 1
KHẢO SÁT HỆ THỐNG
1.1. Khảo sát thực tế
Hiện nay, trong một xã hội mà nhịp sống luôn rất nhanh, nhiều người có
nhu cầu tự nấu ăn thay vì tìm kiếm hay ăn ở các hàng quán, những chị em phụ
nữ ban ngày đi làm, tối về nhà nên không có nhiều thời gian để tìm hiểu các
món ăn mới lạ, hay những người đơn giản là ưa thích nấu ăn – cần một nơi để
có thể học hỏi các món ăn mới lạ, được chia sẻ bởi cộng đồng để đảm bảo
tính đa dạng về nội dung, Tìm kiếm trên Google search engine thường trả về
các trang web quảng cáo của các nhà hàng, các địa điểm ăn uống, gần như
chưa có bất kỳ một trang web chính thống nào phục vụ cho nhu cầu trên.
Từ đó, em nảy ra ý tưởng xây dựng một ứng dụng giúp những người có
nhu cầu cao về ẩm thực tự nấu chia sẻ các công thức nấy ăn của mình hoặc do
mình sưu tầm được. Đó như là một nơi để mọi người dùng tham gia và tạo
nên một cộng đồng lớn mạnh, giúp ích đắc lực cho chị em phụ nữ trong việc
lựa chọn thực đơn cho bữa ăn hàng ngày.
Yêu cầu đặt ra là cần có một công cụ - một ứng dụng hội tụ đủ yêu cầu
cho việc chia sẻ giữa cộng đồng người dùng đông đảo nói trên, đóng vai trò
như một mạng xã hội thu nhỏ, để nội dung luôn đa dạng và được cập nhật bởi
chính cộng đồng người dùng.Đồng thời với mong muốn tìm hiểu sâu hơn về
lập trình ứng dụng di động bằng ngôn ngữ Objective-C, em lựa chọn nền tảng
ứng dụng ở đây là hệ điều hành iOS. Vì vậy, em quyết định chọn đề tài Xây
dựng ứng dụng chia sẻ công thức nấu ăn YUMMY trên hệ điều hành
IOS.
Theo khảo sát, hiện nay – cụ thể là với thị trường ứng dụng iOS của Việt
Nam, hiện chưa có ứng dụng nào khai thác, đáp ứng được yêu cầu trên. Từ
2
đó, em hình thành ý tưởng về một ứng dụng cho phép người dùng có thể chia
sẻ các công thức nấu ăn của bản thân hoặc sưu tầm được với đầy đủ hình ảnh,
hướng dẫn chi tiết. Ứng dụng sẽ tích hợp các tính năng của một mạng xã hội,
tạo nên một cộng đồng thu nhỏ cả về phía người dùng lẫn nội dung.
1.2. Nhiệm vụ cơ bản
Từ khảo sát thực tế, em rút ra nhiệm vụ cơ bản của ứng dụng là:
- Chia sẻ công thức giữa người dùng với người dùng
Chia sẻ công thức nấu ăn
Người dùng
Người dùng
1.3. Quy trình sử dụng
Sau khi khảo sát một số ứng dụng có tính năng tương tự (Instagram,
Pinterest, Lozi…), em nhận thấy một số định hướng xử lý công việc như sau:
- Người dùng đăng kí ngay trên ứng dụng và được xác nhận thông qua
email.
- Người dùng có thể đăng nhập tài khoản trên một hoặc nhiều thiết bị.
- Đối với một ứng dụng chia sẻ hiện nay, về cấu trúc không quá phức tạp
(đơn thuần là dữ liệu gửi lên và trả về để hiển thị) nên sẽ phải tập trung vào
xử lý cách quản lý nội dung cũng như giao diện ứng dụng phía client.
- Ứng dụng sẽ có chức năng nổi bật của một ứng dụng mạng xã hội điển
hình đó là tính năng thông báo (Notification).
Áp dụng vào ứng dụng của mình, ta đưa ra quy trình làm việc như sau:
- Tài khoản có thể đăng ký trực tiếp trên ứng dụng và xác thực thông qua
email.
3
- Sau khi đăng ký và xác thực kích hoạt, người dùng có thể đăng nhập
vào để thực hiện chia sẻ và xem các công thức được chia sẻ. Toàn bộ dữ liéu
sẽ được lưu trữ trên hệ thống server.
Các thông tin dùng để đăng ký tài khoản cũng là một vấn đề cần quan
tâm.Việc sử dụng email kích hoạt sẽ giúp tránh trường hợp bão hoà người
dùng khi người dùng có thể tự do tạo bao nhiêu tài khoản tuỳ thích.
Với mỗi tài khoản sau khi kích hoạt và đăng nhập vào hệ thống, người
dùng có thể thêm, sửa, xoá một công thức của riêng mình. Cộng đồng người
dùng sẽ đánh giá công thức đó thông qua các phản hồi (comment) và để giúp
việc đánh giá trở nên đơn giản và trực quan, tính năng yêu thích (like) đối với
mỗi công thức cũng được thêm vào.Vì là một ứng dụng chia sẻ công thức nấu
ăn (bao gồm cả ảnh và văn bản) nên trong một công thức sẽ tồn tại các bước
thực hiện món ăn. Nói một cách đơn giản, Một công thức được tạo ra sẽ như
một album chứa các bước tương tự như các bức ảnh kèm theo caption.
Một người dùng có thể lựa chọn lưu công thức một món ăn mà mình
muốn thực hiện khi không có kết nối mạng.Các công thức được lưu này sẽ
được ghi trực tiếp trên bộ nhớ của thiết bị để có thể truy cập ngay cả khi
không có kết nối mạng. Cụ thể ở đây với tab quản lý người dùng, các công
thức trên sẽ được lưu vào một nhóm menu riêng trong phần này. Bên cạnh đó,
người dùng còn có thể theo dõi (follow) một người dùng khác để có thể truy
cập nhanh các công thức của người dùng đó chia sẻ.
Bên cạnh các chức năng trên, chức năng thông báo của ứng dụng cũng là
một chức năng quan trọng đối với một ứng dụng đi theo hướng chia sẻ như
một mạng xã hội.Khi một công thức mà người dùng đã lưu được sửa, hay
công thức người dùng đã chia sẻ nhận được yêu thích hay các phản hổi, người
dùng sẽ nhận được thông báo trả về và được lưu đồng thời trên server và trên
client đối với một lượng thông báo nhất định.
4
Chƣơng 2
PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
2.1. Sơ đồ phân rã chức năng
2.1.1. Xác định chức năng
Từ quy trình sử dụng, xác định được các chức năng chính của chương
trình:
Bảng 2.1. Xác định chức năng
Đánh số
Chức năng
1
Đăng ký tài khoản
2
Xác thực tài khoản
3
Đăng nhập tài khoản
4
Đổi thông tin cá nhân
5
Đổi mật khẩu
6
Lựa chọn yêu thích công thức
7
Lựa chọn lƣu(đánh dấu) công thức
8
Yêu thích (like) với mỗi công thức
9
Tạo công thức
10
Tạo các bƣớc trong công thức
11
Tìm kiếm công thức theo tên
12
Nhận xét (comment) với mỗi công thức
13
Tìm kiếm công thức theo danh mục
14
Chức năng theo dõi ngƣời dùng (folow)
15
Chức năng thông báo (notification)
5
Đánh số
Chức năng
16
Công thức đã tạo
17
Cập nhật công thức
18
Xóa công thức
19
Sửa nhận xét
20
Xóa nhận xét
21
Bỏ yêu thích công thức
22
Cập nhật bƣớc làm
23
Xóa bƣớc làm
24
Bỏ đánh dấu công thức
2.1.2. Gom nhóm chức năng
Căn cứ vào các chức năng chính của ứng dụng mà ta có thể gom lại
thành 2 nhóm riêng biệt, bên cạnh đó đối với chức năng tìm kiếm và thông
báo, ta có thêm 2 nhóm nhiệm vụ riêng biệt nữa, kết quả được 4 nhóm chức
năng như sau :
- Quản lý tài khoản và người dùng.
- Chia sẻ nội dung
- Tìm kiếm nội dung
- Thông báo
6
Bảng 2.2. Kết quả gom nhóm chức năng
Tên chức năng
Đăng kí tài khoản
Đăng nhập tài khoản
Xác thực tài khoản
Hiện
công
thức
đã
đánh
dấu
(bookmark)
Hiện công thức đã tạo
Quản lý tài
khoản ngƣời
dùng
Theo dõi người dùng (follow)
Đổi thông tin cá nhân
Đổi mật khẩu
Yêu thích (like) với mỗi công thức
Chia sẻ công
Lựa chọn lưu(đánh dấu) công thức
thức nấu ăn
Nhận xét (comment) với mỗi công
thức
Tạo công thức
Tạo các bước trong công thức
Cập nhật công thức
Cập nhật bước làm
Cập nhật nhận xét
Xóa công thức
Xóa bước làm
Xóa nhận xét
Bỏ yêu thích công thức
Chia sẻ nội dung
7
Tên chức năng
Bỏ đánh dấu công thức
Tìm kiếm công thức theo tên
Tìm kiếm công thức theo danh mục
Chức năng thông báo (notification)
Tìm kiếm
Thông báo
8
2.1.3. Sơ đồ phân rã chức năng hệ thống
Hình 2.1.Sơ đồ phân rã chức năng
9
2.2. Sơ đồ luồng dữ liệu
2.2.1. Ký hiệu sử dụng
: Tiến trình
: Kho dữ liệu
: Tác nhân ngoài
: Tác nhân trong
: Luồng dữ liệu
Hình 2.2. Các thành phần
Vào
Cập
nhật
Ra
Hình 2.3. Quan hệ giữa kho dữ liệu, tiến trình, luồng dữ liệu
2.2.2. DFD mức khung cảnh
Thông tin đăng ký tài khoản
Nội dung tìm kiếm
Người dùng
Người dùng
Kết quả xử lý
Kết quả đăng ký
Chia sẻ công thức nấu ăn
Dữ liệu nội dung chia sẻ
Yêu cầu duyệt thông báo
Người dùng
Người dùng
Kết quả nội dung chia sẻ
Kết quả thông báo trả về
Hình 2.4. DFD mức khung cảnh
10
2.2.3. DFD mức đỉnh
Tên đăng nhập, mật khẩu
Kết quả đánh dấu
Tên đăng nhập, mật khẩu
Đánh dấu
Bước làm
Mật khẩu
Công thức
đã tạo
Yêu thích
Kết quả yêu thích
Nhận xét
Tài khoản
Công thức được
yêu thích
Chia sẻ nội
dung
Thông tin đăng ký tài khoản
Quản lý tài
khoản người
dùng
Tên đăng nhập, mật khẩu
Công thức
Người dùng
Công thức đã
đánh dấu
Nhận xét được
tạo
Kết quả đăng ký
Danh mục
Người dùng
Người dùng
được theo dõi
Công thức
Kết quả nhận xét
Kết quả tạo công thức
Công thức được
đánh dấu
Tên công thức
Tìm kiếm
Người dùng
Yêu cầu tìm kiếm
Tạo công thức
Thông báo
Yêu cầu xem thông báo
Kết quả tìm kiếm
Thông báo
Nội dung thông báo trả về
Hình 2.5. DFD mức đỉnh
2.2.4. DFD mức dưới đỉnh
Thông tin cá nhân mới
Thông tin đăng ký
Đổi thông tin
cá nhân
Đăng ký thành
viên
Đổi mật khẩu
Người
dùng
Kết quả đăng ký
Thành viên
ID định danh người dùng
Tên đăng nhập, mật khẩu
Mật khẩu
Tài khoản
Tên đăng nhập, mật khẩu mới
Theo dõi
Theo dõi
Người dùng
Đăng nhập tài khoản
Kết quả đăng nhập
ID định danh công thức
Công thức đã
bookmark
Nội dung công thức
Công thức
Tên đăng nhập
Tên đăng nhập
ID định danh công thức,
ID định danh người dùng
Công thức đã
tạo
Nội dung công thức
Tên đăng nhập
Chia
Chia sẻ
sẻ nội
nội
dung
dung
Tìm
Tìm kiếm
kiếm
Duyệt
Duyệt thông
thông
báo
báo
Hình 2.6. DFD Quản lý tài khoản người dùng
11
Kết quả xử lý
Yêu cầu tạo công thức
Tài khoản đăng nhập
ID định danh
Tạo công
thức
ID định danh
Tài khoản
ID định danh
Công thức
Cập nhật
công thức
ID định danh
Yêu cầu cập nhật công thức
Tài khoản đăng nhập
Kết quả xử lý
Yêu cầu xóa công thức
Tài khoản đăng nhập
ID định danh
Xóa công
thức
Tài khoản
ID định danh
Kết quả xử lý
ID định danh
Công thức
Tạo nhận
xét
ID định danh
Kết quả xử lý
Tài khoản đăng nhập
Yêu cầu sửa nhận xét
Tài khoản đăng nhập
ID định danh
Quản lý tài
khoản người
dùng
Sửa nhận
xét
Tài khoản
ID định danh
Xóa nhận
xét
Tài khoản đăng nhập
Yêu thích
Tài khoản
ID định danh
Kết quả xử lý
ID định danh
Người dùng
Công thức
Tài khoản đăng nhập
ID định danh
Yêu cầu tạo nhận xét
ID định danh
Kết quả xử lý
Yêu cầu xóa nhận xét
Yêu cầu yêu thích công thức
Kết quả xử lý
ID định danh
Công thức
Bỏ yêu
thích
Tài khoản đăng nhập
ID định danh
Kết quả xử lý
Yêu cầu bỏ yêu thích công thức
Yêu cầu đánh dấu công thức
Tài khoản đăng nhập
Kết quả xử lý
ID định danh
Đánh dấu
Tài khoản
ID định danh
Tài khoản đăng nhập
ID định danh
Công thức
Bỏ đánh
dấu
ID định danh
Kết quả xử lý
Yêu cầu bỏ đánh dấu công thức
Hình 2.7. DFD Chia sẻ nội dung