थोडक्यात सारांश
Software engineering is the systematic, disciplined approach to developing, operating and maintaining software. The Software Development Life Cycle (SDLC) is the series of phases a software product passes through. This topic covers the need for software engineering, SDLC phases, process models (Waterfall, Prototype, Spiral, Incremental, Agile), requirement analysis and SRS, design tools like DFDs, testing levels and techniques, and maintenance.
महत्त्वाचे मुद्दे
- Software crisis: projects running over budget and time, poor quality, hard to maintain. Software engineering arose to solve this (the term became popular after the NATO conference of 1968).
- SDLC phases: (1) feasibility study, (2) requirement analysis and specification (SRS), (3) design, (4) coding/implementation, (5) testing, (6) deployment, (7) maintenance.
- Waterfall model: phases are done one after another in a fixed order; simple, good when requirements are clear; changes are costly later.
- Prototype model: build a quick working model to understand unclear requirements; user feedback refines it.
- Spiral model (Barry Boehm): iterative loops, each with planning, risk analysis, engineering and evaluation; good for large, risky projects.
- Incremental model: software is delivered in parts (increments), each adding features.
- Agile (Agile Manifesto, 2001): short iterations (sprints), working software early, close customer collaboration, welcomes change. Scrum is a popular agile framework.
- Feasibility study checks technical, economic (cost–benefit) and operational feasibility.
- SRS (Software Requirements Specification) lists functional and non-functional requirements; it should be complete, consistent, unambiguous and verifiable.
- Design tools: DFD (data flow diagram), ER diagram, flowcharts, structure charts, UML diagrams (use-case, class, sequence).
- Good design has high cohesion (each module does one job) and low coupling (modules depend little on each other).
- Testing levels: unit, integration, system, acceptance (alpha at developer site, beta at user site). Techniques: black-box (based on requirements, inputs and outputs) and white-box (based on code structure and paths).
- Maintenance types: corrective (fix bugs), adaptive (new environment), perfective (improve features), preventive.
महत्त्वाच्या संज्ञा
- SDLC (सॉफ्टवेअर विकास जीवनचक्र) – phases of software development from idea to retirement.
- SRS – document that states what the software must do.
- Cohesion – how closely related the tasks inside one module are.
- Coupling – degree of dependence between modules.
- Verification vs validation – "are we building the product right?" vs "are we building the right product?"
सूत्रे
DFD symbols (Gane–Sarson / DeMarco style):
- External entity – rectangle (source or sink of data)
- Process – circle (bubble) or rounded rectangle
- Data store – open-ended rectangle (two parallel lines)
- Data flow – arrow with label
- Level 0 DFD = context diagram (the whole system as one process)
| Model | Best when | Drawback |
|---|---|---|
| Waterfall | requirements clear, small project | late changes costly |
| Prototype | requirements unclear | may encourage quick fixes |
| Spiral | large, high-risk project | complex, costly |
| Agile | requirements change often | needs close customer involvement |
५ महत्त्वाचे प्रश्न
Q1. What is SRS? List its characteristics.
SRS (Software Requirements Specification) is a document describing what the system must do and its constraints. A good SRS is correct, complete, consistent, unambiguous, verifiable, modifiable and traceable.
Q2. Differentiate black-box and white-box testing.
Black-box testing checks the software against its requirements without looking at the code (equivalence partitioning, boundary value analysis). White-box testing uses knowledge of the internal code to test paths, branches and conditions (statement and branch coverage).
Q3. Explain the Waterfall model with its merits and demerits.
- Phases in sequence: requirements → design → coding → testing → deployment → maintenance.
- Each phase's output is the next phase's input; documents at every stage.
- Merits: simple, easy to manage, clear milestones.
- Demerits: no working software until late; hard to go back; poor for changing requirements.
- Diagram: steps drawn like a waterfall, top-left to bottom-right.
Q4. Explain the Spiral model.
- Proposed by Barry Boehm (1986); combines iterative development with risk management.
- Each loop has four quadrants: determine objectives, identify and resolve risks (prototypes), develop and test, plan the next iteration.
- Radius of the spiral shows cost so far; angle shows progress.
- Suitable for large and risky projects.
- Drawback: needs risk-analysis expertise; costly for small projects.
Q5. Explain the levels of software testing.
- Unit testing: each module/function tested alone, usually by developers.
- Integration testing: modules combined and their interfaces tested (top-down, bottom-up).
- System testing: complete system tested against SRS (functional, performance, security).
- Acceptance testing: users check if it meets their needs; alpha and beta testing.
- Regression testing: re-testing after changes to make sure nothing else broke.
परीक्षेसाठी टीप
Draw each SDLC model's diagram in your answer — examiners expect it. A comparison table of models fetches quick marks in short notes.