STT Tên chức năng chính Phân rã chức năng chi tiết Ghi chú
II. Những chức năng không làm
1 Quản lý thống kê 1.1 Thống kê hóa đơn Quản lý sử dụng 2 Tìm kiếm 2.1 Tìm kiếm bằng giọng nói
Người dùng sử dụng 3 Quản lý dịch vụ 3.1 Chat trực tuyến
4 Thanh toán 4.1 Thanh toán qua ngân hàng
Bảng 2.2 Bảng danh sách các chức năng dự án không làm.
2.3 Công nghệ và công cụ dùng để làm dự án 2.3.1 Tổng quan về hệ điều hành Android
Android là hệ điều hành mã nguồn mở dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng với hơn một tỷ thiết bị và hàng trăm triệu người dùng. Nhưng phần lớn trong chúng ta không biết hệ điều hành này có một lịch sử hình thành vô cùng thú vị.
Hệ điều hành Android được lấy tên từ Android, Inc. – công ty khai sinh ra nó. Công ty này được thành lập tại Palo Alto, California vào tháng 10 năm 2003 bởi Andy Rubin – đồng sáng lập công ty Danger, Rich Miner - đồng sáng lập công ty Viễn thông Wildfire, Nick Sears – cựu Phó giám đốc T-Mobile, và Chris White – trưởng thiết kế và giao diện tại WebTV
Đến nay, Android là một thương hiệu của Google và Android đã có các phiên bản (kèm tên mã) lần lượt là:
Phiên bản Tên Ngày phát hành
Android 1.5 Cupcake 27/4/2009 Android 1.6 Donut 15/9/2009 Android 2.0 – 2.1 Eclair 26/9/2009 Android 2.2 – 2.2.3 Froyo 20/5/2010 Android 2.3 – 2.3.7 Gingerbread 6/12/2010 Android 3.0 – 3.2.6 Honeycomb 22/2/2011 Android 4.0 – 4.0.4 Ice Cream Sandwich 18/10/2011 Android 4.1 – 4.3.1 Jelly Bean 9/7/2012
Android 4.4 – 4.4.4 KitKat 31/10/2013 Android 5.0 – 5.1.1 Lollipop 12/11/2014 Android 6.0 – 6.0.1 Marshmallow 5/10/2015 Android 7.0 – 7.1.2 Nougat 22/8/2016 Android 8.0 – 8.1 Oreo 21/8/2017 Android 9 Pie 07/08/2018 Android 10 Android 10 03/09/2019 Android 11 Android 11 9/2020
Android 11 là phiên bản mới nhất của hệ điều hành android, mang đến những thay đổi mới giúp việc sử dụng smartphone trở nên dễ dàng hơn như quay video màn hình, tùy chỉnh giao diện theo sở thích của bản thân, bảo mật tốt hơn với tính năng chia sẻ vị trí một lần,….
Hệ điều hành Android được ưa chuộng nhất thế giới với vô vàn điểm thú vị, được cả thế giới yêu thích. Hy vọng chia sẻ trên giúp bạn biết nhiều thông tin hấp dẫn về Android giúp bạn sử dụng hệ điều hành tốt hơn.
2.3.2 Kiến trúc hệ điều hành Android
+ Tầng Applications: Là tầng chứa các ứng dụng danh bạ, gọi điện, trình duyệt, Nghe nhạc, … các ứng dụng này thường mua máy về chúng ta đã có sẵn rồi.
+ Tầng Framework: Là tầng chứa các API để làm việc với hệ điều hành như lấy thông tin danh bạ, quản lý các Activity (Activity là gì thì giờ chúng ta chưa cần quan tâm, các bài sau sẽ giải thích kĩ), quản lý địa điểm, quản lý các View (cũng chưa cần quan tâm).
+ Tầng Libraries: Chứa các thư viện, API gần như là cốt lõi của Android, bao gồm bộ quản lý bề mặt cảm ứng (Surface Manager), OpenGL (phục vụ cho việc dựng đồ họa phức tạp), …
+ Tầng Android Runtime: Chứa các thư viện lõi của Android và máy ảo Dalvik Virtual Machine (từ Android 4 trở lên chúng ta có thêm máy ảo ART).
+ Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập lệnh, driver giao tiếp giữa phần cứng và phần mềm của Android.
Trong quá trình làm việc, chúng ta sẽ gần như chỉ làm việc với tầng xanh lam (Applications và Application Framework) và xanh lá (Libraries). Chương trình Android được viết bằng ngôn ngữ Java và được máy ảo DVM / ART trong mỗi thiết bị Android biên dịch ra mã máy.
Hình 2.1 Tổng quan hệ điều hành Android 2.4 Cấu hình phần cứng tối thiểu
- Cấu hình tối thiểu cài đặt Android Studio:
+ Microsoft® Windows® 10/8/7 (32 or 64-bit) + 4 GB RAM. (Khuyến cáo là 8GB)
+ Chip core I3 trở lên
+ 400 MB hard disk space + ít nhất 1GB cho Android SDK, emulator + Độ phân giải tối thiếu 1366 x 768
- Một số tính năng nổi bật của Android Studio:
+ Bộ công cụ build ứng dụng dựa trên Gradle (thay vì Maven). + Chức năng dò và sửa lỗi nhanh, hướng Android.
+ Công cụ chỉnh sửa màn hình dạng kéo thả tiện lợi.
2.5 Các phần mềm nền tảng 2.5.1 Giới thiệu Android Studio
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát
triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại smartphone, các tablet... Android Studio được đóng gói với một bộ code editor, debugger, các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lập simulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp.
Hình 2.2 Logo Android Studio
Android Studio lần đầu tiên được công bố tại hội nghị Google I/O vào năm 2013 và được phát hành cho công chúng vào năm 2014 sau nhiều phiên bản beta khác nhau. Trước khi được phát hành, các nhà phát triển Android thường sử dụng các công cụ như Eclipse IDE, một IDE Java chung cũng hỗ trợ nhiều ngôn ngữ lập trình khác.
Công cụ hỗ trợ lập trình Android: - Android Studio
- SQLite - Java
2.5.2 Giới thiệu về Java
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class), ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995. Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.
Hình 2.3 Logo Ngôn Ngữ Java
Java hỗ trợ tối đa cho hệ điều hành Android. Vì thế ngôn ngữ lập trình này được áp dụng rất nhiều vào các ứng dụng dành cho Android. Số người sử dụng Android chiếm hơn một nửa thị phần vì vậy có thể thấy, nhu cầu sử dụng các ứng dụng là rất lớn.
Nếu trong tay bạn đang cầm một chiếc điện thoại chạy trên hệ điều hành Android thì đừng bất ngờ, bất cứ một ứng dụng nào trên đó cũng đều được hình thành và phát triển trên nền tảng Java. Chính điều này đã tạo ra cơ hội lớn cho các lập trình viên Java: nếu họ học tốt và có kỹ năng thì chắc chắn những lập trình Java sẽ không bao giờ sợ thất nghiệp.
Để bắt đầu học lập trình Java, bạn phải cần thông thạo các ngôn ngữ lập trình hướng đối tượng, có thể học qua lập trình C để làm quen với những khái niệm của loại lập trình này cũng như có thể hiểu sâu hơn về Java và các công nghệ Java mà nhiều người thường sử dụng như:
- Java Core.
- Enterprise Java Beans. - JSP/Java Severlet. - JDBC và RMI.
2.5.3 Giới thiệu về SQLite
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine, không cần máy chủ, không cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu, không cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn không cần phải cấu hình nó trong hệ thống của mình.
SQLite engine không phải là một quy trình độc lập (standalone process) như các cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hoặc động tùy theo yêu cầu của bạn với ứng dụng của bạn. SQLite truy cập trực tiếp các file lưu trữ (storage files) của nó.
Hình 2.4 Logo SQLite Studio Tóm tắt lịch sử của SQLite:
- 2000 - D. Richard Hipp đã thiết kế SQLite cho mục đích không yêu cầu quản trị để vận hành chương trình.
- 2000 - Vào tháng 8, SQLite 1.0 được phát hành với trình quản lý cơ sở dữ liệu GNU. - 2011 - Hipp tuyên bố bổ sung giao diện UNQl vào SQLite DB và phát triển UNQLite
(Cơ sở dữ liệu hướng tài liệu - Document oriented database).
2.6 Biểu đồ use case và đặc tả use case của hệ thống 2.6.1 Biểu đồ tổng thể mức tổng quát
2.6.1.1 Các biểu đồ chi tiết use case người dùng được phân rã từ biểu đồ tổng quát
Hình 2. 6 Biểu đồ chi tiết được phân rã từ biểu đồ tổng quát của Người dùng.
2.6.1.2 Các biểu đồ chi tiết use case quản lý được phân rã từ biểu đồ tổng quát
2.7 Các use case được phân rã ở mức nhỏ nhất
2.7.1 Các use case được phân rã ở mức nhỏ nhất của Người dùng2.7.1.1 Sơ đồ và đặc tả Use Case đăng nhập 2.7.1.1 Sơ đồ và đặc tả Use Case đăng nhập
Hình 2. 8 Use case đăng nhập cho người dùng
Use Case ID UC-1.1 Use Case Name Đăng nhập
Description Là người dùng, tôi muốn đăng nhập vào ứng dụng, để sử dụng dịch vụ từ ứng dụng.
Actor(s) Người dùng
Priority Có
Trigger Người dùng muốn đăng nhập vào ứng dụng bán laptop online Pre-
Condition(s):
Tài khoản người dùng đã được tạo sẵn Tài khoản người dùng đã được phân quyền
Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng
nhập Post-
Condition(s):
Người dùng đăng nhập ứng dụng thành công
Hệ thống ghi nhận hoạt động đăng nhập thành công vào Activity Trang Chủ.
Basic Flow 1. Người dùng truy cập ứng dụng bán laptop online.
2. Người dùng chọn phương thức đăng nhập bằng tài khoản 3. Người dùng nhập tài khoản và chọn lệnh đăng nhập
4. Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng
5. Hệ thống ghi nhận hoạt động đăng nhập thành công vào Activity Trang Chủ.
Alternative Flow Không có
Exception Flow 4c. Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo.
4c1. Người dùng chọn lệnh hủy đăng nhập. Use Case dừng lại. Business Rules Không có
Non-Functional Requirement
NFR1.1-1: Timeout cho màn hình đăng nhập dưới 60 giây. NFR1.1-2: Mật khẩu của người dùng phải được hash bằng MD5. NFR1.1-3: Mật khẩu của người dùng phải trên 8 ký tự.
2.7.1.2 Sơ đồ và đặc tả Use Case đăng ký
Hình 2. 9 Use case đăng ký cho người dùng
Use Case ID UC-1.2 Use Case Name Đăng ký
Description Giúp người dùng (khách hàng) đăng ký tài khoản trên ứng dụng
Actor(s) Người dùng
Priority Có
Trigger Là người dùng, tôi muốn đăng ký tài khoản, để sử dụng dịch vụ tại ứng dụng bán laptop online
Pre-
Condition(s):
Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng ký
Post-
Condition(s):
Người dùng đăng ký tại ứng dụng thành công
Hệ thống ghi nhận hoạt động đăng ký thành công vào Activity đăng nhập.
Basic Flow 1. Người dùng truy cập ứng dụng bán laptop online.
2. Khách hàng chọn chức năng “Đăng ký tài khoản”
3. Hệ thống hiển thị các thông tin yêu cầu để đăng ký: tên đăng nhập, mật khẩu, email, … các thông tin cá nhân liên quan khác. 4. Khách hàng cung cấp các thông tin và tạo tài khoản
5. Hệ thống xác nhận thông tin và tạo tài khoản cho khách hàng 6. Lấy thông tin khách hàng
7. Hệ thống trả về kết quả 8. Hiển thị
Alternative Flow
Không có
Exception Flow 4c. Khách hàng cung cấp các thông tin yêu cầu không đúng, để trống, tên đăng nhập, email, mật khẩu không hợp lệ hay đã tồn tại. Người dùng cần cung cấp lại thông tin đăng ký.
4c1. Người dùng chọn lệnh hủy đăng ký. Use Case dừng lại. Business Rules Không có
Non-Functional Requirement
NFR1.1-1: Timeout cho màn hình đăng nhập dưới 60 giây. NFR1.1-2: Mật khẩu của người dùng phải được hash bằng MD5. NFR1.1-3: Mật khẩu của người dùng phải trên 8 ký tự.
NFR1.1-4: Số điện thoại của người dùng phải đúng 10 ký tự số. NFR1.1-5: Email của dùng phải có ký tự “@”.
NFR1.1-6: Mật khẩu và nhập lại mật khẩu phải trùng khớp.
2.7.1.3 Sơ đồ và đặc tả Use Case tìm kiếm
Hình 2. 10 Use case tìm kiếm cho người dùng
Use Case ID UC-1.3
Use Case Name Tìm kiếm sản phẩm
Description Giúp người dùng có thể tìm kiếm sản phẩm
Actor(s) Người dùng
Priority Không
Trigger Là người dùng, tôi muốn tìm kiếm sản phẩm, để xem và mua sản phẩm trên ứng dụng bán laptop online
Pre-Condition(s): Thiết bị của người dùng đã được kết nối internet khi thực hiện Post-
Condition(s):
Hệ thống chuyển thành công vào Activity tìm kiếm sản phẩm Basic Flow 1. Người dùng chọn chức năng tìm kiếm
2. Hệ thống hiển thị giao diện tìm kiếm đáp ứng cho người dùng 3. Người dùng sẽ nhập vào thông tin sản phẩm cần tìm
4. Hệ thống sẽ kiểm tra và trả kết quả cho người dùng Alternative Flow 3a. Người dùng chọn bộ lọc theo danh mục sản phẩm laptop
Use case tiếp tục bước thứ 4 3b. Tìm kiếm theo lịch sử Use case tiếp tục bước thứ 4
Exception Flow Người dùng thoát chức năng tìm kiếm *Usecase dừng lại
Hệ thống kiểm tra không có từ khóa trong tìm kiếm *Hệ thống sẽ trả hết quả gợi ý
Business Rules Không có Non-Functional
Requirement
NFR1.1-1: Timeout cho trang thống kê dưới 60 giây. NFR1.1-2: Không được để trống nội dung tìm kiếm. NFR1.1-3: Không được tìm kiếm bằng ký tự đặc biệt.
1.2.1.4 Sơ đồ và đặc tả Usecase thanh toán
Hình 2. 11 Use case thanh toán cho người dùng
Use Case ID UC-1.4 Use Case Name Thanh toán
Description Giúp người dùng có thể thanh toán các sản phẩm
Actor(s) Người dùng
Priority Không
Trigger Là người dùng, tôi muốn thanh toán sản phẩm, để thanh toán các sản phẩm của tôi trong giỏ hàng trong ứng dụng bán laptop online Pre-Condition(s): Thiết bị của người dùng đã được kết nối internet khi thực hiện
Người dùng đã có tài khoản Người dùng phải đăng nhập Post-
Condition(s):
Hệ thống chuyển thành công vào Activity thanh toán Basic Flow 1. Người dùng chọn thanh toán trên ứng dụng
2. Hệ thống sẽ kiểm tra người dùng đã đăng nhập hay chưa và trả
về thông báo
3. Hệ thống sẽ kiểm tra giỏ hàng của người dùng và trả về kết quả 4. Hiển thị giao diện nhập thông tin hóa đơn (số điện thoại, địa
chỉ, ghi chú, …)
5. Hệ thống kiểm tra thông tin hóa đơn và trả về thông báo cho người dùng
Alternative Flow 2a. Người dùng chưa đăng nhập, hệ thống chuyển người dùng sang Activity đăng nhập.
3a. Giỏ hàng không có sản phẩm, hệ thống chuyển sang Activity sản phẩm
Use case tiếp tục thực hiện bước 4
Exception Flow Người dùng chọn hủy hóa đơn thanh toán *Usecase dừng lại
Business Rules Không có Non-Functional
Requirement
NFR1.1-1: Timeout cho màn hình đăng nhập dưới 300 giây.
NFR1.1-2: Địa chỉ không được bỏ trống và không chứa ký tự đặc biệt.
NFR1.1-3: Số điện thoại của người dùng phải 10 - 11 ký tự số.
2.7.1.4 Sơ đồ và đặc tả Use Case hiển thị sản phẩm
Hình 2. 12 Use case hiển thị sản phẩm cho người dùng
Use Case ID UC-1.5
Use Case Name Hiển thị sản phẩm
Description Giúp người dùng xem chi tiết sản phẩm
Actor(s) Người dùng
Priority Không
Trigger Là người dùng, tôi muốn xem thông tin, xem bình luận, xem đánh giá sản phẩm, để mua sản phẩm trên ứng dụng
Pre-Condition(s): Thiết bị của người dùng đã được kết nối internet khi thực hiện Post-
Condition(s):
Hệ thống chuyển thành công vào activity chi tiết sản phẩm Basic Flow 1. Người dùng chọn vào sản phẩm cần xem
2. Hệ thống sẽ hiển thị chi tiết sản phẩm cho người dùng
Alternative Flow Không có
Exception Flow Người dùng thoát khỏi activity xem chi tiết sản phẩm