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

Higher Nationals

Internal verification of assessment decisions – BTEC (RQF)


INTERNAL VERIFICATION – ASSESSMENT DECISIONS

Programme title BITEC Higher National Diploma in Computing

Mr: Sachintha Sampath


Assessor Internal Verifier
Unit 30 – Application Development
Unit(s)
Inventory Control Application for BAUHINIA
Assignment title
Ravindu Chamodya
Student’s name
List which assessment criteria Pass Merit Distinction
the Assessor has awarded.

INTERNAL VERIFIER CHECKLIST

Do the assessment criteria awarded match


those shown in the assignment brief? Y/N

Is the Pass/Merit/Distinction grade awarded


justified by the assessor’s comments on the Y/N
student work?
Has the work been assessed
Y/N
accurately?
Is the feedback to the student:
Give details:
• Constructive? Y/N
• Linked to relevant assessment criteria? Y/N
• Identifying opportunities for Y/N
improved performance?
• Agreeing actions? Y/N
Does the assessment decision need
Y/N
amending?

Assessor signature Date

Internal Verifier signature Date


Programme Leader signature (if required)
Date

Confirm action completed


Remedial action taken
Give details:

Assessor signature Date

Internal Verifier
Date
signature
Programme Leader
Date
signature (if required)
Higher Nationals - Summative
Assignment Feedback Form
Student Name/ID Ravindu Chamodya / E116818

Unit Title Unit 30 – Application Development

Assignment Number Assessor Mr Sachintha Sampath


2022/13/30 Date Received
Submission Date
1st submission
Date Received 2nd
Re-submission Date
submission
Assessor Feedback:
LO1 Produce a Software Design Document by analysing a business-related problem and deduce an
appropriate solution including a set of initial requirements
Pass, Merit & Distinction P1 P2 M1
Descripts
LO2 Use design and development methodologies with tools and techniques associated with the
creation of a business application

Pass, Merit & Distinction P3 M2 D1


Descripts
LO3 Work individually and as part of a team to plan and produce a functional business application
with support documentation
Pass, Merit & Distinction P4 P5 M3 M4 D2
Descripts
LO4 Evaluate the performance of a business application against its Software Design Document
and initial requirements
Pass, Merit & Distinction P6 M5 D3
Descripts

Grade: Assessor Signature: Date:

Resubmission Feedback:

Grade: Assessor Signature: Date:

Internal Verifier’s Comments:

Signature & Date:

* Please note that grade decisions are provisional. They are only confirmed once internal and external moderation has taken place and grades
decisions have been agreed at the assessment board.

Ravindu Chamodya E116818 | Application Development | Unit 30 2


Assignment Feedback
Formative Feedback: Assessor to Student

Action Plan

Summative feedback

Feedback: Student to Assessor

Assessor Date
signature
Ravindu 2022/12/30
Student signature Date

Ravindu Chamodya E116818 | Application Development | Unit 30 3


Pearson Higher Nationals in
Computing
Unit 30 – Application Development

Ravindu Chamodya E116818 | Application Development | Unit 30 4


General Guidelines

1. A Cover page or title page – You should always attach a title page to your assignment. Use previous
page as your cover sheet and make sure all the details are accurately filled.
2. Attach this brief as the first section of your assignment.
3. All the assignments should be prepared using a word processing software.
4. All the assignments should be printed on A4 sized papers. Use single side printing.
5. Allow 1” for top, bottom , right margins and 1.25” for the left margin of each page.

Word Processing Rules

1. The font size should be 12 point, and should be in the style of Time New Roman.
2. Use 1.5 line spacing. Left justify all paragraphs.
3. Ensure that all the headings are consistent in terms of the font size and font style.
4. Use footer function in the word processor to insert Your Name, Subject, Assignment No, and Page
Number on each page. This is useful if individual sheets become detached for any reason.
5. Use word processing application spell check and grammar check function to help editing your
assignment.

Important Points:

1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the compulsory
information. eg: Figures, tables of comparison etc. Adding text boxes in the body except for the
before mentioned compulsory information will result in rejection of your work.
2. Avoid using page borders in your assignment body.
3. Carefully check the hand in date and the instructions given in the assignment. Late submissions will
not be accepted.
4. Ensure that you give yourself enough time to complete the assignment by the due date.
5. Excuses of any nature will not be accepted for failure to hand in the work on time.
6. You must take responsibility for managing your own time effectively.
7. If you are unable to hand in your assignment on time and have valid reasons such as illness, you may
apply (in writing) for an extension.
8. Failure to achieve at least PASS criteria will result in a REFERRAL grade .
9. Non-submission of work without valid reasons will lead to an automatic RE FERRAL. You will then be
asked to complete an alternative assignment.
10. If you use other people’s work or ideas in your assignment, reference them properly using HARVARD
referencing system to avoid plagiarism. You have to provide both in-text citation and a reference
list.
11. If you are proven to be guilty of plagiarism or any academic misconduct, your grade could be
reduced to A REFERRAL or at worst you could be expelled from the course

Ravindu Chamodya E116818 | Application Development | Unit 30 5


Student Declaration

I hereby, declare that I know what plagiarism entails, namely to use another’s work and to present it as my
own without attributing the sources in the correct form. I further understand what it means to copy
another’s work.

1. I know that plagiarism is a punishable offence because it constitutes theft.


2. I understand the plagiarism and copying policy of Edexcel UK.
3. I know what the consequences will be if I plagiarise or copy another’s work in any of the assignments
for this program.
4. I declare therefore that all work presented by me for every aspect of my program, will be my own,
and where I have made use of another’s work, I will attribute the source in the correct way.
5. I acknowledge that the attachment of this document signed or not, constitutes a binding agreement
between myself and Edexcel UK.
6. I understand that my assignment will not be considered as submitted if this document is not attached
to the assignment.

Student’s Signature: Date:2022/12/30


(Provide E-mail ID) (Provide Submission Date)
E116818@esoft.academy

Ravindu Chamodya E116818 | Application Development | Unit 30 6


Higher National Diploma in Business
Assignment Brief
Student Name /ID Number Ravindu Chamodya / E116818

Unit Number and Title Unit 30: Application Development

Academic Year 2021/22

Unit Tutor

Assignment Title

Issue Date

Submission Date 2022/12/30

IV Name & Date

Submission format

Ravindu Chamodya E116818 | Application Development | Unit 30 7


The submission should be in the form of an individual written report. This should be written in a
concise, formal business style using single spacing and font size 12. You are required to make use
of headings, paragraphs and subsections as appropriate, and all work must be supported with
research. You must provide in-text citations and the reference list using Harvard referencing
system.

The recommended word count is 4,000–4,500 words excluding annexures..


Minimum word count – 4,000
Maximum word count – 4,500
Unit Learning Outcomes:

LO1 Produce a Software Design Document by analysing a business-related problem and deduce an
appropriate solution including a set of initial requirements.
LO2 Use design and development methodologies with tools and techniques associated with the
creation of a business application.
LO3 Work individually and as part of a team to plan and produce a functional business application
with support documentation.
LO4 Evaluate the performance of a business application against its Software Design Document
and initial requirements

Assignment Brief and Guidance:

BAUHINIA is a clothing brand in Sri Lanka, founded in 2018, which has come a long way, offering
Sri Lankans with great designs of a variety of clothing. Currently, BAUHINIA is handling orders
through social media networks such as Facebook and Instagram. Customers can message
BAUHINIA requesting an item/s by sending the item code, size and required quantity. If the item
is available, the customer is required to send the delivery address, contact number to confirm the
order. The package with the required item/s will be delivered to the customer’s doorstep within
3 to 5 working days, after which he/she must pay cash on delivery.
Over the years, BAUHINIA has grown steadily mainly due to its popularity over social media.
However, they are finding it increasingly difficult to cope up with paperwork associated with
inventory management due to the increased of number of orders through message requests. The
Managing Director is frustrated by the problems associated with inventory management and has
decided that BAUHINIA will consult a Software Development Company to automate the workflow
of BAUHINIA Clothing.

