Professional Documents
Culture Documents
E116818-1672379172816-232712-1187-1620017851896-Unit 30 - Application Development - Reworded 2021
E116818-1672379172816-232712-1187-1620017851896-Unit 30 - Application Development - Reworded 2021
Internal Verifier
Date
signature
Programme Leader
Date
signature (if required)
Higher Nationals - Summative
Assignment Feedback Form
Student Name/ID Ravindu Chamodya / E116818
Resubmission Feedback:
* 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.
Action Plan
Summative feedback
Assessor Date
signature
Ravindu 2022/12/30
Student signature Date
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.
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
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.
Unit Tutor
Assignment Title
Issue Date
Submission format
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
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.
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)
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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).
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
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
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).
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.
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.
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).
Design document
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.
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.).
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)
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.
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
Product page
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)
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
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.
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)
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.
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
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.
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.
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.
• 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)
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)
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.
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.
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
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.
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 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.
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)
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.
• Initiation
• Planning and estimation
• Implementation
• Reviewing
• Releasing
• Adaptation
• Transparency
• Inspection
• 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.
• 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)
• 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.
• Business application
• Problem definition statement
• Proposed solution
• Development strategy
Homepage
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.
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)
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)
Test case 01
Added to cart
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
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.
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
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 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