Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

SOFTWARE QUALITY ENGINEERING

(CT051-3-3-SQE)

INDIVIDUAL ASSIGNMENT

NAME : SHAK G TOM


STUDENT ID : TP050594
INTAKE : UC3F2108SE
LECTURER'S NAME : DR. KESAVA PILLAI A/L RAJADORAI @ RAJOO
ASSIGNED DATE : 7 FEBRUARY 2022
SUBMISSION DATE : 22 APRIL 2022
Abstract
In this project, several set of activities are carried out in order to maintain the software
quality of Self-Study Assistant, which is a web solution which aims to provide
assistance to students on conducting quality self-studying session. First and foremost,
a system development methodology is chosen and justified to support the whole
software development life cycle. After that, quality assurance for different quality
attributes including usability, maintainability and portability is evaluated. Cost, time
and effort of the project are estimated using different equation and methodologies.
Also, in order to handle risks, risk management plan is conducted. Different software
metrics is used to estimate the user satisfaction and different quality attributes of the
software.
Table of Content

1.0 Introduction ..............................................................................................................1


1,1 Project Background ..........................................................................................1
1.2 Aims .................................................................................................................2
1.3 Objectives ........................................................................................................ 2
1.4 Scope ................................................................................................................2
1.5 Requirements ................................................................................................... 2
2.0 Methodology ............................................................................................................3
2.1 Methodology Chosen .......................................................................................3
2.2 Methodology Evaluation ..................................................................................3
2.3 Methodology Justification ............................................................................... 5
3.0 Quality Assurance Process .......................................................................................5
3.2 Usability ...........................................................................................................5
3.3 Maintainability .................................................................................................7
3.4 Portability .........................................................................................................8
4.0 Estimation ................................................................................................................ 9
4.1 Time and Effort Estimation ............................................................................. 9
4.2 Cost Estimation ..............................................................................................10
5.0 Risk Management Plan .......................................................................................... 14
5.1 Risk Identification ..........................................................................................14
5.2 Risk Analysis ................................................................................................. 14
5.3 Risk Prioritization .......................................................................................... 15
5.4 Risk Management Planning ........................................................................... 16
5.5 Risk Resolution ..............................................................................................17
5.6 Risk Monitoring .............................................................................................17
6.0 Software Metrics ....................................................................................................18
6.1 User Experience .............................................................................................18
6.2 Maintainability Index .....................................................................................19
6.3 Portability Test ...............................................................................................20
6.3.1 Replaceability Test ............................................................................. 20
6.3.2 Compatibility Test .............................................................................. 20
7.0 Conclusion ............................................................................................................. 21
8.0 References ..............................................................................................................21
1.0 Introduction
1,1 Project Background

Self-study is the act of students learning outside of the classroom without any direct
help or supervision. The aim of self-studying sessions is to enhance students’
understandings on their previous lab and lectures. By having effective self-studying
sessions, students’ self esteem and eager to study will be boosted eventually. Being a
confident learner means that the student will e more motivated and encouraged in
learning new stuffs independently. Hence, self-studying is an essential habit that
should be developed by students since young age.

Nowadays, people possesses the ability to access to anything by just a click through
the Internet. As for students, they are provided with strong accessibility to accessing
to knowledge from all kinds of sources. There are tons of study materials including
online journals, websites, articles, tutorials and research papers that can be accessed
by the students through the Internet. These study materials can be very handy when it
comes to assisting students in self-study and learning new knowledge. Despite that the
students nowadays have more opportunities and approaches to access study materials
through Internet, they have to also face the consequences of it which are endless
distractions including social medias, chatting application, video games and
entertainment contents on the Internet. Other than that, due to the COVID-19
pandemic, most of the physical classroom lessons in all levels of education has
changed to virtual classroom lessons. It is believed that many students are lacking the
desire to study due to the lack of interaction between lecturers and students in virtual
classroom.

In order to provide a well-designed solution for students to conduct self-studying