Ravindu Chamodya E116818 | Application Development | Unit 30 8


AKL Software (AKL) is a software development consultant. AKL has purpose-built rooms for
Facilitated Workshops and Agile software development projects. The Managing Director of
BAUHINIA has decided to contract AKL for the development of the new order tracking system
using an Agile development approach.

The new online solution will replace the old approach and is likely to include some of the following
functionality:
• Customer Registration and sign-in : Allow customers to register free. At the time of
registration, customers need to provide name, email address, delivery address, password
and two working telephone numbers. Registered customers can sign-in using email
address and password.
• Browse for products: through product catalog, check availability and add products to
cart.
• Checkout products: Total amount to be paid will be shown. Customer will be redirected
to confirm billing details: Name, delivery address, email address, two contact numbers.
Payment method will be cash on delivery.
• Staff registration and sign-in.
• Create a daily report of orders that have been requested – carried out by the Production
Manager.
• Create a daily report of product availability- carried out by Production Manager.
• Add new items to inventory, update existing item details – carried out by Inventory
handling Clerk.
• Create a monthly Income report- carried out of chief Accountant.

The new online solution should have the following levels of access:
• Report only
• Update only
• Update and delete
• Complete system access

Activity 1

1.1 Produce a well-defined Problem definition statement supported by a set of user and System
requirements for the above scenario. Identify areas (if any) of risk that might affect the
successful completion of the application.

1.2 Produce a well-structured Software Design Document that defines a proposed solution for
BAUHINIA by exploring and analyzing their business problem. Include relevant details on
requirements, system analysis, system design. (propose a suitable language)

Ravindu Chamodya E116818 | Application Development | Unit 30 9


Activity 2

Investigate the use of software development tools and techniques for the chosen software
solution. Compare the investigated tools and techniques and justify the chosen tools, technique
and methodology that you may use for the development of an Inventory Control Application for
BAUHINIA .

Activity 3

3.1 Create a presentation to review followings;


• Business application
• Problem definition statement
• Proposed solution
• Development strategy

Conduct a peer-review and identify opportunities that were not previously considered by
interpreting the recorded feedback.

3.2 Develop a business application with support documentation, based on the Software Design
Document produced in activity 1, along with supportive evidence for using the preferred tools,
techniques and methodologies investigated in activity 2. Assess new ideas or possible
improvements to the system developed while justifying the reasons for including/not including
them in the application developed.

Activity 4

Conduct a critical review for the design, development, and testing stages of the Inventory
Control application by analyzing the factors that influence its performance against the problem
definition statement and initial requirements. Conclude the review by reflectively discussing the
risks identified at the beginning and critically evaluating the strengths and weaknesses of the
application developed. Identify and justify the opportunities for improvement and further
development of the application you developed.

Ravindu Chamodya E116818 | Application Development | Unit 30 10


Ravindu Chamodya E116818 | Application Development | Unit 30 11
Acknowledgment

I would like to take this opportunity to express my special thanks to my lecturer Mr. Sachintha
Sampath for his friendly support, valuable information, and guidance which helped me in completing
this module. I also want to thank my batchmates for their assistance during this time.

Thank you,
Ravindu.

Ravindu Chamodya E116818 | Application Development | Unit 30 12


Activity 01

1.1 Produce a well-defined Problem definition statement supported by a set of user and System
requirements for the above scenario. Identify areas (if any) of risk that might affect the
successful completion of the application.

Problem background

Bauhinia is a clothing brand in Sri Lanka which is in the phase of developing the business to a new
level. The primary issue facing Bauhinia is the absence of an automated system to manage all
company activities, which are now handled manually. These operations include processing orders,
making reports, keeping track of every transaction, creating invoices, etc.

Problem definition statement

A issue definition statement gives a summary of the problem or difficulties that must be solved for
the project. The issue statement identifies the present condition, the expected future state, and any
discrepancies between the two. All project participants are able to comprehend the problem and the
significance of the project with the help of a problem statement. Additionally, issue statements are
regarded as an effective communication tool since they include every member of the team in the
project.

Problem definition statement for Bauhinia

Due to the growing popularity of the Bauhinia apparel line, a manual-based approach is unable to
meet client demands. In order to tackle this issue, they require an automated inventory management
system.

Risks that might affect the successful completion of the system

Any development process has its own set of risks, that even the projects with the best plan can have
problems. When it comes to the Bauhinia project, there may be unforeseen issues that we will
encounter when producing the software product, which will result in superfluous causes or
occasionally excessive expenses. Risks are unexpected scenarios that everyone has encountered.
When building a web application, we can draw attention to a variety of risk concerns. Before starting
the development process, these problems should be carefully examined and answers provided.

Ravindu Chamodya E116818 | Application Development | Unit 30 13


1. Technical risks

When creating the system, there may be several technical dangers. Technical risk refers to the
possible effects on a project, system, or general infrastructure when an implementation does not
proceed as anticipated. Computers that are utilized in the development processes may have
challenges, including slow internet connections, power outages, insufficient storage, software
flaws, and hardware malfunctions. These risks can be reduced by taking precautions like checking
each computer's internet connection before the development process begins, installing UPS in
each computer in case of power outages, checking and ensuring there is enough storage in hard
disks to store all the project documents, and having backups for internet connections and all data.
The work needed to fix technical issues will be reduced when certain procedures are taken to
minimize such technical hazards.

2. Client risk

Maintaining communication with the client is essential when creating a system like Bauhinia since
it was created with the client's needs in mind, therefore every aspect of the finished product should
be understood by the client. If the final product is different from what the consumer anticipated,
there may be issues with the customer as well as dissatisfaction. The consumer won't purchase
the item as a result. As a result, we should inform the client about the system at every step of
development to minimize this risk. As we all know, it's important to stay in touch with clients in
order to get their feedback and understand their expectations.

3. Legal risk

It is crucial to conduct research about the legal history of the components utilized. As an
illustration, we should remember the copy rights of the codes we borrow from other projects and
include into our project. Because neglecting legal information on such matters may lead to issues
that will hinder the project's effective completion. As a consequence, in order to correctly
complete the Bauhinia application for the firm, we should be able to recognize any legal dangers
and be able to prevent them.

4. Cost risk

Because the cost might fluctuate regularly when working under a tight timeline, this is one of the
most frequent problems that occur when building software. Additional charges like developer
overtime compensation, fees related to unanticipated hardware and software failures, and
fluctuating raw material prices are also possible. The easiest way to avoid such issues is by
creating a budget. Unexpected costs might come up while the project is being carried out. As a
result, we ought to set aside money for each and every activity that may be utilized in an
emergency. Planning a budget for the development process is the most crucial thing we can do to
lessen cost-related risks.

Ravindu Chamodya E116818 | Application Development | Unit 30 14


5. Schedule risk

Typically, when we begin a project, we believe we can complete it in the time allotted. But one
of the frequent issues that come up when finishing assignments is time management. If there are
issues with the technical side, the time allocated for the project will not be sufficient. We will then
require extra time to address such issues. Therefore, the ideal strategy is to leave yourself
additional time by finishing every project task far ahead of schedule. Making a more practical
project schedule is also essential. If there is an issue with staff, technology, or clients, we can use
the allotted time.

Risk Level of risk


Technical risk Medium
Client risk High
Legal risk High
Cost risk Medium
Schedule risk Low

The AKL software has recognized the following as the current problem state,

• No backup plans
• It takes a long time to process orders and creating reports
• Lack of security
• Storage capacity issues since there is a lot of documentation that has to be stored
• Low customer satisfaction as a result of the lengthy processing time required by the manual
procedure to transmit orders to consumers
• Manually managing bills leads to late payments and unhappy suppliers
• The quality of the entries is poor since every piece of data is manually inputted (illegible
handwriting)
• Monitoring all the bills, invoices, documents, and other information is difficult

