Programming Question

Assignment due Thursday, March 5, 2026 by 11:59pm

ICS 432 Software Engineering

Assignment 1: Designing a Secure Financial Trading Platform

Integration of Software Engineering Principles, Design Patterns, and Best Practices

Objective

Design a prototype for a Financial Trading Platform that addresses real-world challenges, adheres to industry standards, and demonstrates mastery of software engineering principles.

Instructions

Part 1: Real-World System Requirements & Prioritization (25 points)

1.** Critical System Considerations** (Refer to Week 2 Lecture 1: Requirements Gathering in Finance): – Identify 5 critical considerations (e.g., regulatory compliance, data integrity, scalability) for building a financial trading platform. – Hint: For each consideration:

Explain its importance (e.g., “Regulatory compliance ensures adherence to laws like SEC rules to avoid legal penalties”).

Describe how you would implement it (e.g., “Use automated audit trails for compliance tracking”).

  1. Agile Prioritization (Refer to Week 2 Lecture 2: Prioritizing Features):
    • Use the MoSCoW method to categorize the following features:

Real-time market data feeds

Two-factor authentication (2FA)

Portfolio and Account Management

Customizable Dashboards and Themes

Order Management

Automated fraud detection

High-frequency trading support

Social trading integration

- Justify your categorization (e.g., "Automated fraud detection is a **Must-have** to comply with anti-money laundering regulations").

Part 2: System Design & Architecture (30 points)

1.** SOLID Principles** (Refer to Week 3 LP1: SOLID Principles): – A class TradeProcessor handles order validation, execution, logging, and notifications.

Identify 2+ SOLID violations (e.g., SRP violation due to multiple responsibilities).

Redesign the system into modular classes (e.g., OrderValidator, TradeExecutor, AuditLogger).

  1. Design Patterns (Refer to Week 3 LP3: Creational Patterns and Week 4 LP1/LP3: Structural/Behavioral Patterns):
    • Creational: Use the Factory Method Pattern to create different order types (e.g., MarketOrder, LimitOrder).
    • Structural: Apply the Adapter Pattern to integrate a legacy risk assessment module into your modern system.
    • Behavioral: Implement the Observer Pattern to notify users when stock prices hit predefined thresholds (e.g., email/SMS alerts).
  2. SDLC Alignment (Refer to LP3: SDLC & Best Practices):
    • Map your design to the SDLC phases:

Requirements: How did stakeholder interviews shape your design?

Testing: How will stress testing ensure performance during market volatility?

Part 3: Implementation & Security (30 points)

1.** Code Development** (Refer to Week 4 LP3: Behavioral Patterns): – Write a Python snippet for the Command Pattern to enable undo/redo functionality for trade cancellations. – Implement the Proxy Pattern to rate-limit API requests (e.g., 100 requests/sec per user).

  1. Security & Testing (Refer to LP3: Testing & Security):
    • Propose 2 security measures (e.g., encryption for trade data, input validation) to mitigate risks like SQL injection.
    • Design 3 unit tests for the OrderValidator (e.g., invalid order amounts, duplicate trades).

Part 4: Deployment & Reflection (15 points)

1.** Containerization** (Refer to LP1: Introduction to Software Engineering): – Draft a Dockerfile to containerize your platform, including steps to install dependencies and expose port 8080.

  1. Trade-off Analysis (Refer to Week 3 LP3: Creational Patterns):
    • Compare the Singleton Pattern (for managing user sessions) with the Object Pool Pattern. Discuss pros/cons in scalability.
  2. Future Improvements (Refer to Week 4 LP3: Behavioral Patterns):
    • Suggest 1 design pattern (e.g., Strategy Pattern for dynamic pricing algorithms) to enhance the platform.

Submission Guidelines

Submit a PDF report (max 10 pages) with:

o UML diagrams for key components (optional).

o The fully commented code adhering to PEP 8 standards.

o Explicit references to pre-class materials (e.g., “The Adapter Pattern aligns with Week 4 LP1 recommendations for integrating legacy systems”).

Due Date: Week 8 of the semester

Grading Rubric

Real-World Analysis: Depth of considerations (25%)

Design Quality: SOLID compliance, pattern correctness (30%)

Implementation: Security rigor, test coverage (30%)

Reflection: Practicality of deployment and future improvements (15%)

Note:

** Where to Refer**:

o** SOLID Principles**: Week 3 LP1 (SOLID in Health Record Systems).

o Design Patterns: Week 3 LP3 (Creational), Week 4 LP1 (Structural), Week 4 LP3 (Behavioral).

o SDLC & Security: LP3 (SDLC phases, testing best practices).

o Containerization: LP1 (Docker setup, environment isolation).

Assignment Information

Length:

3000

Weight:

15%

Learning Outcomes Added

  • : Apply security principles throughout the software development lifecycle
  • : Examine applicable security principles, ethics, and practices in the domain of software development

Requirements: 3000

WRITE MY PAPER