sessions with, Self-Study Assistant which is a web application will be developed to
potentially help the students in their studies. Before the development of application
takes in place, requirements are collected from target users which are students from
different levels of education. The requirement gathered is expected to help in the
application design and implementation.

1
1.2 Aims

The main goal of this project is to develop and provide a learning assistant platform to
help students in their self-studying session.

1.3 Objectives

 To prevent the exposure of students from external disturbance while self-studying.


 To provide some essential learning materials to the students to improve their
learning experience.
 To provide approaches that help students in focusing on ther self-studies.

1.4 Scope

This Student Self-Study Assistant is a web application that offers a combination of


different studying strategies to help students in conducting productive self-study
sessions. By enhancing students’ self studies, it can potentially encourage students to
self-study more often and learn new things.

1.5 Requirements

 To Do List
 Pomodoro Timer
 Formula Cheat Sheets
 Nearby Libraries Tracker
 Word/sentence translator

The non-functional requirement will be further discussed in Chapter 6.

2
2.0 Methodology
System development methodology is a formalized set of activities which are
commonly utilized to handle software engineering projects. It is a framework that
assists developers in planning and controlling software development phases. There are
various types of system development methodology on the market that are potentially
beneficial to be implemented in this project. By researching, analyzing and
implementing the most suitable system development methodology, developers are
able to keep the project on the right track based on given time and resources.

2.1 Methodology Chosen

After multple researches and analysis conducted,he system development methodology


chosen in for this Self-Study Assistant project is Scrum methodology.

2.2 Methodology Evaluation

Scrum methodology is one of the most popular agile methodology in the market
currently. It is known for focusing on delivering maximum project quality in the
shortest amount of project lifetime. This methodology also prioritizes on producing a
transparent communication between project team and stakeholders. This framework
helps to create a transparent environment between project team and the stakeholders.
It is consists of incremental and iterative processes where each of an iteration creates
a functional increment.

Product backlog creation will be conducted at the starting of the project. Research
instruments are implemented to collect feedback from the stakeholders and analyzed.
Gathered functional information and statements will be written into requirements and
organized. The requirements will be ordered based on their priorities. After creating
the product backlog, the iteration process known as ‘sprint’ will begin. At the
beginning of each sprint, planning on different aspects including requirement
gathering, system development and testing are done by the project team. The plan
items will be practiced for 2 weeks. During the planing phase, team members will

3
choose some of the most prioritized requirement and convert it into different smaller
division.

Once the planning is done, the project team will start to proceed to complete tasks
based on the plans. Details of different important components of the project will be
written on a card and then pasted on a task board where everyone on the team can
refer on. The position of the tasks will be changing from time o time based their
completion and progression. Components done by each member based on the sprint
planning will be tested and debugged. After all of the testing and debugging process, a
meeting will conducted to demonstrate the current progress to the stakeholders.
Feedback are collected from stakeholders that may help the team in the next sprint. At
the end of each sprint, team members will gathered and evaluate their performance
based on the current sprint.

Figure 1. Scrum Methodology (Yadav, 2022)

4
2.3 Methodology Justification

Scrum methodology is chosen to be implemented in this project. The first benefit of


Scrum that leads to this decision is that it is a methodology that strongly prioritize on
quality of the product. The repeating iteration and increment process ensures that
quality of product is enhanced over each sprint. Next, the projects can be managed
easily using this methodology since it provides a balanced timeline for each sprint and
transparent communication between project team and stakeholders. The balanced
timeline leads to quick communication between the team and stakeholders whenever
an error is encountered. Quick communication ensures that the correction events can
be carried out faster by project team.

3.0 Quality Assurance Process


In this research, three quality attributes will be discussed on the Self-Study Assistant.
The three quality attributes are maintainability, portability and usability. There will be
three quality attributes in total that will be discussed on the AloeMind application:
which consists of usability, maintainability and portability.

3.2 Usability

Usability is described as the ability of users to utilize a product or system in a given


context to achieve specific goals with efficiency, effectiveness, and satisfaction.
Figure below shows the usability sub-characteristics.