User requirements

User requirements, also known as user needs, describe how the client uses the framework, such as the
kind of exercises that client should be able to choose from. User needs are non-technical requirements
that can be understood by average people by reading them. They specify what the user expects the
program to be able to perform. Interviewing the customer is necessary to determine the user needs.

Ravindu Chamodya E116818 | Application Development | Unit 30 15


Functional requirements

Functional requirements specify the capability that a framework or component of a framework should
be able to execute. It is frequently recorded in many ways. The ones that are constructed
representations in documents and use cases are the most well-known. These are the demands that a
framework must fulfill or do, such as data manipulations, computations, and so forth. It is quite simple
to find practical demands and already utilized situations.

User / role: Customer, Admin, Staff

Functional requirements per user role:

Customers can
• Register using email and password
• View products details
• Search products
• Add products, delete products from the cart and edit quantity.
• Purchase products to an address

Admin can
• Login and logout from the system
• Insert, update and delete products and product details
• Insert, update and delete details of other user accounts
• View orders, view order details

Staff can
• Login and logout from the system
• View orders
• Create daily reports for orders
• Create invoices

Ravindu Chamodya E116818 | Application Development | Unit 30 16


Non-functional requirements

Nonfunctional requirements are not necessary, implying that they are not obligated to be met. The
execution of the framework and its attributes are characterized by the non-functional needs. The
reliability, maintainability, response time, and storage requirements are used to evaluate the non-
functional criteria in order to determine the framework's quality.

Non-functional requirements
• Interfaces should be user friendly
• The site should load in less than 3 seconds when the number of users is > 1000
• A sale must be processed within 3 minutes.
• All data must be secured
• An email (includes order details) should be sent to the customer after their order is completed

System Analysis

A system analysis is carried out to investigate a system or its components in order to determine its
goals. it also can be defined as the process of breaking down the system in to sub components,
gathering data and finding issues. With this process we are able to ensure that each and every
component of the system work together to achieve their goals and system analysis is a technique used
for problem solving (tutorialspoint, 2022).

System analysis tools

SWOT

SWOT analysis is a regularly employed technique for identifying a business's strengths, weaknesses,
and opportunities. It is one of the simplest yet most useful analytical tools out there. We must first
establish the project objective in the SWOT analysis approach before we can identify the components
(both internal and external) that are necessary to attain that goal. A company's internal strengths and
weaknesses are often greater than its external opportunities and threats.

1. Strengths - Characteristics of a business that provide advantages and aid in the achievement
of objectives
2. Weaknesses - Business characteristics that exist as advantages yet inhibit the attainment of
the objectives
3. Opportunities - Aspects of the business's external environment that the website might exploit
to achieve its objectives
4. Threats - Aspects of the company's external environment that might cause issues and hinder
the website from reaching its objectives

Ravindu Chamodya E116818 | Application Development | Unit 30 17


PEST

A macro-environmental evaluation of an organization's external environment is done through a


PEST study. It is an effective tool for comprehending an organization's political, economic,
sociocultural, and technical context. Using the PEST technique, we can also take into account the
legal and environmental issues.

Choose System analysis tool

I have decided to choose SWOT analysis as the System analysis tool for this project because,
following this method we are able to identify the weaknesses, strength, opportunities and threats of
the business, also SWOT method is a useful corporate tool for planning short- and long-term
decisions. Simple to conduct, does not cost much, which make SWOT analysis easier to use. Other
reasons why chose this method are,
• It helps to identify the strengths of the business which then can be improved
• It helps to identify the weaknesses of the business that can be solved or reduced
• It helps to identify the opportunities which we can take advantage in order to help the
business in the future

Available solutions to address the problem in Bauhinia

Web application

A web application is a software program that can be accessed online using a browser interface and
is kept on a remote server. There are many different reasons why people use web apps, from
organizations to individuals, and there are many different motivations to design web applications.
One of the key advantages of a web application is that users may access it with the aid of a web
browser rather than having to download it in order to use it (TechTarget Contributor, n.d.).

Mobile application

A software which runs on a mobile device such as tablet, smartphone is mostly referred to as a
mobile application. Mobile applications typically provide users with services that are comparable
to those available on PCs. When compared to other applications, mobile application comes with
limited functionality since apps are small, standalone software units (techopedia, 2020).

Ravindu Chamodya E116818 | Application Development | Unit 30 18


Desktop application

Desktop software or apps may be thought of as a localized version of a service or online application
that allows the user to interact with the application processing without having to connect directly to
the web service. This desktop program has grown in prominence since it provides cross-platform
solutions to relatively large online services, as well as the extra benefit of not affecting the
architecture in the event of a failure.

Suitable solution to address upon the above stated problem

In order to address the current problem of Bauhinia, AKL software, a software development
consultant has chosen the best solution as developing a web-based application to be used as an order
tracking system since web applications are able to run on multiple platforms, regardless of the
operating system or device as long as the browser is supported. Choosing a web-based application
will also reduce difficulties regarding storage. It is installed on the hard drive and saves money for
both the company and the end user because it requires less support and maintenance.

Benefits gained by selecting web application as the solution for Bauhinia

Cross platform compatibility - Web-based programs tend to be far more platform-neutral than
conventional installed software. A web browser, of which there are several, is the bare minimum
need for accessing a web application. The online application may be run on Windows, Linux, or
Mac OS, among other operating systems.

Secure live data - Larger and more complex systems transport more data, which is stored across a
variety of systems and data sources. However, because these systems and processes may frequently
be combined, the need for separate systems is lessened in web applications. Web-based apps extend
security by limiting access to data and back-end systems.

Reduced costs - Because they need less care and upkeep, need less of the end user's system, and
have a simpler architecture, web-based apps can help you save a lot of money. By streamlining your
company's processes as a consequence of your web-based application, you may frequently find
additional savings.

More manageable - A web application is simple to maintain and update, and any changes made by
clients may be delivered over the web server with ease. The end user workstation just has to fulfill
the very minimal requirements, and web applications only need to be installed on the server
(kcsitglobal, 2022).

Ravindu Chamodya E116818 | Application Development | Unit 30 19


1.2 Produce a well-structured Software Design Document that defines a proposed solution for
BAUHINIA by exploring and analyzing their business problem. Include relevant details on
requirements, system analysis, system design. (Propose a suitable language)

Design document

UML (Unified Modelling Language) Diagrams

Programmers utilize the UML language to easily and simply grasp complex software designs. In other
words, UML is a language that was developed to produce a standardized, semantically and
syntactically rich visual modeling language for the design and execution of large software systems'
structural and behavioral architecture. One diagram will not be sufficient to represent the entire
system, hence UML also includes other diagrams like class diagrams, use case diagrams, flow charts,
and DFD diagrams.

Use case diagram

A use case diagram is a visual representation of how a system works using actors and use cases. In
these diagrams, actors are the entities or persons who carry out certain duties within the system
whereas use cases are the functions, actions and services that the system should provide. Use case
diagrams help in locating any internal or external factors that can affect the system and should be
taken into account. They are also helpful for visualizing a system's functional requirements, which
will affect design choices, developments, and priorities, and they offer a sound high-level analysis
from outside the system. Without going into the mechanics of how that feature is implemented, use
case illustrations demonstrate how the system interacts with actors (TechTarget Contributor, n.d.).

Ravindu Chamodya E116818 | Application Development | Unit 30 20


Use case diagram for the Bauhinia system

Figure 1:use case diagram

Ravindu Chamodya E116818 | Application Development | Unit 30 21


Class diagram

A class diagram is a specific kind of diagram and a component of the unified modeling language
(UML), which specifies and presents the overview and structure of a system in terms of classes,
characteristics, and methods, as well as the connections between various classes.

