1 of 32

REQUIREMENTS ENGINEERING

Dr. Noman Islam

2 of 32

INTRODUCTION

  • Chapters cover understanding and modeling requirements.
    • Includes elicitation, analysis, validation.
    • Covers functional, non-functional, and behavioral modeling.
  • Importance of requirements.
    • Provide foundation for design and development.
    • Guide testing and validation processes.
  • Goal.
    • Learn techniques to capture requirements.
    • Represent them clearly for stakeholders.

3 of 32

INTRODUCTION TO REQUIREMENTS

  • Definition of requirements.
    • Functional and non-functional.
    • Constraints and business rules.
  • Importance of clear requirements.
    • Reduces development errors.
    • Improves communication with stakeholders.
  • Challenges.
    • Incomplete or ambiguous requirements.
    • Evolving requirements over time.

4 of 32

REQUIREMENTS ELICITATION 1

  • Gather from stakeholders.
    • Interviews, workshops, questionnaires.
    • Observation and documentation review.
  • Identify stakeholders.
    • End-users, managers, domain experts.
    • Ensure coverage of all perspectives.
  • Elicitation challenges.
    • Hidden needs.
    • Conflicting expectations.

5 of 32

REQUIREMENTS ELICITATION 2

  • Techniques.
    • Brainstorming sessions.
    • Prototyping for clarification.
  • Documentation of requirements.
    • Capture initial ideas.
    • Use structured templates.
  • Validating initial requirements.
    • Check completeness.
    • Confirm understanding with stakeholders.

6 of 32

REQUIREMENTS ANALYSIS 1

  • Organize requirements.
    • Classify functional vs non-functional.
    • Determine priority.
  • Resolve conflicts.
    • Identify inconsistencies.
    • Negotiate trade-offs.
  • Refine requirements.
    • Clarify ambiguities.
    • Add necessary details.

7 of 32

REQUIREMENTS ANALYSIS 2

  • Model preliminary requirements.
    • Use simple diagrams.
    • Facilitate stakeholder understanding.
  • Check feasibility.
    • Assess technical possibilities.
    • Evaluate resource constraints.
  • Document assumptions.
    • Capture context.
    • Support future decisions.

8 of 32

REQUIREMENTS SPECIFICATION 1

  • Software Requirements Specification (SRS).
    • Formal document capturing all requirements.
    • Reference for developers.
  • Functional requirements section.
    • Detailed features.
    • Expected behavior.
  • Non-functional requirements section.
    • Performance, security, reliability.
    • Constraints and quality attributes.

9 of 32

REQUIREMENTS SPECIFICATION 2

  • Traceability matrix.
    • Link requirements to design.
    • Support change impact analysis.
  • Version control.
    • Track requirement changes.
    • Ensure team alignment.
  • Maintainability.
    • Keep documentation updated.
    • Support future evolution.

10 of 32

REQUIREMENTS VALIDATION 1

  • Check correctness and completeness.
    • Ensure all requirements are feasible.
    • Validate against stakeholder needs.
  • Techniques: reviews.
    • Formal inspections.
    • Peer walkthroughs.
  • Prototyping for validation.
    • Quick mockups for feedback.
    • Refine based on results.

11 of 32

REQUIREMENTS VALIDATION 2

  • Detect errors early.
    • Reduces cost of fixes.
    • Prevents downstream defects.
  • User acceptance.
    • Engage users early.
    • Confirm priorities match expectations.
  • Iterative validation.
    • Continuous refinement.
    • Update as project evolves.

12 of 32

REQUIREMENTS MODELING OVERVIEW

  • Formal representation of requirements.
    • Supports analysis and design.
    • Communicates clearly with stakeholders.
  • Use models for understanding.
    • Data models for structure.
    • Functional models for behavior.
  • Techniques guide system design.
    • Structured analysis.
    • Object-oriented analysis.

13 of 32

DATA MODELING 1

  • Entity-Relationship diagrams.
    • Entities, attributes, relationships.
    • Represent data requirements clearly.
  • Data dictionaries.
    • Define each data element.
    • Describe types and constraints.
  • Advantages.
    • Clarifies data structure.
    • Supports design decisions.

14 of 32

DATA MODELING 2

  • Normalization for consistency.
    • Remove redundancy.
    • Ensure integrity.
  • Relationships types.
    • One-to-one, one-to-many, many-to-many.
    • Define constraints and cardinality.
  • Use in system design.
    • Database design support.
    • Align with functional requirements.

15 of 32

FUNCTIONAL MODELING 1

  • Data Flow Diagrams (DFD).
    • Show data movement.
    • Represent transformations and storage.
  • Context-level DFD.
    • High-level overview.
    • Identify system boundaries.
  • Level-1 and detailed DFDs.
    • Decompose processes.
    • Clarify inputs and outputs.

16 of 32

FUNCTIONAL MODELING 2

  • Use case diagrams.
    • Identify actors.
    • Capture system functionality.
  • Scenario descriptions.
    • Step-by-step interactions.
    • Alternate flows captured.
  • Functional requirements link.
    • Trace use cases to requirements.
    • Supports testing.

17 of 32

