Software Architecture Spring 2023 Mid Term Question Solution
Software Architecture Spring 2023 Mid Term Question Solution
Any examinee found adopting unfair means will be expelled from the trimester / program as per
UIU disciplinary rules.
Scenario: Suppose you want to design an IoT based patient monitoring system for elderly people
and critical patients. The data gets collected through different sensors and transferred to a server
using a router. The data should be analyzed on your server and should be processed for
monitoring different medical health parameters. There are six data collector systems. Those are
Cardiac, Glucose, Temperature, Respiratory, Load and Touch Monitoring System. Health report
of the elderly people gets notified to the person every two hours, and to his/her concerned family
members and a family doctor every six hours through email and mobile notification. This
software has three modules. One for sensor data collection, another for data processing on server
and another for report generation along with notification for Mobile devices.
Why is Software Architecture important for the above scenario? Explain briefly. [2]
Software Architecture is important in the above scenario for several reasons. Firstly, it provides a
high-level design and structure for the system, allowing different components to work together
effectively. It defines the relationships, interactions, and dependencies between various modules
and subsystems, ensuring proper data flow and communication.
Secondly, software architecture helps in achieving system scalability and extensibility. It allows
for the addition of new features or modules without impacting the existing system, making it
easier to adapt and upgrade the software in the future. Additionally, architecture plays a crucial
role in system performance and reliability. It ensures that the system can handle the data
collection, processing, and monitoring tasks efficiently, providing accurate and timely results. It
also helps in identifying potential bottlenecks or points of failure and allows for the
implementation of appropriate measures to enhance system performance and fault tolerance.
Overall, software architecture provides a blueprint for the IoT patient monitoring system,
enabling effective data collection, processing, and reporting while considering scalability,
reliability, and maintainability aspects.
How does a Monitor detect faults? How does a Predictive model prevent faults in the
system using monitors? [2]
A monitor detects faults in the system by continuously monitoring the various components and
parameters of the system. In the IoT patient monitoring system, the monitor would keep track of
the data collector systems, such as Cardiac, Glucose, Temperature, Respiratory, Load, and Touch
Monitoring Systems. It would check if these systems are functioning properly, collecting data
accurately, and transmitting it to the server without any issues.
A predictive model can be employed to prevent faults in the system by using the monitored data
to identify potential anomalies or patterns that indicate an upcoming fault. The model analyzes
historical data and detects any deviations from the expected behavior. By using machine learning
or statistical techniques, it can predict the likelihood of a fault occurring in the future.
Once a potential fault is detected or predicted, appropriate actions can be taken to prevent it. This
may include proactive maintenance, triggering alerts to technicians or system administrators, or
even dynamically reconfiguring the system to avoid the fault altogether.
Suppose you need to upgrade the software completely with a new version of the software.
How would you use the Rolling upgrade method in this case? [3]
Rolling upgrade is a method of upgrading software without interrupting the system's operation.
In this case, to perform a rolling upgrade for the IoT patient monitoring system, the following
steps can be taken:
Prepare for the upgrade: Plan and prepare the new version of the software, ensuring it is
compatible with the existing system. Set up a test environment to validate the new version's
functionality and compatibility.
Deploy the upgraded version: Start by deploying the new version of the software on a subset of
the system, such as a single sensor data collection system. Monitor and verify the system's
behavior and functionality with the new version in place.
Gradually upgrade other components: Once the new version is validated, gradually upgrade the
remaining sensor data collection systems one by one, monitoring and testing the system after
each upgrade. This ensures that the system remains operational throughout the process.
Handle any interdependencies: If there are interdependencies between components, ensure that
they are handled properly during the rolling upgrade. It may require coordinating the upgrade
sequence or implementing compatibility measures between different versions.
Validate the upgraded system: Once all components are upgraded, thoroughly test and validate
the system's behavior, ensuring that it meets the desired functionality and performance criteria.
By following the rolling upgrade method, the IoT patient monitoring system can be upgraded
seamlessly without causing any significant disruption or downtime.
Besides the business goals mentioned above, how would you collect Architecturally
Significant Requirements (ASR) of the system? Briefly describe the methods of collections.
[3]
Architecturally Significant Requirements (ASRs) are crucial factors that heavily influence the
architecture of the system. Besides the business goals mentioned in the scenario, ASRs for the
system can be collected through various methods, including:
Stakeholder interviews: Engage with the stakeholders involved in the system, such as elderly
patients, family members, doctors, and system administrators. Conduct interviews to gather their
perspectives, expectations, and concerns regarding the system's performance, usability, security,
and availability.
Surveys and questionnaires: Distribute surveys or questionnaires to gather feedback and
requirements from a larger group of stakeholders. This method can help capture a broader range
of perspectives and preferences.
User feedback and observation: Observe the users interacting with the system, gather their
feedback, and identify pain points or areas that require improvement. This can provide valuable
insights into usability and user experience requirements.
Regulatory and compliance guidelines: Identify and analyze relevant regulatory and compliance
guidelines specific to the healthcare industry. These guidelines often specify security, privacy,
and data protection requirements that need to be considered in the system architecture.
Benchmarking and industry standards: Study industry standards and best practices related to IoT-
based patient monitoring systems. Benchmarking against existing solutions can help identify
architectural requirements that contribute to improved performance, maintainability, and
configurability.
By employing these methods, architecturally significant requirements can be collected, ensuring
that the system architecture addresses the needs and expectations of the stakeholders.
Show a Tabular form of the Utility Tree for the system. You need to show Quality
Attribute, Attribute Refinement and ASR Scenario columns on the table. You need to focus
on the following quality attributes: Performance, Usability, Configurability,
Maintainability, Security and Availability. [6]
Below is a tabular form of the Utility Tree for the IoT patient monitoring system, focusing on the
provided quality attributes:
Quality
Attribute Attribute Refinement ASR Scenario
Real-time data
processing and The system must process and analyze sensor data within
Performance analysis milliseconds to provide timely health monitoring and alerts.
The system should have a user-friendly interface that allows
Intuitive user elderly patients and caregivers to easily navigate, input data,
Usability interface and access health reports.
The system should allow users to set personalized alert
Customizable alert thresholds for different health parameters, accommodating
Configurability thresholds individual needs and medical conditions.
Modular and The system architecture should be designed in a modular
extensible manner, allowing for easy addition or replacement of sensor
Maintainability architecture data collector systems.
Encrypted data All sensor data should be encrypted during transmission to
Security transmission ensure privacy and prevent unauthorized access.
The system should have redundant server setups to ensure
Redundant server continuous operation, minimizing downtime due to server
Availability setup failures.
Explain the Architecture Tradeoff Analysis Method (ATAM) to perform the architecture
evaluations of that software. Explain each phase briefly. [4]
The Architecture Tradeoff Analysis Method (ATAM) is a structured approach for evaluating and
analyzing software architecture. It involves the following phases:
Preparation: Define the evaluation objectives, identify the stakeholders, and select the evaluation
team. Collect the relevant documentation, including architectural artifacts, requirements, and
quality attribute scenarios.
Evaluation: Conduct a series of structured meetings between the evaluation team and
stakeholders. The architecture is presented, and stakeholders provide their concerns,
requirements, and priorities. The team elicits more information and clarifies any ambiguous
points.
Analysis: Analyze the architecture and identify tradeoff points. Consider how different
architectural decisions and design choices impact the system's quality attributes. Quantify the
attributes, prioritize them, and assess their satisfaction against stakeholder objectives.
Presentations: Prepare presentations to communicate the findings and tradeoff analyses to the
stakeholders. The team presents the evaluation results, including the identified risks, architectural
strengths, weaknesses, and potential alternatives or mitigation strategies.
ATAM provides a systematic way to evaluate the architecture, understand its strengths and
weaknesses, and make informed decisions based on the tradeoffs between different quality
attributes. It helps in identifying architectural risks early in the development process, allowing
for adjustments or improvements to be made before significant investments are made in the
system.