Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

critique for report #49

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 94 additions & 1 deletion report/report.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
Critique
The architecture of Brew Bucks is designed to be simple, maintainable, and modular, which supports the delivery of the complete system effectively. Here are the key points of the critique:

Strengths:

1. Performance and Reliability: The architecture effectively supports performance and reliability. The use of a shared database ensures data integrity and consistency, which is crucial for reliable order tracking and history. The stateless service pattern, combined with load balancing, offers higher reliability and availability by allowing multiple instances of services to handle requests without state conflicts. This design also aids in scaling the application to handle peak loads efficiently.
2. Testing and Debugging: The service-based architecture improves testability. The independent and stateless nature of services makes it easier to isolate and test individual components. This is a significant advantage over event-driven architectures, where asynchronous communication complicates testing and debugging. The architecture supports comprehensive testing strategies, ensuring that each service can be tested in isolation, which enhances the overall quality of the system.
3. Trade-offs and Compromises: While the shared database approach offers several advantages, it also introduces some trade-offs. Increased data coupling can lower testability, and performance bottlenecks may arise as more services share the same database. However, given the scale and scope of the application, these trade-offs are justified. The decision to use a shared database simplifies transaction management and preserves data integrity, which is vital for the application’s reliability.
4. Security and Interoperability: The architecture partially meets security and interoperability quality attributes. While the current implementation lacks an API layer for enhanced security policies, it is recognized that future iterations should incorporate this feature to improve security. Similarly, the absence of a reverse proxy to hide the internal network structure is noted as a potential security flaw. However, these omissions do not critically impact the system’s current functionality and can be addressed in future updates.
5. Scalability: The architecture’s scalability is deemed sufficient for the expected load. The service-based design allows for easy scaling of individual services using a load balancer. The expected order volume during peak hours has been considered, and the architecture has been tested to handle these loads effectively. While scalability might be partially limited compared to a microservices approach, it is adequate for the application's current requirements.
Overall, the Brew Bucks architecture strikes a balance between simplicity, functionality, and quality attributes. It supports the delivery of a reliable, maintainable, and extensible system, making it a robust choice for the project. The team’s decisions reflect a pragmatic approach, prioritizing simplicity and reliability to meet project constraints and deliver a functional MVP on time. Future iterations can focus on enhancing security and scalability to further improve the system.


\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage[%
Expand Down Expand Up @@ -265,7 +278,86 @@ \subsubsection*{Tradeoff 1. Shared Database}
\end{figure}

\section{Critique}
Describe how well the architecture supports delivering the complete system.

\title{Backend Testing Report}

The backend architecture of our food ordering system has been thoroughly tested to ensure it meets the required functionality and quality attributes. The tests included performance tests, functional tests, and stress tests, with particular focus on critical API endpoints. Below are the detailed results of these tests:

\section{User Sign-Up and Deletion}

\begin{itemize}
\item Total Requests: 7116
\item Successful Requests: 100.00\%
\item Average HTTP Request Duration: 10.42ms
\item HTTP Request Failure Rate: 0.00\%
\end{itemize}

These results demonstrate that the user sign-up and deletion functionality is robust, with all requests completing successfully within an average duration of 10.42 milliseconds. This indicates that the system handles these operations efficiently and reliably.

\section{Get User Info}

\begin{itemize}
\item Total Requests: 3605
\item Successful Requests: 100.00\%
\item Average HTTP Request Duration: 6.62ms
\item HTTP Request Failure Rate: 0.00\%
\end{itemize}

The get user info endpoint also performed exceptionally well, with all requests being successful and an average response time of 6.62 milliseconds. This ensures that user information retrieval is quick and dependable.

\section{Create Menu Item}

\begin{itemize}
\item Total Requests: 3606
\item Successful Requests: 100.00\%
\item Average HTTP Request Duration: 7.34ms
\item HTTP Request Failure Rate: 0.00\%
\end{itemize}

Creating menu items showed consistent performance with a 100\% success rate and an average request duration of 7.34 milliseconds. This supports the system's ability to manage menu items efficiently.

\section{Get Menu Items}

\begin{itemize}
\item Total Requests: 1260
\item Successful Requests: 78.05\%
\item Average HTTP Request Duration: 1.89s
\item HTTP Request Failure Rate: 0.00\%
\end{itemize}

The get menu items endpoint, while successful in 78.05\% of cases, had a notably higher average request duration of 1.89 seconds. This suggests a potential bottleneck or inefficiency in retrieving menu data, which may need further optimization to improve user experience.

\section{Create Order}

\begin{itemize}
\item Total Requests: 3584
\item Successful Requests: 100.00\%
\item Average HTTP Request Duration: 13.4ms
\item HTTP Request Failure Rate: 0.00\%
\end{itemize}

Creating orders was also highly efficient, with a 100\% success rate and an average request duration of 13.4 milliseconds. This indicates that the system is capable of handling order creation swiftly and reliably.

\section{Architecture Suitability}

The architecture of our system has shown to be well-suited for delivering the required functionality and quality attributes. The following points summarize how the architecture supports key quality attributes:

\subsection{Functionality}

The test results indicate that the system reliably handles user-related operations, menu item management, and order processing. The high success rates and low request durations for most endpoints confirm the functionality is delivered effectively.

\subsection{Performance}

Performance metrics such as average request durations and success rates indicate that the system performs well under the tested conditions. The only area of concern is the get menu items endpoint, which may require optimization.

\subsection{Scalability}

The architecture supports scalability, as evidenced by the system's ability to handle thousands of requests with low failure rates. However, further testing under higher loads and varying conditions would provide additional insights into its scalability.

\subsection{Reliability}

With 100\% success rates in most critical operations, the system demonstrates high reliability. This is crucial for maintaining user trust and ensuring consistent service availability.

\section{Evaluation}
Summarise testing results and justify how well the software achieves its quality attributes.
\section{Reflection}
Expand All @@ -292,3 +384,4 @@ \section{References}


\end{document}

Loading