Solution File
Q1. Core Principles of Agile Methodology
The Agile Manifesto outlines four key values and twelve principles that emphasize
flexibility, customer collaboration, and rapid delivery. The core values include:
1. Individuals and Interactions Over Processes and Tools: Prioritizing people and
communication over strict adherence to processes.
2. Working Software Over Comprehensive Documentation: Focusing on delivering
functional software rather than extensive documentation.
3. Customer Collaboration Over Contract Negotiation: Engaging customers actively
throughout the project for valuable feedback.
4. Responding to Change Over Following a Plan: Embracing change as an opportunity for
improvement rather than as a disruption.
Comparison Between Agile and Traditional Project Management
Agile excels in environments requiring rapid adaptation and frequent delivery. Traditional
approaches are more suited to projects with stable, well-defined requirements.
Aspect Agile Traditional Project
Management
Flexibility Highly adaptable to Relies on fixed, detailed
changing requirements. plans.
Customer Involvement Continuous customer Limited involvement after
feedback and collaboration. requirements gathering.
Software Delivery Iterative delivery of Delivery only after complete
functional increments. development.
Q2. Comparison of Elicitation Techniques
Brainstorming, focus groups, and document analysis are key elicitation techniques. Below is
a comparison of these techniques with scenarios where they are most effective:
Technique Description Effective Scenarios
Brainstorming A group activity Early project stages for
encouraging creative idea exploring diverse solutions.
generation.
Focus Groups Moderated discussions with Understanding customer
stakeholders to gather needs and preferences.
opinions.
Document Analysis Reviewing existing Projects with historical
documentation to extract records or detailed
information. requirements.
Q3. Design as a Wicked Problem
Design problems are considered 'wicked' because they are complex, ambiguous, and lack
clear solutions. These problems involve multiple stakeholders with conflicting interests,
making them challenging to solve.
Characteristics of Wicked Problems:
1. No Definitive Problem Statement: The problem evolves as more information is
uncovered.
2. No Stopping Rule: It’s unclear when the problem is fully solved.
3. Unique Solutions: Each problem and context demands a tailored approach.
4. Interconnected Issues: Solutions often lead to new challenges.
5. Stakeholder Disagreement: Differing priorities and perspectives complicate the process.
Q4. Testing and Debugging a Library Management System
1. Use Case Diagram
The use case diagram for a library management system includes the following:
Actors:
- User (Student/Member)
- Librarian
- System
Use Cases:
- Search Books
- Borrow Books
- Return Books
- Manage Inventory (Librarian)
- Update Member Records (Librarian)
2. Testing and Debugging Steps for 'Borrow Books' Use Case
Steps:
1. Unit Testing:
- Verify individual functions, such as book availability checks and user borrowing limits.
- Test edge cases, e.g., borrowing the maximum number of books allowed.
2. Integration Testing:
- Test interactions between modules, such as the catalog database and user records.
- Simulate multiple users borrowing books simultaneously.
3. System Testing:
- Ensure the entire workflow functions seamlessly, from book search to borrowing
confirmation.
- Validate error handling (e.g., unavailability of books).
4. User Acceptance Testing (UAT):
- Allow real users to test the borrowing process and provide feedback.
Debugging Challenges:
- Concurrency Issues: Borrowing the same book simultaneously by multiple users can
create conflicts. Solution: Implement locks or transactions in the database.
- Error Handling: Unclear error messages can confuse users. Solution: Provide descriptive,
user-friendly error messages.
- Data Consistency: Incorrect book status updates may occur due to system crashes.
Solution: Use robust database transactions with rollback capabilities.