Tải bản đầy đủ (.pdf) (71 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.09 MB, 71 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO </b>

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á </b>

<b>ĐỒ ÁN TỐT NGHIỆP </b>

<b>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 </b>

<b>Sinh viên thực hiên : NGUYỄN THÀNH CÔNG </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO </b>

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á </b>

<b>NGUYỄN THÀNH CÔNG </b>

<b><small> </small></b>

<b>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</b>

<b>Giáo viên hướng dẫn: ThS.Lê Trung Thực </b>

<b>Bắc Ninh 2023</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

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à hồ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 ln 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!

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>LỜI CAM ĐOAN </b>

Đồ á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 đã hồ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

<b>xây dựng lên. Mọi thơng tin sai lệch chúng em xin chịu hồn tồn trách nhiệm </b>

trước hội đồng bảo vệ.

Hà Nội, ngày tháng năm 2023 Sinh viên

<b>Nguyễn Thành Công </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<small>CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI ... 10</small>

<small>1.1Giới thiệu về đề tài ... 10</small>

<small>1.2. Phân tích yêu cầu đề tài ... 10</small>

<small>1.2.1. Tóm tắt yêu cầu của hệ thống ... 10</small>

<small>1.2.2. Phạm vi dự án được ứng dụng ... 11</small>

<small>1.3. Chức năng của hệ thống ... 11</small>

<small>1.4. Giao diện của phần mềm... 13</small>

<small>1.4.1. Giao diện người dùng ... 13</small>

<small>1.4.2. Giao diện người quản trị: ... 13</small>

<small>Phân tích các chức năng của hệ thống ... 13</small>

<small>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ... 14</small>

<small>2.1 Tìm hiểu về ngơn ngữ JAVA: ... 14</small>

<small>2.2 Hệ điều hành Android ... 14</small>

<small>2.2.1 Khái niệm Android ... 14</small>

<small>2.2.2 Kiến trúc Android ... 15</small>

<small>2.2.3 Applications ... 15</small>

<small>2.3 Các thành phần cơ bản của một ứng dụng Android ... 17</small>

<small>2.4. Các thành phần giao diện Widget ... 21</small>

<small>2.4.1. Bắt sự kiện trong Android ... 21</small>

<small>2.4.2. Menu ... 22</small>

<small>CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ... 23</small>

<small>3.1. Phân tích thiết kế với uml ... 23</small>

<small>3.2. Biểu đồ usecase mức tổng quát ... 24</small>

<small>3.2.1. Biểu đồ usecase tổng quát ... 24</small>

<small>3.2.2. Biểu đồ usecase nhân viên ... 25</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<small>3.3.1. Phân rã usecase Quản lý nhân viên ... 26</small>

<small>3.3.2. Phân rã usecase Quản lý khách hàng ... 26</small>

<small>3.3.3. Phân rã usecase Thống kê ... 27</small>

<small>3.4. Biểu đồ usecase phân rã chức năng (mức 3) ... 28</small>

<small>3.4.1. Phân rã usecase Quản lý người dùng ... 28</small>

<small>3.4.2. Phân rã usecase Quản lý sản phẩm ... 28</small>

<small>3.4.4. Phân rã usecase Đặt mua ... 29</small>

<small>3.5. Đặc tả usecase ... 29</small>

<small>3.5.1. Đặc tả Usecase đăng nhập (Người dùng) ... 29</small>

<small>3.5.2. Đặc tả Usecase đăng kí tài khoản ... 30</small>

<small>3.6.2. Chức năng Quản lý nhân viên ... 43</small>

<small>3.6.2. Chức năng xóa nhân viên ... 44</small>

<small>3.7.1. Biểu đồ hoạt động chức năng đăng kí ... 48</small>

<small>3.7.3. Biểu đồ hoạt động chức năng quản lý nhân viên ... 50</small>

<small>3.7.4. Biểu đồ hoạt động chức năng quản lý khách hàng ... 51</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<small>3.7.5. Biểu đồ hoạt động chức năng quản lý sản phẩm ... 52</small>

<small>3.7.6. Biểu đồ hoạt động chức năng quản lý thống kê ... 53</small>

<small>3.8. Thiết kế cơ sở dữ liệu ... 54</small>

<small>CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC ... 62</small>

<small>4.1. Giao Diện chương trình ... 62</small>

<small>4.2. Đánh giá kết quả ... 67</small>

<small>KẾT LUẬN ... 68</small>

<small>TÀI LIỆU THAM KHẢO ... 69</small>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>DANH MỤC CÁC HÌNH ẢNH </b>

<i>Hình 1: Mơ Hình Kiến Trúc Nần Tảng Android ... 15</i>

<i>Hình 2: Mơ hình hợp tác giữa máy ảo Dalvik và Navite code ... 17</i>

<i>Hình 3: Lược đồ vịng đời của 1 activity ... 18</i>

<i>Hình 4: Sử dụng Intent để trao đổi thơng tin giữa hai chương trình ... 18</i>

<i>Hình 5: Lược đồ vịng đời của một Service ... 19</i>

<i>Hình 6:Biểu Đồ Use Case Tổng Quát ... 24</i>

<i>Hình 7:Biểu đồ Use case nhân viên ... 25</i>

<i>Hình 8: Biểu đồ Use case admin ... 25</i>

<i>Hình 9: Biểu đồ Use case quản lý nhân viên ... 26</i>

<i>Hình 10:Biểu đồ Use case quản lý khách hàng ... 26</i>

<i>Hình 11:Biểu đồ Use case thống kê ... 27</i>

<i>Hình 12: Biểu đồ usecase phân rã chức năng Quản lý người dùng ... 28</i>

<i>Hình 13: Biểu đồ usecase phân rã chức năng Quản lý sản phẩm ... 28</i>

<i>Hình 14: Phân rã usecase Đặt mua ... 29</i>

<i>Hình 15: Đặc tả Usecase đăng nhập (Người dùng) ... 29</i>

<i>Hình 16: Đặc tả Usecase đăng kí tài khoản ... 30</i>

<i>Hình 17: Đặc tả Usecase đặt mua ... 32</i>

<i>Hình 18: Đặc tả Usecase thanh tốn ... 33</i>

<i>Hình 19: Đặc Tả Use Case Đăng nhập (Admin) ... 35</i>

<i>Hình 20: Đặc tả Usecase Quản lý nhân viên ... 36</i>

<i>Hình 21: Đặc tả Usecase Quản lý khách hàng ... 38</i>

<i>Hình 22: Đặc tả Usecase Quản lý danh sách ... 39</i>

<i>Hình 23: Đặc tả Usecase Thống kê ... 40</i>

<i>Hình 24: Biểu Đồ Tuần Tự Chức Năng Đăng Ký ... 42</i>

<i>Hình 25: Biểu đồ tuần tự chức năng đăng nhập ... 43</i>

<i>Hình 26: Biểu đồ tuần tự chức thêm nhân viên ... 44</i>

<i>Hình 27:Biểu đồ tuần tự chức năng xóa nhân viên ... 44</i>

<i>Hình 28: Biểu đồ tuần tự chức năng đặt mua ... 45</i>

<i>Hình 29: Biểu đồ tuần tự chức năng thanh tốn ... 45</i>

<i>Hình 30: Biểu đồ tuần tự chức năng thêm sản phẩm ... 46</i>

<i>Hình 31:Biểu đồ tuần tự chức năng sửa thông tin sản phẩm ... 46</i>

<i>Hình 32: Biểu đồ tuần tự chức năng xóa sản phẩm ... 47</i>

<i>Hình 33: Biểu đồ tuần tự chức tìm kiếm ... 47</i>

<i>Hình 34: Biểu đồ tuần tự chức năng thống kê ... 48</i>

<i>Hình 35: Biểu đồ hoạt động chức năng đăng kí ... 48</i>

<i>Hình 36: Biểu đồ hoạt động chức năng đăng nhập ... 49</i>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<i>Hình 37: Biểu đồ hoạt động chức năng quản lý nhân viên ... 50</i>

<i>Hình 38: Biểu đồ hoạt động chức năng quản lý khách hàng ... 51</i>

<i>Hình 39:Biểu đồ hoạt động chức năng quản lý sản phẩm ... 52</i>

<i>Hình 40: Biểu đồ hoạt động chức năng quản lý thống kê ... 53</i>

<i>Hình 41 : Giao diện Đăng Nhập ... 62</i>

<i>Hình 42 Giao Diện Tạo Tài Khoản ... 63</i>

<i>Hình 43 Giao Diện Trang Chủ ... 63</i>

<i>Hình 44: Giao Diện Quản Lý Nhân Viên ... 64</i>

<i>Hình 45 : Giao Diện Thêm Nhân Viên ... 64</i>

<i>Hình 46: Giao Diện Quản Lý Khách hàng ... 65</i>

<i>Hình 47: Giao Diện Thêm Khách Hàng ... 65</i>

<i>Hình 48 : Giao Diện Các hạng Mục Hàng Hóa ... 66</i>

<i>Hình 49 : Giao Diện Thống Kê ... 66</i>

<i>Hình 50: Giao Diện Chi Tiết Đơn Mua ... 67</i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>LỜI MỞ ĐẦU 1.Lý do chọn đề tài: </b>

- 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ể hồ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… Ngồ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ơ.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>2.Kết cấu đề tài </b>

Đồ á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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu về đề tài </b>

- 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.

<b>Giới hạn và phạm vi đề tài: - Tên hệ thống: Xưởng Sản Xuất </b>

<i>+ 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 </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 tố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 tố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 tốn hóa đơn mua bán một cách dễ dàng và chính xác nhất.

<i><b>1.2. Phân tích yêu cầu đề tài </b></i>

<b>1.2.1. Tóm tắt yêu cầu của hệ thống </b>

- 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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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ó.

<i>- Người dùng có thể xem chi tiết từng sản phẩm (có hình ảnh minh hoạ sản </i>

<i>phẩm). </i>

- 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 tố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.

<b>1.2.2. Phạm vi dự án được ứng dụng </b>

- 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 tố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 tố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.

<b>1.3. Chức năng của hệ thống Chức năng quản lý nhân viên </b>

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

✓ Xố 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.

<b>Chức năng quản lý sản phẩm : </b>

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.

✓ Xố 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.

<b>Chức năng quản lý khách hàng </b>

✓ Nhập thông tin khách hàng. ✓ Liệt kê danh sách khách hàng.

<b>Thống kê </b>

✓ 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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>1.4. Giao diện của phần mềm 1.4.1. Giao diện người dùng </b>

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.

<b>1.4.2. Giao diện người quản trị: </b>

- 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.

<b>Phân tích các chức năng của hệ thống </b>

➢ 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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu về ngôn ngữ JAVA: </b>

- 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.

<b>2.2 Hệ điều hành Android 2.2.1 Khái niệm Android </b>

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ợ:

<b>➢ Application framework: Cho phép tái sử dụng và thay thế các thành phần </b>

sẳn có của Android.

<b>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. </b>

<b>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. </b>

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ị).

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>2.2.2 Kiến trúc Android </b>

