0% found this document useful (0 votes)
18 views9 pages

Case Study Questions For Each Topic

The document outlines architectural design decisions for various systems, including a digital wallet, IDE, e-commerce platform, ATM system, LMS, fleet management, and loan application systems. It discusses architectural styles, trade-offs between security and scalability, software reuse strategies, component-based software engineering, distributed software engineering, and service-oriented architecture. Each case study provides recommendations, advantages, limitations, and validation processes for the proposed architectures.

Uploaded by

Kamau Gabriel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views9 pages

Case Study Questions For Each Topic

The document outlines architectural design decisions for various systems, including a digital wallet, IDE, e-commerce platform, ATM system, LMS, fleet management, and loan application systems. It discusses architectural styles, trade-offs between security and scalability, software reuse strategies, component-based software engineering, distributed software engineering, and service-oriented architecture. Each case study provides recommendations, advantages, limitations, and validation processes for the proposed architectures.

Uploaded by

Kamau Gabriel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

1.

Architectural Design Decisions

Case Study Question:

A fintech company plans to design a digital wallet system that allows users to store and transfer
funds securely.

1. Propose architectural design decisions for this system, focusing on security and
scalability.
2. Discuss the potential trade-offs between these two non-functional requirements.
3. Recommend a suitable architectural style for the system and justify your choice.

Sample Answer:

1. Architectural Design Decisions:


o Security: Use a layered architecture to isolate critical assets in the inner layers,
implement encryption for all transactions, and adopt strong authentication
mechanisms.
o Scalability: Use microservices for modularity and independent scaling of
components like user management and payment processing.
2. Trade-offs:
o Scalability Focus: Replicating components improves availability but may expose
additional attack surfaces.
o Security Focus: Minimizing data copies reduces risks but might impact system
performance during peak loads.
3. Recommended Architectural Style:
o Layered Architecture: Provides clear separation of concerns (e.g., UI,
application logic, database) and supports scalability and enhanced security by
isolating sensitive components.

2. Repository Architecture

Case Study Question:

A software development company wants to build an Integrated Development Environment (IDE)


for collaborative coding with features like real-time editing, version control, and debugging.

1. Explain how a repository architecture could support these requirements.


2. Discuss the advantages and limitations of this architecture in this context.

Sample Answer:

1. Repository Architecture Application:


oUse a central repository to store all project files, including code, configurations,
and logs.
o Enable real-time editing by synchronizing repository updates with user interfaces.
o Provide version control by maintaining commit histories and change logs in the
repository.
2. Advantages:
o Efficient data sharing between subsystems like the editor and debugger.
o Centralized management of project data simplifies collaboration.

Limitations:

o A single point of failure if the repository server is compromised.


o Potential performance bottlenecks for large teams accessing the repository
simultaneously.

3. Model-View-Controller (MVC) Pattern

Case Study Question:

A startup wants to develop a web-based e-commerce platform with a rich user interface, dynamic
product recommendations, and a secure checkout process.

1. Describe how the MVC architectural pattern could be used in designing this platform.
2. Identify the responsibilities of each component in the MVC pattern for this application.
3. Discuss the benefits of using MVC for this type of system.

Sample Answer:

1. MVC Application:
o Model: Manages product data, user information, and order details.
o View: Generates dynamic web pages for product catalogs and user dashboards.
o Controller: Handles user requests like adding items to the cart and initiating
checkout.
2. Responsibilities:
o Model: Interacts with the database to retrieve or update information.
o View: Presents data to users based on the controller’s instructions.
o Controller: Processes user inputs and coordinates actions between the Model and
View.
3. Benefits:
o Clear separation of concerns simplifies maintenance and testing.
o Supports parallel development of UI and backend components.
o Enables flexible UI updates without affecting application logic.
4. Transaction Processing System

Case Study Question:

A bank needs to design an ATM system that processes user requests for balance inquiries, fund
transfers, and cash withdrawals.

1. Describe the transaction processing architecture for this system.


2. Explain how the system can ensure availability and fault tolerance.
3. Discuss potential security measures to protect user data and transactions.

Sample Answer:

1. Transaction Processing Architecture:


o The system includes a user interface for input (ATM screen), an application layer
for processing requests, and a database for storing account information.
2. Ensuring Availability and Fault Tolerance:
o Use redundant servers to ensure continuous operation during hardware failures.
o Implement replication in the database to prevent data loss.
3. Security Measures:
o Encrypt all communication between the ATM and the server.
o Use two-factor authentication for sensitive transactions.
o Monitor transaction logs for suspicious activities.

