Software Engineering Notes
Subject Overview
Software Engineering covers the software process and prescriptive/
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
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.
- 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
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.
- 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
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.
- 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
- 1
Inventory analysis
- 2
Document restructuring
- 3
Reverse engineering
- 4
Code restructuring
- 5
Data restructuring
- 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.
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.