Lược đồ sau thể hiện các thành phần của hệ điều hành Android:

<i>Hình 1: Mơ Hình Kiến Trúc Nần Tảng Android </i>

<b>2.2.3 Applications </b>

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. Ngồ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.

<b>2.2.3.1 Application Framwork </b>

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:

<b>➢ Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các </b>

ứng dụng khác hoặc chia sẽ dữ liệu của chúng.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>➢ Resource Manager: Cung cấp khả năng truy xuất các tài nguyên non-code </b>

như hình ảnh hoặc file layout.

<b>➢ Notification Manager: Cung cấp khả năng hiển thị custom alert trên thanh </b>

status bar.

<b>➢ Activity Manager: Giúp quản lý vòng đời của một ứng dụng. 2.2.3.2 Libraries </b>

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:

<b>➢ System C library: một thể hiện được xây dựng từ BSD của bộ thư viện </b>

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.

<b>➢ Media libraries: Bộ thư viện hổ trợ trình diễn và ghi các định dạng âm </b>

than và hình ảnh phổ biến.

<b>➢ Surface manager: Quản lý hiển thị nội dung 2D và 3D. </b>

<b>➢ LibWebCore: Một web browser engine hiện đại được sử dụng trong trình </b>

duyệt của Android lần trong trình duyệt nhúng web view được sử dụng trong ứng dụng.