5. Layered Architecture

Case Study Question:

A university plans to implement an online learning management system (LMS) with modules for
course management, student grading, and file uploads.

1. Propose a layered architecture for this LMS.


2. Explain the role of each layer in the proposed architecture.
3. Discuss how the layered architecture supports maintainability and scalability.

Sample Answer:

1. Proposed Architecture:
o Presentation Layer: Provides the user interface for students and instructors.
o Application Layer: Handles business logic, including course scheduling and
grading.
o Data Layer: Manages database operations for storing course materials and
grades.
2. Role of Each Layer:
oPresentation: Ensures user-friendly interaction with the system.
oApplication: Processes inputs and enforces business rules.
oData: Stores and retrieves system data securely.
3. Support for Maintainability and Scalability:
o Maintainability: Each layer can be updated independently.
o Scalability: Layers can be distributed across multiple servers to handle increased
load.

1. Software Reuse

Case Study Question1:

A logistics company wants to create a new fleet management system by reusing software
components from their existing systems. They aim to include features like vehicle tracking, fuel
usage analysis, and maintenance scheduling.

1. Identify the types of software reuse that could be applied to this project.
2. Discuss the benefits and challenges of reusing software components in this scenario.
3. Propose a strategy to integrate reusable components into the new system.

Sample Answer:

1. Types of Software Reuse:


o Component reuse: Reuse components for tracking and scheduling functionalities.
o COTS product reuse: Incorporate existing vehicle tracking solutions.
o Framework reuse: Use an existing fleet management framework for development.
2. Benefits:
o Accelerated development by reusing proven components.
o Increased dependability due to the stability of existing software.
o Cost savings from reduced development effort.
Challenges:
o Maintenance costs due to potential incompatibility with future updates.
o Finding components that meet exact requirements.
3. Integration Strategy:
o Create a component library for easy access.
o Use middleware to connect reusable components.
o Conduct rigorous compatibility and validation testing.

Case Study Question2:


A manufacturing company needs to develop a quality control system for its assembly lines. The
system must include defect detection, data logging, and analytics. They aim to reuse components
and frameworks wherever possible.

1. Identify suitable reuse approaches for this scenario.


2. Discuss potential problems with software reuse in this project.
3. Suggest a plan to create and maintain a reusable component library for the company.

Sample Answer:

1. Reuse Approaches:
o Component-based reuse: Use pre-built defect detection modules.
o Framework reuse: Employ analytics frameworks like Apache Spark.
o COTS reuse: Integrate off-the-shelf data logging tools.
2. Potential Problems:
o Compatibility issues between reused components and the new system.
o Increased maintenance costs if reused components lack source code.
o Effort required to find and adapt suitable components.
3. Reusable Component Library Plan:
o Categorize components by functionality (e.g., defect detection, logging).
o Use standardized documentation for easy discovery and use.
o Regularly update the library with new components and remove outdated ones.

2. Component-Based Software Engineering (CBSE)

Case Study Question1:

A hospital is developing an appointment management system using CBSE principles. The


system should allow patients to book, reschedule, and cancel appointments.

1. Identify three independent components and their interfaces for this system.
2. Discuss how the system could handle interface incompatibilities.
3. Outline a process to validate the components before integration.

Sample Answer:

1. Components and Interfaces:


o Booking Component: Provides interface to book new appointments (inputs:
patient ID, time, doctor; output: confirmation).
o Notification Component: Provides notifications for appointments (inputs: patient
ID, appointment details).
o Cancellation Component: Requires interface to access appointment ID and
provides cancellation confirmation.
2. Handling Incompatibilities:
o Use adaptor components to reconcile different parameter formats.
o Employ middleware for communication standardization.
3. Validation Process:
o Develop and execute test cases for each component.
o Use a test harness to simulate component interactions.
o Verify against both functional and non-functional requirements.

Case Study Question:

A bank is developing an online loan application system using CBSE. The system must include
modules for customer registration, loan eligibility checking, and application approval.

1. Describe the characteristics of components required for this system.


2. Propose a strategy to handle interface incompatibilities between components.
3. Explain how component validation should be conducted.

Sample Answer:

1. Component Characteristics:
o Standardized: Components must conform to CBSE standards for seamless
integration.
o Independent: Components like registration and eligibility checking should
function independently.
o Documented: Clear interface specifications for developers.
2. Handling Interface Incompatibilities:
o Use adaptors to reconcile parameter differences.
o Define middleware to ensure consistent data exchange.
3. Component Validation:
o Create test cases for each operation defined in the component’s interface.
o Conduct stress tests to evaluate performance under load.
o Verify component behavior against system requirements.

3. Distributed Software Engineering


Question 1 :

A university plans to deploy a distributed learning management system (LMS) to handle lectures,
quizzes, and discussions for a global student base.

1. Propose a distributed architecture for this LMS and justify your choice.
2. Discuss how the system would ensure scalability and fault tolerance.
3. Identify potential security risks and mitigation strategies.

Sample Answer:

1. Distributed Architecture:
o Use a multi-tier client-server model:
 Presentation layer: Hosted on client devices.
 Application logic and data layers: Distributed across multiple servers.
2. Scalability and Fault Tolerance:
o Implement load balancing to distribute traffic.
o Use replicated databases with failover mechanisms.
3. Security Risks and Mitigation:
o Risk: Interception of student data.
Mitigation: Encrypt communications with TLS.
o Risk: Unauthorized access.
Mitigation: Implement robust authentication and access control.

Question2:

A video streaming platform requires a distributed system to manage streaming, recommendation


algorithms, and content delivery across multiple regions.

1. Design a distributed architecture for this platform.


2. Identify design issues like transparency and scalability and propose solutions.
3. Discuss the role of middleware in this system.

Sample Answer:

1. Distributed Architecture:
o Use a multi-tier client-server model:
 Client: User interface.
 Application: Recommendation engine.
 Data: Regional content servers with a CDN for fast delivery.
2. Design Issues:
o Transparency: Implement middleware to abstract resource locations.
o Scalability: Use distributed databases like Cassandra and load balancers.
3. Role of Middleware:
o Facilitates communication between components using APIs.
o Provides location transparency and standardizes protocol use
4. Service-Oriented Architecture (SOA)

Question:

A retail company wants to build an online shopping platform using SOA. Services include
inventory, payment, and delivery tracking.

1. Define three services and their operations.


2. Explain how RESTful APIs could be used to implement these services.
3. Discuss the benefits and risks of using SOA in this scenario.

Sample Answer:

1. Services and Operations:


o Inventory Service: Operations: checkAvailability(itemID),
updateStock(itemID, quantity).
o Payment Service: Operations: processPayment(details),
refundPayment(transactionID).
o Delivery Service: Operations: trackOrder(orderID),
estimateDelivery(orderID).
2. RESTful APIs:
o Use HTTP methods (GET, POST, PUT) for CRUD operations.
o Define resources (e.g., /inventory, /payment) with JSON-formatted messages.
3. Benefits and Risks:
o Benefits: Language independence, scalability, and easier integration.
o Risks: Network dependency and potential bottlenecks in service discovery

Question 2:

An insurance company wants to create a system that provides quotes, processes claims, and
manages customer profiles using SOA.

1. Define key services and their operations for this system.


2. Explain how the system can ensure service reliability and security.
3. Describe the benefits of using RESTful APIs for these services.

Sample Answer:

1. Key Services and Operations:


o Quote Service: Operations: getQuote(customerInfo),
updateQuote(quoteID).
o Claims Service: Operations: submitClaim(policyID), trackClaim(claimID).
o Customer Service: Operations: updateProfile(customerID),
fetchProfile(customerID).
2. Reliability and Security:
o Use redundant servers and failover mechanisms.
o Secure services with authentication (OAuth) and encryption (TLS).
3. Benefits of RESTful APIs:
o Lightweight and easy to integrate with mobile and web apps.
o Human-readable JSON for faster debugging and development.

Case Study Question 3:

A travel agency uses a service-based system for booking flights, hotels, and cars. They want to
ensure the reliability of their services.

1. Outline the steps to test the services in this system.


2. Discuss challenges in testing service-oriented systems.
3. Propose solutions to address these challenges.

Sample Answer:

1. Testing Steps:
o Unit tests for individual service operations.
o Integration tests to validate interactions between services.
o Load tests to evaluate system performance under high traffic.
2. Challenges:
o Dynamic binding makes testing unpredictable.
o Black-box services limit visibility into code for debugging.
o High costs for testing paid services.
3. Solutions:
o Simulate service behavior with mock services.
o Automate regression tests to detect failures early.
o Negotiate testing terms with third-party service providers.

You might also like