Software Engineering – Weightage: 10%
1. Introduction to Software Engineering
Definition
Software Engineering is the systematic and disciplined approach to designing,
developing, testing, and maintaining software.
Objectives
Develop reliable software
Reduce development cost
Deliver software on time
Maintain software quality
Characteristics of Good Software
Reliability
Efficiency
Usability
Maintainability
Security
Software Engineering vs Programming
Programming is writing code, while software engineering includes planning,
designing, testing, and maintaining software systems.
2. Software Process Models
Software process models describe how software is developed step by step.
Common Process Models
Waterfall Model
Sequential development
Each phase completed before the next
V-Model
Testing phase corresponding to each development phase
Incremental Model
Software developed in small increments
Spiral Model
Combines iterative development and risk analysis
Prototype Model
Early prototype created for user feedback
3. Agile Software Development
Agile is an iterative and flexible software development approach.
Agile Principles
Customer collaboration
Working software over documentation
Continuous improvement
Fast delivery
Agile Frameworks
Scrum
Kanban
Extreme Programming (XP)
Agile Practices
Daily stand-up meetings
Sprint planning
Continuous integration
4. Software Requirements Engineering
Requirements engineering focuses on collecting, analyzing, and documenting
system requirements.
Types of Requirements
Functional Requirements
What the system should do.
Example:
User login system.
Non-Functional Requirements
Quality attributes.
Example:
Security, performance.
Requirements Process
1. Requirements gathering
2. Analysis
3. Specification
4. Validation
5. Management
5. Software Project Management
Project management ensures software projects are completed on time, within
budget, and with required quality.
Key Activities
Project planning
Scheduling
Resource allocation
Budget management
Risk management
Tools
Gantt charts
PERT charts
Project management software
6. Software Design
Software design transforms requirements into system architecture and
components.
Design Principles
Modularity
Abstraction
Encapsulation
Low coupling
High cohesion
Design Types
High-Level Design (HLD)
Low-Level Design (LLD)
7. Software Architecture
Software architecture defines overall structure of a software system.
Architecture Components
Components
Connectors
Interfaces
Common Architecture Styles
Layered architecture
Client-server architecture
Microservices architecture
Service-Oriented Architecture (SOA)
8. User Interface Design
UI design focuses on designing user-friendly interfaces.
Goals
Easy to use
Visually appealing
Efficient navigation
Principles
Consistency
Simplicity
Feedback
Accessibility
UI Components
Buttons
Forms
Menus
Navigation bars
9. Software Implementation & Coding
Implementation involves writing program code based on design.
Coding Standards
Clear variable names
Proper indentation
Code documentation
Best Practices
Reusable code
Version control
Code reviews
10. Software Testing
Software testing verifies that software works correctly and meets requirements.
Types of Testing
Unit Testing
Testing individual components.
Integration Testing
Testing interaction between modules.
System Testing
Testing complete system.
Acceptance Testing
Testing with real users.
Testing Methods
Black box testing
White box testing
11. Software Maintenance & Evolution
Maintenance refers to modifying software after deployment.
Types of Maintenance
Corrective Maintenance
Fixing bugs.
Adaptive Maintenance
Adapting to new environments.
Perfective Maintenance
Improving performance.
Preventive Maintenance
Preventing future problems.
12. Software Quality Assurance (SQA)
SQA ensures software meets quality standards.
Activities
Process monitoring
Code reviews
Testing standards
Quality audits
Quality Factors
Reliability
Performance
Security
Usability
13. Software Metrics & Measurement
Metrics measure software performance and development progress.
Types of Metrics
Product Metrics
Measure software quality.
Example:
Defect density.
Process Metrics
Measure development process.
Example:
Development time.
Project Metrics
Measure project performance.
Example:
Cost and schedule variance.
14. Software Configuration Management (SCM)
SCM manages changes to software artifacts during development.
Activities
Version control
Change management
Build management
Release management
Tools
Git
SVN
GitHub
GitLab
15. Software Risk Management
Risk management identifies and handles potential problems in software projects.
Types of Risks
Technical risks
Project risks
Business risks
Risk Management Process
1. Risk identification
2. Risk analysis
3. Risk mitigation
4. Risk monitoring
16. Software Security Engineering
Software security engineering focuses on building secure software systems.
Security Principles
Confidentiality
Integrity
Availability
Security Techniques
Authentication
Encryption
Secure coding
Access control
Common Security Threats
Malware
SQL injection
Cross-site scripting
Data breaches