<b>➢ SGL: Engine hổ trợ đồ họa 2D. </b>

<b>➢ 3D libraries: Một thể hiện được xây dựng dựa trên các APIs của OpenGL </b>

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.

<b>➢ FreeType: Bitmap and vector font rendering. ➢ SQLite: Một DBMS nhỏ gọn và mạnh mẽ. 2.2.3.3 Android Runtime </b>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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).

<b>2.2.3.4 Linux Kernel </b>

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:

<i>Hình 2: Mơ hình hợp tác giữa máy ảo Dalvik và Navite code </i>

<b>2.3 Các thành phần cơ bản của một ứng dụng Android 2.3.1 Activity </b>

<b>➢ Định nghĩa Activity </b>

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:

<b>onCreate(Bundle) - Nơi khởi tạo activity. </b>

<b>• onPause () - Nơi giải quyết sự kiện người dùng rời khỏi activity. Mọi dữ liệu </b>

đượ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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Vịng đời của một activity </b>

<i>Hình 3: Lược đồ vòng đời của 1 activity </i>

<b>2.3.2 Intent </b>

<b>➢ Định nghĩa Intent </b>

<b> Intent được sử dụng với phương thức startActivity() để mở một Activity, và </b>

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) để

<b>giao tiếp với các Service chạy dưới nền. </b>

<i><small>Hình 4: Sử dụng Intent để trao đổi thơng tin giữa hai chương trình </small></i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2.3.3 Service </b>

<b>➢ Định nghĩa Service </b>

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()

<b>➢ Vòng đời của một Service </b>

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ý.

