You are on page 1of 10

Đặc Tả Yêu Cầu Phần Mềm

cho

Chat-App BANBAN
Phiên bản 1.0 được phê chuẩn

Thành Viên
Nguyễn Hồ Phước Vinh, MSSV: B2003936
Trương Trung Vĩnh, MSSV: B2012283
Lê Nhựt Tiến, MSSV: B2003929
Nguyễn Công Đạt, MSSV: B2012076
Hà Phan Khải, MSSV: B2012103

Ngày lập 14/02/2023


Đặc tả yêu cầu phần mềm Trang 2

Mục Lục

1. Giới thiệu 1

1.1 Mục tiêu 1

1.2 Phạm vi sản phẩm 1

1.3 Bảng chú giải thuật ngữ 1

1.4 Tài liệu tham khảo 2

1.5 Bố cục tài liệu 2

2. Mô tả tổng quan 3

2.1 Bối cảnh của sản phẩm 3

2.2 Các chức năng của sản phẩm 3

2.3 Đặc điểm người sử dụng 3

2.4 Môi trường vận hành 4

2.5 Các ràng buộc về thực thi và thiết kế 4

2.6 Các giả định và phụ thuộc 4

3. Các yêu cầu giao tiếp bên ngoài 5

3.1 Giao diện người sử dụng 5

3.2 Giao tiếp phần cứng 6

3.3 Giao tiếp phần mềm 6

3.4 Giao tiếp truyền thông tin 7

4. Các tính năng của hệ thống 7

4.1 Tính năng chat 7

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm Trang 3

Theo dõi phiên bản tài liệu

Tên Ngày Lý do thay đổi Phiên bản

Beta 14/02/2023 Version 1.0

Final 2 21/04/2023 Update Call Version 2.0

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 1

1. Giới thiệu

1.1 Mục tiêu

Thuật ngữ “chat” không còn xa lạ với người dùng internet ngày nay, đã ảnh hưởng tích cực đến đời sống xã hội, thay đổi cách chúng ta liên lạc giao tiếp giữa các tổ chức

quy mô nhỏ hay nội bộ doanh nghiệp và là một phương tiện giao tiếp không thể thiếu trong thời đại này. Hệ thống Chat-App BANBAN đáp ứng nhu cầu liên lạc từ xa bằng

thời gian thực thông qua kết nối mạng giúp nâng cao năng suất làm việc. Hệ thống Chat-App BANBAN hướng đến những mục đích sau:

● Cung cấp phương tiện để hiển thị các thông tin văn bản trong một mạng LAN

● Đáp ứng nhu cầu trao đổi thông tin đơn giản và hiệu quả

● Phục vụ giao tiếp giữa các máy tính

Đối tượng sử dụng bao gồm những cá nhân tổ chức có hoạt động trao đổi thông tin bằng văn bản thông qua kết nối mạng máy tính như:

● Các nhân viên, quản lý, bộ phận làm việc trong một tổ chức doanh nghiệp

● Học sinh, sinh viên có thể giao tiếp liên lạc với nhau hoặc với giảng viên ở phòng máy của các trường Trung học phổ thông và Đại học, ...

1.2 Phạm vi sản phẩm

Tên sản phẩm: Chat-App BANBAN


Mục đích: Ứng dụng kỹ thuật lập trình đa luồng với ngôn ngữ Javascript.
Chức năng chính: Cho phép xử lý gửi nhận và đồng bộ tin nhắn hiển thị trên nhiều client.

1.3 Bảng chú giải thuật ngữ

STT Thuật ngữ/ Từ viết tắt Định nghĩa/ Giải thích

Trò chuyện trực tuyến, liên lạc tin nhắn văn bản qua Internet trong thời gian
1 Chat
thực

SRS là viết tắt của "Software Requirements Specification" - tài liệu mô tả yêu
2 SRS cầu phần mềm. Nó là tài liệu quan trọng trong quá trình phát triển phần mềm,
mô tả chi tiết các yêu cầu và chức năng cần thiết cho phần mềm.

UI là viết tắt của User Interface (giao diện người dùng), đó là phần của một ứng
3 UI dụng hoặc hệ thống mà người dùng tương tác để sử dụng và điều khiển chức
năng của nó.

API là một tập hợp các quy tắc được định nghĩa trước để cho phép các ứng
4 API dụng khác giao tiếp với nhau hoặc truy cập vào một dịch vụ hoặc chức năng
của một hệ thống hoặc ứng dụng khác một cách chuẩn hóa và an toàn.

MVP là sản phẩm tối thiểu có thể đưa ra thị trường để thu thập phản hồi từ
khách hàng và đánh giá tính khả thi của ý tưởng sản phẩm. Nó giúp giảm chi
5 MVP
phí và thời gian phát triển sản phẩm, đồng thời cải tiến và phát triển sản phẩm
tiếp theo dựa trên phản hồi từ thị trường.

Máy trạm, máy khách – là nơi gửi yêu cầu đến Server. Nghĩa là Client sẽ tổ
6 Client
chức giao tiếp với người dùng, Server và môi trường bên ngoài tại trạm làm

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 2