Figure 2. Sub-characteristic of Usability (ISO 9241-11 [7])

5
An application with a high usability value must possesses the following characteristic,
including:
 Operability: ease of use and control
 User interface aesthetics: have a user-friendly GUI
 User error protection: have prevention where the user does not have to encounter
unusual or strange codes
 Learnability: easily understandable by users of all ages, disabilities and other
factors
 Appropriateness recognizability: the app should be professional

Usability Testing was ensure that the application is easy to use. Users will be testing
the application by performing tasks based on the test plan. Experience software
metrics will be implemented to analyze and measure the usability points the results
from the usability test. After that, developers are able to work on the components or
parts of the system that required to be improved based on the usability test.

The questions that could be asked during a usability test are listed in Figure below.
The questions appear to be eliciting user feedback on the user interface in terms of
ease of use and navigation simplicity.

6
Figure 3. Usability Test Questions

3.3 Maintainability

Maintainability is the degree to which a product or system's efficiency and


effectiveness may be improved, corrected, or adapted to current environmental and
requirements changes. Below shows the sub-characteristics that compromises the
characteristic:
 Modularity: system's capacity to be broken down into modules and then
reassembled.
 Reusability: the ease with which the system's modules or components can be
recycled
 Analysability: the ease with which the system can be analysed.
 Modifiability: how easy it is to test a system
 Testability: refers to the degree of simplicity of testing the system

The Self-Study Assistant will first be divided into smaller components, where each
functionalities is coded in their relative components to increase modularity. After
finish developing all of the functions, the components will be combined to return the

7
final result. This strategy not only increase the modularity of the software, but also
enhance the modifiability of the software. This is because that developer is able to
investigate certain components based on error encountered in specific testing routines
in each component.

3.4 Portability

The ease with which a system, product, or component can be moved from one
operating system, software, or other consuming environment to another. There are 3
sub-characteristic that compromise portability, including:
 Adaptability: the ability to work with a variety of hardware and software that is
always evolving.
 Installability: the ability to run on a variety of platforms.
 Replaceability: the ability to replace a present product with equivalent functions.

To enhance the portability quality attribute for the Self-Study Assistant, a few
strategies are required to be carried out by the developers. First, in terms of the
installability attribute, the software will be compatible with both computer and mobile
devices using browsers. Next, students usually practices some self-studying
methodologies using manual activities and it can replaced by just using the Self-
Assistant Assistant. As for instability attribute, the Self-Study Assistant website
should be able to be use on every types of browsers and smart devices.

8
4.0 Estimation
Estimation is management event that is implemented to measure the duration of job
completion using rough calculations. The Cocomo (Constructive Cost Technique)
which is a model for estimating small-to-medium sized software projects, is
implemented in this project.

4.1 Time and Effort Estimation

The time and effort is estimated using the Cocomo model. This project is considered
under Organic category due to the small size of the development team and it is not a
complex project.

Formula to calculate size of the project parameter:

Table to explain the expression above:

9
The Self-Study Assistant project has approximately 120 KLOC.
Effort = 2.4(120)1.05 PM
≈ 366 PM
Tdev = 2.5(366)0.38 Months
≈ 24 Months
Average Staff Size = 366/ 24 Persons
≈ 15
Productivity = 120/366 KLOC/ Person – Month
≈ 0.33 KLOC/ Person – Month

4.2 Cost Estimation

Cost estimation equation:

10
The equation for calculating functional point:

Calculation for UFP the sum of 5 measurement parameters, where its weighting
factors are affected by the project:

11
Average weighting factors is applied to all of the parameters in this Self-Study
Assistant project. Thus, there will be 3 EI, 1 EO, 1 EQ, 2 ILF, and 3 ELF.

Calculation of functional points;


EI = 3 * 4=12
EO = 1 * 5 =5
EQ = 1 * 4 =4
ILF = 2 * 10=20
EIF = 3 * 7 =21
UFP = 12 + 5 + 4 + 20 + 21
= 62