It is used as a system development resource throughout the software development life cycle to
demonstrate and generate a functional diagram of the system classes. (techopedia, 2022)

Figure 2:class diagram

Ravindu Chamodya E116818 | Application Development | Unit 30 22


Sequence diagram

Interaction diagrams such as UML Sequence Diagrams show how operations are carried out. With
the use of sequence diagram, we are able to represent the interaction between the components of the
system in a collaborative setting. The vertical axis of the sequence diagram depicts the time and the
message sent and received. And the horizontal line of the sequence diagram depicts the order of
components interacted.

Figure 3:sequence diagram

Ravindu Chamodya E116818 | Application Development | Unit 30 23


User Interface design

User interface (UI) design is the process of creating user interfaces for software or digital devices
with an emphasis on look or style. The primary objective of the designers when creating user
interfaces for an application is to make them appear straightforward and simple to use, since this will
satisfy the user.

Wireframes

Wireframes are designed when creating a website to learn about the structure of the website.
Wireframes can be defined as a screen blueprint which is a graphical representation of a website’s
skeleton architecture. Wireframes are also known as page schematic. Using wireframes, we are able
to arrange the content of the website while taking user demands into consideration. Following are
wireframes of the designed website.

Home page

Ravindu Chamodya E116818 | Application Development | Unit 30 24


Login page

Product page

Ravindu Chamodya E116818 | Application Development | Unit 30 25


Database design

A basic definition of database design is a group of activities or procedures that improve the planning,
creation, implementation, and upkeep of an enterprise data management system. A good database
design improves data consistency while lowering maintenance costs. It also has a significant impact
on cost-effective measures in terms of disk storage. Therefore, creating a database requires an
innovative idea. Following the limitations, the designer should choose how the pieces relate to one
another and what type of data has to be kept. (javatpoint, n.d.)

ER Diagram

Entity Relationship Diagram, or ER Diagram for short, is a diagram that shows the relationships
between entity sets that are recorded in a database. To put it another way, ER diagrams assist in
describing the logical organization of databases. Entities, attributes, and relationships are the three
fundamental ideas that serve as the foundation for ER diagrams. (guru99, 2022)

Figure 4:ER diagram

Ravindu Chamodya E116818 | Application Development | Unit 30 26


Software Development Languages

1. Python

One of the most popular and user-friendly programming languages is Python. It was created
in the 1990s and is an open-source, simple to learn programming language. It is mostly utilized
in robotics, big data, artificial intelligence, machine learning, and desktop applications with a
graphical user interface.

2. Java

Sun Microsystems created Java in 1995. It is an easy-to-use, safe, dependable, platform-


neutral, high-level programming language. Oracle is now the owner of Java. It is mostly used
to create desktop, online, Android, big data, research community, and banking apps.

3. C++

C++ is a popular programming language that is a successor to C. The term is derived from the
C "++" operator, which adds one to an integer. Unlike C, using C++ we are able to represent
real world items in the code by adding classes and objects which make C++ more interesting
and increased the language’s capabilities which made it better to produce programs such as
client-server applications, video games and system or application software.

4. C#

C# is a popular C branch that was created by Microsoft to operate on its.NET framework for
Windows applications. C# is a contemporary, general-purpose programming language that
may be used to accomplish a wide range of activities and goals across a wide range of
professions. Although it may be used on an open-source platform, C# is predominantly
utilized on the Windows.NET framework. C# is the language used in Unity game engine
which is used to design video games and also it is widely used in desktop applications.

5. JavaScript

Both the client-side and the server-side can utilize the scripting language known as JavaScript.
It was created in the 1990s for the web browser Netscape Navigator. It enables programmers
to include intricate elements to bring online pages to life. It facilitates the development of
dynamic websites, servers, mobile applications, animated images, games, and other things by
programmers.

Ravindu Chamodya E116818 | Application Development | Unit 30 27


6. PHP

Static, dynamic, or web-based applications can all be made using PHP, a server-side scripting
language. Personal Home Pages, sometimes known as PHP, is now referred to as a hypertext
pre-processor. PHP has to be installed on the server in order for it to run on it. PHP programs
may be seen on client PCs using just a web browser. Some of the common uses of PHP
include: PHP can handle forms, which means it can gather data from files, save data to a file,
send data via email, and return data to the user; PHP can add, delete, and modify elements in
your database. PHP also performs system functions, such as creating, opening, reading,
writing, and closing files on a system. (javatpoint, 2022)

Comparison of Software development languages

Features Python Java C# C++ PHP

Purpose Data Mobile Game Desktop WordPress


visualization, development, development, applications development,
machine game Web services, and software, Back-end
learning, development, Web web development,
Artificial big data applications applications, server-side
intelligence, technology, and Desktop Mobile apps web
data analysis, desktop applications applications
game software
development
Paradigm Multi- Multi- Multi- Multi- Imperative,
paradigm: paradigm: paradigm: paradigm: procedural,
functional, object- reflective, functional, objectoriented,
procedural, oriented, object- procedural, reflective
object- structured, oriented, generic,
oriented, generic, structured, object-
reflective concurrent, functional, oriented
imperative generic
Encapsulation No Yes Yes Yes Yes

Inheritance Yes Yes Yes Yes Yes

Polymorphism Yes Yes Yes Yes Yes

Platform Cross- Linux, OS X, Common MacOS, Windows,


platform Windows language Linux, Unix-like
infrastructure Solaris

Ravindu Chamodya E116818 | Application Development | Unit 30 28


Typing Dynamic, Static, Safe, Strong, Nominative, Dynamic,
discipline Strong, Duck manifest, nominative, partially gradual, weak
strong, static, strong inferred,
nominative Static
Built in No Yes Yes No Yes
security
Method No Yes Yes Yes Yes
Overloading

Language chosen to develop the web application in Bauhinia

As I have mentioned earlier in the report that the best solution to address the problem in Bauhinia is
a web application, therefore out of the languages C#, C++ and PHP I have decided to use PHP as the
language to be used in the developing process. The reasons for choosing PHP as the developing
language are,

• PHP is versatile – platform independent feature in PHP is one of the most significant
advantages we gain from using PHP. In other words, we are able to run PHP on MacOS,
Window, Linux and most web browsers. We are also able to install it on a variety of systems
and platforms at a low cost since it works will all major web servers.

• PHP is fast and secure - Every company wants their website or application to be both quick
and safe which we gain by using PHP since in order to store data PHP uses it own memory
and also later versions of PHP performs well in terms of performance. Another advantage is
also that there are many tools and frameworks and best practices available due to its extensive
use which is very helpful when it comes to repairing vulnerabilities and preventing cyber-
attacks.

• PHP is well connected with databases – when working with PHP we have greater flexibility
in selecting a database that is ideal for the application we are working on since connecting to
practically any database is made easy with PHP.

Ravindu Chamodya E116818 | Application Development | Unit 30 29


Activity 02

Investigate the use of software development tools and techniques for the chosen software solution.

Visual Studio

Visual Studio is a Microsoft Integrated Development Environment (IDE) for creating GUIs, consoles,
Web applications, online apps, mobile apps, cloud, and web services, among other things. Microsoft’s
different platforms such as Windows store, Windows API and Microsoft Silverlight are used in Visual
Studio. There is no specific language to be used in Visual Studio IDE, it is compatible with 36
different programming language including C#, PHP, JavaScript, Python and C++. Also, it is
compatible with both Windows and Mac OS. (geeksforgeeks, 2022)

Net Beans

An open-source integrated development environment (IDE) for programming languages including


Java, PHP, C++, and others is called NetBeans. A platform with modular components for creating
Java desktop applications is another name for NetBeans. (techopedia, 2011)

Eclipse

