0% found this document useful (0 votes)
74 views

Csc8710 Software Design and Modelling

The document discusses the use of microservices architecture for developing a secure mobile messaging application. Small, independent services like registration, authentication, message sending and receiving are created to handle specific tasks. Messages are encrypted using asymmetric encryption and the public/private keys of the sender and recipient to ensure security. The mobile app services communicate asynchronously through an API gateway. Unit tests focus on individual code units while feature tests validate user requirements from a user perspective and are more difficult to automate. Git and GitHub improve software development by allowing developers to work offline and experiment locally without affecting others.

Uploaded by

Boniface Kigo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views

Csc8710 Software Design and Modelling

The document discusses the use of microservices architecture for developing a secure mobile messaging application. Small, independent services like registration, authentication, message sending and receiving are created to handle specific tasks. Messages are encrypted using asymmetric encryption and the public/private keys of the sender and recipient to ensure security. The mobile app services communicate asynchronously through an API gateway. Unit tests focus on individual code units while feature tests validate user requirements from a user perspective and are more difficult to automate. Git and GitHub improve software development by allowing developers to work offline and experiment locally without affecting others.

Uploaded by

Boniface Kigo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

A3.

1: MICROSERVICES AND SECURE MESSAGES

The mobile app to provide secure message system is designed using microservices architecture.

Small-sized, stateless services (microservices) that have a single responsibility are interfaced to

create the application. These services include registration, authentication, send message, and

receive message. The characteristics of the mobile app microservices include they are

independently deployed, self-contained, communicated through lightweight protocols with other