CAF equation:

ΣFi is based on 14 aspects of processing complexity, where the scale for each aspect
will affect the value of CAF, as shown in the table below:

12
All the factors are answered with the average (3) score. Thus, the calculation for CAF
is shown below:
ΣFi = 14 * 3 = 42
CAF = 0.65+(0.01*42) = 1.07

FP is calculated using CAP and UFP:


FP = 62 * 1.07
= 66.34

Cost estimation can be calculated after obtaining the FP. The calculation of cost is
shown below:
cost of code per line = $15
Average Functional Point of Programming Language chosen(Javascript) = 47
Cost = (66.34 * 47) *15
= $46769.70

13
5.0 Risk Management Plan
Risk management plan is a strong tool that help software developers to track and
document events that are unexpected and uncertain encountered in the software
development phase. The risk management plan will be consists of 6 sections which
are risk identification, risk analysis, risk prioritization, risk management planning, risk
resolution and risk monitoring.

5.1 Risk Identification

Risk identification is the first step of risk management. It is the process of identifying
the risks that may potentially stop or slow down the project to accomplish its
objectives. The document produced in this phase is risk checklist. The risk checklist
produced when for the Self-Study Assistant project is shown as below:

Risk Checklist
Risk ID Risk Name Description
R1 Decreased budget Project may not be able to be done in time due to
insufficient budget
R2 Lack of experienced May happen due to experienced engineers left
engineers and will delay the project progression
R3 Machine breakdown Damaged hardware may delay the progression of
the software development

5.2 Risk Analysis

In this risk analysis phase, decision tree analysis is carried out for all of the risks in
the risk checklist which is produced in risk identification step. The decision tree
analysis will help the project team to calculate the Expected Monetary Value (EMV)
to make the most beneficial decision. One of the example below shows the decision
tree created to make decision on whether to hire a new worker or to look for
outsourcing when the risk R1 happened.

14
By referring to the decision tree crated above, it is clear that hiring a new worker is
more beneficial due to its higher EMV compared to outsourcing.

5.3 Risk Prioritization

In the risk prioritization stage, the project will identify which risks should be
prioritized and focused first based on their impact to the project. Probability impact
matrix will be produced in this phase to document the prioritization of the risks in the
risk checklist.

15
Impact High R3

Medium R2

Low R1

Low Medium High

Probability

5.4 Risk Management Planning

Risk management planning is conducted to ensure that the project team is always
prepared to face different risks in any phase of the project. A checklist of risk
resolution techniques will be produced in this phase which documents response type
of the risks found in risk identification stage and the potential approaches to deal with
them. There are 8 types of risk response type including:
 Risk avoidance: changing plan to completely avoid the risk
 Risk mitigation: executing practices that reduce the risk
 Risk transfer: transfer the impact of risk to a third-party
 Risk acceptance: decision to accept the risk
 Risk sharing: sharing the risk with multiple parties
 Risk contingency: creating procedure and planning to manage the risk
 Risk enhancement: response for positive risk
 Risk exploitation: utilizing resources that turn available when the risk is
encountered

The checklist of risk resolution techniques for Self-Study Assistant is produced as


shown as the table below:

16
Checklist of risk resolution techniques
Risk Response Type Response information
R1 Risk contingency Crate set of procedures or a backup plan to
which is able to adapt to the decreased budget
R2 Risk transfer Plan with HR department to get experienced
engineers if required
R3 Risk mitigation Use backup machines and devices to continue
on the project while fixing the broken
machines

5.5 Risk Resolution

Risk resolution refers to the process of analyzing different strategies to seek for the
best approaches to handle a risk. Prototyping technique is implemented in this project.
Prototyping technique is used to test effectiveness of the risk responses which are
discovered in risk management planning.

5.6 Risk Monitoring