Building applications using Java and other programming languages such as C++, Python C and etc.
can be done in the Eclipse IDE. The Eclipse platform which is the foundations of the Eclipse is made
up of plug ins and the design of it is made in a way which is intended to be extendable with the
increase of plug ins. Any programming language for which a plug-in is available can be used with
Eclipse as an IDE. (eclipse, n.d.)

Atom

Atom is a Linux, MacOS, and Windows open-source IDE and source code editor that supports Nod.js
plug-ins and Git hub's integrated Git management. Atom supports the development of applications in
a number of languages, including C, Python, JavaScript, and PHP. Atom has several functions,
including debugging, code completion recommendations, and file dragging.

Code Blocks

Using Code Block IDE which is a free and open-source software developers are able to debug, code,
create, execute and distribute applications. And also personalizing our work settings can be done with
the help of its features such as graphical representation of memory, source control integration and
CPU utilization. C/C++, Java, Python, HTML5, Objective C, PHP, Ada, Fortran, and Assembler are
among the languages supported by Code Blocks.

Ravindu Chamodya E116818 | Application Development | Unit 30 30


Comparing Software development IDEs

IDE Name Open source Supported Cross Level of Custom


or not languages Platform System compiler
requirement

Visual Studio Open Source PHP, C#, Yes High Yes


HTML,
Python
NetBeans Open Source Java, Yes Medium Java compiler
JavaScript,
PHP
Eclipse Open Source Java, Yes Medium Yes
JavaScript, C,
C++
Atom Open Source PHP, C#, Yes Medium No
C++, Java,
JavaScript,
Java
Code Blocks Open Source C++ Yes Low No

Chosen IDE for the development of Bauhinia system

I have decided to choose Visual Studio as the IDE to develop the system of Bauhinia because,

• Visual Studio supports web applications - Web application support is already built-in. As
a result, web applications may be created and maintained in VSC.

• Visual Studio supports multiple programming languages – so if we are using n IDE which
does not supports multiple languages then its going to be hard when developing the system
because then we have to use a different IDE for different languages. Visual Studio comes with
built-in multi-language support. This also implies that if there is a mistake or a cross-language
reference, it will be clearly detectable

• Repository - The need for code is growing in the software development business, therefore
it's critical to maintain it secure and up to date. We can safely save our data in Git when using
Visual Studio because it is linked to Git or may be linked to any other source.

Ravindu Chamodya E116818 | Application Development | Unit 30 31


• Visual Studio support extensions - visual studio provides extensions to the user to install in
order to add features to the IDE which can improve the quality of the code or which can
improve coding faster. and also, extension can be used if the programmer want to use a
language which is not built in, the user can install an extension to solve that issue.
Furthermore, because the extension runs as a separate process, it does not slow down the
editor.

Software Development methodologies

A software development methodology can be defined as a systemic process which is being followed
by the people who are involved in the development process in order to produce a successful product/
software. The main goal of using a software development methodology is to establish a systemic
approach for software development. These development approaches, which were developed using a
combination of design principles and pragmatic realism, have been in use for a long time.
(alliancesoftware, 2022)

Waterfall method

The first ever methodology which was widely used to develop software was the Waterfall method
which is also known as linear-sequential life cycle model. In the waterfall model the whole project is
divided into several phases and the output of one phase servers as the input of the following phase.
When it comes to understanding this waterfall model it is very easy, in order to move on to the next
stage the previous stage must be completed in waterfall model and there cannot be any overlapping
in the stages.

The waterfall cannot be used for each and every project because in order to use the waterfall model
there are some points which we need to consider. We need to make sure whether the requirements of
the project are very well known, fixed and clear, we need to ensure that the definition of the product
is consistent, we need to make sure that technology is full understood, we need to make sure that
there no criteria that are unclear and we need to ensure that there are sufficient resources are available.

Ravindu Chamodya E116818 | Application Development | Unit 30 32


Figure 5:Waterfall model

The sequential phases in Waterfall model are,

• Requirement Gathering and analysis − In this stage, all potential system needs are gathered
and recorded in a requirement specification document.

• System design - The requirements acquired in the first step are examined in this phase to
develop the system. This system design assists in specifying hardware and system
requirements as well as developing the overall system architecture.

• Implementation - The system is first constructed as separate programs, or units, during the
implementation phase. The following phase involves merging or integrating these elements.
The process of creating and evaluating each unit's functionality is known as unit testing.

• Integration and testing - The little programs or units that were created in the preceding phase
are tested independently during this stage of the process before being incorporated into a
system. After integration, the entire system is examined for any errors or faults.

• Deployment of the system - When a system is deployed, it indicates that after functional and
non-functional testing, the product is made available for purchase or placed onto the market.

• Maintenance - It's possible that issues will surface after the system has been deployed on the
client side and is used for a while. These problems are fixed during the maintenance phase,
the last step of the waterfall model. Newer versions have been created in order to enhance the
product. To bring about these changes in the customer's environment, maintenance is
performed. (tutorialspoint, 2022)

Ravindu Chamodya E116818 | Application Development | Unit 30 33


Three guiding principles-low customer involvement, strong documentation and sequential structure-
form the foundation of the waterfall methodology. These three main principles will be discussed
below,

1. Low customer involvement

When it comes to the client’s involvement to the project during the process of developing,
waterfall method does not need that much involvement of customer to the project. This principle
has become an advantage in the customer’s side because there is no need of participating to
meetings conducted by the project team and there is no need of contacting the project team during
the developing process, which will save time for the client in his side. The first meeting conducted
with the customer will be before the beginning of the project where all the requirement of the
customer is documented. Then the next meeting will be held after the product is completed and
ready to be delivered to the customer.

2. Strong documentation

Because of the low customer involvement, the developers have to document all the requirements
before starting the project, because the there will be no requirement gathering done after the
project has started which means the waterfall method not flexible. Therefore, the developers
should have a strong documentation before starting the project work. All the activities of the
project are based on the requirements gathered from the customer before starting the software
development.

3. Sequential structure

The waterfall model's guiding concept is said to be the sequential structure principle. Every
waterfall project has a sequential structure with five to seven stages that the developers must
follow in order. The phases of the waterfall technique cannot be combined, therefore once one
step is finished, we cannot go back to it. The waterfall approach must start over for the developers
if any modifications need to be made to a prior step. This waterfall technique tenet is thought to
be a major drawback for developers. (Waseem, 2022)

Advantages Disadvantages

Each stage of development must be finished Error may only be corrected at this phase
before moving on to the next one.
Suitable for smaller projects with well specified For complicated projects where requirements
needs change frequently, it is not ideal
Every stage of the software development cycle Developers and testers spend a lot of time on
involves extensive documentation documentation
With minimal customer involvement, the It is not possible to incorporate client comments
project is entirely dependent on the project team into the ongoing development process
(Martin, 2022)

Ravindu Chamodya E116818 | Application Development | Unit 30 34


Spiral model

One of the most crucial techniques in software development is the spiral model. Both the waterfall
model and the iterative development process model are elements of the spiral model. Software
engineers favor employing the spiral approach when it comes to expensive, difficult, and massive
projects.

Figure 6: spiral model

The spirals in the above figure represent how many times the model's stages must be performed to
finish the job. The spiral's number of loops varies based on the size and complexity of the project,
therefore there is no set number. A phase of the development process is referred to for each loop in
the Spiral model. The spiral's current radius represents the project's costs (cost), and its current
angular dimension represents the progress of the current phase.

1. Objectives determination and identify alternative solutions - At the beginning of each step,
the objectives are specified, developed upon, and assessed while requirements are acquired
from the clients. Then, in this quadrant, other solutions that could be viable for the phase are
offered.

2. Identify and resolve Risks - All potential solutions are assessed in the second quadrant in
order to choose the best one. The risks connected to that solution are then determined, and the
risks are dealt with in the best way feasible. The Prototype is constructed for the ideal outcome
at the conclusion of this quadrant.

Ravindu Chamodya E116818 | Application Development | Unit 30 35


