Đang tải... (xem toàn văn)
- Xây dựng phần mềm quản lý xưởng sản xuất có đầy đủ chức năng cần thiết cho nhân viên và người quản lý, giao diện thân thiện với người dùng, dễ dàng sử dụng và tiết kiệm thời gian.. - D
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ XƯỞNG SẢN XUẤT ĐỒ NỘI THẤT TRÊN NỀN TẢNG ANDROID
Sinh viên thực hiên : NGUYỄN THÀNH CÔNG
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
NGUYỄN THÀNH CÔNG
TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ XƯỞNG SẢN XUẤT ĐỒ NỘI THẤT TRÊN NỀN TẢNG ANDROID
Giáo viên hướng dẫn: ThS.Lê Trung Thực
Bắc Ninh 2023
Trang 3LỜI CẢM ƠN
Qua thời gian học tập và rèn luyện tại trường Đại học Công Nghệ Đông Á, Đến nay chúng em đã kết thúc khóa học bốn năm và hoàn thành đồ án tốt nghiệp Để có được kết quả này em xin chân thành cảm ơn:
Ban chủ nhiệm trường Đại học Công Nghệ Đông Á cùng các thầy cô giáo trong khoa đã giảng dạy, quan tâm và tạo điều kiện thuận lợi để chúng em học tập và rèn luyện trong suốt thời gian học tập
Thạc sĩ Lê Trung Thực đã tận tình hướng dẫn giúp đỡ em trong suốt quá trình làm đồ án tốt nghiệp Thầy luôn quan tâm và rất nhiệt tình hướng dẫn em từ việc tìm tài liệu cho đến việc định hướng lựa trọn pháp để triển khai đồ án Thầy cũng luôn nhắc nhở, động viên em mỗi khi gặp khó khăn, nhờ vậy mà em đã hoàn thành đồ án tốt nghiệp đúng thời hạn
Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè những người đã động viên, giúp đỡ em rất nhiều trong thời gian học tập và làm đồ án tốt nghiệp
Tuy nhiên, do thời gian có hạn nên em không thể phát huy hết những ý tưởng, khả năng hỗ trợ của ngôn ngữ và kĩ thuật lập trình vào đề tài Trong quá trình xây dựng app, không thể tránh khỏi những sai xót, mong nhận được những sự đóng góp và cảm thông của quý thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 4LỜI CAM ĐOAN
Đồ án tốt nghiệp là sản phẩm của toàn bộ kiến thức mà sinh viên đã học được trong suốt thời gian học tập tại trường đại học Ý thức được điều đó với tinh thần nghiêm túc, tự giác cùng sự lao động miệt mài của bản thân và sự hướng dẫn nhiệt tình của thầy giáo – Lê Trung Thực em đã hoàn thành xong đồ án tốt nghiệp của mình
Em xin cam đoan nội dung đồ án của em không sao chép nội dung từ các đồ án khác và sản phẩm của đồ án là của chính bản thân chúng em nghiên cứu
xây dựng lên Mọi thông tin sai lệch chúng em xin chịu hoàn toàn trách nhiệm
trước hội đồng bảo vệ
Hà Nội, ngày tháng năm 2023 Sinh viên
Nguyễn Thành Công
Trang 5CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 10
1.1Giới thiệu về đề tài 10
1.2 Phân tích yêu cầu đề tài 10
1.2.1 Tóm tắt yêu cầu của hệ thống 10
1.2.2 Phạm vi dự án được ứng dụng 11
1.3 Chức năng của hệ thống 11
1.4 Giao diện của phần mềm 13
1.4.1 Giao diện người dùng 13
1.4.2 Giao diện người quản trị: 13
Phân tích các chức năng của hệ thống 13
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14
2.1 Tìm hiểu về ngôn ngữ JAVA: 14
2.2 Hệ điều hành Android 14
2.2.1 Khái niệm Android 14
2.2.2 Kiến trúc Android 15
2.2.3 Applications 15
2.3 Các thành phần cơ bản của một ứng dụng Android 17
2.4 Các thành phần giao diện Widget 21
2.4.1 Bắt sự kiện trong Android 21
2.4.2 Menu 22
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 23
3.1 Phân tích thiết kế với uml 23
3.2 Biểu đồ usecase mức tổng quát 24
3.2.1 Biểu đồ usecase tổng quát 24
3.2.2 Biểu đồ usecase nhân viên 25
Trang 63.3.1 Phân rã usecase Quản lý nhân viên 26
3.3.2 Phân rã usecase Quản lý khách hàng 26
3.3.3 Phân rã usecase Thống kê 27
3.4 Biểu đồ usecase phân rã chức năng (mức 3) 28
3.4.1 Phân rã usecase Quản lý người dùng 28
3.4.2 Phân rã usecase Quản lý sản phẩm 28
3.4.4 Phân rã usecase Đặt mua 29
3.5 Đặc tả usecase 29
3.5.1 Đặc tả Usecase đăng nhập (Người dùng) 29
3.5.2 Đặc tả Usecase đăng kí tài khoản 30
3.6.2 Chức năng Quản lý nhân viên 43
3.6.2 Chức năng xóa nhân viên 44
3.7.1 Biểu đồ hoạt động chức năng đăng kí 48
3.7.3 Biểu đồ hoạt động chức năng quản lý nhân viên 50
3.7.4 Biểu đồ hoạt động chức năng quản lý khách hàng 51
Trang 73.7.5 Biểu đồ hoạt động chức năng quản lý sản phẩm 52
3.7.6 Biểu đồ hoạt động chức năng quản lý thống kê 53
3.8 Thiết kế cơ sở dữ liệu 54
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC 62
4.1 Giao Diện chương trình 62
4.2 Đánh giá kết quả 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
Trang 8DANH MỤC CÁC HÌNH ẢNH
Hình 1: Mô Hình Kiến Trúc Nần Tảng Android 15
Hình 2: Mô hình hợp tác giữa máy ảo Dalvik và Navite code 17
Hình 3: Lược đồ vòng đời của 1 activity 18
Hình 4: Sử dụng Intent để trao đổi thông tin giữa hai chương trình 18
Hình 5: Lược đồ vòng đời của một Service 19
Hình 6:Biểu Đồ Use Case Tổng Quát 24
Hình 7:Biểu đồ Use case nhân viên 25
Hình 8: Biểu đồ Use case admin 25
Hình 9: Biểu đồ Use case quản lý nhân viên 26
Hình 10:Biểu đồ Use case quản lý khách hàng 26
Hình 11:Biểu đồ Use case thống kê 27
Hình 12: Biểu đồ usecase phân rã chức năng Quản lý người dùng 28
Hình 13: Biểu đồ usecase phân rã chức năng Quản lý sản phẩm 28
Hình 14: Phân rã usecase Đặt mua 29
Hình 15: Đặc tả Usecase đăng nhập (Người dùng) 29
Hình 16: Đặc tả Usecase đăng kí tài khoản 30
Hình 17: Đặc tả Usecase đặt mua 32
Hình 18: Đặc tả Usecase thanh toán 33
Hình 19: Đặc Tả Use Case Đăng nhập (Admin) 35
Hình 20: Đặc tả Usecase Quản lý nhân viên 36
Hình 21: Đặc tả Usecase Quản lý khách hàng 38
Hình 22: Đặc tả Usecase Quản lý danh sách 39
Hình 23: Đặc tả Usecase Thống kê 40
Hình 24: Biểu Đồ Tuần Tự Chức Năng Đăng Ký 42
Hình 25: Biểu đồ tuần tự chức năng đăng nhập 43
Hình 26: Biểu đồ tuần tự chức thêm nhân viên 44
Hình 27:Biểu đồ tuần tự chức năng xóa nhân viên 44
Hình 28: Biểu đồ tuần tự chức năng đặt mua 45
Hình 29: Biểu đồ tuần tự chức năng thanh toán 45
Hình 30: Biểu đồ tuần tự chức năng thêm sản phẩm 46
Hình 31:Biểu đồ tuần tự chức năng sửa thông tin sản phẩm 46
Hình 32: Biểu đồ tuần tự chức năng xóa sản phẩm 47
Hình 33: Biểu đồ tuần tự chức tìm kiếm 47
Hình 34: Biểu đồ tuần tự chức năng thống kê 48
Hình 35: Biểu đồ hoạt động chức năng đăng kí 48
Hình 36: Biểu đồ hoạt động chức năng đăng nhập 49
Trang 9Hình 37: Biểu đồ hoạt động chức năng quản lý nhân viên 50
Hình 38: Biểu đồ hoạt động chức năng quản lý khách hàng 51
Hình 39:Biểu đồ hoạt động chức năng quản lý sản phẩm 52
Hình 40: Biểu đồ hoạt động chức năng quản lý thống kê 53
Hình 41 : Giao diện Đăng Nhập 62
Hình 42 Giao Diện Tạo Tài Khoản 63
Hình 43 Giao Diện Trang Chủ 63
Hình 44: Giao Diện Quản Lý Nhân Viên 64
Hình 45 : Giao Diện Thêm Nhân Viên 64
Hình 46: Giao Diện Quản Lý Khách hàng 65
Hình 47: Giao Diện Thêm Khách Hàng 65
Hình 48 : Giao Diện Các hạng Mục Hàng Hóa 66
Hình 49 : Giao Diện Thống Kê 66
Hình 50: Giao Diện Chi Tiết Đơn Mua 67
Trang 10LỜI MỞ ĐẦU 1.Lý do chọn đề tài:
- Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của quốc gia Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số, muốn phát triển thì phải áp dụng tin học hóa vào tất cả các ngành các lĩnh vực Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm càng trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người Các phần mềm hiện nay ngày càng hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao Các phần mềm giúp tiết kiệm một lượng lớn thời gian công sức của con người, tăng độ chính xác và hiệu quả trong công việc
- Một trong số đó là việc quản lý hệ thống cho kho xưởng sản xuất Nếu không có sự hỗ trợ của tin học, việc quản lý sẽ trở lên khó khăn, chia thành nhiều khâu mới có thể hoàn thành như: Quản lý hàng hóa (loại hàng hóa, số hàng được nhập xuất), quản lý tồn kho (số hàng hóa còn khi đã xuất xưởng), quản lý về thanh toán (nhập số sản phầm và thống kê thành tiền trong tháng hoặc hàng ngày) và danh sách các đơn hàng đã đặt Các công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và hiệu quả không cao, nếu làm bằng thủ công không mang tính tự động… Ngoài ra còn có một số khó khăn về việc lưu trữ khá đồ sộ, dễ bị thất lạc, tốn kém… Trong khi đó các nghiệp vụ này có thể tin học hóa một cách đơn giản hơn Với sự giúp đỡ của tin học, việc quản lý sẽ trở nên thuận tiện, nhanh chóng và hiệu quả hơn rất nhiều Đó là một hiện trạng cần được giải quyết tại các kho xưởng hiện nay với lượng hàng hóa nhiều, để phục vụ việc kiểm kê và quản lý kho xưởng được tốt hơn, chính xác hơn và nhanh chóng hơn
- Chính vì vậy, đề tài “Phát triển ứng dụng quản lý xưởng sản xuất nội thất trên nền tảng android” là đối tượng mà em nghiên cứu Do thời gian có hạn và sự hiểu biết về ngôn ngữ lập trình còn hạn chế nên chắc chắn bài làm không tránh khỏi những thiếu sót, chúng em rất mong được sự giúp đỡ và ý kiến đóng góp của thầy cô
Trang 112.Kết cấu đề tài
Đồ án tốt nghiệp gồm 3 chương: Chương 1: Tổng quan về đề tài Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích thiết kế hệ thống
Trang 12CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu về đề tài
- Hệ thống phần mềm giúp cho người quản lý một cách dễ dàng các thông tin hàng hóa, nhân sự Biết rõ số lượng còn và số lượng mà xưởng đã bán Hệ thống giúp người quản lý và nhiên viên tiết kiêm thời gian và có một giao diện dễ sử dụng - Xây dựng phần mềm quản lý xưởng sản xuất có đầy đủ chức năng cần thiết cho
nhân viên và người quản lý, giao diện thân thiện với người dùng, dễ dàng sử dụng và tiết kiệm thời gian
Giới hạn và phạm vi đề tài: - Tên hệ thống: Xưởng Sản Xuất
+ Mang tính chuyên nghiệp cho việc quản lý hàng, nhân sự, khách hàng hoá tối
ưu nhất
+ Hồ sơ lưu trữ của sản phẩm và thống kê số lượng sẽ được tốt hơn
+ Đáp ứng nhu cầu xử lý tính toán, tìm kiếm, thống kê, thông tin một cách nhanh chóng, chính xác và có hiệu quả
+ Mong muốn có một ứng dụng phần mềm vào việc quản lý xưởng và thanh toán hàng hóa là một nhu cầu tất yếu nhằm nâng cao hiệu quả quản lý và tránh được rủi ro sai sót khi tính toán cũng như tiết kiệm được nhiều chi phí cho Xưởng + Em đã nghiên cứu và xây dựng Phần mềm quản lý xưởng sản xuất để hỗ trợ
người quản lý và nhân viên trong việc kiểm tra hàng hóa và thanh toán hóa đơn mua bán một cách dễ dàng và chính xác nhất
1.2 Phân tích yêu cầu đề tài
1.2.1 Tóm tắt yêu cầu của hệ thống
- Là một phần mềm quản lý các sản phẩm đồ gỗ của xưởng
- Là phần mềm động các thông tin được cập nhật liên tục, update thông tin thường xuyên
Trang 13- Người dùng có thể truy cập xem sản phẩm còn trong xưởng, mua các sản phẩm hoặc thanh toán
- Các sản phẩm phải được sắp xếp logic Vì vậy người dùng sẽ có cái nhìn tổng quan về tất cả các sản phẩm hiện có
- Người dùng có thể xem chi tiết từng sản phẩm (có hình ảnh minh hoạ sản
phẩm)
- Người dùng vẫn có thể quay trở lại trang sản phẩm để xem và chọn tiếp, các sản phẩm đã chọn sẽ được lưu vào mục thanh toán để có thể tiến hành thanh toán đơn hàng
- Sản phẩm được sắp xếp có hệ thống nên người dùng dễ tìm kiếm cũng như xem sản phẩm chọn mua và thanh toán dễ dàng
1.2.2 Phạm vi dự án được ứng dụng
- Dành cho nhân viên và quản lý xưởng phục vụ việc quản lý hàng hóa và thanh toán cho khách hàng khi có nhu cầu mua hàng tại xưởng sản xuất
- Do nghiệp vụ của cửa hàng kết hợp với công nghệ mới và được sử lý trên nền tảng android nên công việc quản lý hàng hóa nhân viên, thanh toán đơn hàng được thực hiện một cách nhanh chóng , tiết kiệm chi phí và thời gian , cũng như cập nhật các thông tin đến người dùng thông tin nhanh nhất
1.3 Chức năng của hệ thống Chức năng quản lý nhân viên
Cung cấp chức năng quản lý nhân viên: giúp cho việc theo dõi thông tin nhân viên của xưởng
✓ Thêm mới nhân viên: Khi xưởng sản xuất thêm sản phẩm mới , người quản lý có thể sử dụng chức năng này để đưa vào cơ sở dữ liệu tiện cho việc quản lý
✓ Sửa thông tin nhân viên: Nếu thông tin liên quan đến nhân viên có sai sót hoặc nhân viên quên mật khẩu, người quản lý có thể sử dụng chức năng để cập nhật thông tin của nhân viên
Trang 14✓ Xoá nhân viên: Khi nhân viên không còn liên quan đến công việc của xưởng hoặc đã hết hợp đồng làm việc với xưởng, người quản lý sử dụng chức năng này để xóa thông tin nhân viên khi không còn làm việc với xưởng nữa
✓ Liệt kê nhân viên: Duyệt hết tất cả nhân viên hiện đang có trong cơ sở dữ liệu để có thể tiện theo dõi và và cập nhật thông tin thay đổi khi cần thiết
Chức năng quản lý sản phẩm :
Cung cấp chức năng quản lý sản phẩm: giúp cho việc theo dõi các sản phẩm hiện đang có
✓ Thêm mới sản phẩm: Khi xưởng sản xuất thêm sản phẩm mới , người quản lý có thể sử dụng chức năng này để đưa vào cơ sở dữ liệu tiện cho việc quản lý
✓ Cập nhật thông tin sản phẩm: Nếu thông tin liên quan đến sản phẩm có sai sót, người quản lý có thể sử dụng chức năng để cập nhật thông tin của sản phẩm theo đúng thông tin chính xác
✓ Xoá sản phẩm: Khi sản phẩm không còn liên quan đến công việc kinh doanh hoặc đã hết hạn sử dụng, người quản lý sử dụng chức năng này
✓ Liệt kê sản phẩm: Duyệt hết tất cả các sản phẩm hiện đang có trong cơ sở dữ liệu để có thể tiện theo dõi và có cái nhìn trực quan
Chức năng quản lý khách hàng
✓ Nhập thông tin khách hàng ✓ Liệt kê danh sách khách hàng
Thống kê
✓ Thống kê đơn hàng (bao gồm đã thanh toán và chưa thanh toán) ✓ Thống kê đơn hàng theo ngày và theo tháng
✓ Những đơn hàng có giá trị tổng tiền lớn nhất ✓ Thống kê khách hàng mua hàng nhiều nhất
Trang 151.4 Giao diện của phần mềm 1.4.1 Giao diện người dùng
Giao diện thân thiện dễ sử dụng
Màu sắc hài hòa thể hiện rõ hình ảnh sản phẩm, font chữ thống nhất, tiện lợi khi sử dụng
1.4.2 Giao diện người quản trị:
- Giao diện đơn giản dễ quản lý và cập nhật dữ liệu - Được Bảo vệ bằng User & Password riêng của Admin - Có sự phân quyền riêng giữa Admin và Member
Phân tích các chức năng của hệ thống
➢ Administrator: là thành viên quản trị của hệ thống, có các quyền và chức năng như: tạo các tài khoản, quản lý sản phẩm, quản trị người dùng, quản lý hoá đơn…
➢ Member: là hệ thống thành viên có chức năng: Đăng kí, đăng nhập, tìm kiếm, xem, sửa thông tin cá nhân, xem đơn hàng hàng, đặt hàng, xem thông tin về các hóa đơn đã lập và thanh toán cho khách
Trang 16CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu về ngôn ngữ JAVA:
- Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak
Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak
2.2 Hệ điều hành Android 2.2.1 Khái niệm Android
Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware và một số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viên các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java
Những tính năng mà nền tảng Android hổ trợ:
➢ Application framework: Cho phép tái sử dụng và thay thế các thành phần
sẳn có của Android
Dalvik virtual macine: Máy ảo java được tối ưu hóa cho thiết bị di động ➢ Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa trên WebKit engine
Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES ➢ SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc
Hổ trở các định dạng media phổ biến như: MPEG4, H.264, MP3, AAC, ARM, JPG, PNG, GIF
Hổ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị) Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị)
Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị)
Trang 172.2.2 Kiến trúc Android
Lược đồ sau thể hiện các thành phần của hệ điều hành Android:
Hình 1: Mô Hình Kiến Trúc Nần Tảng Android
2.2.3 Applications
Hệ điều hành Android tích hợp sẳn một số ứng dụng cơ bản như email client, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác Ngoài ra tầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java
2.2.3.1 Application Framwork
Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng sáng tạo và phong phú Các nhà phát triển ứng dụng được tự do sử dụng các tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dưới nền, thiết lập
Tầng này bao gồm một tập các services và thành phần sau:
➢ Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các
ứng dụng khác hoặc chia sẽ dữ liệu của chúng
Trang 18➢ Resource Manager: Cung cấp khả năng truy xuất các tài nguyên non-code
như hình ảnh hoặc file layout
➢ Notification Manager: Cung cấp khả năng hiển thị custom alert trên thanh
status bar
➢ Activity Manager: Giúp quản lý vòng đời của một ứng dụng 2.2.3.2 Libraries
Hệ điều hành Android bao gồm một tập các bộ thư viện C/C++ được sử dụng bởi nhiều thành phần của Android system Những tính năng này được cung cấp cho các lập trình viên thông qua bộ framework của Android Dưới đây là một số thư viện cốt lõi:
➢ System C library: một thể hiện được xây dựng từ BSD của bộ thư viện
hệ thống C chuẩn (libc), được điều chỉnh để tối ưu hóa cho các thiết bị chạy trên nền Linux
➢ Media libraries: Bộ thư viện hổ trợ trình diễn và ghi các định dạng âm
than và hình ảnh phổ biến
➢ Surface manager: Quản lý hiển thị nội dung 2D và 3D
➢ LibWebCore: Một web browser engine hiện đại được sử dụng trong trình
duyệt của Android lần trong trình duyệt nhúng web view được sử dụng trong ứng dụng
➢ SGL: Engine hổ trợ đồ họa 2D
➢ 3D libraries: Một thể hiện được xây dựng dựa trên các APIs của OpenGL
ES 1.0 Những thư viện này sử dụng các tăng tốc 3D bằng phần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D
➢ FreeType: Bitmap and vector font rendering ➢ SQLite: Một DBMS nhỏ gọn và mạnh mẽ 2.2.3.3 Android Runtime
Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Mọi ứng dụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện của máy ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đích làm cho các thiết bị di động có thể chạy nhiều máy
Trang 19ảo một cách hiệu quả Trước khi thực thi, bất kì ứng dụng Android nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable (dex)
2.2.3.4 Linux Kernel
Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ hệ thống cốt lõi như: security, memory management, process management, network stack, driver model Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng
Dưới đây là mô hình hợp tác giữa máy ảo Dalvik và Navite code:
Hình 2: Mô hình hợp tác giữa máy ảo Dalvik và Navite code
2.3 Các thành phần cơ bản của một ứng dụng Android 2.3.1 Activity
➢ Định nghĩa Activity
Là thành phần quan trọng của bất kỳ một ứng dụng Android nào thuật ngữ Activity chỉ một việc mà người dùng có thể thực hiện trong một ứng dụng Android Do gần như mọi activity đều tương tác với người dùng, lớp Activity đảm nhận việc tạo ra một cửa sổ để người lập trình đặt lên đó một giao diện UI với setContentView (View)
Có hai phương thức mà gần như mọi lớp con của Activity đều phải hiện thực:
onCreate(Bundle) - Nơi khởi tạo activity
• onPause () - Nơi giải quyết sự kiện người dùng rời khỏi activity Mọi dữ liệu
được người dùng tạo ra tới thời điểm này cần phải được lưu vào ContentProvider
Trang 20Vòng đời của một activity
Hình 3: Lược đồ vòng đời của 1 activity
2.3.2 Intent
➢ Định nghĩa Intent
Intent được sử dụng với phương thức startActivity() để mở một Activity, và
dùng với broadcastIntent để gởi nó đến bất kì BroadcastReceiver liên quan nào, và dùng với startService(Intent),bindService(Intent, ServiceConnection, int) để
giao tiếp với các Service chạy dưới nền
Hình 4: Sử dụng Intent để trao đổi thông tin giữa hai chương trình
Trang 212.3.3 Service
➢ Định nghĩa Service
Một service là một thành phần của ứng dụng, thể hiện mong muốn ứng dụng thực hiện các hành động trong khi không tương tác với người dùng hoặc cung cấp chức năng cho các ứng dụng khác sử dụng Nói một cách đơn giản, service là các tác vụ (task) chạy ngầm dưới hệ thống nhằm thực hiện một nhiệm vụ nào đó Mỗi class Service phải chứa thẻ <service> được khai báo trong file AndroidManifext.xml Services có thể được bắt đầu bởi Context.startService() và Context.bindservice()
➢ Vòng đời của một Service
Dù cho một service có được start bao nhiêu lần đi nữa thì nó sẽ bị tắt ngay khi phương thức Context.stopService() hoặc phương thức stopSelf () được gọi Service có thể dùng phương thức stopSelf(int) để đảm bảo rằng service sẽ không được tắt cho đến khi Intent đã khởi tạo nó được xử lý
Hình 5: Lược đồ vòng đời của một Service
Dựa theo hình trên, một service được bắt đầu bởi phương thức startService () là service dùng để thực hiện các tác vụ ngầm dưới nền, service được bắt đầu bởi phương thức bindService () là service được dùng để cung cấp các chức năng cho các chương trình khác
Trang 222.3.4 Content Provider
Là nơi lưu trữ và cung cấp cách truy cập dữ liệu do các ứng dụng tạo nên Đây là cách duy nhất mà các ứng dụng có thể chia sẻ dữ liệu của nhau
Android cung cấp sẵn content providers cho một số kiểu dữ liệu thông dụng như âm thanh, video, thông tin sổ điện thoại…) Người lập trình cũng có thể tự tạo ra các class con (subclass) của Content Provider để lưu trữ kiểu dữ liệu của riêng mình
2.3.5 View
View là thành phần cơ bản để xây dựng giao diện người dùng cho một ứng dụng Android View là một lớp căn bản của widgets
Một số Views thường dùng:
• TextView: Hiển thị một khung text và cho phép người dùng thay đổi
• ImageView: Hiển thị một hình ảnh xác định từ file tài nguyên hay qua một
content provider
• Button: Hiển thị một nút nhấn
• Checkbox: Hiển thị một nút nhấn với hai trạng thái khác nhau • KeyboardView: Hiển thị bàn phím ảo để nhập liệu
• WebView: Hiển thị các trang web bằng Webkit 2.3.6 Broadcast Receiver
Một Broadcast receiver là một thành phần mà không làm gì khác ngoài việc nhận các thông báo được broadcast Một ứng dụng có thể có nhiều broadcast receiver để đáp lại những thông báo được phát đến Tất cả các broadcast receiver được thừa kế từ lớp cơ sở BroadcastReceiver Một Broadcast receiver không có giao diện nhưng nó có thể thực hiện gọi một
2.3.7 File AndroidManifest.xml
Là nền tảng của mọi ứng dụng Android, file AndroidManifest.xml được đặt trong thư mục root và cho biết những thành phần có trong ứng dụng của: các activities, các services, cũng như cách các thành phần ấy gắn bó với nhau Khi tạo file manifest, điều quan trọng nhất là phải cung cấp thuộc tính của package, tức tên của Java package dùng làm cơ sở cho ứng dụng của ta
2.3.8 Giao diện người dùng trong Android
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách
Trang 23sử dụng View và ViewGroup đối tượng Có nhiều loại quan điểm và các nhóm view, mỗi một trong số đó là hậu duệ của lớp View View objects là các đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android Các class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular và relative
2.4 Các thành phần giao diện Widget
Có rất nhiều cách bố trí giao diện Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm LinearLayout, RelativeLayout, TableLayout, GridLayout và khác Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử dụng đế xác định vị trí của views con và cơ cấu layout để tìm hiểu về một so các loại khác nhau của các view group được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp
Widget là một object View phục vụ như một giao diện để tương tác với người dùng Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button, Checkbox, và text-entry, do đó bạn có thể nhanh chóng xây dựng giao diện người dùng của bạn Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một date picker, clock, và zoom controls Nhưng nó không giới hạn trong các loại widgets được cung cấp bởi các nền tảng Android
2.4.1 Bắt sự kiện trong Android
Khi đã thêm một so Views/widgets đến giao diện Đe được thông báo về UI events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và đăng ký nó với các View Đây là cách lắng nghe sự kiện Các class View có một phương pháp gọi là On<something> ()
Ví dụ: View.OnClickListener (để xử lý "nhấp chuột" trên một View), View.OnTouchListener (để xử lý các sự kiện màn hình cảm ứng trong một
Trang 24View), và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một View) Vì vậy nếu muon View được thông báo khi nó là " clicked" (chẳng hạn như khi một nút được chọn), thực hiện và xác định OnClickListener của nó gọi method onClickQ (nơi thực hiện các hành động sau khi nhấp chuột), và đăng ký nó vào Xem với setOnClickListener ()
Ghi đè một callback method hiện cho View Đây là những gì nên làm gì khi đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy ra trong nó Ví dụ về các sự kiện có thế xử lý bao gồm màn hình là touched onTouchEventQ khi trackball là di chuyển onTrack ball Events) hoặc khi một phím trên thiết bị được nhấn onKeyDown () Điều này cho phép xác định các hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự kiện này cần được thông qua ngày de View con khác Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh
2.4.2 Menu
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bàng cách bấm phím MENU trên thiết bị Tuy nhiên, cũng có thể thêm Context Menus, có thể hiến thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình
Thay vào đó, xác định onCreateOptionsMenu () or onCreateContext Menus) gọi method cho hoạt động của mình và tuyên bổ các mục mà mình muốn bao gồm trong menu của mình Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó
Trang 25CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 Phân tích thiết kế với uml
1
Người quản lý
Người quản lý là người có toàn quyền tương tác với hệ thống, quyền sử dụng tất cả các chức năng mà ứng dụng xây dựng, điều khiển và kiểm soát mọi hoạt động của ứng dụng
2 Nhân viên
Nhân viên ở đây là những người truy cập vào ứng dụng, có thể đăng kí làm thành viên hoặc không Nhân viên chỉ có một số quyền nhất định đối với ứng dụng
➢ Danh sách các Usecase
1 Đăng nhập UC này mô tả chức năng đăng nhập vào hệ thống của nhân viên hoặc Admin
2 Đăng kí UC này mô tả chức năng đăng nhập vào hệ thống của người dùng hoặc Admin
UC này mô tả chức năng xem thông tin sản phẩm có trên app của nhân viên
8 Thống kê UC này mô tả chức năng thống kê theo các tiêu chí khác nhau của Admin
9 Đăng xuất UC này mô tả chức năng thoát khỏi app của quản lý hoặc nhân viên
Trang 263.2 Biểu đồ usecase mức tổng quát 3.2.1 Biểu đồ usecase tổng quát
Hình 6:Biểu Đồ Use Case Tổng Quát
Trang 273.2.2 Biểu đồ usecase nhân viên
Hình 7:Biểu đồ Use case nhân viên
3.2.3 Biểu đồ usecase Admin
Hình 8: Biểu đồ Use case admin
Trang 283.3 Biểu đồ usecase Phân rã chức năng (mức 2)
3.3.1 Phân rã usecase Quản lý nhân viên
Hình 9: Biểu đồ Use case quản lý nhân viên
3.3.2 Phân rã usecase Quản lý khách hàng
Hình 10:Biểu đồ Use case quản lý khách hàng
Trang 293.3.3 Phân rã usecase Thống kê
Hình 11:Biểu đồ Use case thống kê
Trang 303.4 Biểu đồ usecase phân rã chức năng (mức 3) 3.4.1 Phân rã usecase Quản lý người dùng
Hình 12: Biểu đồ usecase phân rã chức năng Quản lý người dùng
3.4.2 Phân rã usecase Quản lý sản phẩm
Hình 13: Biểu đồ usecase phân rã chức năng Quản lý sản phẩm
Trang 313.4.4 Phân rã usecase Đặt mua
Hình 14: Phân rã usecase Đặt mua
3.5 Đặc tả usecase
3.5.1 Đặc tả Usecase đăng nhập (Người dùng)
Hình 15: Đặc tả Usecase đăng nhập (Người dùng)
Tóm tắt
Actor Người dùng là người sử dụng Use Case này Use Case này được sử dụng để thực hiện chức năng đăng nhập vào website của người dùng Sau khi đăng nhập vào website, lúc đó Người dùng mới có thể thực hiện được các chức năng khác, như là: Thanh toán tiền, Gửi ý kiến phản hồi…
Dòng sự kiện
a Dòng sự kiện chính
(1) Người dùng chọn chức năng đăng nhập từ trang chủ của website (2) Trang chủ sẽ mở đến trang đăng nhập
(3) Người dùng nhập tài khoản của mình (bao gồm tên đăng nhập và mật khẩu) (4) Hệ thống xác nhận thông tin đăng nhập
(5) Hiển thị thông báo
Trang 32(6) Kết thúc Use Case b Các dòng sự kiện khác * Dòng sự kiện thứ nhất
(1) Người dùng hủy yêu cầu đăng nhập
(2) Hệ thống bỏ qua trang đăng nhập, trở lại trang hiện tại (3) Kết thúc Use Case
* Dòng sự kiện thứ hai
(1) Người dùng nhập sai thông tin đăng nhập
(2) Hệ thống từ chối đăng nhập, hiển thị thông báo và trang đăng nhập (3) Kết thúc Use Case
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp đăng nhập thành công: hệ thống hiển thị trang chủ của hệ thống Sau khi đăng nhập thành công, Người dùng có thể thực hiện các chức năng tương ứng với quyền đăng nhập của mình, như là thanh toán tiền, gửi ý kiến phản hồi * Trường hợp đăng nhập thất bại: Hệ thống đưa ra thông báo đăng nhập không thành công và hiển thị trang chủ
Điểm mở rộng
Không có Use Case nào có quan hệ << extend>> với Use Case này
3.5.2 Đặc tả Usecase đăng kí tài khoản
Hình 16: Đặc tả Usecase đăng kí tài khoản
Trang 33Tóm tắt
Actor Người dùng là người sử dụng Use Case này Use Case này được sử dụng để thực hiện chức năng đăng kí tài khoản của người dùng Sau khi đăng kí tài khoản, lúc đó Người dùng mới có thể đăng nhập vào website và thực hiện được các chức năng như là: Thanh toán tiền, Gửi ý kiến phản hồi…
Dòng sự kiện
a Dòng sự kiện chính
(1) Người dùng chọn chức năng đăng kí từ trang chủ của website (2) Trang chủ sẽ mở đến trang đăng kí
(3) Người dùng nhập đầy đủ thông tin tài khoản và thông tin cá nhân (4) Hệ thống xác nhận thông tin và lưu lại
(5) Hiển thị thông báo (6) Kết thúc Use Case
b Các dòng sự kiện khác * Dòng sự kiện thứ nhất
(1) Người dùng hủy yêu cầu đăng kí
(2) Hệ thống bỏ qua trang đăng kí, trở lại trang hiện tại (3) Kết thúc Use Case
* Dòng sự kiện thứ hai
(1) Người dùng nhập sai thông tin tài khoản, cá nhân hoặc tài khoản đã tồn tại (2) Hệ thống thông báo lỗi và yêu cầu nhập lại
(3) Kết thúc Use Case
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp đăng kí thành công: hệ thống hiển thị trang đăng nhập để người
dùng có thể đăng nhập vào website và thực hiện các chức năng tương ứng với quyền đăng nhập của mình, như là thanh toán tiền, gửi ý kiến phản hồi
Trang 34* Trường hợp đăng kí thất bại: Hệ thống đưa ra thông báo đăng kí không thành công và hiển thị trang chủ
Actor Người dùng là người sử dụng Use Case này Use Case này được sử dụng để thực hiện chức năng đặt mua sản phẩm của người dùng Sau khi truy cập vào app và xem thông tin sản phẩm, người dùng có thể đặt mua sản phẩm mà mình cảm thấy vừa ý
Dòng sự kiện
a Dòng sự kiện chính
(1) Người dùng chọn chức năng xem của sản phẩm
(2) Trang chủ sẽ mở đến trang thông tin chi tiết của sản phẩm (3) Người dùng xem và nhấn vào nút “đặt mua”
(4) Hệ thống xác nhận thông tin và lưu lại (5) Hiển thị trang thông tin sản phẩm (6) Kết thúc Use Case
b Các dòng sự kiện khác * Dòng sự kiện thứ nhất
(1) Người dùng hủy yêu cầu đặt mua
(2) Hệ thống xóa sản phẩm đó tại danh mục khách và trở lại trang hiện tại (3) Kết thúc Use Case
* Dòng sự kiện thứ hai
(1) Người dùng thay đổi số lượng sản phẩm vừa đặt mua
Trang 35(2) Hệ thống kiểm tra và lưu lại
Các yêu cầu đặc biệt Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp đặt mua thành công: hệ thống tiến hành thêm sản phẩm vào
danh mục giỏ hàng của khách và hiện ra trang thông tin sản phẩm để người
3.5.4 Đặc tả Usecase thanh toán
Hình 18: Đặc tả Usecase thanh toán
Tóm tắt
Actor Nhân viên là người sử dụng Use Case này Use Case này được sử dụng để thực hiện chức năng thanh toán tiền cho sản phẩm của khách đã đặt mua Sau khi đã đặt mua sản phẩm, mục của khách hàng đã tồn tại một hoặc nhiều