Software Engineering Notes
Software Engineering Notes
Unit 1
SDLC is a process followed for a software project to ensure quality and correctness. It defines the
testing, deployment, and maintenance. Each phase has its own deliverables and objectives, helping
Phases:
These models define how to carry out the software development process.
- Waterfall Model: Sequential approach. Each phase must be completed before the next begins.
- Iterative Model: Develops system in small sections. Feedback helps refine each iteration.
- Incremental Model: Each increment adds functionality. Combines elements of waterfall and
iterative.
- RAD (Rapid Application Development): Emphasizes quick development using components and
prototypes.
- V-Model (Verification and Validation Model): Extension of waterfall. Testing phases are planned
3. Umbrella Activities
These are supporting tasks that occur throughout the software process.
- Project tracking
- Risk management
- Configuration management
- Documentation
- Reusability management
Agile is an iterative and incremental model that emphasizes flexibility and customer satisfaction.
Key Principles:
- Scrum
- XP (Extreme Programming)
- Kanban
Unit 2
SRS is a document that describes what the software will do and how it will perform.
Key Elements:
- Functional requirements
- Non-functional requirements
- Interface requirements
- Constraints
Importance:
- Reduces misunderstandings
2. Software Estimation
It is the process of predicting effort, time, and cost for a software project.
Techniques:
- Expert Judgment
- Analogy-based estimation
3. Software Scheduling
Scheduling is planning the timeline of project tasks.
Steps:
- Identify activities
- Determine dependencies
4. Risk Management
Steps:
1. Risk Identification
4. Risk Monitoring
Unit 3
UML (Unified Modeling Language) is used for designing and visualizing object-oriented systems.
Notations:
- Rectangle for class
2. Behavioral Modelling
Examples:
3. Structural Analysis
Tools:
- Structure Charts
Unit 4
1. Design Concepts
- Abstraction
- Refinement
- Modularity
- Information Hiding
- Functional Independence
- Refinement
- Architecture
Unit 5
- Top-down: Starts from the main system and breaks it into sub-systems.
- Easy to understand.
- Promotes reusability.
- Equivalence Partitioning
Types:
- Unit Testing
- Branch Coverage
- Statement Coverage
- Path Coverage
- Loop Testing
4. Cyclomatic Complexity
Formula:
V(G) = E - N + 2P
Where:
- E = Number of edges
- N = Number of nodes
V(G) = 10 - 8 + 2 = 4