3. Develop next version of the Product - The third quadrant is when the specified
characteristics are produced and tested. The following software version is accessible at the
conclusion of the third quadrant.

4. Review and plan for the next Phase - The customers assess the software's currently created
version in the fourth quadrant. Planning for the following step is then begun.

Advantages Disadvantages

Possibility of doing changes at a later stage or


Risk of going over the budget and the time
phase schedule
Because the prototype is built in small units, cost
Spiral model is most effective only when it
estimating is simple comes to large project. And also, high risk
assessment knowledge is needed
Customer feedback is always accepted Documentation is more extensive since it
includes intermediate stages
Risk management is assisted by continuous or The spiral approach is not appropriate for
recurrent development smaller projects due to its high cost
(PAL, 2022)

Prototyping model

The prototyping software model is one in which a prototype is created, tested by adding features, and
then rebuilt in order to get a successful result which will not hold the same logic as the correct
software application will be utilized to construct the entire system. Prototyping model is used when
the exact requirements is unknown. When using the Prototyping model users are able to try out
developer’s suggestions before implementing them and also the developer will be able to understand
user specific requirements during prototyping. Simply the developers will be able to understand the
requirements of the customer at an early stage of the developing process which has make the
prototyping model popular today.

Ravindu Chamodya E116818 | Application Development | Unit 30 36


Figure 7:prototyping model

Advantages Disadvantages

Development process can be done faster Time will be consumed since many prototypes
because of the quick client responses need to be designed
Developers can easily understand the client’sClient’s interaction is a must in this type of
requirements model; therefore, it can be difficult if the client
is unable to attend the processes
Errors can be identified and solved in early In the beginning of the project, it is difficult to
stages mention the actual amount of time needed to
complete the project
The developers can start the development During the process of creating a quick prototype
process even though the requirements are the developers will make poor judgements
unclear or there are limited requirements which will negatively affect the final result
(02DCE, 2022)

Agile software development methodologies

Agile describes something that is rapid or flexible. Agile software development approach refers to a
process for creating software that is based on iterative development. All tasks in the Agile
development process are broken down into smaller processes that are iterated, and the project
requirements are established at the outset of the project. Each iteration's duration, length, and scope
are all explicitly set in advance.

Ravindu Chamodya E116818 | Application Development | Unit 30 37


Phases of the Agile methodology,

1. Requirements gathering - You must specify the criteria during this step. Explaining
commercial potential and scheduling the time and resources required to complete the project
are important. Based on these data, you may assess the technical and financial viability.

2. Designing - Work with stakeholders to establish requirements after identifying the project.
To demonstrate the functionality of new features and how they will integrate with your current
system, you may use a user flow diagram or a high-level UML diagram.

3. Construction - The job starts after the team decides what is needed. Starting their project with
the goal of releasing a functional product, designers and developers get to work. The product
has basic, minimum functionality and will go through numerous phases of refinement.

4. Testing - in the testing phase the newly build system will be tested by the quality assurance
team to find errors and resolve them.

5. Deployment - in this phase the product will be installed in the client’s environment to
function.

6. Feedback - feedback is the final stage where the feedback of the client will be received by
the developers regarding the new system and the developers will modify the system depending
on the client’s feedback. (javatpoint, 2022)

Characteristics of Agile development method,


• Modular Functioning
• Iteration
• Time bound
• Parsimony
• Adaptation
• Collaboration

Scrum

Scrum is an agile development approach based on iterative and incremental procedures that is used
in the development of an application. The Scrum methodology which is flexible, rapid, adaptive and
effective is able to provide value to the customer during the whole development process. When
following the Scrum methodology, a culture of open communication, shared ownership and
continuous improvement is created in order achieve the main goal of the Scrum which is meeting the
needs of the customer. There is only a rough understanding about the project at the beginning of the
development process which is followed by a list of characteristics listed according to the order of
priority that the product owner desires.

Ravindu Chamodya E116818 | Application Development | Unit 30 38


Principles of Scrum,

• Initiation
• Planning and estimation
• Implementation
• Reviewing
• Releasing
• Adaptation
• Transparency
• Inspection

Advantages of the Scrum methodology

• Time to market - Because it takes so little time to start up, the scrum technique leads in
speedier delivery and, as a result, an earlier time to market. Rapid development process helps
in providing immediate solution sections to the customer without necessarily finishing the
whole project.

• Creates transparency - Scrum approach guarantees that employees complete their tasks and
that there is transparency between clients and the organization. Every change in the project is
updated to every member involved in the project as transparency breeds confidence, and the
firm gains more clients.

Disadvantages of the Scrum methodology

• Not appropriate for plan driven approach projects – the Scrum method is most commonly
used for products which does not need lengthy planning and extensive strategies before
starting the development process. So, the Scrum method figure out the development process
according to the client’s feedbacks and other relevant activities.

• Need experience – when the giving feedbacks to the developing team, the members who are
providing the feedbacks should have some experience in order to give the feedbacks correctly
to the developing team. If they made any mistake when providing the feedbacks due to lack
of experience or knowledge will automatically break down the entire system. (agilealliance,
2022)

Ravindu Chamodya E116818 | Application Development | Unit 30 39


Comparing different types of software development methods

Feature Waterfall Prototyping Spiral Agile

Development Sequential Iterative Sequential + Iterative


type Iterative

Most Main frame Small – Real time Urgent and


appropriate applications medium application significantly
for application complex
applications

Customer Low High High High


Involvement

Strengths Software Encourages Promote risk The first


development creativity and management, major
that is is easy to which may advantage of
quantifiable apply incorporate agile software
and resource- different development
conserving techniques is the rapid
delivery of
new features

Weaknesses extensive and False There is no Maintaining a


inflexible consumer set timeline, high level of
documentation expectations and the teamwork
might result project may may be tough
in shoddy end up using
design a waterfall
paradigm

Testing At the end of During At each loop During


the project development of the development
processes development processes
process

Ravindu Chamodya E116818 | Application Development | Unit 30 40


For the development of the system in Bauhinia I have decided to us the Agile software development
method because of the following reasons,

• Stakeholder engagement and satisfaction – when using the Agile development method, we
can have many opportunities to increase the connection between the customer and the
development team. As a result, the development team does not need face any difficulties when
identifying the needs of the client correctly. Therefore, a software product with a good quality
can be produced at the end of the process.

• Allows for change - when it comes to a software there can be changes that need to done in
order to improve the performance of the software after using it for some time. With agile
approaches, significant changes may be implemented in a matter of weeks.

• Allows for change - when it comes to a software there can be changes that need to done in
order to improve the performance of the software after using it for some time. With agile
approaches, significant changes may be implemented in a matter of weeks.

• Transparency – transparency means the customer is able to get the knowledge of each and
every process that takes place inside the project due to high level of engagement that agile
method provides.

Ravindu Chamodya E116818 | Application Development | Unit 30 41


Activity 03

3.1 Create a presentation to review followings,

• Business application
• Problem definition statement
• Proposed solution
• Development strategy

Ravindu Chamodya E116818 | Application Development | Unit 30 42


Ravindu Chamodya E116818 | Application Development | Unit 30 43
Ravindu Chamodya E116818 | Application Development | Unit 30 44
Ravindu Chamodya E116818 | Application Development | Unit 30 45
Ravindu Chamodya E116818 | Application Development | Unit 30 46
Ravindu Chamodya E116818 | Application Development | Unit 30 47
Figure 8:Presentation slides

Ravindu Chamodya E116818 | Application Development | Unit 30 48


Contemporary review

Ravindu Chamodya E116818 | Application Development | Unit 30 49


Ravindu Chamodya E116818 | Application Development | Unit 30 50
Ravindu Chamodya E116818 | Application Development | Unit 30 51
Results of the above survey

What do you think about the presentation?

Ravindu Chamodya E116818 | Application Development | Unit 30 52


Is this system appropriate for Bauhinia?

