Q.1 Attempt the following (2.
5 marks each)
(a) Define layered software technology and explain its significance.
Layered Software Technology is an approach in which the software development process is divided
into different layers. Each layer has specific responsibilities.
Layers:
1. Quality Focus – Ensures software quality (reviews, audits, standards).
2. Process Layer – Defines activities like planning, designing, testing.
3. Methods Layer – Provides techniques for analysis, design, coding.
4. Tools Layer – Automated tools supporting methods and processes.
Significance:
• Improves quality and productivity
• Ensures a structured approach
• Reduces development errors
• Provides easy maintenance and manageability
(b) Functional vs Non-functional requirements:
Functional: What system should do.
Non-functional: How system should work.
(c) Agile principles:
Customer collaboration, working software, responding to change, individuals & interactions,
frequent delivery, continuous improvement, self-organizing teams, sustainable pace.
(d) Risk management:
Identification, analysis, prioritization, planning, monitoring.
Q.2
(a) Waterfall: Linear, simple, fixed phases. Pros: easy, structured. Cons: hard to change, late
testing.
Incremental: Develops in increments. Pros: early delivery, flexible. Cons: needs planning, complex
integration.
(b) Requirements elicitation: interviews, surveys, observation, brainstorming, document analysis,
use-cases.
Validation: reviews, prototyping, model evaluation, consistency checking, acceptance tests.
Q.3
(a) Modularity: independent modules → easy debugging, maintenance, reusability.
Separation of Concerns: each module handles one responsibility → clarity, scalability, less
complexity.
(b) Black-box: test without code knowledge (login test, UI test).
White-box: test with internal code logic (loops, conditions, unit tests).
Q.4
(a) UML role: visualization, communication, documentation, planning.
Five diagrams: Use-case, Class, Sequence, Activity, State machine.
(b) SRS: document listing functional & non-functional requirements.
Components: intro, functional, non-functional, system models, interface requirements, constraints,
performance.
Q.5
(a) Plan-driven vs Agile:
Plan-driven: fixed plan, heavy docs, rigid, good for stable projects.
Agile: flexible, iterative, minimal docs, good for dynamic projects.
(b) XP practices: pair programming, TDD, CI, simple design, refactoring, small releases, collective
ownership.
Scrum: daily standup, sprint planning, backlog, review, retrospective, scrum roles.