0% found this document useful (0 votes)
6 views2 pages

Layered Software Technology Overview

The document outlines key concepts in software development, including layered software technology, functional vs non-functional requirements, agile principles, and risk management. It compares development methodologies like Waterfall and Incremental, discusses requirements elicitation and validation techniques, and explains modularity and testing types. Additionally, it highlights the role of UML in planning and documentation, and contrasts plan-driven and agile approaches along with XP practices and Scrum framework.

Uploaded by

nerd.anonymous20
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views2 pages

Layered Software Technology Overview

The document outlines key concepts in software development, including layered software technology, functional vs non-functional requirements, agile principles, and risk management. It compares development methodologies like Waterfall and Incremental, discusses requirements elicitation and validation techniques, and explains modularity and testing types. Additionally, it highlights the role of UML in planning and documentation, and contrasts plan-driven and agile approaches along with XP practices and Scrum framework.

Uploaded by

nerd.anonymous20
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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.

You might also like