What do you think about the features of the system?

Ravindu Chamodya E116818 | Application Development | Unit 30 53


What do you think about the database design?

What do you think about the proposed solution?

Figure 9:Feedback results

Ravindu Chamodya E116818 | Application Development | Unit 30 54


Interface of the Web application

Homepage

Ravindu Chamodya E116818 | Application Development | Unit 30 55


Singin page

Ravindu Chamodya E116818 | Application Development | Unit 30 56


Products page

Ravindu Chamodya E116818 | Application Development | Unit 30 57


Product details page

Ravindu Chamodya E116818 | Application Development | Unit 30 58


Adding to cart

Ravindu Chamodya E116818 | Application Development | Unit 30 59


My cart page

Ravindu Chamodya E116818 | Application Development | Unit 30 60


Search result page

Ravindu Chamodya E116818 | Application Development | Unit 30 61


Customer care page

Ravindu Chamodya E116818 | Application Development | Unit 30 62


My address page

Ravindu Chamodya E116818 | Application Development | Unit 30 63


My wallet

Ravindu Chamodya E116818 | Application Development | Unit 30 64


Thank you, customer page

Figure 10:User Interfaces

Ravindu Chamodya E116818 | Application Development | Unit 30 65


Assess new ideas or possible improvements to the system developed while justifying the reasons
for including/not including them in the application developed

In the future the scope of the project will be expanded. Because Bauhinia will have to add more
features to the system when the demand get increased and customer base is expanded in the future.
The future enhancement may include introducing new payment methods such as only payments using
PayPal, Visa, Master and etc.

Below I will be discussing about the future enhancements of the Bauhinia system,

Adding new Online payment methods – online payment methods such as PayPal, Visa, Master,
Google Play, Apple Play will be a great advantage for the customers as well as for the business since
it will be easy for the customers to buy products because most of the customers does not keep their
money in hand, they always use Debit cards and Credit cards to do their transactions. And in the
business side it will be easy for the delivery people because they don’t need to carry money paid by
the customers which they have to take responsibility of.

Real time chat box – in the current system of the Bauhinia there is no way to connect with the
customers in real time. So, if the customers need to know more about a product, they need to post a
comment and wait hours or days to get a reply from the product seller. So, implementing a real time
chat box will allow the customers to connect with Bauhinia agents within minutes and continue a
conversation in real time, which is easier for the customers.

Ravindu Chamodya E116818 | Application Development | Unit 30 66


What is testing?

Testing is the process of evaluating software in order to identify differences between provided input
and expected output. In other words, testing is a check and approval procedure since it assesses the
software's quality. During the software development process, testing is conducted. Simply testing
may also be defined as a procedure used to identify systemic flaws. If the testing procedure is carried
out precisely and effectively, all mistakes in a piece of software or a system may be eliminated,
allowing the system to function without faults. (guru99, 2022)

There are four types(levels) of testing known as,

Unit testing

In the Unit testing we test an individual unit or gathering of interrelated units. This testing centers
around smallest unit of the system. Unit testing is done by the programmer in order to check weather
that the unit the programmer has executed gives the expected output. There are two types of unit
testing called,

• Black box testing – in this testing we look at the program as a black box where we cannot
see the internal working mechanism of the system because, in black box testing the tester
ignores processing logic unit and only focus on the output of the testing.

• White box testing – during the whit box testing the program is assumed as a transparent
box where we are able to see the internal working mechanism which is important to the
tester. The tester mainly focus on the inputs, whether the inputs are driven correctly and how
the output is obtained.

Integration testing

In the integration testing a gathering of components are consolidated in order to produce an output.
In this testing. The main goal of this testing is to gather the tested units and assemble a structure
according to the design. During this testing the connection between the hardware and the software
can be tested.

System testing

In this testing we test the system whether it can operate in different environments therefore the tester
run the system in different operating systems which will test the flow of data across the system. Here
the tester only focusses on the input and the output, the internal mechanism is not important therefore
this comes under black box testing. (seguetech, 2022)

Ravindu Chamodya E116818 | Application Development | Unit 30 67


Test cases

Test case 01

Enter the email and password


Pass

Ravindu Chamodya E116818 | Application Development | Unit 30 68


Test case 02

Enter the username, delivery address, password, email address


Pass

Ravindu Chamodya E116818 | Application Development | Unit 30 69


Test case 03

Select the product


Pass

Ravindu Chamodya E116818 | Application Development | Unit 30 70


Test case 04

Added to cart

Ravindu Chamodya E116818 | Application Development | Unit 30 71


Activity 04

4.1 Critical review for the design, development, and testing stages of the Inventory Control
application by analyzing the factors that influence its performance against the problem
definition statement and initial requirements.

The Bauhinia clothing company previously used a manual based system to handle all the business
operation, when the demand for Bauhinia increased, they faced difficulties in handling all the sales
orders and other business operations such as creating daily reports of income, products and orders.
Therefore, they needed to change the manual-based system into an automated system. The relevant
issues would be resolved by the new automated order tracking system, which would improve factors
like scalability, customer satisfaction, efficiency, quality, security, and backups.

The functional requirements stated by Bauhinia before the development stage of the project are as
follows,

Customers can,
• View products details
• Register using email and password
• Purchase products to an address
• Add products, delete products from the cart and edit quantity
• Search products

Admin can,
• Insert, update and delete products and product details
• Login and logout from the system
• View orders, view order details
• Insert, update and delete details of other user accounts

Staff can,
• View orders
• Login and logout from the system
• Create monthly report of income
• Create daily reports for orders and products

Ravindu Chamodya E116818 | Application Development | Unit 30 72


Now I will discuss how the requirements of the client were fulfilled when it comes to the design of
the application. first, we’ll talk about the customer’s side. According to the functional requirements
of the customer who is one of the users in the system, they need to browse products, purchase
products, add products in to the cart and have their own account with their details stored. In the
manual system the customers should make a telephone call to Bauhinia in order to place their order
by mentioning their details such as the product name, size, color, and delivery address which takes
more time. So, in the customer user interfaces I have added a navigation bar, a drop-down menu to
select the category the customer wants, an add to cart button under each product and relevant product
details are displayed to the customer with product images, colors and sizes for the customer to select
and make their order within seconds. With the automated system the customer does not need to
provide their address every time they purchase an item because the address customers provide when
registering to the system will be stored in the database and which will automatically display in the
order view interface when the customer place an order.

Software testing is an essential step in the creation of software since it assures that the finished product
meets all functional requirements and is free of flaws and defects. This guarantees the software's high
standards and quality. It's crucial to be time and budget mindful while evaluating software, I have
done unit testing, integration testing and system testing. In activity 03 I have created the test plan and
test cases that were carried out according to the test plan which was created considering the time it
will take and this testing process was schedule for three days. I have tested all the functions of the
system which includes Insert, Delete, Update, View, Purchase, Register, and Login. When testing
functions such as login I have run the test with invalid inputs to ensure that the function is working
100% correctly.

SWOT Analysis for the new automated system in Bauhinia

Strengths
• High customer satisfaction
• The efficiency of the business processes has increased compared to the previous manual-based
system
• Making business decisions has become easy and fast based on system’s data
• The process of keeping track of products and orders has improved
• Security of the data has improved since the system consists of different levels of access
depending on the user
• Creating high quality reports has become easy

Ravindu Chamodya E116818 | Application Development | Unit 30 73


Weaknesses
• All the processes depend on the internet’s speed and availability
• Inability to do online payments
• Unqualified employees to use a web application
• Limited backup facility

Opportunities
• Viewing products in product videos
• Various payment methods
• Real time connection with customers through an online chat box
• Ability to post many advertisements and discounts through online platform
• Optimization for mobile devices

Threats
• Competitors trying to copy the web application’s features
• Continuous power cuts daily
• Cyber attacks
• Need more electricity than the previous system
• Downtime in the application

