Đề tài Smurfs - Hệ thống nông trại thông minh trong trường đại học được thực hiện với mục đích cho phép người sử dụng điều khiển tất cả các thiết bị truyền động (thiết bị IOT) trong trang trại của mình. Ví dụ, một trang trại trồng rau có thể có một hệ thống bơm và/hoặc một hệ thống bón phân để cung cấp nước / phân bón/chất dinh dưỡng cho cây trồng/... Ví dụ khác, một trang trại nuôi tôm có thể có một hệ thống cung cấp oxy để cung cấp thêm oxy đến những con tôm. Mời các bạn cùng tham khảo!
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
CÔNG NGHỆ PHẦN MỀM
Bài tập lớn
Smurfs - Smart Universial Farm System
Giáo viên hướng dẫn: Lê Đình Thuận
Lớp: L03
DANH SÁCH THÀNH VIÊN NHÓM
1 Nguyễn Trung Tính – 1713521
2 Nguyễn Nhật Tân – 1713074
3 Đặng Văn Dũng – 1710853
4 Cao Đăng Dũng – 1710849
5 Nguyễn Trương Đình Quân – 1712825
6 Nguyễn Xuân Trực – 1513804
TP HỒ CHÍ MINH - THÁNG 4/2019
Trang 2MỤC LỤC
I Introduction 2
II Indivual document 2
1 Function requirement 3
a) Use-case diagram 3
b) Use-case scenario 4
2 Non-functional requirements 15
a) General non-functional requirement 15
b) Use-case non-functional requirement 15
Trang 3I Introduction:
Smurfs - Smart Universial Farm System
For increasing the quality and productivity of farming products, our university would like to develop a system (Smurfs) for building and controlling smart farms
Such the system allows the users to control all the actuators (IOT device) in their farm For example, a vegetable farm may have a pumping system and/or a fertilizing system to provide the plants in the farms with water/fertilizer/plant nutrients/… For another example, a shrimp farm may have an oxygen supply system to provide more oxygen to the shrimps
Importantly, the system has to provide the users the health of their farms based on data collected from the sensors, such as moiture sensor, water level sensor, oxygen level sensor, pH level sensor, etc or some health diagnostic system based on image processing techniques The system then allows the users to configure actuators to work automatically based on scheduling or based on a formala of collected data
The collected data for the system must be stored in a cloud-scale technology and can only be accessed by authorized persons
The platform should be in multi-platform to allow the users access to the system using their working daily devices such as desktop and mobile
Assume that, there is only one system and the users may need to register and configure their farms to the system before use
II Indivual document:
Trang 41 Function requirement:
a) Use-case diagram:
Trang 5b) Use-case scenario:
Use-case name: Đăng Kí
Description: Use – Case cho phép người dùng tạo một tài khoản mới trên hệ thống Trigger: Khi người dùng bấm vào liên kết “Đăng kí Tài khoản”
Pre-condition: 1 Thiết bị phải có kết nối Internet
2 Người dùng chưa Đăng nhập vào hệ thống Post-condition: Người dùng đăng kí tài khoản thành công
Normal Flow: 1 Hệ thống hiển thị màn hình Đăng Kí
2 Người dùng nhập User Name theo ý của mình
3 Người dùng nhập Password
4 Người dùng nhập lại Password
5 Hệ thống kiểm tra User Name đã được sử dụng hay chưa
6 Hệ thống kiểm tra Password và Re-Password có giống nhau hay không
7 Nếu thành công, hệ thống sẽ đăng kí tài khoản mới cho User với các thông số User Name và Password
8 Kết thúc User - Case
Alternative Flow: A User Name đã được sử dụng: Khi người dùng chọn User Name đã
có người đăng kí trước đó
1 Hệ thống hiển thị lại màn hình Đăng Kí để người dùng nhập lại thông tin kèm theo thông báo User Name đã được sử dụng
2 Quay lại bước 2 trong Normal Flow
B Hai Password khác nhau: Khi người dùng nhập Password và
Re-Password không trùng nhau
1 Hệ thống hiển thị lại màn hình Đăng Kí để người dùng nhập lại thông tin kèm theo thông báo Password không trùng nhau
2 Quay lại bước 2 trong Normal Flow
Exceptions: Ở bước 1, nếu không có kết nối Internet, hệ thống sẽ báo cho người
dùng biết
Notes and issues: Không
Non – functional: • Hệ thống không được để lộ thông tin của User
• Trang đăng kí có giao diện rõ ràng, bố cục cân đối, màu chữ tương phản, rõ ràng
• Thời gian cho phép để hệ thống phản hồi lại thông tin đã tiếp nhận yêu cầu xử lý từ phía người sử dụng là 3 giây
• Tên đăng nhập (UserName) không được dài quá 20 kí tự, không chứa khoảng trắng, chỉ chấp nhận kí tự bảng chữ cái Tiếng Anh và kí tự số (không chấp nhận kí tự đặc biệt)
Trang 6• Mật khẩu (Password) dài tối thiểu 8 kí tự, bao gồm kí tự số, kí tự đặc biệt, kí tự IN HOA và kí tự thường
• Không cho phép tên tài khoản và mật khẩu đăng nhập được truyền trên môi trường mạng mà không được mã hóa
• Hỗ trợ ít nhất 2 ngôn ngữ (Tiếng Anh + Tiếng Việt)
Use-case name: Gửi dữ liệu về hệ thống đám mây
Actor Hệ thống quan sát tình trạng nông trại
Description: Sau khi có dữ liệu đo điều kiện môi trường từ các cảm biến, dữ liệu
sẽ được gửi về hệ thống đám mây Trigger: Tự động gửi dữ liệu về hệ thống đám mây
Pre-condition: 1 Thiết bị phải có kết nối Internet
2 Có dữ liệu thu thập được từ các cảm biến
3 Hệ thống phải được kết nối với hệ cơ sở dữ liệu đám mây
Post-condition: Dữ liệu được gửi về hệ thống đám mây thành công
Normal Flow: 1 Hệ thống nhận dữ liệu đo được từ các cảm biến
2 Hệ thống tự động chuyển dữ liệu lên hệ thống đám mây
3 Thông báo đã chuyển dữ liệu thành công
Alternative Flow:
Exceptions: Ở bước 2, nếu không có kết nối Internet, hệ thống sẽ báo cho người
dùng biết chuyển dữ liệu lên đám mây không thành công
Notes and issues: Nếu không gửi dữ liệu lên hệ thống đám mây thành công, dữ liệu
không bị mất đi (vẫn được lưu trong hệ thống nông trại) và tự động gửi khi có kết nối internet
Non – functional: • Tốc độ gửi dữ liệu về hệ thống đám mây nhanh
• Không được làm mất dữ liệu khi bị lỗi internet
Use-case name: Cảm biến đo các điều kiện của môi trường
Actor Hệ thống quan sát tình trạng nông trại
Description: Dùng để đo các điều kiện của môi trường
Pre-condition: 1 Yêu cầu cảm biến phải được kích hoạt
2 Cảm biến không bị hư hỏng hoạt đông còn tốt
Post-condition: Đã đo được điều kiện của môi trường
Nomal Flow: 1 Cảm biến được kích hoạt để đo điều kiện của môi trường
2 Sau khi được kích hoạt cảm biến sẽ đo từng loại điều kiện của môi trường:
2.1 Đo độ ẩm
2.2 Đo mực nước
Trang 72.3 Đo mức PH
2.4 Đo mức oxy
3 Sau khi đo xong cảm biến sẽ ghi nhận và lưu lại dữ liệu đã
được đo
Alternative Flow: Không
Exceptions: Nếu cảm biến không được kích hoạt hoặc bị hư hỏng step 2,3 sẽ
không được thực hiện
Notes and issues: Không
Non – functional: - Hệ thống cảm biến có thể hoạt động trong thời gian dài 24/7
- Thời gian phản hồi cũng như xử lý rất tốt
- Chịu được những thay đổi của môi trường
- Độ nhạy tốt với sai số nhỏ
- Có thể tích hợp thêm để đo các loại điều kiện môi trường khác
- Quản lý dễ với cơ chế tự động
- Khả năng tương tác đối với hệ thống tốt
Use-case name: Xử lý ảnh
Actor Hệ thống quan sát tình trạng nông trại
Description: Thu thập hình ảnh về tình trạng của nông trại để xử lý
Pre-condition: 1.Thiết bị xử lý ảnh phải được kích hoạt
2.Thiết bị không bị hư hỏng vẫn còn hoạt động tốt
Post-condition: Sau khi thu thập hình ảnh về tình trạng của nông trại,hình ảnh sẽ
phải đươc xử lý
Normal Flow: 1.Thiết bị xử lý ảnh được kích hoạt
2 Sau khi được kích hoạt thiết bị sẽ thu thập mọi hình ảnh về tình trạng nông trại hiện có như:chất lượng nước nuôi tôm hình ảnh cây trồng hiện tại,…
3 Hình ảnh sau khi được thu thập sẽ được thiết bị xử lý đưa ra tình trạng sức khỏe của nông trại hiện nay
4.Sau đó sẽ được ghi nhận và lưu lại dữ liệu
Alternative Flow: Không
Exceptions: Nếu 1 trong 4 step trên có lỗi thì những step tiếp theo sẽ không được
thực hiện tiếp
Notes and issues: Không
Non – functional: - Độ phân giải hình ảnh chất lương cao
- Tốc độ tính toán xử lý nhanh
- Các thao tác thêm,sửa,xóa được quản lý chặt chẽ
- Có thể tự điều chỉnh thiết lập mới tính năng
- Khả năng tương tác phản hồi đối với hệ thống tốt
- Có thể quản lý dễ dàng với cơ chế tự động
Trang 8Use-case name: Điều khiển các thiết bị IOT
Description: User có thể điều khiển các thiết bị IOT để thực hiện các công
việc tưới cây, bón phân,
Trigger: Người dùng click vào mục “Điều khiển các thiết bị IOT”
Pre-condition: 1 Thiết bị phải có kết nối Internet
2 Phải đảm bảo các thiết bị IOT không bị hư hỏng hay thiếu pin
3 Các loại thức ăn, phân bón, nước, … phải được cung cấp đầy đủ vào các thiết bị IOT
Post-condition: 1 Nông sản trong nông trại được tưới nước, bón phân đầy đủ
2 Các loài gia súc, gia cầm được cung cấp thức ăn, tưới nước để làm mát, làm sạch
3 Các loài thủy hải sản được cung cấp đầy đủ Oxy, được cung cấp thức ăn
Normal Flow: 1 Người dùng click vào biểu tượng “Điều khiển thiết bị IOT
trên màn hình”
2 Giao diện sẽ hiện ra để người dùng chọn hệ thống muốn sử
dụng
3 Người dùng chọn vào “Hệ thống bơm”
3.1 Giao diện sẽ hiển thị để người dùng chọn vị trí, loại nông sản sẽ tưới, lượng nước, thời gian thực hiện dưới dạng Combobox
3.2 Người dùng lựa chọn vị trí, loại nông sản, thời gian, lượng nước
3.3 Nhấn xác nhận 3.4 Hệ thống sẽ hiện thị hộp thoại “Bạn có chắc chắn với lựa chọn này” để đảm bảo không có sai sót
3.5 Nhấn xác nhận 1 lần nữa để kết thúc lựa chọn
4 Người dùng chọn vào “Hệ thống bón phân”
4.1 Giao diện sẽ hiện thị loại nông sản, vị trí, lượng phân bón dưới dạng Combobox
4.2 Người dùng lựa chọn theo ý muốn của mình 4.3 Nhấn xác nhận
4.4 Hệ thống sẽ hiện thị hộp thoại “Bạn có chắc chắn với lựa chọn này” để đảm bảo không có sai sót
4.5 Nhấn xác nhận 1 lần nữa để kết thúc lựa chọn
5 Người dùng chọn vào “Hệ thống cung cấp Oxy”
5.1 Giao diện hiển thị vị trị, lượng oxy cần cung cấp dưới dạng Combobox
5.2 Người dùng lựa chọn theo ý muốn của mình 5.3 Nhấn xác nhận
Trang 95.4 Hệ thống sẽ hiện thị hộp thoại “Bạn có chắc chắn với lựa chọn này” để đảm bảo không có sai sót
5.5 Nhấn xác nhận 1 lần nữa để kết thúc lựa chọn
6 Sau khi hệ thống hoạt động xong sẽ có thông báo cho người dùng biết
7 Người dùng click vào ô kiểm tra để xem hình ảnh gửi về
8 Người dùng click vào “Thoát” để kết thúc việc điều khiển thiết bị IOT
Alternative Flow: Ở bước 3.2, 4.2, 5.2: thì người dùng có thể nhập 1 thông số khác
ở textbox
Ở bước 7: Bất cứ khi nào người dùng click vào ô kiểm tra thì các thiết bị IOT sẽ chụp 1 vài bức ảnh để gửi về để tiện cho việc theo dõi
Ngoài ra người dùng có thể cấu hình để các thiết bị có thể tự động hoạt động mà không cần kích hoạt
Exceptions: Ở bước 1: Nếu người dùng chưa đăng nhập vào thì hệ thống sẽ
yêu cầu đăng nhập trước khi bắt đầu ứng dụng Ở bước 3.2, 4.2, 5.2: Nếu người dùng nhập thông số không hợp lệ (Ví dụ như lượng phân quá nhiều, thiết bị IOT chưa có đủ) hoặc người dùng bỏ trống thì sẽ hiện thông báo để người dùng có thể điều chỉnh nhanh chóng
Notes and issues: Không
Non – functional: • Tốc độ phản hồi của các thiết bị IOT dưới 1s
• Tốc độ di chuyển của các thiết bị hệ thống bơm, hệ thống bón phân IOT không được chậm hơn 0.2m/s
• Tuổi thọ của các thiết bị ít nhất là 2 năm
• Dung lượng pin phải đáp ứng được 3 giờ hoạt động liên tục
• Các thiết bị có thể hoạt động tốt trong điều kiện ngoài trời như: nhiệt độ cao, trời mưa,…
Use-case name: Nhận báo cáo về tình trạng nông trại
Description: Người dùng có thể nhận báo cáo về: sức khỏe, độ ẩm, nhiệt độ,
thời tiết, lượng nước,…
Trigger: Người dùng click vào “Nhận báo cáo”
Pre-condition: 1 Phải có kết nối mạng Internet
2 Trong hệ thống lưu trữ đã có dữ liệu Post-condition: Người dùng biết được thông tin về nông trại của mình
1 Người dùng click vào mục “Nhận báo cáo”
2 Giao diện sẽ hiện ra các thông tin có thể cung cấp ví dụ như: nhiệt độ, độ ẩm, lượng nước, lượng phân, tình trạng sức
Trang 10khỏe
3 Người dùng click vào thông tin muốn xem
4 Hộp thoại hiện ra sẽ hiển thị thông tin đó về cho người dùng
5 Người dùng click “Thoát” để kết thúc việc nhận báo cáo Alternative Flow: Ở bước 3: Người dùng có thể click vào ô xem tất cả để nhanh
chóng biết được tất cả thông tin về nông trại
Ở bước 4: Nếu hệ thống phát hiện có điều bất ổn thì người dùng
có thể click vào “Hiển thị giải pháp” để hiển thị một số biện pháp nhằm khắc phục sơ bộ tình trạng bệnh ở nông trại
Exceptions: Ở bước 4: Nếu dữ liệu chưa có trong hệ thống lưu trữ thì sẽ thông
báo “Chưa có dữ liệu”
Ở bước 1: Nếu người dùng chưa đăng nhập thì sau khi click vào
“Nhận báo cáo” sẽ hiển thị ra trang Đăng nhập Notes and issues: Không
Non – functional: • Tốc độ gửi báo cáo dưới 1s
• Giao diện thân thiện, người dùng có thể đọc thông tin 1 cách nhanh chóng
• Độ chính xác của các thông số được báo cáo như: nhiệt độ, lương nước,… phải chỉnh xác đến 2 chữ số thập phân sau dấu phẩy
Use-case name: Cấu hình bộ truyền động
Description: Người dùng có thể cấu hình bộ truyền động để các thiết bị có thể
hoạt động theo ý của mình Trigger: Người dùng click vào “Cấu hình bộ truyền động”
Pre-condition: 1 Người dùng phải có kết nối Internet
Post-condition: 1 Các thiết bị IOT được cấu hình để có thể tự động làm việc Normal Flow: 1 Người dùng click vào mục “Cấu hình”
2 Giao diện hiện ra với các thông tin có thể cấu hình như:
• Hẹn giờ
• Tốc độ tưới của hệ thống bơm
• Lượng phân bón trên 1 đơn vị diện tích
• Lượng Oxy được bơm trên 1 đơn vị thời gian
3 Người dùng click vào mục muốn điều chỉnh
4 Điều chỉnh thông số
5 Nhấn xác nhận Alternative Flow: Ở bước 2: Hệ thống sẽ hiện thị một số thông số thường dùng để
người dùng có thể lựa chọn nhanh chóng
Exceptions: Ở bước 1: Nếu người dùng chưa đăng nhập thì sau khi click vào
thì giao diện Đăng nhập sẽ hiện ra
Trang 11Ở bước 4: Nếu người dùng bỏ lỡ thông số nào thì hệ thống sẽ báo lỗi
Notes and issues: Không
Non – functional: • Tốc độ phản hồi dưới 1s
• Hỗ trợ ít nhất 2 ngôn ngữ: tiếng Anh, tiếng Việt
Use-case name: Nhận dữ liệu từ hệ thống đám mây
Description: Sau những khoản thời gian cố định hệ thống chuẩn đoán sức
khỏe sẽ nhận dữ liệu từ hệ thống đám mây gửi về
Trigger: Đến thời điểm được thiết lập
Pre-condition: Thiết bị phải có kết nối Internet
Post-condition: Dữ liệu được nhận thành công và xuất ra theo form
Normal Flow: 1 Đến thời điểm bắt đầu, hệ thống chuẩn đoán sức khỏe gửi yêu
cầu đến hệ thống đám mấy
2 Hệ thống đám mây sẽ kiểm tra yêu cầu
3 Hệ thống đám mây sẽ gửi dữ liệu về cho hệ thống chuẩn đoán sức khỏe
4 Hệ thống chuẩn đoán sức khỏe nhận dữ liệu và xuất ra theo form
5 Kết thúc
Alternative Flow: - Bước 1: nếu không thể kết nối internet, hệ thống sẽ báo lỗi
cho user biết
- Bước 2: nếu yêu cầu không hợp lệ, hệ thống đám mây sẽ
không gửi dữ liệu về và chuyển đến kết thúc
Exceptions: Ở bước 1, nếu không có kết nối internet, hệ thống sẽ thử kết nội
lại sau khi báo lỗi cho user biết
Notes and issues: Không
Non – functional: - Độ trễ < 0.5s
- Hệ thống đám mây đáp ứng được yêu cầu của ít nhất 100 client một lúc
Use-case name: Xử lí dữ liệu
Description: Dữ liệu sau khi nhận về, hệ thống sẽ tiến hành phân tích xử lí để
kết luận được tình trạng sức khỏe hiện tại của nông trại
Trigger: Sau khi nhận dữ liệu từ hệ thống đám mây thành công
Pre-condition: 1 Thiết bị phải có kết nối Internet