Risk monitoring is the practise of keeping track of the progression of risk resolution.
A risk management tool which is risk item tracking document is used to practice risk
monitoring. In this document, all of the risks identified in risk identification phase
will be ranked. Meetings will be conducted every month to rank the priorities of the
risks. The risk item tracking of Self-Study Assistant is shown below;
Risk Item Tracking
Risk Rank This Month Rank Last Month
1 1 3
2 2 2
3 3 1

17
6.0 Software Metrics
A software metric is a measurable or countable measurement of software features. It
is commonly used in estimating system performance, evaluating job productivity and
so on. For this project, different software metrics including user experience,
maintainability index, portabilit y test are carried out.

6.1 User Experience

Customer satisfaction score (CSAT) is used to evaluating user experience of Self-


Study Assistant software. In this section, questionnaires are distributed to rate the user
experience of the software in a scale of 1 to 5, where 1 is referred to ‘strongly
dissatisfied’ and 5 is referred to ‘strongly satisfied’.

Equation of CSAT:

The result of the CSAT score is as below:


CSAT = (90/100) * 100%
= 90%

The result of the CSAT calculation shows that most of the users are satisfied with the
features provided by Self-Study Assistant.

18
6.2 Maintainability Index

The maintainability index is a equation to measure the maintainability of a software


product.

Maintainability Index = Max[0, 100 171-5.2*ln(V)-0.23*(G)-16.2*ln(L)/171]


= Max[0, 100 171-5.2*ln(66)-0.23(1)-16.2*ln(8)/171]
= 67
The maintainability index calculated for Self-Study Assistant is 67% which is under
the high maintainability level category.

19
6.3 Portability Test

A few tests are conducted in order to evaluate the portability of the Self-Study
Assistant, including replacebility test and compatibility test.

6.3.1 Replaceability Test

Platform Coomputer Mobile devices


Component for to do list Working Working
Component for Pomodoro Working Working
Timer
Component for translator Working Working
Component for Nearby Working Working
Library Checker

6.3.2 Compatibility Test

Platform Android iOS


Before deploying location Working Working
features for Nearby
Library Tracker
After deploying location Working Working
features for Nearby
Library Tracker

20
7.0 Conclusion
In conclusion, different methodologies and techniques are practiced successfully in
order to produce a high quality software product that is able to fulfill the users’
requirement. By implementing all of the techniques, different quality attributes of
Self-Study Assistant such as usability, maintainability and portability are assured.
Different user’s reflects are retrieved and indicated that they are fairly satisfied with
the product. However, there is space of improvements where more time and effort can
be implemented in covering more quality attributes of the product. By implementing
more estimation and testing in the project, it is believed that it will double quality of
the Self-Study Application.

8.0 References
1. Altvater, A. (2017, September 16). What Are Software Metrics and How Can
You Track Them? Retrieved from Stackify: https://stackify.com/track-software-
metrics/#:~:text=A%20software%20metric%20is%20a,productivity%2C%20and
%20many%20other%20uses.
2. Boitard, B. (n.d.). Effectively Monitoring Project Risks. Retrieved from I
Sciforma: https://www.sciforma.com/blog/effectively-monitoring-project-risks
3. Chappell, D. (2018). THE THREE ASPECTS OF SOFTWARE QUALITY:
FUNCTIONAL, STRUCTURAL, AND PROCESS. Retrieved from
http://www.davidchappell.com/writing/white_papers/The_Three_Aspects_of_Sof
tware_Quality_v1.0-Chappell.pdf
4. Freeman, G. (2019, Febraury 1). What is Quality Management and Why Does it
Matter? Retrieved from Quality Magazine:
https://www.qualitymag.com/articles/95237-what-is-quality-management-and-
why-does-it-matter
5. Yadav, G. (2022). Scrum and Agile Software Development, Know the Difference.
Retrieved 22 April 2022, from
https://www.programmingwithbasics.com/2020/09/scrum-and-agile.html
6. (2022). Retrieved 23 April 2022, from https://simplicable.com/new/risk-
response#:~:text=%20%20%20Overview%3A%20Risk%20Response%20%20,te
rm%20risk%20response%20is%20strongly%20assoc%20...%20

21

You might also like