việc. Bên cạnh đó, nó còn tiếp nhận yêu cầu của người dùng và thành lập các
query string nhằm gửi đến Server. Kết quả nhận được từ Server, Client sẽ tổ
chức và trình diễn các kết quả đó.

Máy chủ (Server) là một máy tính được kết nối với mạng máy tính hoặc
Internet, có IP tĩnh, có năng lực xử lý cao. Trên đó người ta cài đặt các phần
7 Server
mềm để phục vụ cho các máy tính khác truy cập để yêu cầu cung cấp các dịch
vụ và tài nguyên.

1.4 Tài liệu tham khảo

[1] Firebase Login and Registration, truy cập 13/4/2023 từ https://viblo.asia/p/firebase-login-and-registration-authentication-aWj53VWol6m


[2] How to build a real-time Chat App with ReactJS and Firebase, truy cập 14/4/2023 từ https://www.freecodecamp.org/news/building-a-real-time-chat-app-with-reactjs-
and-firebase/
[3] FoveIT Official (2021), Đồ án Chat Java (Socket), truy cập 10/9/2022 từ https://www.youtube.com/watch?v=wDG8m4dnPZw

1.5 Bố cục tài liệu

Tài liệu gồm 5 phần chính: Giới thiệu, Mô tả tổng quan, Các yêu cầu giao tiếp bên ngoài, Các tính năng của hệ thống, Các yêu cầu phi chức năng và Các yêu cầu khác.
- Giới thiệu: Trình bày mục tiêu, phạm vi của sản phẩm, chú thích thuật ngữ và trích dẫn các tài liệu tham khảo.
- Mô tả tổng quan: Trình bày bối cảnh, nguồn gốc của sản phẩm, sơ lược các chức năng và đặc điểm của người dùng cũng như đặc điểm của môi trường vận
hành, các ràng buộc thực thi, thiết kế và các giả định phụ thuộc của hệ thống.
- Các yêu cầu giao tiếp bên ngoài: Trình bày các đặc điểm luận lý và vật lý của từng giao tiếp giữa sản phẩm - người dùng, sản phẩm - phần cứng, sản phẩm - các
phần mềm khác và các yêu cầu liên quan tới bất cứ chức năng truyền thông tin nào của sản phẩm
- Các tính năng của hệ thống: Minh họa việc tổ chức các yêu cầu chức năng cho sản phẩm theo các tính năng của hệ thống, các dịch vụ chính được cung cấp bởi
sản phẩm.
- Các yêu cầu phi chức năng: Trình bày các yêu cầu về thực thi, an toàn, bảo mật, và các đặc điểm chất lượng của sản phẩm.

2. Mô tả tổng quan

2.1 Bối cảnh của sản phẩm

Lập trình đồng thời là một trong những kỹ thuật lập trình cấu trúc tiên tiến trong đó một số hoạt động được thực hiện trong cùng một khoảng thời gian. Những
hoạt động này gọi theo nghĩa đen là luồng (Thread). Các chương trình tuần tự thực thi trong một luồng hoạt động duy nhất do một luồng điều khiển trong khi các chương
trình đồng thời có nhiều hơn một luồng điều khiển. Như vậy, các ứng dụng sử dụng kỹ thuật lập trình đa luồng sẽ có thể khai thác tốt tài nguyên của một bộ xử lý.

Phần mềm Chat-App BANBAN được viết ra để ứng dụng kỹ thuật lập trình đa luồng với ngôn ngữ Javascript. Một ứng dụng phòng trò chuyện trong đó mỗi
người dùng tham gia vào bằng cách đặt tên của mình và bắt đầu chia sẻ tin nhắn văn bản với tất cả những người dùng khác có sẵn trong phòng trò chuyện. Người dùng có
thể xem tất cả các tin nhắn có tên người gửi (được cung cấp khi bắt đầu vào phòng trò chuyện) và gửi tin nhắn riêng cho một người dùng cụ thể khác mà những người còn
lại sẽ không hay biết. Khi bất kỳ ai rời khỏi phòng trò chuyện, một tin nhắn sẽ được gửi tới tất cả những người đăng nhập hiện tại có sẵn trong phòng trò chuyện để có thể
thấy người dùng tương ứng đó đã rời đi. Ở đây, ứng dụng sẽ được triển khai giống như một chương trình giao tiếp hai chiều đa luồng với sự đồng bộ hóa cần thiết giữa các
luồng.

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 3

2.2 Các chức năng của sản phẩm

Sản phẩm cung cấp các chức năng gồm:


- Đăng nhập
- Đăng kí
- Đăng xuất
- Gửi tin nhắn
- Gọi thoại
- Gửi tài liệu, hình ảnh
- Tìm kiếm người dùng
- Tạo GroupChat

2.3 Đặc điểm người sử dụng

- Người dùng phía server: Khởi chạy server.


- Người dùng phía client: Đăng nhập vào hệ thống và thực hiện gửi, nhận tin nhắn.

2.4 Môi trường vận hành

OS Windows, MacOS, Linux

Phần mềm kèm theo Trình duyệt web (Chorme, Edge, Safari...)

2.5 Cấu hình tối thiểu

