Uploaded by nicolaschoong1230

Chapter3 Sample Software Development

advertisement
3 Technical Plan
1.1 Introduction
This section will discuss the missing gap identified from the literature review on user
identification method to assist users to communicate with another users or strangers without
revealing their personal contact details. Furthermore, this section will include the use of Natural
Language Processing (NLP) Technology in the mobile instant messaging application to ensure
the safety of the users. In addition, the architecture design of the mobile application will also
be presented here.
1.1.1
Functionality of the Proposed Solution
For two users to message one another without sharing contact details or adding each other into
their contact list, the Mobile Messaging Application should be able to achieve the following
requirements:
•
•
•
1.1.2
Allow users to identify and connect with other drivers or car owners using License Plate,
and
Allow users to message to other individual user in the application, and
Prevent users to send lewd or inappropriate text messages to another user.
Functionality: Communication between two users without
The main intention of this application is to allow the user to communicate with the other users
without revealing personal contact details and uses identification method such as car license
plate to identify another user. Hence, this requires a database to store all the license plate
registered by the user which enable other users to find and contact this user by entering the car
license plate characters using the search bar in the MIM application. If the license plate
characters entered by the user is not found in the database, then it will display an error message
and it will not allow the user to compose any text messages.
If the license plate details that is entered by the user is in the database, then the user will be
directed to a chat User Interface (UI). The user can then type the content of the text message
and send it to the user who can only be identified by the license plate characters. Furthermore,
the receiver can only see either a nickname or the license plate details of the sender as this
ensures that both users’ detail are protected and provide more privacy to users.
When users are allowed to send text messages to other users without the need of knowing that
person in real life, some users may take this benefit to send lewd, harassment or inappropriate
text messages to other users and this may harm the user who receive these messages. To ensure
the users in this MIM application does not receive any inappropriate messages, the MIM
application will not deliver the message to another user if it detects any harassment or
inappropriate content in the text messages. This feature uses Natural Language Processing
(NLP) technology to perform text classification on the content of the text messages. This text
classification process will automatically analyse and categorize the text messages into different
groups according to the content of the message. The implementation of this technology can
prevent the users from receiving inappropriate text messages which can retain the users as they
feel safer using the application. While restraining the user to send inappropriate text it also
allows the users to focus on the core purpose of this MIM application, which is to communicate
with other users or strangers to discuss and resolve an incident or situation professionally.
1.1.3
System Requirements
The system requirements section displays the functional and non-functional requirements of
the Mobile Messaging Application to achieve the proposed features of the application.
Functional Requirements
a) The application should have a user registration function to allow user to register with
their phone number.
b) The application should have a user authentication (login) function that allow user to
login with their phone number.
c) The application should have a one to one message function.
d) The application should have a push notification function to alert the user when there is
an incoming message.
e) The application should be able to prevent the user from sending lewd or inappropriate
text messages.
f) User should be able to send a message to another user via license plate number.
g) User should be able to delete the entire message conversation with another user.
h) User should be able to block another user.
Non-Functional Requirements
a) Accuracy: The application should be able to send the message accurately to the specific
user.
b) Availability: The application should be able to perform the license plate search and
send a message when there is stable internet connection.
1.2 System Development Plan
1.2.1
System Flow of Information
Use Case Diagram
When the user launches the mobile application, a user must register and login to use the
application. The account registration is essential for authentication and authorisation purposes.
All user must register an account to store details such as, phone number, password, and vehicle
license plate numbers in the application and all user must be prompted to register an account
with their phone number. The user’s phone number will be used for login because phone
number is a unique identifier of the user and it has been authenticated to ensure safety.
Furthermore, account registration allows users to store the license plate detail and each user
can only have a maximum of three license plate number tied to an account. However, the input
of license plate number is optional as some user might not have a car, but they are still allowed
to send a message to the car owner when they notice an incident.
Once the user has successfully registered or logged in. The user can start messaging another
user by performing a license plate number search. If the license plate number is found in the
database, then the user will be able to message the specific user person using the license plate
number. In contrast, if the license plate number searched by a user is not in the application’s
server, then the application will display an error message and the user will not be directed to
the chat UI page. Every time when there is a new connection between two users, the server will
create a unique message ID for that specific connection.
When the user sends a message, the message will be analysed in the background of the
application. If the application recognizes any lewd or inappropriate text message, then the
system will not send the message to the server, hence it will never reach the client application
of the message receiver. Furthermore, it will alert the sender that the message is not sent or
delivered to the receiver due to the existence of inappropriate content. In contrast, if the text
message is clean, the message will be sent to the server and the server will deliver the message
to the receiver’s client application. If the receiver does not have the application open, it will
send a push notification to the receiver to alert the user on the incoming message. Once the
user receives a message, both users can start messaging each other.
In addition, the user can also delete the conversation with the stranger after the both parties
have resolved the incident or the conversation is ended and the user may block another user
and the blocked user are unable to send any message to the user even if they search the user
using the license plate number.
1.3 System Models
DFD or UML Diagram
1.4 System Development Plan
1.4.1 Development Methodology
The entire development process will be split into 6 different steps and this ensures the
development flow goes smoothly. A data flow diagram is shown in figure _.
1.Develop the
interface of the mobile
application
2. Develop the backend logic and
architecture
3.Integrate Firebase
server to the mobile
application
6. Test the sentiment
analysis tool
5. Develop the
sentiment analysis
tool
4. Test Messaging
Function
1. Develop the User Interface (UI)
It is necessary to develop the view layer of the MVC model first as it allows the developer
to get a visualization on the overview of the mobile application after sketching out the UI
/UX in the design phase.
2. Develop the back-end logic and architecture
In this stage, it is important to develop the business logic of the application and then link it
to the UI xml files. This stage is critical as it defines the basic functions of the application,
for instance, the messaging logic, user authentication method, and add friend function.
3. Integrate server to the mobile application
Next, to facilitate the message exchange between two users, a connection is required and
to create a connection between two devices, a server is required. The most feasible method
is to use cloud hosted server and integrate the relevant APIs and SDKs offered by them to
create a connection between the two users.
4. Test Messaging function
The messaging and chat function, user authentication and the add friend function will be
tested at this stage, this is to ensure the core purpose of the application works before
implementing the additional feature such as the sentiment analysis tool into the mobile
application.
5. Develop the sentiment analysis tool
At this stage, the datafiles that contain the positive words and negative words will be refined
according to the use case of this project. Then, the development of the sentiment analysis
code will be done in this stage. However, the development of the sentiment analysis tool
will not be developed in the mobile application in the first place as this ensures the
sentiment analysis feature does not affect the core function of the messaging app.
6. Test the Sentiment analysis tool
The testing of the sentiment analysis tool will be done to check the functionality of the
feature. After the test, the sentiment analysis tool will be integrated into the Android mobile
application.
SDLC
The Software Development Life Cycle (SDLC) consists a detailed plan on building a software
or application and the SDLC can be broken down into several stages to enable a better control
over the application development process while ensuring the development of the project go as
planned. In each stage of the SDLC has its own process and exit criteria that will be brought
forward to the next phase. Furthermore, a detailed development methodology can ensure all
the requirements and objective of the application are fulfilled.
Analysis
Requirement
Specifications
System Design
Work Plan
Development and
Implementation
Testing and
Maintenance
The chosen methodology for this project is the Waterfall development methodology due to
various factors. The waterfall development methodology uses a sequential process approach
on software development and all the tasks in the project are broken down into a sequence of
tasks as shown in diagram __. The process starts with the analysis stage, followed by
requirement specifications and system design stage and three of these processes are done in
capstone 1. The development and implementation stage together with testing and maintenance
stage will take place in capstone 2. All the deliverables at each stage will be used as a support
for the next activity.
One of the advantages of using waterfall model is that it ensures the project scope to stay static
as the requirements of the application are specified before designing and developing the mobile
application. This ensures quality end-result as the developer has analysed and understand the
project requirements thoroughly prior to developing the application. The ability to commit to
the initial requirement is important as it prevents the developer from adding additional features
that are unrelated to the project scope and objective. In addition, the waterfall model is more
appropriate in projects that has a fixed timeline as this ensures the developer to plan the work
accordingly to hand in the end-product in time.
1.4.2 Programming Language
Java
As most of the native android application are developed with either Java or Kotlin, this android
native application will be developed using Java. The reason of using Java over Kotlin is that it
has more learning resources and support available than Kotlin as Java has a larger community
on both Stack Overflow and GitHub [92]. Java will be used to define the basic business logic
of the android native application. It is used to manage the flow of data from the UI to the back
end (database, server) of the mobile application. The Java programming language will be used
as the foundation of code in this application development as it can responds and control the
events triggered when the user interacts with the UI.
Extensible Mark-up Language (XML)
Extensible Mark-up Language (XML) is a mark-up language used to describe the User
Interface (UI) layout of the application. There are two main objects in developing the UI of the
mobile application with XML, the ViewGroup object and View object. The ViewGroup object
is a container that define the layout structure of the mobile application to contain other View
objects. The View object are widgets to be put in the ViewGroup object, and some of the
example of these widgets are Button, TextView and ProgressBar. Other than defining the UI
layout, XML will also be used to link additional resource files such as icons, bitmaps, and
strings of text to be displayed by default.
1.4.3 Tools and Techniques
Wireframe Tool
Figma is the chosen wireframe tool to design the User Interface (UI) and User Experience (UX)
of the mobile messaging application. Figma is a cloud-based design tool that offers many
functions and icons that is commonly used in designing the user interface of mobile application.
Figma is chosen as it offers both UX wireframing and UI designing on the same platform. In
addition, it is user friendly as it allows designer to drag and drop icons and frames to edit the
design of the prototype.
Operating System Platform
The target audience of this project would be the Malaysian car owners or drivers. Hence, the
mobile platform and its operating system needs to be decided. According to [77], as of
September 2020, there are approximately 78.46% of smartphones in Malaysia that are running
on Android and 20.4% smartphones are running on iOS. Therefore, it is decided that the
development of the messaging application will be built on the Android Operating System as it
has the largest operating system market share in Malaysia.
Integrated Development Environment (IDE)
The IDE used in this project is Android Studio because it is the official IDE for Android Native
app development. Android Studio has plenty of features that can ease the development phase
of this project. Firstly, it has a built-in Android emulator which can be used to test and run the
mobile application. Secondly, Android Studio offers Lint tools to examine and find errors and
bugs in the code and this tool can improve the performance and usability of the code.
Nevertheless, it also offers the Gradle Build system that can automatically run the build process
to compile resource files, source code and packages into Android Application Package (APK)
to test and run the application.
Server (Messaging Middleware)
After analysing three different Cloud services, Firebase will be used as the back-end
development platform due to multiple reasons. First, it offers more supports in terms of proper
documentation, video and blog tutorials and it offers API and SDKs that can be easily
implemented into a mobile application. In addition, it also offers a A/B testing feature, so the
application can be tested on the Firebase platform before allowing the tester to evaluate the
application. Furthermore, Firebase offers multiple features that can enhance the messaging
experience for the application and it offers a range of Application Programming Interface (API),
which enables the back end development process to be more efficient [64]. Other than that,
Firebase also offers multiple features such as authentication feature, cloud messaging feature
and a real-time database to store user information. The Firebase authentication offers Software
Development Kit (SDK) and open-source UI that allow developer to easily implement an
authentication system for end-users to authenticate and sign-in to the application [63]. Then,
the Firebase Cloud Messaging features can handle all the queues and delivery of the upstream
and downstream messages between the client and server application [61], [62]. Furthermore,
the cloud messaging feature can also automatically handle and push notification to alert the
user for any incoming message and this is a critical function in a messaging application[61].
Sentiment Analysis Tool
The list of words approach will be used in the application. This sentiment analysis tool will be
triggered every time when the user sends a text message, this sentiment analysis tool is used to
prevents users from getting dirty and obscene text messages and keeping the core objective of
this application on track. To achieve a faster message transfer, the list of words approach will
be converted into Java and implement it in the Android Native application. Vader Sentiment is
not chosen even though it can accurately analyse social media sentiment because it can only be
implemented between the Firebase server and this will increase the time taken for the message
to be transfer from one client application to another client application. Furthermore, the purpose
of the sentiment analysis tool is to prevent users from sending harassment text and let the user
to communicate on the car incidents and the list-of-words approach allow the developer to
revise the word lists in order to make it suit this use case. On the other hand, Vader Sentiment
uses a more general lexicons for social media sentiment and the accuracy may not be applied
in this use case.
Testing Tool
It is essential to conduct software testing and proof of concept testing to evaluate the
functionality and the idea of the mobile application. To evaluate the functionality of the mobile
application, a Functional Testing will be conducted to validate the mobile application against
the functional requirement listed above. In addition, to proof the idea of this mobile application
in helping the society to solve the communication problem between strangers on and off the
road using license plate number, a usability testing together with a proof of concept survey will
be conducted on the target audience to evaluate the usability and helpfulness of the application
in real life situations.
1.5 Specification of User Interface
This section discusses the User Interface (UI) and the flow of the Mobile Instant Messaging
(MIM) application.
UI Frame
Description
Main UI
This is the main page of the MIM application, and it will
only be displayed when the user did not login to the
application or just installed the application. The
application logo and a brief description will be presented.
Furthermore, there are two buttons, a sign-up button and a
login button for the user to take further action on the
application.
Sign Up UI
Once the user selects “Sign Up”, they will be directed to
the sign-up page. The sign-up page is for users who do not
have an account. The user is required to enter a valid
phone number, username and set the password for
authorization purposes. In addition, the user can enter their
license plate number, but the input of license plate number
is optional.
Sign In UI
Once the user selects “Sign In”, they will be directed to
the sign in page. The sign-in page is for the users who have
an account. Therefore, they can login to the account
immediately with the phone number and password set in
the registration stage.
Home UI
The application will redirect the user to the home page of
the application once the registration or login process is
successful. In the home page, a navigation bar will be
displayed at the bottom of the screen to allow easy
navigation in the mobile app. The main function of the
home page is to allow user to perform a license plate
number search and if the search is successful it will bring
the user to the chat UI, else it will display toast stating the
license plate is not in the database.
Chat list UI
The Chat page UI will display all the conversation the user
had with other users. The rubbish bin icon on the top menu
bar is used to delete the conversations easily. Furthermore,
the title of each conversation varies according to different
circumstances. The user who has a license plate number
linked to the account will display their license plate
number. On the contrary, the user who does not have a
license plate linked to the account it will show a random
code as the title of the user. On the right side of each
conversation, there is a timestamp of the latest message
sent and the blue dot is used to notify the user for any
unread messages.
Chat UI
Once the user selects one of the conversations from the
chat list, the user will be able to see the conversation
history with that specific user displayed on a simple chat
UI. The title of the user will be displayed on the top of the
UI together with a back button to allow easier navigation.
The black arrow button is used to send a message after the
user has entered the text in the text input box located at the
bottom of the chat UI.
Chat UI (Sentiment Analysis)
The sentiment analysis tool will be triggered once the user
tap the send button. If the sentiment analysis tool
recognizes any lewd or inappropriate words in the
message, it will display a toast warning the sender on the
content.
Profile UI
The user can view their profile details such as phone
number and the existing license plate number.
Furthermore, the user can also edit or add additional
license plate number in their profile page.
Download