OBJECT-ORIENTED MODELING 1

  • Class diagrams.
    • Define objects, attributes, methods.
    • Show relationships among classes.
  • Inheritance and encapsulation.
    • Reuse common behaviors.
    • Hide internal details.
  • Association, aggregation, composition.
    • Depict object relationships.
    • Clarify dependencies.

18 of 32

OBJECT-ORIENTED MODELING 2

  • Sequence diagrams.
    • Represent message order between objects.
    • Show dynamic behavior.
  • Collaboration diagrams.
    • Show object interaction.
    • Highlight responsibilities.
  • Benefits.
    • Improves understanding of system flow.
    • Supports testing and validation.

19 of 32

NON-FUNCTIONAL REQUIREMENTS MODELING

  • Performance, reliability, security.
    • Define measurable thresholds.
    • Ensure acceptance criteria.
  • Scalability, maintainability.
    • Plan for growth.
    • Reduce long-term costs.
  • Traceability.
    • Link with design and tests.
    • Track changes over time.

20 of 32

BEHAVIORAL MODELING 1

  • State diagrams show system states.
    • Track transitions.
    • Capture valid/invalid states.
  • Activity diagrams show workflows.
    • Sequence of actions.
    • Include decision points.
  • Dynamic modeling importance.
    • Critical for reactive systems.
    • Supports correctness.

21 of 32

BEHAVIORAL MODELING 2

  • Use case realization.
    • Map use cases to design.
    • Identify interactions.
  • Sequence and collaboration diagrams.
    • Message flow and interaction.
    • Clarify responsibilities.
  • Benefits.
    • Understand system behavior.
    • Supports testing and validation.

22 of 32

USER INTERFACE MODELING 1

  • Wireframes and mockups.
    • Visual screen layouts.
    • Capture interactions.
  • Focus on usability.
    • Simplify navigation.
    • Minimize user errors.
  • Align with functional models.
    • Use cases drive UI.
    • Ensure consistent design.

23 of 32

USER INTERFACE MODELING 2

  • Prototyping for UI.
    • Test with users.
    • Collect feedback.
  • Iterative refinement.
    • Adjust layouts and workflows.
    • Ensure usability improvements.
  • Benefits.
    • Better user satisfaction.
    • Reduce usability defects.

24 of 32

REQUIREMENTS TRACEABILITY 1

  • Link requirements to design and tests.
    • Ensure coverage.
    • Support validation.
  • Track changes over time.
    • Document evolution.
    • Maintain accuracy.
  • Impact analysis.
    • Assess changes before implementation.
    • Reduce defects.

25 of 32

REQUIREMENTS TRACEABILITY 2

  • Maintain traceability matrices.
    • Map requirements to models.
    • Track dependencies.
  • Automated tools support.
    • Use CASE or repositories.
    • Version control enabled.
  • Ensure completeness.
    • Check every requirement covered.
    • Support testing.

26 of 32

REQUIREMENTS MANAGEMENT

  • Change control procedures.
    • Formal approval for modifications.
    • Assess impacts.
  • Versioning and documentation.
    • Keep historical records.
    • Support team alignment.
  • Stakeholder communication.
    • Regular updates.
    • Align expectations.

27 of 32

QUALITY ATTRIBUTES IN REQUIREMENTS

  • Performance, reliability, security.
    • Define metrics.
    • Ensure measurable results.
  • Scalability, maintainability.
    • Plan for growth.
    • Simplify future changes.
  • Testable requirements.
    • Support verification.
    • Enable validation.

28 of 32

REQUIREMENTS REVIEW AND INSPECTION

  • Formal review sessions.
    • Engage stakeholders.
    • Identify defects early.
  • Checklists and guidelines.
    • Ensure consistency.
    • Avoid common errors.
  • Document issues and resolutions.
    • Track findings.
    • Improve overall quality.

29 of 32

AGILE REQUIREMENTS MODELING

  • User stories and epics.
    • Capture user needs simply.
    • Describe functionality clearly.
  • Backlog management.
    • Prioritize tasks.
    • Iterate continuously.
  • Acceptance criteria.
    • Define done conditions.
    • Support verification.

30 of 32

REQUIREMENTS MODELING TOOLS

  • CASE tools for diagrams and documentation.
    • Visualize data and processes.
    • Support collaboration.
  • Model repositories.
    • Store and manage models.
    • Ensure version control.
  • Integration with development tools.
    • Traceability to design/code.
    • Facilitate testing.

31 of 32

CHALLENGES IN REQUIREMENTS MODELING

  • Incomplete or ambiguous requirements.
    • Difficult to model accurately.
    • Risk of defects.
  • Changing requirements.
    • Flexible modeling required.
    • Maintain traceability.
  • Communication gaps.
    • Stakeholders may misinterpret models.
    • Ensure clarity.

32 of 32

CHAPTER SUMMARY

  • Requirements form foundation of software.
    • Understanding, modeling, validation critical.
    • Non-functional aspects included.
  • Modeling techniques improve clarity.
    • Data, functional, behavioral, UI models.
    • Facilitates design and testing.
  • Management ensures traceability and quality.
    • Change control, versioning, stakeholder alignment.
    • Supports successful delivery.