Cấu hình tối thiểu

CPU Pentium 4 3.0GHz processor

RAM 1GB

Dung lượng đĩa trống 8GB

2.6 Các giả định và phụ thuộc

Phía server cần được khởi động và thực thi trước.


Phía client cần cài đặt trình duyệt web để thực thi phần mềm.

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 4

3. Các yêu cầu giao tiếp bên ngoài

3.1 Giao diện người sử dụng

Chat-App BANBAN Giao diện đăng nhập

STT Loại điều khiển Tên điều khiển Mặc định Nội dung Ghi chú

1 Form Form_Login Form đăng nhập

2 Header H1_Login Tiêu đề

3 Input Text TextFieldUsername Tên đăng nhập Không được trống

4 Input Password TextFieldPassword Mật khẩu Không được trống

5 Input Submit ButtonLogIn Nút đăng nhập

6 Hyperlink Link_SignUp Tạo tài khoản

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 5

Giao diện chat

STT Loại điều khiển Tên điều khiển Mặc định Nội dung Ghi chú

1 Label LabelUserName Tên user

2 Input text TextFieldInput Nhập gửi tin

3 Input Submit ButtonSend Gửi tin

4 TextArea TextAreaHistory Hiển thị tin nhận

5 Input Submit ButtonCall Gọi thoại

6 Input Submit ButtonAddFriend Thêm bạn

7 Input Submit ButtonSendFile Gởi fie đính kèm

8 Label LabelUserOnline Online User Hiển thị trạng thái online

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 6

3.2 Giao tiếp phần cứng

Phần mềm không có sự tương tác với phần cứng

3.3 Giao tiếp phần mềm

● Cần phải có trình duyệt web.


● Sử dụng ngôn ngữ Javascript
● Sử dụng các thư viện và framework Javascript như: ReactJS, VueJS, AngularJS, FireBase…
● Sử dụng HTML, CSS, Bootstrap 4.0…

Bảng dữ liệu đầu vào

Dữ liệu vào Mục đích

Username Cho biết username của người dùng để đăng nhập

Password Cho biết password của người dùng để đăng nhập

File Cho biết file gửi

Phòng Cho biết phòng người dùng chọn để kết nối với những người khác cùng phòng

Tin nhăns Tin nhắn của người dùng để hiển thị lên khung chat

Bảng dữ liệu đầu ra

Dữ liệu ra Mục đích

Tin nhắn Tin nhắn của người dùng đã nhắn để hiển thị lên khung chat

File Cho biết file nhận

3.4 Giao tiếp truyền thông tin

Mô hình Client – Server sử dụng giao thức TCP. Sử dụng SDK để lưu trữ dữ liệu.

4. Các tính năng của hệ thống

4.1 Mô tả và mức ưu tiên

Chức năng chat nhóm giúp người dùng có thể nhắn tin với tất cả các thành viên trong nhóm hoặc với một người dùng khác cụ thể

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ
Đặc tả yêu cầu phần mềm: Chat App BANBAN Trang 7

Lợi ích: 9

Chi phí: 7

4.2 Tác nhân / Chuỗi đáp ứng

● Người dùng đăng nhập vào hệ thống


● Người dùng thực hiện chat, gọi thoại, gửi file với nhóm
● Người dùng thực hiện chat, gọi thoại, gửi file với cụ thể một người dùng khác
● Người dùng đăng xuất khỏi hệ thống

4.3 Các yêu cầu chức năng

(0.) Người dùng nhập username, pasword của mình vào TextFieldUsername, TextFieldPassword để thực hiện đăng nhập. Server sẽ thông báo đến tất cả clients về trạng
thái đăng nhập của người dùng hiện tại.
(1.) Sau khi đăng nhập vào hệ thống, Nếu:

(1.1.) Người dùng muốn nhắn tin, gọi thoại, gửi file tất cả mọi người trên group

(1.1.1.) Người dùng thực hiện việc nhắn tin trên TextFieldInput và nhấn ButtonSend hoặc phím Enter để gửi tin nhắn

(1.1.2) Người dùng gọi thoại nhấn vào nút ButtonCall để thực hiện call.

(1.1.3) Người dùng gửi file nhấn vào nút ButtonSendFile để thực hiện gửi file.

(1.2.) Người dùng muốn nhắn tin, gọi thoại, gửi file mới một người cụ thể

(1.2.1.) Người dùng sẽ nhập username vào TextFieldFind để tìm người muốn gửi tin trong ListUsers (danh sách user)

(1.2.1.1) Người dùng gọi thoại nhấn vào nút ButtonCall để thực hiện call.

(1.2.1.2) Người dùng gửi file nhấn vào nút ButtonSendFile để thực hiện gửi file.

(1.2.1.3.) Người dùng thực hiện việc nhắn tin trên TextFieldInput và nhấn ButtonSend hoặc phím Enter để gửi tin nhắn

(3.) Người dùng chọn vào nút ButtonLogout để thực hiện đăng xuất. Server sẽ thông báo tình trạng đăng xuất của người dùng trên các clients khác.

Khoa CNPM, Trường CNTT & TT, Đại học Cần Thơ

You might also like