⚡ TechVani: AI, Technology, Apps, Coding & Digital World
TechVaniAI • Technology • Apps • Coding • Digital World
HomeAI & TechAppsCodingFree AI ToolsStudent TechSecurityAboutContactPrivacy
TECHVANI // LEARN. BUILD. TEST.

Learn the tech. Build the idea.

Clear study notes, tested lab files and practical guides for coding, AI and digital safety.

Explore Latest →
šŸ¤– AI & TechAI news, tools & guides šŸ“± Apps & ToolsUseful apps & websites šŸ’» CodingProgramming & web development šŸŽ“ Student TechStudy & career technology šŸ” Cyber SecuritySafety & awareness

Latest Posts

Circuit Notebook theme

Exam Notes

šŸ“š BTech CSE Exam Notes

Find Semester 1-8 subjects in one place. Choose a semester and open the notes you need. This is a general study guide, not an official syllabus.

Open Exam Notes →🧪 Open Lab Files →

Exam Numericals & Study Series

Practice CPU scheduling and explore OS and DBMS topics in separate, easy-to-follow parts. New topics will appear in the hub as they are published.

Open Numericals Hub →

Start here and stay in touch

New to TechVani? Start with our free AI tools guide for students. It covers which tools to try and what to check before relying on an answer.

For step-by-step videos, visit SiteSudhar on YouTube.

Join TechVani on WhatsApp

Get new AI tools and coding guides in your WhatsApp Updates tab.

Browse Topics

Popular Posts

TechVani

Software Engineering | Semester 5 Core Notes

Semester 5 - Page 5: Software Engineering. 26 numbered topics, highlighted rules, worked room-booking examples, answered exam questions, lifecycle/trace diagrams, comparison tables and three complete Python teaching tools. General common-core guide, not an official syllabus or production booking system.

Run each Python block separately: Python 3, standard library only. The interval checker covers 225 pairs in a bounded integer domain. It does not test concurrent database writes. Trace links are not test results; earliest-finish arithmetic assumes unlimited parallel resources and is not a project promise.

Topic map

  1. Software engineering and lifecycle
  2. Feasibility and stakeholder analysis
  3. Functional and quality requirements
  4. Elicitation and specification
  5. Requirements validation and traceability
  6. Process models and waterfall
  7. Incremental, spiral and prototyping
  8. Agile practices and feedback
  9. Use cases, context and UML
  10. Data and behavior modeling
  11. Architecture and responsibility boundaries
  12. Cohesion, coupling and interfaces
  13. Design principles and patterns
  14. Planning, work breakdown and estimation
  15. Size, effort and cost models
  16. Risk management
  17. Verification versus validation
  18. Reviews, static analysis and test levels
  19. Black-box test design and boundaries
  20. White-box coverage and limitations
  21. Defect reporting and regression
  22. Version and configuration management
  23. CI, delivery, deployment and rollback
  24. Security, accessibility and quality assurance
  25. Maintenance and technical debt
  26. Requirements change and release evidence

1. Software engineering and lifecycle

Software engineering applies disciplined methods to build and maintain software under constraints. Lifecycle activities can repeat rather than finish once in a rigid line.

Worked example: A campus room-booking app needs discovery, requirements, design, implementation, verification, release and maintenance.
Exam question: Does more paperwork automatically improve software quality?
Answer: No. Useful process reduces defects and wrong assumptions; paperwork alone does not.

2. Feasibility and stakeholder analysis

Study technical, operational, economic and schedule feasibility. Stakeholders have different goals and permissions; record whose need each requirement serves.

Worked example: Students request rooms, room owners approve, and administrators maintain resources; these are different roles.
Exam question: Can feasibility be judged only from whether a programmer can code it?
Answer: No. Cost, operation, legal/privacy constraints and timeline matter too.

3. Functional and quality requirements

Functional requirements describe behavior; quality requirements state measurable constraints. Vague terms such as fast or friendly need observable criteria.

Worked example: Available-room search returns within two seconds under an agreed load; keyboard users can complete the booking flow.
Exam question: Is user-friendly alone a testable requirement?
Answer: No. Define tasks, conditions and success measures.

4. Elicitation and specification

Interviews, observation, workshops and prototypes uncover needs. A specification records scope, assumptions, interfaces, constraints and acceptance criteria with consistent terms.

Worked example: Clarify timezones, room ownership, overlap policy, approval and cancellation before designing storage.
Exam question: Does the first stakeholder sentence always equal the final requirement?
Answer: No. Check conflicts, feasibility, missing details and intended outcomes.