Advantages and Disadvantages of Bauhinia automated system

Advantages Disadvantages

Integration with Accounting – To track cash System Crash - The possibility for a system
flow, many of the computerized inventory crash is one of the main issues with any
management systems interact with accounting automated system. Data loss can be caused by a
software. This eliminates the need for corrupt hard disk, power failures, and other
additional bookkeeping expenses and technological problems
streamlines the process of moving inventory
prices and assets across programs

Increase Efficiency and Productivity – the Malicious attacks - Hacker’s search for every
efficiency of the business processes in opportunity to obtain customer or business
Bauhinia is increased since the inventory is information. In pursuit of possible financial
managed in an efficient way which will not information or personal details of owners,
misplace any item. And the productivity of the vendors, or customers, a great resource to hack
employees is increased because time which into is an inventory system linked to point-of
was spent on the manual system is saved when sale devices and accounting
using the automated system

Ravindu Chamodya E116818 | Application Development | Unit 30 74


I will be discussing about the future enhancements of the Bauhinia system

• Adding new Online payment methods


• Order tracking
• Real time chat box
• Product Videos

Ravindu Chamodya E116818 | Application Development | Unit 30 75


References
02DCE, 2022. Software Engineering | Prototyping Model. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-prototyping-model/
[Accessed 24 december 2022].
agilealliance, 2022. Scrum. [Online]
Available at:
https://www.agilealliance.org/glossary/scrum/#q=~(infinite~false~filters~(postType~(~'page~'po
st~'aa_book~'aa_event_session~'aa_experience_report~'aa_glossary~'aa_research_paper~'aa_vi
deo)~tags~(~'scrum))~searchTerm~'~sort~false~sortDirection~'asc~page~1)
[Accessed 24 december 2022].
alliancesoftware, 2022. Software development methodologies. [Online]
Available at: https://www.alliancesoftware.com.au/introduction-software-development-
methodologies/#:~:text=Software%20development%20methodology%20is%20a,the%20form%2
0of%20defined%20phases.
[Accessed 23 december 2022].
eclipse, n.d. What Is Eclipse?. [Online]
Available at: https://www.eclipse.org/home/whatis/
[Accessed 23 december 2022].
geeksforgeeks, 2022. Introduction to Visual Studio. [Online]
Available at: https://www.geeksforgeeks.org/introduction-to-visual-studio/
[Accessed 23 december 2022].
guru99, 2022. Software Testing. [Online]
Available at: https://www.guru99.com/software-testing-introduction-importance.html
[Accessed 24 december 2022].
guru99, 2022. What is ER Diagram?. [Online]
Available at: https://www.guru99.com/er-diagram-tutorial-dbms.html
[Accessed 23 december 2022].
javatpoint, 2022. javatpoint. [Online]
Available at: https://www.javatpoint.com/software-engineering-agile-model
[Accessed 24 december 2022].
javatpoint, 2022. Programming Language. [Online]
Available at: https://www.javatpoint.com/programming-language
[Accessed 23 december 2022].
javatpoint, n.d. Database Design. [Online]
Available at: https://www.javatpoint.com/database-design
[Accessed 23 december 2022].
kcsitglobal, 2022. The benefits of web applications in todays technological era. [Online]
Available at: https://www.kcsitglobal.com/blogs/detail-blog/the-benefits-of-web-applications-in-
todays-technological-era
[Accessed 14 december 2022].

Ravindu Chamodya E116818 | Application Development | Unit 30 76


Martin, M., 2022. What is The Waterfall Model?.
[Online]
Available at: https://www.guru99.com/what-is-sdlc-or-waterfall-model.html
[Accessed 24 december 2022].
PAL, S. K., 2022. Software Engineering | Spiral Model. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-spiral-model/
[Accessed 24 december 2022].
seguetech, 2022. The Four Levels of Software Testing. [Online]
Available at: https://www.seguetech.com/the-four-levels-of-software-testing/
[Accessed 24 december 2022].
techopedia, 2011. NetBeans. [Online]
Available at: https://www.techopedia.com/definition/24735/netbeans
[Accessed 23 december 2022].
techopedia, 2020. Mobile Application (Mobile App). [Online]
Available at: https://www.techopedia.com/definition/2953/mobile-application-mobile-app
[Accessed 14 december 2022].
techopedia, 2022. [Online]
Available at: https://www.techopedia.com/definition/16466/class-
diagram#:~:text=A%20class%20diagram%20is%20a,the%20relationships%20between%20differe
nt%20classes.
[Accessed 22 december 2022].
techopedia, n.d. Class Diagram. [Online]
Available at: https://www.techopedia.com/definition/16466/class-
diagram#:~:text=A%20class%20diagram%20is%20a,the%20relationships%20between%20differe
nt%20classes.
[Accessed 14 december 2022].
TechTarget Contributor, n.d. use case diagram (UML use case diagram). [Online]
Available at: https://www.techtarget.com/whatis/definition/use-case-diagram
[Accessed 14 december 2022].
TechTarget Contributor, n.d. Web application (Web app). [Online]
Available at: https://www.techtarget.com/searchsoftwarequality/definition/Web-application-
Web-app
[Accessed 14 december 2022].
tutorialspoint, 2022. SDLC - Waterfall Model. [Online]
Available at: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[Accessed 23 december 2022].
tutorialspoint, 2022. System Analysis and Design - Overview. [Online]
Available at:
https://www.tutorialspoint.com/system_analysis_and_design/system_analysis_and_design_ove
rview.htm
[Accessed 14 december 2022].
Waseem, A., 2022. Waterfall Methodology. [Online]
Available at: https://management.org/waterfall-methodology
[Accessed 24 december 2022].

Ravindu Chamodya E116818 | Application Development | Unit 30 77


Ravindu Chamodya E116818 | Application Development | Unit 30 78
Grading Criteria Achieved Feedback

LO1 Produce a Software Design Document by analysing a


business-related problem and deduce an appropriate solution
including a set of initial requirements.

P1 Explore a business related problem and produce a well-defined


Problem Definition Statement supported by a set of user and system
requirements.
P2 Determine any areas of risk related to the successful
completion of your application.

M1 Analyse a business related problem using appropriate methods


and produce a well-structured Software Design Document that
defines a proposed solution and includes relevant details on
requirements, system analysis, system design, coding, testing and
implementation.

LO2 Use design and development methodologies with tools


and techniques associated with the creation of a business
application.

P3 Research the use of software development tools and techniques


and identify any that have been selected for the development of this
application.
M2 Compare the differences between the various software
development tools and techniques researched and justify your
preferred selection as well as your preferred software development
methodology.

LO1 & LO2


Justify your solution to a business-related problem and your
preferred software development methodology, by comparing
between the various software development tools and techniques
researched.

LO3 Work individually and as part of a team to plan and


produce a functional business application with support
documentation.

P4 Create a formal presentation that effectively reviews your


business application, problem definition statement, proposed
solution and development strategy. Use this presentation as part of
a peer-review and document any feedback given.

P5 Develop a functional business application with support


documentation based on a specified business problem.
M3 Interpret your peer review feedback and identify opportunities
not previously considered.

M4 Develop a functional business application based on a specific


Software Design Document with supportive evidence of using the
preferred tools, techniques and methodologies.
D2 Evaluate any new insights, ideas or potential improvements to
your system and justify the reasons why you have chosen to include
(or not to include) them as part of this business application.
LO4 Evaluate the performance of a business application
against its Software Design Document and initial requirements.

P6 Review the performance of your business application against the


Problem Definition Statement and initial requirements.

M5 Analyse the factors that influence the performance of a business


application and use them to undertake a critical review of the
design, development, and testing stages of your application.
Conclude your review by reflectively discussing your previously
identified risks.
D3 Critically evaluate the strengths and weaknesses of your business
application and fully justify opportunities for improvement and
further development.

You might also like