Module 00

The Software Crisis

Why are we here? Because 62% of IT projects fail. 25% are cancelled before they even finish, and 40% fail to meet business needs.

๐Ÿ“‰
The FoxMeyer ERP Disaster

In 1993, FoxMeyer (a $5 billion company) collapsed because a massive software project failed. Companies with poor analysis have 3x more failures than successes.

The Cost of Mistakes

A mistake in the requirements phase costs almost nothing to fix. But if that same mistake makes it to the final product, it can cost 100x more to repair.

1
Analysis Phase

Fix cost: $1 (Just update a document).

2
Coding Phase

Fix cost: $10 (Need to rewrite and retest code).

3
Post-Release

Fix cost: $100+ (Deployment, patches, lost trust).

What percentage of IT projects are estimated to fail?

Module 01

The "Wicked" Problem

Why is building software so hard? It's not just the code โ€” it's the requirements. Software development is what engineers call a wicked problem.

๐Ÿ’ก
Aha! Insight

A "wicked problem" isn't just difficult; it's a problem that can't be fully defined until you've already tried to solve it. In software, you often don't know what you need until you see what you built.

Scenario: You are designing a new Social Housing Allocation system. Stakeholders (tenants, government, builders) have conflicting goals, and the technology landscape changes every 6 months. Why is this a 'Wicked Problem'? (Select ALL)

During an interview, a senior nurse says: "I just look at the monitors and I KNOW when a patient is crashing. It's obvious." This represents a failure of elicitation because:

Module 02

The War on Ambiguity

In the world of requirements, ambiguity is the enemy. If a sentence can be interpreted in two ways, it probably will be โ€” and both ways will be wrong.

Concept: In 'Subconscious Disambiguation' (SD), which of the following is true?

Which of the following correctly categorize 'Requirements' vs 'Specifications' in an aviation system? (Select ALL)

Module 03

Mapping the Domain

To build a system, you first have to understand the concepts it deals with. In Object-Oriented (OO) analysis, we map the real world into code-friendly structures.

Modeling: In a medical simulation, a 'HumanBody' contains a 'HumanHeart'. If the system deletes a 'HumanBody', the 'HumanHeart' must also be deleted. This is:

System Scenario: "A Truck is a type of Vehicle. A Truck has many Cargo items. Each Cargo item has a weight." Which mapping is correct? (Select ALL)

Module 04

Data Flow & Swimlanes

If a Domain Model is the skeleton, a Data Flow Diagram (DFD) is the circulatory system. It shows how information moves.

The Swimlane (Process) View

We use Swimlanes (partitions) to show who is doing what. It's an Activity Diagram that assigns responsibility.

Customer Lane
๐Ÿ›’ Select Items
๐Ÿ’ณ Enter Payment
System Lane
โš™๏ธ Validate Stock
๐Ÿฆ Process Payment
Database Lane
๐Ÿ’พ Save Order
Click a component to see its responsibility.

In the diagram above, what is the primary purpose of the 'Lanes'?

The 3 Levels of DFD

Data Flow Diagrams evolve from a broad summary to a surgical blueprint. Toggle the layers to see the progression.

Customer
โ†’ order โ†’
E-Shop System
โ†’ receipt โ†’
Customer

Level 0: The entire system is a 'Black Box'. No internal data stores are visible.

Visual Check: Which level is the FIRST to show 'Data Stores' (the open boxes)?

Module 05

User Stories & Agility

In modern development, we often skip the 100-page document and use User Stories. This keeps us Agile.

โšก
The Agile Way

Agile is iterative. Instead of planning everything up front (Waterfall), we build small pieces, get feedback, and adjust. We value working software over exhaustive documentation.

The Magic Formula

Every good user story follows a specific pattern. It answers Who, What, and Why.

THE FORMULA
As a <role>,
I want <goal>,
so that <benefit>.
REAL EXAMPLE

As a Pizza Customer,

I want to save my credit card,

so that I can check out faster next time.

โ„น๏ธ
The Bonus Question

In the original quiz, the course project was worth 45% of the grade. That's because Requirements Engineering is a hands-on skill โ€” you learn it by doing!

Which statement about Agile is correct?

Module 06

The Actor's Journey

A Sequence Diagram shows exactly how objects talk to each other over time. It's like a script for a play.