<i>Hình 5: Lược đồ vòng đời của một Service </i>

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.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>2.3.4 Content Provider </b>

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.

<b>2.3.5 View </b>

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:

<b>• TextView: Hiển thị một khung text và cho phép người dùng thay đổi. </b>

<b>• ImageView: Hiển thị một hình ảnh xác định từ file tài nguyên hay qua một </b>

content provider.

<b>• Button: Hiển thị một nút nhấn. </b>

<b>• 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. </b>

<b>• WebView: Hiển thị các trang web bằng Webkit. 2.3.6 Broadcast Receiver </b>

Một Broadcast receiver là một thành phần mà khơng làm gì khác ngồ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.

<b>2.3.7 File AndroidManifest.xml </b>

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.

<b>2.3.8 Giao diện người dùng trong Android </b>

Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

sử 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.

<b>2.4. Các thành phần giao diện Widget </b>

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.

<b>2.4.1. Bắt sự kiện trong Android </b>

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

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

View), 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.

<b>2.4.2. Menu </b>

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 đó.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>CHƯƠ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 </b>

1

Người quản lý

Người quản lý là người có tồ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

<b>➢ Danh sách các Usecase </b>

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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>3.2. Biểu đồ usecase mức tổng quát 3.2.1. Biểu đồ usecase tổng quát </b>

<i>Hình 6:Biểu Đồ Use Case Tổng Quát </i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>3.2.2. Biểu đồ usecase nhân viên </b>

<i>Hình 7:Biểu đồ Use case nhân viên </i>

<i><b>3.2.3. Biểu đồ usecase Admin </b></i>

<i>Hình 8: Biểu đồ Use case admin </i>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i><b>3.3. Biểu đồ usecase Phân rã chức năng (mức 2) </b></i>

<b>3.3.1. Phân rã usecase Quản lý nhân viên </b>

<i>Hình 9: Biểu đồ Use case quản lý nhân viên </i>

<b>3.3.2. Phân rã usecase Quản lý khách hàng </b>

<i>Hình 10:Biểu đồ Use case quản lý khách hàng </i>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>3.3.3. Phân rã usecase Thống kê </b>

<i>Hình 11:Biểu đồ Use case thống kê </i>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>3.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 </b>

<i>Hình 12: Biểu đồ usecase phân rã chức năng Quản lý người dùng </i>

<b>3.4.2. Phân rã usecase Quản lý sản phẩm </b>

<i>Hình 13: Biểu đồ usecase phân rã chức năng Quản lý sản phẩm </i>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>3.4.4. Phân rã usecase Đặt mua </b>

<i>Hình 14: Phân rã usecase Đặt mua </i>

<b>3.5. Đặc tả usecase </b>

<b>3.5.1. Đặc tả Usecase đăng nhập (Người dùng) </b>

<i>Hình 15: Đặc tả Usecase đăng nhập (Người dùng) </i>

<b>Tóm tắt </b>

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…

<b>Dịng sự kiện </b>

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

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="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

<b> Các yêu cầu đặc biệt </b>

<i> Khơng có u cầu đặc biệt </i>

<b>Trạng thái hệ thống khi bắt đầu thực hiện Use Case </b>

Khơng địi hỏi bất cứ điều kiện nào trước đó

<b>Trạng thái hệ thống sau khi thực hiện Use Case </b>

* 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ủ

<b> Điểm mở rộng </b>

Khơng có Use Case nào có quan hệ << extend>> với Use Case này.

<b>3.5.2. Đặc tả Usecase đăng kí tài khoản </b>

<i>Hình 16: Đặc tả Usecase đăng kí tài khoản </i>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>Tóm tắt </b>

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…

<b>Dịng sự kiện </b>

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

<b>Các yêu cầu đặc biệt </b>

Không có yêu cầu đặc biệt

<b>Trạng thái hệ thống khi bắt đầu thực hiện Use Case </b>

<i> Khơng địi hỏi bất cứ điều kiện nào trước đó </i>

<b>Trạng thái hệ thống sau khi thực hiện Use Case </b>

<i> * Trường hợp đăng kí thành cơng: hệ thống hiển thị trang đăng nhập để người </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

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="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 ý.

<b>Dòng sự kiện </b>

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

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

(2). Hệ thống kiểm tra và lưu lại

<b>Các yêu cầu đặc biệt Khơng có u cầu đặc biệt </b>

<b>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 đó </b>

<b>Trạng thái hệ thống sau khi thực hiện Use Case </b>

<i> * 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 </i>

danh mục giỏ hàng của khách và hiện ra trang thông tin sản phẩm để người

<b>3.5.4. Đặc tả Usecase thanh tốn </b>

<i>Hình 18: Đặc tả Usecase thanh tốn </i>

<b>Tóm tắt </b>

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

</div>

×