5. Requirements validation and traceability

Review requirements for clarity, consistency, feasibility and user fit. Trace each requirement to design, implementation and tests; traceability helps assess change impact.

Worked example: No overlapping approved bookings maps to an overlap rule, durable concurrency protection and concurrent-request tests.
Exam question: Does a traceability matrix itself prove a feature works?
Answer: No. Links need actual verified behavior and evidence.
Stakeholder need
 -> measurable requirement
 -> design responsibility
 -> code + tests
 -> release evidence + feedback
Traceability supports impact review. Evidence must confirm behavior, not only list links.

Requirements-to-test traceability gap report

requirements = {"R1": "prevent overlap", "R2": "keyboard booking", "R3": "owner approval"}
coverage = {"R1": ["unit_overlap", "database_concurrency"], "R2": [], "R3": ["owner_positive", "other_user_denied"]}
for key in sorted(requirements):
    tests = coverage.get(key, [])
    print(key + ": " + (", ".join(tests) if tests else "MISSING TEST LINK"))
print("Trace links are a planning check, not proof that tests passed.")

Checked output:

R1: unit_overlap, database_concurrency
R2: MISSING TEST LINK
R3: owner_positive, other_user_denied
Trace links are a planning check, not proof that tests passed.

6. Process models and waterfall

Waterfall-style models emphasize staged planning; iterative models revisit learning. Choose a process for uncertainty, constraints and feedback, not as a quality slogan.

Worked example: A stable regulated interface may need planned reviews; a new user workflow benefits from early prototypes and feedback.
Exam question: Does waterfall mean no change can ever happen?
Answer: No. Change still needs controlled review and consequence handling.

7. Incremental, spiral and prototyping

Incremental delivery adds working slices; prototyping tests assumptions; spiral-style work emphasizes risk-driven cycles. A disposable prototype is not automatically production code.

Worked example: Prototype a booking calendar to test whether users understand clashes before committing to a full backend.
Exam question: Why label a throwaway prototype clearly?
Answer: Its shortcuts and incomplete guarantees must not be mistaken for production readiness.

8. Agile practices and feedback

Agile emphasizes working software, collaboration and response to change while recognizing value in other practices. Short iterations still need design, testing, documentation and scope choices.

Worked example: Deliver search, then requesting, then approvals with feedback and acceptance checks for each slice.
Exam question: Does agile mean no plan or documentation?
Answer: No. Planning and records should support delivery and change.

9. Use cases, context and UML

A use case follows an actor's goal through main and alternate flows. Context, class, sequence and state diagrams answer different questions; choose diagrams with a clear purpose.

Worked example: Booking request: select room, validate, request approval; alternate paths include conflict, denial and cancellation.
Exam question: Does a class diagram show the timing of a request?
Answer: Not directly. A sequence diagram is suited to message order.

10. Data and behavior modeling

Model entities, relationships, invariants and state transitions. Identify what persists and who can change each state.

Worked example: Booking moves requested to approved or rejected; cancellation policy depends on actor and current state.
Exam question: Can every entity be changed from any state by any actor?
Answer: No. Define allowed transitions and permissions explicitly.
Requested -> Approved -> Canceled
         \-> Rejected
Each transition checks actor + state + policy
Teaching state sketch. Actual cancellation/approval rules must be specified.

11. Architecture and responsibility boundaries

Architecture selects components, contracts and deployment boundaries for actual needs. UI presentation, domain rules and persistence have different responsibilities.

Worked example: A booking service checks rules; a repository stores records; UI displays status. Microservices are not mandatory for a small app.
Exam question: Does moving code to another service remove coupling?
Answer: No. Network contracts, data and failure dependencies remain.

12. Cohesion, coupling and interfaces

High cohesion keeps a module's job focused; appropriate low coupling limits dependence on internals. Interfaces can isolate change, but needless abstraction also has cost.

Worked example: A storage adapter lets tests use an in-memory implementation while production uses a database.
Exam question: Should every function have an interface solely for flexibility?
Answer: No. Use boundaries that address real testing/change needs.

13. Design principles and patterns

Encapsulation hides unstable details; separation of concerns and suitable patterns organize responsibilities. A pattern is a reusable design idea, not a requirement to add layers everywhere.