Redesign Challenge: A system currently does all checkout logic in the 'CheckoutPage' UI class. You decide to refactor using Expert + Creator + Controller patterns. Which decisions are correct? (Select ALL)

Module 07

State of Mind

A State Machine shows the life cycle of a single object through various states and transitions.

Notation: In the transition 'submitRequest / [creditOk]', what is the purpose of the bracketed text?

Bug Catching: You are modeling a Pizza Order state machine. Which transition represents a LOGICAL BUG in the system?

Module 08

Validation: Building the Right Thing

The final step in Requirements Engineering isn't writing code โ€” it's Validation. This is where we ask: "Are we building the right product?"

โœ…
Validation

"Are we building the right product?" (Does it meet the user's actual needs?)

๐Ÿ”
Verification

"Are we building the product right?" (Does it match the specification we wrote?)

The CrowdRE Revolution

How do we validate requirements at scale? We use CrowdRE. Instead of just interviewing 5 people, we listen to 5,000.

๐Ÿ“ฑ

App Store Reviews

Mining reviews for complaints or feature requests.

๐Ÿ’ฌ

Social Media

Tracking Reddit or Twitter for "I wish this app could...".

๐ŸŽŸ๏ธ

Support Tickets

Analyzing patterns in common user problems.

What is the core question of 'Validation'?

Module 09

The Practice Exam (Challenge Mode)

This is the final gauntlet. Every question requires scenario-based analysis and synthesis of multiple engineering principles. There are no easy definitions here.

Part 1: Analysis Trade-offs

1.1 You are designing a fleet tracking app. Which of these is a VALID classification? (Select ALL)

1.2 A requirement says: "The system shall support many students during peak hours." Which revised statements correctly fix this weak requirement? (Select ALL)

Part 2: Visual Logic

2.1 A DFD shows an arrow directly connecting 'USER_DB' to 'AUTH_LOGS'. Why is this a major modeling error?

2.2 In a Library DCD, you need to create a 'Loan' object. Which design best minimizes coupling?

Module 10

Architecture Principles

Software Architecture is the "style" of the structure of a system. Good architecture follows Six Core Principles that ensure a system is maintainable and scalable.

Metric Analysis: You are auditing a legacy system. Which findings indicate GOOD software quality? (Select ALL)

Strategic Choice: You are building a High-Frequency Trading platform where components must react instantly to price changes without being tightly coupled. Use:

Module 11

Design Blueprints

Once we have our architecture, we need a Design Class Diagram (DCD). This is the final blueprint developers use to write code. It's much more detailed than a simple Domain Model.

๐Ÿ—๏ธ
DCD vs. Domain Model

A Domain Model is about real-world concepts. A DCD is about software implementation. It includes specific methods (like calculateTax()), design classes (like CheckoutController), and technical details.

UML Relationships (The Precise Version)

In a DCD, we use precise symbols to show how classes connect. These are critical for your project!

โ—†
Composition (Solid Diamond)

The "Death" relationship. If the parent dies, the child dies. (e.g., A Car and its Engine โ€” you can't have a car without an engine in this model).

โ—‡
Aggregation (Empty Diamond)

The "Roommate" relationship. If the parent dies, the child moves out. (e.g., A Library and its Books โ€” the books exist elsewhere if the library closes).

โ–ฒ
Generalization (Triangle)

The "Kind of" relationship. (e.g., A Truck is a type of Vehicle).

Blueprint Challenge: Food Delivery

Imagine you're designing a Food Delivery app. You need to identify the components for your DCD. Based on the quiz logic, classify the following:

Concept: "Order"

Concept: "Delivery Address"

Which of these is a "Design Class" (not in the Domain Model)?

Relationship: 'Controller' to 'PaymentGateway'

The Golden Rule of DCDs

โญ
Expert + Creator

Your DCD should assign methods to the **Information Expert**. For example, if you need to check if a Customer can afford an order, that method belongs in the Customer class (Expert), not the CheckoutGUI!

Module 12

Visual Blueprint Masterclass

This module is dedicated entirely to interpreting rendered diagrams. Study the models and answer the questions based on their visual structure and formal notation.

Sequence Diagram Audit

Analyze the object interactions below. Look for message flow, timing, and pattern application.

:CheckoutController
currOrder:Order
1: isPaid()
2: [true/false]

In message '1: isPaid()', which pattern is being applied by making 'Order' responsible for the answer?