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:

  1. Customer Satisfaction → Deliver valuable software early & continuously.

  2. Welcome Change → Even late in development.

  3. Frequent Delivery → Weeks, not years.

  4. Business + Developers Together → Daily collaboration.

  5. Motivated Individuals → Support, trust, empower them.

  6. Face-to-Face Conversation → Best way to share ideas.

  7. Working Software → Primary measure of progress.

  8. Sustainable Development → Maintain a constant pace.

  9. Technical Excellence → Continuous focus on quality.

  10. Simplicity → Do only what’s essential.

  11. Self-Organizing Teams → Best designs emerge naturally.

  12. 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:

  1. Scenario-Based Elements

    • Show user interaction step by step.

    • Example: “User enters password → System validates → Grants access.”

  2. Class-Based Elements

    • Show objects, operations, relationships.

    • Example: UML Class diagrams.

  3. Behavioral Elements

    • Show how events affect system state.

    • Example: State diagrams.

  4. 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.

         Idle → system is inactive
         Armed → system is monitoring
         Triggered → alarm is activated
         Reset → system returns to idle

Comments

Popular posts from this blog