Software Engineering – Module Wise Student Notes
MODULE I – SOFTWARE PROCESS
Nature of Software
Software is a collection of programs and instructions used to perform tasks. Unlike hardware, software does not wear
out physically and can be modified and updated easily.
Software Engineering
Software Engineering is the application of engineering principles to develop, test, and maintain software efficiently.
Software Process
A software process is a structured set of activities used to develop software systematically.
SDLC Phases
1. Planning
2. Requirement Analysis
3. Design
4. Coding
5. Testing
6. Deployment
7. Maintenance
Waterfall Model
A linear sequential model where one phase is completed before the next phase begins.
Advantages: Simple and easy to manage.
Disadvantages: Difficult to change requirements later.
Incremental Model
Software is developed in small increments. Each increment adds new features.
Agile Process
Agile focuses on flexibility, teamwork, and quick delivery of software.
Extreme Programming (XP)
XP is an Agile method focused on customer satisfaction and coding quality.
XP Values: Communication, Simplicity, Feedback, Courage, Respect.
Scrum
Scrum divides development into short cycles called sprints.
MODULE II – REQUIREMENT ENGINEERING
Requirement Engineering
Requirement Engineering is the process of collecting, analyzing, documenting, and managing requirements.
Types of Requirements
1. Functional Requirements – Describe what the system should do.
2. Non-Functional Requirements – Describe quality attributes such as performance and security.
Requirement Engineering Process
1. Feasibility Study
2. Requirement Elicitation
3. Requirement Analysis
4. Requirement Specification
5. Requirement Validation
6. Requirement Management
Requirement Elicitation Techniques
- Interviews
- Questionnaires
- Observation
- Brainstorming
- Workshops
- Use Cases
SRS (Software Requirement Specification)
Document containing complete software requirements.
Requirement Validation
Checks whether requirements are correct, complete, consistent, and realistic.
MODULE III – SYSTEM MODELLING & ARCHITECTURAL
DESIGN
Context Model
Defines system boundaries and external interactions.
Use Case Diagram
Shows interaction between users and the system.
Sequence Diagram
Shows object interaction in time order.
Class Diagram
Represents classes, attributes, methods, and relationships.
Generalization
Represents inheritance relationship.
Aggregation
Represents whole-part relationship.
Behavioural Models
Describe system behavior over time.
Architectural Design Factors
- Performance
- Security
- Reliability
- Scalability
- Maintainability
Architectural Views
1. Layered Architecture
2. Repository Architecture
3. Client-Server Architecture
4. Pipe and Filter Architecture
MODULE IV – TESTING, MAINTENANCE & REENGINEERING
Software Testing
Testing checks whether software works correctly and satisfies user requirements.
Verification vs Validation
Verification: “Are we building the product correctly?”
Validation: “Are we building the correct product?”
Types of Testing
1. Unit Testing
2. Integration Testing
3. Validation Testing
4. System Testing
5. White Box Testing
6. Black Box Testing
White Box Testing
Tests internal code structure.
Black Box Testing
Tests functionality without seeing code.
Software Maintenance
Types:
- Corrective Maintenance
- Adaptive Maintenance
- Perfective Maintenance
- Preventive Maintenance
Reengineering
Improves existing software systems.
Reverse Engineering
Recovers design information from software.
BPR (Business Process Reengineering)
Redesigns business processes to improve efficiency.
Important Comparisons
Waterfall Agile
Sequential process Iterative process
Hard to change Easy to change
Less customer interaction Continuous customer interaction
Last Minute Exam Tips
1. Study Agile, XP, and Scrum carefully.
2. Learn UML diagrams properly.
3. Revise testing types and maintenance types.
4. Practice important comparisons.
5. Write answers in points for better marks.