NotesM.Sc ITSoftware Engineering
PGCA1912

Software Engineering Notes

Program:M.Sc IT
Semester:Semester 2
Credits:4
Units:4 Units

Subject Overview

Software Engineering covers the software process and prescriptive/specialized process models (waterfall, incremental, evolutionary, unified process), requirements engineering and design, software testing strategies (white-box, black-box, unit/integration/system testing), and product metrics, software maintenance and reengineering. A 4-credit core theory paper.

Subject at a glance

4

Units

30

Topics

4

Credits

4

Infographics

Unit-wise Syllabus

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

  • Introduction to the software process and engineering practice
  • software development myths
  • prescriptive process models (waterfall, incremental, evolutionary, concurrent)
  • specialized models (component-based, formal methods, aspect-oriented)
  • the unified process and its phases
  • personal and team process models
ComparisonProcess models compared
Best when
Weakness

Waterfall

Stable, clear requirements

Changes are costly

Incremental

Early partial delivery needed

Needs good planning

Evolutionary (spiral, prototyping)

Uncertain requirements, high risk

Complex to manage

Unified process

Large OO projects

Heavyweight

Study guide

This unit covers the software process, myths, prescriptive models (waterfall, incremental, evolutionary, concurrent), specialised models (component-based, formal, aspect-oriented), the unified process and personal and team process models. Compare models in a table.

Read Unit 1 notes
  • Requirements engineering and understanding software requirements
  • building the analysis model
  • the design process and concepts
  • the design model — data
  • architectural
  • interface
  • component-level and deployment-level design elements
ClassificationElements of the design model
Design model
  • Data design

    Data structures and databases

  • Architectural design

    Overall structure

  • Interface design

    UI and system interfaces

  • Component-level design

    Internal logic of modules

  • Deployment design

    Hardware and environment

Study guide

You study requirements engineering, the analysis model, the design process and concepts and the design model's data, architectural, interface, component and deployment elements. Practise creating a basic analysis model.

Read Unit 2 notes
  • Approach to software testing
  • unit/integration/validation/system testing
  • debugging
  • testing fundamentals
  • white-box testing and basis path testing
  • control structure testing
  • black-box testing
Key formulasBasis path testing
  • Cyclomatic complexity

    V(G) = E − N + 2

  • Alternative

    V(G) = number of decision points + 1

  • Meaning

    Number of independent paths to test

  • Guideline

    V(G) above 10 suggests the module needs simplifying

Study guide

You study testing: strategy, unit, integration, validation and system testing, debugging, white-box and basis path testing, control structure testing and black-box testing. Compute cyclomatic complexity for a small program.

Read Unit 3 notes
  • Framework for product metrics
  • metrics for the requirements and design models
  • process and project metrics
  • software measurement
  • software maintenance
  • reengineering
  • reverse engineering
  • restructuring
  • forward engineering
  • economics of reengineering
ProcessSoftware re-engineering
  1. 1

    Inventory analysis

  2. 2

    Document restructuring

  3. 3

    Reverse engineering

  4. 4

    Code restructuring

  5. 5

    Data restructuring

  6. 6

    Forward engineering

Study guide

You study product, process and project metrics, measurement, maintenance, reengineering, reverse engineering, restructuring, forward engineering and the economics of reengineering. Understand when it is better to reengineer than rewrite.

Read Unit 4 notes

Why Software Engineering Matters

Software engineering practices distinguish professional teams from hobbyists, and they are central to development, testing and project management roles.

How to Prepare for Software Engineering

  • Apply a process model to a small project.
  • Practise designing test cases using black-box and white-box techniques.
  • Learn the metrics and what they reveal.

Software Engineering: Frequently Asked Questions

What is reengineering?

Reengineering is restructuring or rebuilding an existing software system to improve its quality and maintainability.

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.