NotesBCASoftware Engineering
UGCC2514

Software Engineering Notes

Program:BCA
Semester:Semester 3
Credits:3
Units:4 Units

Subject Overview

Software Engineering covers the full software development lifecycle — process models (waterfall, incremental, evolutionary, unified process) and agile methods (XP, Scrum), requirements engineering and risk/project management, design and structural modeling (UML diagrams) and testing strategies, and quality management, release management and product sustenance. A 3-credit core theory paper.

Unit-wise Syllabus

4 units — open any unit for detailed topic-wise notes, diagrams and important exam questions

  • Evolving role and changing nature of software
  • layered technology
  • process framework
  • waterfall/incremental/evolutionary process models
  • the unified process
  • agility principles and agile methods
  • plan-driven vs agile development
  • extreme programming
  • Scrum
ComparisonWaterfall vs agile
Waterfall
Agile

Approach

Linear phases, one after another

Short iterations (sprints)

Changes

Costly once a phase is complete

Expected and welcomed

Customer involvement

Mainly at start and end

Continuous

Best for

Stable, well-defined requirements

Evolving requirements

Study guide

Software engineering is about building software in a disciplined, repeatable way. You learn the changing nature of software, the process framework, the waterfall, incremental and evolutionary models, the unified process, agility and agile methods, how plan-driven and agile development differ, extreme programming and Scrum. Make a comparison table of the process models with their strengths and weaknesses; it is a standard exam question.

Read Unit 1 notes
  • Functional and non-functional requirements
  • requirements specification and engineering processes
  • elicitation
  • analysis
  • validation and management
  • risk strategies
  • identification
  • projection
  • refinement
  • RMMM plan
  • software pricing
  • plan-driven development
  • project scheduling
  • agile planning
  • estimation techniques
ProcessRequirements engineering
  1. 1Elicitation

    Gather needs from users

  2. 2Analysis

    Resolve conflicts and gaps

  3. 3Specification

    Write the SRS

  4. 4Validation

    Confirm with stakeholders

  5. 5Management

    Track changes over time

Study guide

Projects succeed or fail on requirements and management. You study functional and non-functional requirements, the requirements engineering process (elicitation, analysis, validation, management), risk strategies and the RMMM plan, software pricing, scheduling, agile planning and estimation techniques. Practise writing a short software requirements specification for a simple system.

Read Unit 2 notes
  • Design process and quality
  • design concepts and model
  • software architecture
  • data design
  • class/sequence/collaboration/use case/component diagrams
  • testing strategies
  • black-box and white-box testing
  • validation and system testing
  • debugging
  • product metrics for analysis
  • design
  • source code
  • testing and maintenance
HierarchyLevels of testing
  1. Acceptance testing

    Users confirm it meets their needs

  2. System testing

    The whole system against requirements

  3. Integration testing

    Modules working together

  4. Unit testing

    Individual functions or classes

Study guide

Design turns requirements into a blueprint and testing proves it works. You learn design concepts and quality, software architecture, data design, and UML diagrams (class, sequence, collaboration, use case, component), followed by testing strategies, black-box and white-box testing, validation, system testing, debugging, and product metrics. Draw each UML diagram for one small system such as a library system.

Read Unit 3 notes
  • Quality concepts
  • software quality assurance
  • formal technical reviews
  • statistical SQA
  • software reliability
  • release planning
  • development and build plans
  • release strategies
  • post-deployment monitoring
  • maintenance
  • updates
  • end of life and migration strategies
ProcessRelease management
  1. 1Plan the release

    Scope, schedule and build plan

  2. 2Build and test

    Quality checks and reviews

  3. 3Deploy

    Release to users

  4. 4Monitor

    Watch performance and errors

  5. 5Maintain

    Fix, update, and eventually retire or migrate

Study guide

Quality does not happen by accident. You study quality concepts, software quality assurance, formal technical reviews, statistical SQA and reliability, then release management: release planning, build plans, release strategies, post-deployment monitoring, maintenance, updates, end of life and migration. Understand that most of a software's cost comes after the first release, in maintenance.

Read Unit 4 notes

Why Software Engineering Matters

Software Engineering is how professional teams really work: agile sprints, requirements, design, testing and releases. It directly prepares you for internships and jobs in software companies, where knowing Scrum, UML and testing is expected from day one.

How to Prepare for Software Engineering

  • Prepare a one-page comparison of waterfall, incremental, spiral and agile models.
  • Practise drawing UML diagrams (use case, class, sequence) for a small system.
  • Learn the difference between black-box and white-box testing with examples.
  • Understand Scrum roles, events and artifacts; they are frequent exam and interview topics.

Software Engineering: Frequently Asked Questions

What is the difference between waterfall and agile?

Waterfall completes each phase fully before moving to the next, while agile builds software in short iterations with frequent feedback and the ability to change requirements.

What is the difference between black-box and white-box testing?

Black-box testing checks behaviour against requirements without looking at the code, while white-box testing examines internal logic and code paths.

Want the Complete Notes & Past Papers?

WhatsApp us and we'll send you the full notes, question banks, and previous year papers for Software Engineering.