Worked example: A strategy can choose a pricing/approval rule when alternatives genuinely vary; simple fixed behavior may need no extra pattern.
Exam question: Does naming a pattern prove a design is good?
Answer: No. Check complexity, contracts, behavior and actual change risks.

14. Planning, work breakdown and estimation

Break work into deliverable pieces with dependencies, review/testing/release work and uncertainty. Estimates are forecasts, not guarantees.

Worked example: A four-hour implementation can still need integration, review and deployment. Track acceptance-ready behavior, not lines typed.
Exam question: Why include uncertainty in estimates?
Answer: Unknowns, integration and changes alter effort and schedule.

Dependency-aware earliest finish calculation

tasks = {"requirements": (2, []), "design": (3, ["requirements"]),
         "UI": (4, ["design"]), "API": (5, ["design"]),
         "integration": (2, ["UI", "API"]), "review": (1, ["integration"])}
finish = {}
while len(finish) < len(tasks):
    progress = False
    for name, (duration, dependencies) in tasks.items():
        if name in finish or not all(d in finish for d in dependencies):
            continue
        start = max((finish[d] for d in dependencies), default=0)
        finish[name] = start + duration
        print(name + ": start=" + str(start) + " finish=" + str(finish[name]))
        progress = True
    if not progress:
        raise ValueError("cycle or missing dependency")
print("minimum elapsed units:", max(finish.values()))
print("Assumes unlimited parallel resources; not a real delivery promise.")

Checked output:

requirements: start=0 finish=2
design: start=2 finish=5
UI: start=5 finish=9
API: start=5 finish=10
integration: start=10 finish=12
review: start=12 finish=13
minimum elapsed units: 13
Assumes unlimited parallel resources; not a real delivery promise.

15. Size, effort and cost models

LOC, function points and model-based estimates measure different things and require calibrated assumptions. Effort is person-time; calendar duration depends on dependencies and team coordination.

Worked example: Two independent tasks may run in parallel; a dependent review cannot start until usable implementation exists.
Exam question: Can adding developers always shorten a late project proportionally?
Answer: No. Coordination, onboarding and serial dependencies limit gains.

16. Risk management

A risk is an uncertain event with possible consequence; an issue has already happened. Record likelihood, impact, response, owner and trigger. Reassess rather than leaving a static list.

Worked example: Concurrent double booking is high impact; mitigate with database concurrency design and integration tests, not only a UI lock.
Exam question: Does a low probability remove a high-impact risk?
Answer: No. Evaluate the full consequence and response options.

17. Verification versus validation

Verification checks conformance to specified requirements/design; validation checks whether the product solves the actual user need. Both matter and occur throughout development.

Worked example: A booking form may match specification but fail real users if the approval workflow is impractical.
Exam question: Can a perfectly verified wrong requirement still fail validation?
Answer: Yes. Specification conformance alone does not establish fitness for purpose.

18. Reviews, static analysis and test levels

Reviews/static analysis inspect without executing the target behavior. Unit, integration, system and acceptance tests address different scopes. Passing tests does not prove absence of all defects.

Worked example: Unit-test overlap arithmetic; integration-test durable storage under concurrent requests; acceptance-test owner approval.
Exam question: Does mocking every dependency verify real database concurrency?
Answer: No. Actual integration behavior needs separate checks.

19. Black-box test design and boundaries

Equivalence partitions group input classes; boundary tests exercise edges; decision tables capture combinations; state tests exercise transitions. Expected results must come from rules, not the implementation under test.

Worked example: Half-open intervals allow end equal to next start, reject true intersection, and reject nonpositive duration. The offline demo tests all boundaries in a small domain.
Exam question: Why test adjacent intervals as well as overlapping ones?
Answer: An incorrect inequality can reject valid adjacency or accept overlap.

Exhaustive bounded interval-rule checks

from itertools import product

def overlaps(a, b):
    if a[0] >= a[1] or b[0] >= b[1]:
        raise ValueError("positive duration required")
    return a[0] < b[1] and b[0] < a[1]

intervals = [(start, end) for start in range(5) for end in range(start+1, 6)]
checked = 0
for a, b in product(intervals, repeat=2):
    # Independent reference for integer half-open intervals.
    reference = bool(set(range(*a)) & set(range(*b)))
    assert overlaps(a, b) == reference
    checked += 1
print("intervals:", len(intervals))
print("pairs checked:", checked)
print("adjacent:", overlaps((1, 2), (2, 3)))
print("intersecting:", overlaps((1, 3), (2, 4)))
try:
    overlaps((2, 2), (2, 3))
