CHAPTER 21: INTRODUCTION TO SOFTWARE ENGINEERING
BSIT 1A – Bachelor of Science in Information Technology
21.1 Introduction
Software Engineering is the systematic approach to the design,
development, testing, deployment, and maintenance of software systems.
It applies engineering principles to software creation to ensure quality,
reliability, efficiency, and scalability.
21.2 What is Software?
Software is a collection of programs, data, and documentation that
instructs a computer to perform specific tasks.
Types of Software
1. System Software – Operating systems, device drivers
2. Application Software – Word processors, browsers, mobile apps
3. Utility Software – Antivirus, backup tools
4. Embedded Software – Software built into hardware devices
21.3 Importance of Software Engineering
Produces reliable and high-quality software
Reduces development cost and time
Improves maintainability and scalability
Ensures user requirements are met
Minimizes software failures and risks
21.4 Software Development Life Cycle (SDLC)
The SDLC defines the phases involved in developing software.
a. Planning
Identify project goals
Estimate cost and resources
Determine project feasibility
b. Requirements Analysis
Gather user and system requirements
Define functional and non-functional requirements
Document requirements clearly
c. Design
System architecture design
Database design
User interface design
d. Development (Coding)
Convert design into source code
Follow coding standards
Use version control systems
e. Testing
Detect and fix errors (bugs)
Types: Unit testing, integration testing, system testing
f. Deployment
Release software to users
Install and configure system
g. Maintenance
Fix bugs
Improve performance
Add new features
21.5 Software Development Models
a. Waterfall Model
Linear and sequential
Each phase must be completed before the next
Suitable for small, well-defined projects
b. Agile Model
Iterative and incremental
Emphasizes collaboration and flexibility
Common frameworks: Scrum, Kanban
c. Spiral Model
Combines iterative development with risk analysis
Suitable for large and complex systems
21.6 Roles in Software Engineering
Software Engineer – Designs and develops software
System Analyst – Gathers and analyzes requirements
Project Manager – Plans and manages project execution
Quality Assurance (QA) Tester – Ensures software quality
End User – Uses and provides feedback on the software
21.7 Software Quality Attributes
Correctness – Meets requirements
Reliability – Performs consistently
Efficiency – Uses resources effectively
Usability – Easy to use
Maintainability – Easy to modify and update
Security – Protects data and access
21.8 Tools Used in Software Engineering
IDEs: Visual Studio Code, Eclipse
Version Control: Git, GitHub
Project Management: Jira, Trello
Testing Tools: Selenium, JUnit
21.9 Challenges in Software Development
Changing requirements
Time and budget constraints
Security vulnerabilities
Software complexity
Team communication issues
21.10 Summary
This chapter introduced the fundamentals of software engineering,
including software types, SDLC phases, development models, roles,
quality attributes, and common challenges. Software engineering
principles are essential for building reliable, scalable, and maintainable IT
systems.