SAT Group Assignment
SAT Group Assignment
Module Code
TESTING
Intake Code : UC2F1805SE
Lecturer Name :
Hand in Date : 18th Jan 2019
Tutorial No. : T2
Group No. :
Student ID Student Name
TP045823 KHALID HASSAN ABEID AWADHAN
TP044647 HU XIE
TP042457 LAU JUN HSIEN
Table of Contents
1.0 INTRODUCTION.....................................................................................................................5
1.1 Overview of Foodpanda.........................................................................................................6
1.2 Why we chose foodpanda......................................................................................................6
2.0 REQUIREMENTS....................................................................................................................7
2.1 Functional Requirements.......................................................................................................7
2.2 Non-functional Requirements................................................................................................8
3.0 ARCHITECTURE EVALUATION..........................................................................................9
3.1 What is architecture evaluation?............................................................................................9
3.2 Why evaluate Foodpanda’s software architecture?...............................................................9
3.3 When to evaluate the software architecture?.......................................................................11
3.4 How to evaluate the software architecture?.........................................................................11
3.5 Who is involved in the Evaluation?.....................................................................................11
3.6 What Are the Outputs of an Architecture Evaluation?........................................................11
4.0 CONCLUSION AND RECOMMENDATION......................................................................13
Question 2 – ATAM......................................................................................................................14
Schedule.....................................................................................................................................14
ATAM........................................................................................................................................14
Introduction................................................................................................................................14
Present business drivers.............................................................................................................15
Present architecture....................................................................................................................16
Identify architectural approaches...............................................................................................17
Generate quality attribute utility tree.........................................................................................19
Analyze architectural approaches..............................................................................................20
Brainstorm and prioritize scenarios...........................................................................................22
Analyze architectural approaches..............................................................................................23
Reporting....................................................................................................................................25
Reference.......................................................................................................................................26
Question 3 - ARID.........................................................................................................................27
Introduction of ARID....................................................................................................................27
Phase 1: Rehearsal.........................................................................................................................27
Step 1: Identify reviewers..........................................................................................................28
Step 2: Prepare design briefing..................................................................................................28
Step 3: Prepare seed scenario.....................................................................................................31
Step 4: Prepare materials............................................................................................................31
Phase 2: Review.............................................................................................................................32
Step 5: Present ARID.................................................................................................................32
Step 6: Present design................................................................................................................34
Step 7: Brainstorming Session...................................................................................................38
Step 9: Summarize.....................................................................................................................39
Question 4 - Individual Component..............................................................................................40
KHALID HASSAN ABEID AWADHAN – TP045823...............................................................40
Software Architecture Analysis Method (SAAM) Agenda.......................................................40
Introduction and Overview........................................................................................................41
Prerequisite and Inputs of SAAM..............................................................................................41
SAAM Steps..............................................................................................................................41
Step 1: Development of Scenarios (1st Iterative).......................................................................42
Step 2: Architecture Description (1st Iterative)..........................................................................43
Visual representation..................................................................................................................44
Step 1: Development of Scenarios (2nd Iterative).......................................................................45
Step 2: Architecture Description (2nd Iterative).........................................................................46
Step 3: Classification of Scenarios.............................................................................................47
Step 4: Individual Assessment of Indirect Scenarios.................................................................48
Step 5: Assessment of Scenario Interaction...............................................................................49
Step 6: Overall Evaluation.........................................................................................................50
Conclusion.................................................................................................................................50
References..................................................................................................................................51
Xie Hu – TP044647.......................................................................................................................52
Schedule....................................................................................................................................52
Introduction..............................................................................................................................52
Steps 1: Develop Scenario........................................................................................................53
Step 2: Describe the Architecture...........................................................................................55
Step 3: Classify and Prioritise the Scenarios.........................................................................55
Step 4: Individually Evaluate Indirect Scenarios..................................................................57
Step 5: Assess Scenario Interactions......................................................................................58
Step 6: Create the Overall Evaluation...................................................................................59
Conclusion.................................................................................................................................59
Reference......................................................................................................................................60
Lau Jun Hsien – TP042457............................................................................................................61
Schedule for SAAM...................................................................................................................61
Introduction of SAAM...............................................................................................................61
Step 1: Develop Scenario...........................................................................................................62
Step 2: Describe the architecture...............................................................................................64
Step 3: Classify and prioritize the scenarios..............................................................................65
Step 4: Individually evaluate indirect scenarios........................................................................66
Step 5: Assess scenario interactions...........................................................................................67
Step 6: Create overall evaluation...............................................................................................68
Conclusion.................................................................................................................................70
Workload Matrix...........................................................................................................................71
References......................................................................................................................................72
1.0 INTRODUCTION
Online food ordering is the process of food delivery or takeout from a local restaurant or
food cooperative through a web page or mobile application. Food delivery services aim to make
our lives easier with just a few taps. There are 2 types of online food delivery service; restaurant-
controlled and independent. Companies such as Pizza Hut and Dominos have their own websites
where customers can order food. Independent online food ordering companies, such as
Foodpanda and Grabfood, sign contracts with restaurants to handle orders from them in a
regional area. The companies also hire riders who will pick up the orders from the restaurant and
deliver them to customers.
Food delivery service is made up of multiple systems including online ordering system,
delivery system and payment system. This service allows customers to keep accounts with them
in order to make frequent ordering convenient. A customer will search for a favourite restaurant
and choose from available items and choose delivery or pick-up. Payment can be amongst others
either by credit card, PayPal or cash, with the restaurant returning a percentage to the online food
company.
The first online food order was a pizza from Pizza Hut in 1994[CITATION Huf13 \l
17417 ]. Increased smartphone penetration and the growth of the sharing economy enabled food
delivery services to receive more attention. According to [ CITATION Sam16 \l 17417 ] online
delivery accounted for about 3 percent of the 61 billion U.S. restaurant transactions as of
September 2016. The company we chose to conduct an architecture evaluation is Foodpanda.
1.1 Overview of Foodpanda
Foodpanda, which is headquartered in Berlin, is one of the food delivery marketplaces
[ CITATION Che17 \l 17417 ]. The Foodpanda group was founded by Ralf Wenzel, Rohit
Chadda, Benjamin Bauer and Felix Plog in 2012. It operates in 12 countries in Asia and Eastern
Europe. The company has partnered with over 27,095 restaurants in 193 cities and works with
over 15,733 delivery riders[CITATION Del18 \l 17417 ].
The service allows users to select from local restaurants and place orders via its mobile
applications as well as its websites [ CITATION Sam14 \l 17417 ]. It then processes and sends
orders directly to partner restaurants, which then deliver to their customers. Customers order
food by entering their postcodes on the site and browsing for food from a list of restaurants.
Restaurants receive these orders and then deliver to customers[CITATION Foo16 \l 17417 ].
The following use case diagram will show all the functional requirements of Foodpanda’s
software.
Figure 1: Foodpanda's Use Case Diagram
The following is a list of the quality attributes of Foodpanda’s system starting with the most
important one to the least important:
Availability
Usability
Reliability
Performance
3.0 ARCHITECTURE EVALUATION
3.1 What is architecture evaluation?
Architecture evaluation is a valuable, useful, and worthwhile instrument for managing
risks in software engineering[ CITATION Jen16 \l 17417 ].
Reviews in App Store and Google Play show users are not happy with the mobile app and
the service in general. Users complain about the location service not working properly making
ordering of meals to the nearest restaurants impossible. Waiting time for delivery is absurdly
long. Users complain to up to 3 hours of waiting for their meal to be delivered. Some users
regard the service to be ‘terrible and unprofessional”. Customer service is poor and
unsupportive. Calls are left unanswered most of the time. Orders are cancelled without notice
and reason making users to be disappointed by the company. The company also had issues
with some of the restaurants. One user stated that “The representative of Foodpanda on the
phone also requested not to order from that particular restaurant because they had issues with the
restaurant.”[CITATION App18 \l 17417 ][ CITATION Goo18 \l 17417 ]. All these negative
feedbacks and complaints show that Foodpanda’s architecture deserve to be evaluated.
According to Quora, many people are questioning why Foodpanda is down often. Some
believe that Foodpanda does not have an efficient delivery model. Others say that it’s for
marketing purposes[CITATION Quo16 \l 17417 ]. My team will conduct an architecture
evaluation to understand the problem and provide solution to it.
Figure 2: A user Review in App Store
These methods will be discussed later in depth and how we used them to evaluate
Foodpanda.
Evaluation Team - these are the people who will conduct the evaluation and perform the
analysis.
Stakeholders – these are people who have a vested interest in the architecture and the system.
The project Manager, system architect and designer are examples of stakeholders.
For our project, our group will act as both the Evaluation team and the stakeholders.
It also displays risks and non-risks. Risks are potentially problematic architectural decisions.
Non-risks are good decisions that rely on assumptions that are frequently implicit in the
architecture.
4.0 CONCLUSION AND RECOMMENDATION
The average architecture evaluation adds no more than a few days to the project schedule.
It is significantly important to evaluate Foodpanda’s architecture to avoid disasters such as
performance goals not met, Security goals falling, customer dissatisfaction, system that is too
hard to change, and schedules and budgets through the roof. We would recommend conducting
architecture evaluation using ATAM, SAAM and ARID to understand the architecture and
provide solutions to the problems. The following parts will look at the three techniques used to
evaluate Foodpanda’s architecture in depth.
Question 2 – ATAM
Schedule
Time Activity
8:00-9:00 Step 1: Presentation on Introduction to ATAM
9:00-10:00 Step 2: Presentation on Business Drivers
10:00-11:00 Step 3: Discuss Software Architecture
11:00-12:00 Step 4: Identify Architectural Approaches
12:00-1:30 Break
1:30-3:00 Step 5: Generate Quality Attribute Utility Tree
3:00-4:30 Step 6: Analyse Architectural Approaches
4:30-6:30 Step7: Analyse architectural approaches
6:30-7:30 Break
7:30-9:30 Step8: Analyse Architectural Approaches again
6:30-7:30 Step9: Present Result (Reporting)
ATAM
Introduction
The Architecture Trade-Off Analysis Method (ATAM) is a method for evaluating
software architectures related to quality attribute objectives. It considers a variety of quality
attributes such as modifiability, performance, reliability, and security to gain insight into whether
the full enrichment of the architecture meets its requirements. ATAM is named because it not
only reveals how an architecture meets specific quality objectives, but also provides insight into
how these quality objectives interact and how they weigh each other[ CITATION Ric13 \l
1033 ]. Meanwhile the purpose of the ATAM is to assess the consequences of architectural
decisions in light of quality attribute requirements [ CITATION Ric00 \l 1033 ].
Present business drivers
2.1 business context for system
As we mentioned on question one, Foodpanda is a mobile food delivery
marketplace which operates in 10 countries and territories. It has partnered with
over 27,095 restaurants in 193 cities and works with over 15,733 delivery riders.
2.2 Time to market
On 10 December 2016 Delivery Hero acquired Foodpanda, a company estimated
at a $3 billion valuation at that time [ CITATION Ste16 \l 1033 ].
Delivery Hero went public in a listing on the Frankfurt Stock Exchange on June
30, 2017. The listing was the largest by a European technology business in almost
two years [ CITATION Jon17 \l 1033 ].
2.3 Most important function requirements
a. To allow customers and restaurants to register
b. Customers can save their favorite restaurants
c. Customers can filter restaurants by key words
d. Customers can track orders
e. The system will estimate the delivery time based on actual conditions, such as
weather and traffic conditions.
f. Customers can use a variety of payment methods, such as visa, online
payment and third party payment.
g. Customers can give comments to restaurants and riders
Present architecture
4.2 Language
Hreflang provides language technology support for Foodpanda, which tells search
engines the relationship between pages in different languages on the site based on the
county and language preference of the searcher, using this attribute to provide the
correct regional or language URL in the search results [ CITATION Luk17 \l 1033 ].
4.3 Mobile
IPhone/Mobile Compatible
Apple Mobile Web App Capable
Viewport meta
The quality attribute utility tree clearly shows it contains security, reliability,
performance and availability.
Performance
The response will be focused to discuss. The system can only process 1000
orders at most at the same time. This causes the system to close the order
function during the peak period, when the order quantity reaches 1000 copies.
On the other hand, data transmission delays are very serious. Whether it is
tracking the rider position or checking the order status, there is at least 5
minutes’ delay.
Security
System security is guaranteed from external stimuli or internal backups. The
safety factor has reached 99.99%.
Reliability
Estimates of transit time are very inaccurate. Many customers complain that
the actual delivery time is much longer than the estimated time.
Availability
External stimulus to system availability is mainly reflected in system updates.
In general, less than 5 seconds to reconnect the network is less than the
average of similar apps. However, some customers complain that app updates
sometimes fail, and main reason is that the new update is not compatible with
the old system and the latest application needs to be re-downloaded.
The system availability is still quite good in response. Network signal loss and
reconnection time is less than 5 seconds. It is less than average time of other
applications.
Threads in a
Method link
Processor
Back-end
service
Threads in a
Method link
Processor
Scenario: Application works in 99% of time
Attribute(s): Reliability
Environment: System modification
Stimulus: System updating or components changed
Response: 99.99% of function work
Architectural Decision Sensitivity Tradeoff Risk Nonrisk
Scale-out storage S1 N13
The package format R2
Glitches R3
Reasoning:
Scale-out storage technology is a network-attached storage (NAS) architecture in which
the capacity of a disk can be expanded as needed. If a given disk array reaches the storage
limit, another array can be added to expand the system capacity.
The package format is a compressed file that contains the files and additional metadata
that can be found in the package. There are many formats available today.
Sometimes components in your computer may experience a brief failure. Some of these
faults are temporary (eg, faults caused by voltage spikes or heat build-up around transient
or faulty components), and some of these faults repeat themselves with surprising
regularity. During the period of no failure, there is no obvious failure and the computer
works as usual. Staggering behaviour or crashes can occur when a fault manifests itself.
Architectural Diagram:
check (1 sec)
Storage
Finally, stakeholders don’t think it is so important for scenario 10. They think that the
rider's real-time positioning technology will increase the load on the system, and the quality of
this function will not affect the stability and performance of the entire system. The customer only
needs to know how long it will take for the customer to wait. The customer will not care where
the rider is.
Reporting
In this section, the collected information from ATAM will be brought together and
presented to stakeholders. This presentation is usually in the form of an oral report with a
slide. In addition, a more complete written report provided after the ATAM can be
attached. The contents of the report should be displayed:
The set of scenarios and their prioritization
At this part, all scenarios will be displayed and prioritized
The utility tree
The utility tree clearly show that each scenario is summarized in that quality attribute.
The risks discovered
While some scenarios change or additions may lead to systemic risks, these changes are
necessary. This can make the system more in line with the interests of stakeholders or
make the system more stable. Just like the package format mentioned before. Format
changes may directly cause the system to be unrecognizable However, what we need to
do is to minimize the risk while changing.
The non-risks discovered
Some changes or additions do not lead to system risks, such as Scale-out storage.
The sensitivity points
Like the scenario which is process up to 1000 orders at the same time, changes to it will
directly improve the efficiency of the system.
Reference
Calif. (1995, 12 04). NETSCAPE AND SUN ANNOUNCE JAVASCRIPT, THE OPEN, CROSS-
PLATFORM OBJECT SCRIPTING LANGUAGE FOR ENTERPRISE NETWORKS AND
THE INTERNET. Retrieved from archive:
https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrel
ease67.html
Clements, R. K. (2000). ATAM: Method for Architecture Evaluation. Pittsburgh: Carnegie
Mellon University.
computer hope. (2018, 11 13). HTML. Retrieved from computer hope:
https://www.computerhope.com/jargon/h/html.htm
foodpanda. (n.d.). CONTACT | FOODPANDA. Retrieved from FOODPANDA:
https://www.foodpanda.com.bd/contents/contact.htm
Griffin, L. (2017). What is PHP Used For? - Uses & Advantages. Retrieved from study.com:
https://study.com/academy/lesson/what-is-php-used-for-uses-advantages.html
Harsel, L. (2017, June 30). Hreflang Attribute 101. Retrieved from SEMrush:
https://www.semrush.com/blog/hreflang-attribute-101/
O'Hear, S. (2016). Delivery Hero acquires Foodpanda as Rocket Internet shuffles online takeout
pack once again. Retrieved from TC: https://techcrunch.com/2016/12/10/delivery-hero-
captures-foodbanda/
Rick Kazman, M. K. (2013). The Architecture Tradeoff Analysis Method. Pittsburgh: Software
Engineering Institute Carnegie Mellon University.
Russell, J. (2017). Delivery Hero’s valuation surpasses $5B following successful IPO. Retrieved
from TC: https://techcrunch.com/2017/06/30/delivery-heros-valuation-surpasses-5b-
following-successful-ipo/
Su, B. (2017, May 16). What is Google Analytics, and why is it important to my business?
Retrieved from MC: https://medium.com/analytics-for-humans/what-is-google-analytics-
and-why-is-it-important-to-my-business-8c083a9f81be
Suhana Ramly, R. M. (2018). EATEE Mobile Based Food Delivery System . Johor Bahru:
Universiti Teknologi Malaysia.
Technologies, P. E. (2017, 11 27). What startups can learn from food panda success story.
Retrieved from slideshare: https://www.slideshare.net/HammadMaddy1/what-startups-
can-learn-from-food-panda-success-story
Question 3 - ARID
Introduction of ARID
Active Reviews for Intermediate Designs (ARID), is a method for reviewing preliminary
software designs (such as for a component or a subsystem) for suitability in its intended usage
context and environment. It is also a method to evaluate software architectures that combines
aspects from architecture trade off analysis method (ATAM) and software architecture analysis
method (SAAM) in a more tactical level. It is an intersection of both approaches which is
scenario-based design review techniques (ATAM and SAAM) and active design reviews
(ADRs). ADRs are an effective technique for ensuring quality, detailed design in software.
ARDs involves having the necessary reviewers to make a review on the respective tasks
meticulously as this will help to ensure having an appropriate and suitable design approach for
the respective software architecture. In conclusion, ARID is best suited for evaluating a partial
design in its infancy.
Phase 1: Rehearsal
Phase one is about the meeting between the lead proposed designer and the ARID process
facilitator. The purpose of meeting is to discuss suitable reviewer candidates for the proposed
design and preparation for Phase 2.
Day 1 Schedule
Time Activities
10:00am - 12:00pm Meeting with Designer
12:00pm - 1:00pm Break
1:00pm - 2:30pm Identify reviewer
2:30pm - 4:00pm Prepare design briefing of ARID
4:00pm-4:30pm Break
4:30pm-5:30pm Prepare seed scenarios
5:30pm-7:00pm Preparation for phase 2
7:00pm End of session
Step 1: Identify reviewers
The first step of ARID is to choose the suitable reviewers for the proposed design and to
determine the proposed design approach is suitable for our software architecture. Suitable
reviewers should be chosen for a better testing process because the reviewers are the design’s
stakeholders[CITATION Pau14 \l 17417 ] in terms of software architecture design. To that, one
of the reviewers should be one of the staffs from Foodpanda, this is because they are the one who
are currently using the system and thus they can find out the feasibility of the design by
comparing the proposed approach to their expected standard operation processes. Thus, they can
compare the proposed design to the old system in terms of efficiency and performance. Next,
software developer should also be one of the reviewers because they have the knowledge of
software development concepts that are useful for the reviewing process. Lastly, another
reviewer should be the system architect as they are in proficiency of this field. They can evaluate
the feasibility of the design and apply that with their own experience.
The 4+1 Architectural View Model is used during this step which consists of logical
view, development view, process view and physical view. For logical view, we choose class
diagram to represent the functionalities of the system. This is to help facilitate the understanding
of the reviewers by helping them to understand the basic functionalities of the design and make
necessary evaluations on the design.
For the second view which is the process view in the 4+1 Architectural View Model we
choose the activity diagram. Process view describes the dynamic aspects of the system,
explaining on how the system processes and communicate, and focussing on the behaviour of the
system during runtime. This will help identify the flaws and further improve the system.
Logical View – Class Diagram
Process View - Activity Diagram
Step 3: Prepare seed scenario
Set of seed scenario is prepared by designer for the viewer in this step.
Scenari Description
o
1 99.99% of user’s information is stored successfully in database
2 Foods can be added to cart 100% of run time
3 Foods and prices are sync 99.99% of run time
4 99.99% of user’s order information is stored into database after order has been
made
Other than that, another material provided to the reviewers will be the seed scenarios. The
seed scenarios are samples that simulates the running of the system, providing a concept to the
reviewers which help them in the next phase for brainstorming session.
The third material provided for the reviewers is evaluation questionnaires. The
questionnaires provided includes questions for the system as to collect opinions to further
improve the system. For example, the functionalities of the system in terms of meeting the needs
and expectations of the reviewers.
Phase 2: Review
The next phase is the review phase which consist of the remaining 5 steps of ARID. The
reviewers are assembled and the main activities of the review commence.
Day 2 schedule
Time Activities
8:30am - 9:00am Presentation of ARID
9:00am – 10:00am Present design of Foodpanda architecture
10:00am – 11:00am Break
11:00am – 12:00pm Brainstorming session
12:00pm – 3:00pm Apply scenarios
3:00pm – 4:00pm Break
4:00pm – 5:00pm Summarize
5:00 pm End of session
In Phase 2, the reviewers start to review the materials prepared. Leading to Step 5 in
which the review facilitators spend at least 30 minutes to explain the steps of ARID to the
reviewers. After Step 5 is finished, Step 6 starts with the presentation of the design. In this step,
the lead designer presents an overview of the system design and walks through examples. The
goal of this step is to find out whether the design is suitable. Also, the reviewers are not
encouraged to questions nor gives suggestions about alternate designs. However, reviewers
should scribble questions that are crucial to help in the reviewing process. After that, Step 7 is
the brainstorming session in which the reviewers gather to think and give ideas for the system to
be improve and suggestion of new scenarios for using the design to solve problems they expect
to face. The voting process also occurs in Step 7. Moving on to Step 8 will be the application of
scenarios. Beginning with the scenario with the most vote, the facilitator ask the reviewers to
solve the problems as in the scenarios. The reviewers are to solve the problems as stated in the
scenario using pseudocode and more. In the last step which is Step 9 of the ARID, the facilitator
recounts the list of issues, polls the participants for their opinions regarding the efficiency of the
reviews.
Step 6: Present design
Logical View – Class Diagram
Class diagram are chosen in logical view of 4 + 1 Architectural View Model as to
describes the attributes and operations of a class and also the constraints imposed on the system
of Foodpanda. The class diagram above shows the basic class within the system of Foodpanda.
In Food class, it consists of Food ID, Food Name, Food image, Food price, display food function
and get food details function. Food class is where the food details stored and display to the user.
Next, the Order Detail class. It consists of order ID, Food Id, Food Name, quantity of
food, food price and total price. This class shows the detail of the order made by each users, on
what food is consist of this order, quantity of food the user have ordered and made calculations
pf total price. Another class is the Delivery info class which includes of Delivery ID, Delivery
type, Delivery cost, Delivery Area ID and update Delivery info. The delivery type is where the
user chooses the delivery type in terms of vehicle used, delivery info is where the special request
by user in which the user specify either to be delivered within 1 hour or a selected time.
In the Order class, it consists of Order ID, Customer Name, Customer ID, Delivery ID,
Status of the order on whether it is delivering or not, Date and Update Delivery Info. It shows
user whenever they wish to make an order based on the products they have added into the cart.
Furthermore, the Cart class consists of Cart ID, Food ID, quantity of food, price of food, Update
Cart, Delete Cart Item and view Cart. The class is connected with Food Class and Customer
Class.
In addition, the Customer Class consists of Customer Name, Customer ID, Customer’s
Address, Customer’s Email, Credit card Info, Delivery Info, Register new account, Login, and
update user profile. It is connected with 3 other classes which is the User Class, Cart class, and
Order class. Last but not least, the User class consists of User ID, User Password and Verifying
of Login.
Process View – Activity Diagram
The activity diagram is a flowchart to represent the flow from one activity to another
activity. The activity can be described as the operation of the system. The control flow is drawn
from one operation to another. In this case, the user first login to the system of Foodpanda, and
undergoes the verification process. If the password and the user ID is matched, the user proceeds
to the next operation and if it is not match, the user is direct back to the login page as to try
again. After the user is logged in, they can choose to search various food to place order and add
to cart and user can choose to edit their cart or his own account.
The user is direct to make payment after the desired foods are added to cart or user can
just cancel the order. User can search through the menu and if food is chosen by the user, it is
added into the cart and then user can choose either to continue shopping or just proceed to make
payment. In the payment process, the total price is calculated and shown to the user and user can
choose the options of paying by credit card or cash on delivery. In another way, user is given the
option to choose to edit the cart’s item as well as the account’s details. For editing account, user
can change their name, their password, address and more. And for editing the cart, user can
choose to add more food into the cart and also to deduct foods in the cart.
Step 7: Brainstorming Session
In step 7 of ARID, session of brainstorming and prioritization is held. the seed scenarios
by reviewers are put into a pool with others. After that, voting occurs, the most voted scenarios
are then used to test the design for suitability. Below is an example table of seed scenarios by
suggestions of the stakeholders:
Step 9: Summarize
-summarize all steps
-stakeholder’s feedback
-reviewer feedback etc.
Question 4 - Individual Component
KHALID HASSAN ABEID AWADHAN – TP045823
SAAM starts with requesting stakeholders to list known scenarios that are likely to change.
Scenarios will be analysed, prioritized and mapped onto the representation of the architecture.
SAAM Steps
In Foodpanda, the users of the system are the customers, restaurants and drivers. Customers
order meals using the system. Restaurants receive the order through the system and prepares the
food. Drivers use the system to pick up food from the restaurant and delivers it to the customer.
Quality attributes of Foodpanda such as performance, availability, usability and reliability are
mentioned already in the previous parts. In SAAM we will focus on modifiability and robustness
of the system.
After meeting up with the stakeholders and brainstorming, the following scenarios were
obtained:
Atlassian Cloud
Zoho Mail
Google Apps for Business
SPF
Microsoft Azure DNS
Name Server
Cloudflare DNS
Cloudflare Hosting
SSL Certificates
Cloudflare SSL
Comodo Positive SSL
Comodo SSL
IPv6
Visual representation
The prioritization of the scenarios is based on a voting procedure to address the most important
scenarios.
Scenario
No. Description Weight
1 Implement two-factor authentication 25%
3 Double the size of existing database tables while maintaining 1 20%
second average retrieval time
4 Improve the system’s availability from 98% to 99.999% 18%
5 Option to pay or revise order 15%
6 The promo code section will be filled automatically if there is a 12%
promo code available
2 The user wants to order without re-entering location address 10%
Conclusion
SAAM brings stakeholders together to discuss the architecture in a mutually
comprehensible language. It is also a good place to begin incorporating architecture evaluation
into Foodpanda. SAAM is also an easy to learn and carry out. It has many social and technical
benefits. It reveals scenarios and underlying business goals. It forces an appropriate level of
architectural documentation to be revealed. To sum it up, SAAM is a relatively simple
architecture evaluation method which can operationalize vague claims of modifiability.
References
Mary, R., 2015. Software architectural patterns from vastu and a new hybrid model for dynamic
selection of architectural style. Shodhganga, pp. 80-93.
Paul Clements, R. K. M. K., 2002. A sample SAAM Agenda. In: Evaluating Software Architectures:
Methods and Case Studies. s.l.:Pearson Education, pp. 220-221.
Xie Hu – TP044647
Schedule
Time Agenda
Introduction
08:00-08:30
Introduction
Software Architecture Analysis Method (SAAM) is a methodology used to determine how
specific application quality attributes were achieved and how possible changes in the future will
affect quality attributes based on hypothetical cases studies. Common quality attributes that can
be utilized by this methodology include modifiability, robustness, portability, and extensibility
[CITATION Placeholder1 \l 1033 ].Foodpanda is a takeaway app for mobile phones. Its system
is mainly to provide an online trading platform for restaurants, food delivery services and
customers. In this section, Foodpanda's system will be analyzed through Software Architecture
Analysis Method.
Function requirement
Customer
Customers can register for an account.
Customers can browse all the restaurant information on the app.
Customers can choose information, for example (only display Malay food, restaurants
ranked high to low, choose free delivery restaurant).
Before confirming the order, the customer can leave a message to the restaurant (eg
less spicy, more soup, etc.).
Customers can track the rider's real-time location.
Customers can check the status of the order.
Customers can rate for restaurants.
Foodpanda staff
Foodpanda staff can track orders.
Foodpanda staff can manage orders.
Foodpanda staff can modify the customer's information.
Foodpanda staff can manage the rider's information.
System is a maintainer
The system regularly maintains system stability for the maintainer.
The system fixes system vulnerabilities or bugs for the maintainer when the system
fails or crashes.
The system uploads a system update package for the maintainer.
Rider
The rider can accept the confirmed order through the system.
The rider can view the details of the order.
The rider can confirm the delivery through the system.
Steps 1: Develop Scenario
Scenari Description
o
1 The system can process at least 5,000 orders at the same time
2 Improve the accuracy of the rider's position in real-time
3 Change hard disk backup to cloud storage
4 Add a minimalist interface
5 Add a third-party payment system
The ability of the system to process the order quantity will directly affect the
productivity of this app. The productivity of the app also directly affects the
company's business profits. Therefore, in order to obtain higher commercial profits,
the client decided to increase the ability to process the order quantity as the highest
priority.
On the other hand, although the purchase of cloud storage services of third-party
companies may bring about an increase in system cost, the advantages brought by
cloud storage services cannot be avoided. First of all, cloud storage is easy to expand.
It expands storage space in time based on server usage and space, so it does not affect
the use of front-end users. Second, it has a high degree of reliability and security.
Data synchronization effectively avoids the problem of loss of damage caused by
media storage data. At the same time, the disk array and tape offline backup mode are
adopted for the server to ensure the security of the cloud storage. Hence the scenario
2 is also listed as a higher priority.
Compatible with third-party payment systems makes customers more selective in
terms of payment. This is also in the interest of the company. In addition, since this
APP is highly dependent on the network, considering the weak network signal, it is
necessary to add another simple version of the interface. The minimalist interface is
to minimize or replace information that requires more traffic to load, such as images.
User interface information is described by characters and numbers.
Step 4: Individually Evaluate Indirect Scenarios
In the case of a direct scenario, the architect demonstrated how the architecture performs
the scenario. In the case of an indirect situation, the architect describes how to change the
architecture to fit the scene. For each indirect scenario, the architectural modifications
required to facilitate the solution as well as the components of the affected or new
systems and the estimated cost and effort to implement the modifications must be
determined.
Scenari Description Type Require Number of Estimated
o d Changed Effort for
Changes Components Changes
1 The system can process at Indirect CPU, RM10,000,
least 5,000 orders at the RAM, 3 10 persons,
same time Code 15 days
2 Change hard disk backup to Indirect RM2000, 5
cloud storage Database 1 persons,
a week
Step 5: Assess Scenario Interactions
When two or more scenarios are requesting changes over the same component(s) of the
architecture, they are said to interact. In this case, the affected components need to be
modified or divided into sub-components in order to avoid of the interaction of the
different scenarios.
Step 6: Create the Overall Evaluation
In the final step, the Foodpanda's system scenarios and architecture will be evaluated as a
whole. Meanwhile, it will be weighted by their expected costs, time required by the
market, change risk and other criteria.
Scenario
No Description Weight
.
1 The system can process at least 5,000 orders at the same time 30%
Conclusion
SAAM is a good software architecture assessment technology through SAAM.
Stakeholders have an in-depth understanding of the architecture being analyzed. In some
cases, software architecture documentation has been improved after the SAAM
evaluation session, such as the increased system processing capabilities mentioned above,
changes to system data storage methods, and increased third-party payment methods.
In addition, by enhancing the communication between stakeholders, map brainstorming
scenarios to the architecture to understand future changes in the system. As a result, areas
with high potential complexity are identified. The costs and efforts to implement the
necessary changes are also estimated.
Reference
Merritt, T. (2013, Jan 17). Software Architecture Analysis Method (SAAM). Retrieved from
DZone: https://dzone.com/articles/software-architecture-analysis
SHEN, T. (2017, DEC 08). China, US cooperates on satellite navigation to offer better GPS &
BeiDou services. Retrieved from TECHNODE: https://technode.com/2017/12/08/beidou-
gps/
Lau Jun Hsien – TP042457
Schedule for SAAM
Time Activities
10:00am – 11:00am Introduction
11:00am – 12:00pm Develop Scenario
12:00pm – 1:00pm Break
1:00pm – 2:00pm Architecture description
2:00pm – 4:00pm Classify and prioritize scenarios
4:00pm – 5:00pm Break
5:00pm – 6:00pm Individually evaluate indirect scenarios
6:00pm – 7:00pm Assess Scenario Interactions
7:00pm -8:00pm Creating overall evaluation
8:00pm End of Session
Introduction of SAAM
Software Architecture Analysis Method (SAAM) is a methodology used to determine
how specific application quality attributes were achieved and how possible changes in the future
will affect quality attributes based on hypothetical cases studies. [ CITATION Tod13 \l 17417 ]
It is a simple method which is easy to learn and to carry out with relatively small amount of
training and preparation. SAAM requires the stakeholders to develop a set of scenarios that
represent the changes of the system that will undergo in the future. The scenarios are then
prioritized and mapped onto a representation of the architecture.
Step 1: Develop Scenario
The first steep of SAAM is developing of scenarios by stakeholders. In developing
scenarios, it is crucial to capture all of the major uses of the system, and qualities of that a system
must satisfy now and the future. Thus, the scenarios are illustrated to represent task relevant to
different roles.
Functional requirement:
User:
User can login to the system of Foodpanda
User can register new account in Foodpanda
User can track their delivery
User can pay by credit card within the system
User can add food to the cart as in an order
Foodpanda Staff:
Staff can track orders of user
Staff can manage orders of user
Delivery Staff:
Staff can retrieve order delivery information from Foodpanda
Staff can receive payment upon delivering the food
Table of scenarios:
No Scenarios
.
1 Implement two factor authentication on login system
2 Making interface more user-friendly
3 Change the data structure of an entity (eg. store date and time when order is made)
4 Change the communication infrastructure
5 Change current data storage as cloud storage
Functional View:
These are the basic subsystem operate independently within the system of Foodpanda.
These systems are controlled by the process support component and transferring data through the
subsystems to the central data repository. In the end, the data transferred are sent to the constraint
checker to validate.
Step 2: Describe the architecture
In step 2, the architecture of the system is described by using the architectural notation
that can be easily understood by all the people involved in analysis stage. In the representation of
system architecture, system computation, data components and the relevant connections between
them must be indicated. The second iteration of code view can be shown as below:
A second iteration scenarios are developed as shown as below after the code view is shown to
the stakeholders and evaluated.
No Scenarios
.
6 Change the relationships between data items in the database (e.g., add the features of
associate related ordered foods)
7 Change the GUI toolset used to build the tool
Step 3: Classify and prioritize the scenarios
In step 3, the analysis team grouped to prioritize and classify the scenarios. The
classification of the scenarios is based on direct scenario, which the architecture may directly
support that scenario with no modification required, and indirect scenario, which changes or
modifications to the architecture is required to adapt the changes. After that, voting of
stakeholders occur to find out the most important scenario by stakeholders.
Based on the votes, the scenario of changing the relationships between data items in the
database are voted the most by the stakeholders. Follow up are the two scenarios which share the
same votes of 11 which are the changing of data structure of an entity and changing of
communication structure. Next will be the changing of current data storage to cloud system
which receive 10 votes from the stakeholders follow up by making the interface more user-
friendly. The least voted scenarios are changing the GUI toolset that is used to build the tool (7
votes) and implementation of two-factors authentication (6 votes).
Step 4: Individually evaluate indirect scenarios
Step 4 is the evaluation of indirect scenarios to help estimate changes of current and for
future. The components which would need to be changed to accommodate the indirect scenarios
are also described. Thus, it can help the stakeholders to have great understanding about them.
Scenario
No. Description Cost (1-7) Risk (1-7) Time (1-7)
1 Implement two factor 1 1 1
authentication on login
system
2 Making interface more user- 3 1 4
friendly
3 Change the data structure of 5 6 5
an entity (eg. store date and
time when order is made)
4 Change the communication 5 6 6
infrastructure
5 Change current data storage 7 2 2
as cloud storage
6 Change the relationships 5 4 4
between data items in the
database (e.g., add the
features of associate related
ordered foods)
7 Change the GUI toolset used 6 7 7
to build the tool
Weight
Scenario
No. Description Weight
1 Implement two factor authentication on login system 5%
2 Making interface more user-friendly 15%
3 Change the data structure of an entity (eg. store date and time when 25%
order is made)
4 Change the communication infrastructure 17%
5 Change current data storage as cloud storage 6%
6 Change the relationships between data items in the database (e.g., 13%
add the features of associate related ordered foods)
7 Change the GUI toolset used to build the tool 19%
Conclusion
Workload Matrix