except ValueError as error:
    print("invalid:", error)

Checked output:

intervals: 15
pairs checked: 225
adjacent: False
intersecting: True
invalid: positive duration required

20. White-box coverage and limitations

Statement, branch and path coverage describe exercised code structure. Full branch coverage still does not establish correct assertions, all data interactions or complete behavior.

Worked example: Both sides of an if can execute while the expected result is never checked; exhaustive paths can be infeasible with loops.
Exam question: Does 100 percent coverage mean no bugs?
Answer: No. Coverage is a measure of execution, not a correctness proof.

21. Defect reporting and regression

A defect report needs environment, steps, expected/actual behavior and useful evidence. Severity describes impact; priority describes ordering. Add regression checks for fixed behavior.

Worked example: Two simultaneous room approvals succeed incorrectly; preserve reproducible timing/data without exposing private users.
Exam question: Are severity and priority always equal?
Answer: No. Release timing and affected usage also influence priority.

22. Version and configuration management

Version control tracks source changes; configuration management controls versions, dependencies and release baselines. Small reviewed changes and reproducible builds make recovery easier.

Worked example: A release records code revision, schema migration and required configuration without secrets.
Exam question: Does a branch alone guarantee safe merging?
Answer: No. Review, tests and compatibility checks still matter.

23. CI, delivery, deployment and rollback

Continuous integration checks merged changes; delivery/deployment terms describe release readiness/automation under team conventions. Plan rollback or forward recovery, especially for data migrations.

Worked example: A deploy can pass build yet break startup or permissions; health checks and task-outcome monitoring detect different failures.
Exam question: Can every migration be safely undone by reverting code?
Answer: No. Data transformations may be irreversible or require explicit recovery.
Change -> review -> build/tests
 -> release baseline -> deploy
 -> health + user outcome checks
 -> recovery plan when needed
Data migration recovery may differ from reverting application code.

24. Security, accessibility and quality assurance

Quality includes security, accessibility, reliability, performance and maintainability with stated priorities. QA practices prevent/manage problems; testing is one part, not the whole activity.

Worked example: Check object ownership on every protected request and test keyboard flow; hiding a button cannot enforce server permission.
Exam question: Does encryption eliminate authorization checks?
Answer: No. Channel confidentiality and access policy are distinct.

25. Maintenance and technical debt

Corrective work fixes defects; adaptive work responds to environment change; perfective work improves behavior; preventive work reduces future risk. Debt choices need visible cost and follow-through.

Worked example: Update a changed API dependency, fix an overlap bug and improve a confusing form as different maintenance goals.
Exam question: Is all old code automatically technical debt?
Answer: No. Evaluate actual change cost, risk and intentional tradeoffs.

26. Requirements change and release evidence

Review a change's reason, affected users/contracts/data/tests and acceptance criteria. Verify both the new behavior and retained expectations after release.

Worked example: Adding cancellations changes state rules, permissions, audit data and tests; document the impact before coding.
Exam question: When is a feature complete?
Answer: When agreed behavior is implemented, reviewed, tested and verified under its actual delivery conditions.

Requirement-to-check examples

RequirementDesignEvidence
No overlapping approvalsService rule + durable concurrency controlUnit boundaries + concurrent DB test
Own records onlyServer-side object authorizationOwner succeeds; other user denied
Keyboard bookingLabels, focus and controlsActual keyboard flow check
Search within target timeMeasured load assumptionsPerformance test under stated conditions

Test and review scope

ActivityChecksDoes not establish alone
Static reviewDesign/source issuesRuntime behavior
UnitSmall rule/moduleWhole system concurrency
IntegrationReal boundaries working togetherEvery user workflow
SystemEnd-to-end system behaviorFitness for every real user
AcceptanceAgreed user criteriaAbsence of all future defects

Maintenance distinctions

TypePurposeExample
CorrectiveFix a defectRepair overlap inequality
AdaptiveChanged environmentUpdate API integration
PerfectiveImprove behavior/usabilitySimplify approval screen
PreventiveReduce future riskImprove tests and fragile structure

Revision and project checklist

Write testable requirements, draw responsibility boundaries, trace tests, include uncertainty in plans and distinguish verification from validation. Test double booking at a real durable boundary, not only by a local arithmetic predicate. Record release evidence and recovery choices.

Resources and sources

Engineering knowledge areas, testing guidance and version-control documentation support these concepts. All diagrams, examples and offline tools here are original.

Comments