Unit II – Software Process & Requirements Modeling
Unit II – Software Process & Requirements Modeling
Agility Principles (12 Principles of Agile)
The Agile Alliance defines 12 principles for achieving agility:
-
Customer Satisfaction → Deliver valuable software early & continuously.
-
Welcome Change → Even late in development.
-
Frequent Delivery → Weeks, not years.
-
Business + Developers Together → Daily collaboration.
-
Motivated Individuals → Support, trust, empower them.
-
Face-to-Face Conversation → Best way to share ideas.
-
Working Software → Primary measure of progress.
-
Sustainable Development → Maintain a constant pace.
-
Technical Excellence → Continuous focus on quality.
-
Simplicity → Do only what’s essential.
-
Self-Organizing Teams → Best designs emerge naturally.
-
Reflection & Improvement → Regularly tune and adapt.
The Politics of Agile Development
There’s a heated debate between:
-
Traditionalists → Focus on documentation first, then software.
-
Agilists → Focus on working software first, adjust later.
Reality: Both sides have merits. Too much documentation slows projects; no documentation causes confusion.
Requirement Analysis
Requirement analysis = understanding what the system should do.
It answers:
-
What interactions occur with users?
-
What objects are manipulated?
-
What functions must exist?
-
What behaviors should occur?
-
What interfaces are required?
-
What constraints apply?
Focus on WHAT, not HOW.
Domain Analysis
Domain Analysis = Identify, analyze, and specify common requirements in a specific application domain.
-
Helps in reuse across projects.
-
In Object-Oriented Domain Analysis (OODA) → Find common objects, classes, frameworks that apply to multiple systems.
Requirements Modeling Approaches
There are 4 modeling approaches:
-
Scenario-Based Elements
-
Show user interaction step by step.
-
Example: “User enters password → System validates → Grants access.”
-
-
Class-Based Elements
-
Show objects, operations, relationships.
-
Example: UML Class diagrams.
-
-
Behavioral Elements
-
Show how events affect system state.
-
Example: State diagrams.
-
-
Flow-Oriented Elements
-
Show how data flows through system functions.
-
Example: Data Flow Diagrams (DFD).
-
Data Modeling Concepts
1. Data Flow Model
-
Context-Level DFD → Big picture view (SafeHome system interacting with user & sensors).
-
Level 1 DFD → Break into subsystems (monitoring, alarms, logs).
-
Level 2 DFD → Details for specific processes (like “monitor sensors”).
2. Control Flow Model
-
List all sensors read by the software.
-
List all interrupts (e.g., alarm triggered).
-
List all switches actuated by operator.
-
List all data conditions.
-
Define system states and transitions.
Example: SafeHome → States: Idle → Armed → Triggered → Reset.
Comments
Post a Comment