interfaces, and are built around business capabilities (O'Connor, Elger & Clarke 2017, p. 4). The

mobile app enables users to send and receive secured messages. The registration service will

facilitate user registration where the user will provide their personal identifiable information,

security information, contact number and email address. The authentication service will facilitate

identification of the user using username and password, two-factor authentication, reset of

forgotten password, and management of user information.

Microservice architecture for a mobile app which provides a secure message system uses

asymmetric encryption to secure messages between sender and recipient. The send message

service uses the mobile phone number provided by the sender to determine the receiver of the

message. The message is then encrypted using the sender’s private key assigned to them by the

asymmetric encryption program. This makes the message only readable by the anticipated

recipient. The receive message service uses the public key of the sender to decrypt the received

message (Fujisaki & Okamoto 2013, p. 80).


Figure 1: A microservices architecture for a secure messaging system

The mobile app services will use asynchronous interaction to establish communication among

each other. Asynchronous interaction will involve a service issuing a request to another services,

which is then queued by the requested service. The requesting service will continue its processes

without having to wait for the requested service to finish its process. The mobile app services

will have indirect service communication where requests will be sent and received through the

API Gateway (REST API) (De Iasio & Zimeo 2021, p. 26).

A3.2: END-TO-END TESTS

The features of the iLearn system need to be tested to ensure the functionalities are implemented

as expected and they meet the needs of the users.

User stories for the iLearn system’s Groups feature

 Share uploaded Information

As a teacher, I want to be able to share uploaded information with other group members.

 Automatically setup sharing mechanisms


As a teacher, I want the iLearn system to automatically set up sharing mechanisms such as

wikis, blogs, and web sites.

 Send email to group members

As a teacher, I want to be able to send email to all group members using a single email

address.

 Create a group of students and teachers

As a teacher, I want to be able to create a group of students and teachers so that I can share

information with that group.

 Select students and teachers to add to a group

As a teacher, I want the system to make it easy for me to select the students and teachers to

be added to a group.

Feature tests for Groups feature

 Share uploaded information

Test that the teacher is provided an option to share uploaded information when it is

selected. Test that the screen displays a list of group members the teacher intends to share

the information with, along with cancel and confirm buttons. Test that the sharing process is

cancelled when cancel button is selected.

 Invalid information file

Test that an error message and retry screen is displayed when the information to be shared

cannot be shared, has incorrect format, or its size exceeds the specified limit.

 Setup sharing mechanisms


Test that a group web page, wikis, or blogs is automatically set up when the teacher

confirms creation of site. Test that the wikis, blogs, or web sites is cancelled when teacher

selects cancel.

 Send email

Test that teacher is given an option to send email to all group members. Test that the list of

group members who have received the email is displayed when the email is send.

 Create a group

Test that the teacher is offered an option to create a group consisting of students and

teachers. Test that a group name is prompted when teacher clicks create.

 Add group members

Test that a menu is provided to add new group member. Test that the teacher or student

added is listed as a participant in the group.

A3.3: UNIT TESTS VS FEATURE TESTS

Automated unit tests are written based on programmer’s perspective. Typically, the programmers

make sure that a particular unit performs specific tasks as required. Therefore, developing

automated unit tests is easier compared to automated feature test because the programmers apply

their set of skills and experience to accomplish the development process. Automated unit tests

are simple to develop because it only requires to check if a unit returns the expected result. On

the other hand, automated feature tests are development from the use’s perspective. The feature

tests have to ensure the feature functions as specified by the user. Automated feature tests require

access to the product’s graphical user interface (GUI), making it expensive to automate.

Developing the automated feature tests requires understanding of the feature by knowing the
actual user requirement. This involves review developers’ release notes, which may not be clear

(Nass, Alégroth & Feldt 2021, p. 2).

A3.4: USING GIT AND GITHUB

Git transformed source code management by creating a distributed version control system that

manages Linux kernel code. This means that Git maintains a clone of repository on developer’s

computer rather than only keeping the copies of the code files the users are working on. Github,

on the other hand, is a cloud hosting service that enables developers to manage the Git

repositories (Davis 2015, p. 159). The use of Git and Github simplifies open-source development

process management by allowing developers to work offline when there is no network

connectivity. Notably, every developer working on a project has his or her own copy of the

repository, which can be used to restore the shared repository in case they are damaged. Also,

Git and Github makes commitment of changes to the shared repository is fast and local

operation. Transmission of data over a network is eliminated enhancing the process of

committing changes. Git’s distributed version control system simplifies the local

experimentation process. Developers can try and experiment their different approaches without

compromising the rest of the tasks worked by other project developers (Yu et al. 2017, p. 1).
REFERENCES

Davis, RC 2015, 'Git and GitHub for Librarians', Behavioral & social sciences librarian, vol. 34, no. 3, pp.
158-64, 10.1080/01639269.2015.1062586.
<https://usq.primo.exlibrisgroup.com/permalink/61UOSQ_INST/1d4atb2/cdi_informaworld_taylorfranci
s_310_1080_01639269_2015_1062586>.

De Iasio, A & Zimeo, E 2021, 'A framework for microservices synchronization', Software, practice &
experience, vol. 51, no. 1, pp. 25-45, 10.1002/spe.2877.
<https://usq.primo.exlibrisgroup.com/permalink/61UOSQ_INST/1d4atb2/cdi_crossref_primary_10_100
2_spe_2877>.

Fujisaki, E & Okamoto, T 2013, 'Secure Integration of Asymmetric and Symmetric Encryption Schemes',
Journal of cryptology, vol. 26, no. 1, pp. 80-101, 10.1007/s00145-011-9114-1.
<https://usq.primo.exlibrisgroup.com/permalink/61UOSQ_INST/1d4atb2/cdi_gale_infotracacademicone
file_A321734393>.

Nass, M, Alégroth, E & Feldt, R 2021, 'Why many challenges with GUI test automation (will) remain',
Information and Software Technology, vol. 138, p. 106625, 10.1016/j.infsof.2021.106625.
<https://usq.primo.exlibrisgroup.com/permalink/61UOSQ_INST/1d4atb2/cdi_scopus_primary_2012045
118>.

O'Connor, RV, Elger, P & Clarke, PM 2017, 'Continuous software engineering—A microservices
architecture perspective', Journal of software : evolution and process, vol. 29, no. 11, pp. e1866-n/a,
10.1002/smr.1866.
<https://usq.primo.exlibrisgroup.com/permalink/61UOSQ_INST/1d4atb2/cdi_crossref_primary_10_100
2_smr_1866>.

Yu, W, Na, W, Jessica, K & John, MC 2017, 'The appropriation of GitHub for curation', PeerJ preprints,
10.7287/peerj.preprints.2952v1.

You might also like