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”).
- 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).
- 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).
- 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).
- 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.
- 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.
- 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

Leave a Reply
You must be logged in to post a comment.