0% found this document useful (0 votes)
12 views4 pages

Overview of Software Engineering Principles

This chapter provides an overview of software engineering, covering its definition, types of software, and the importance of systematic approaches in software development. It outlines the Software Development Life Cycle (SDLC), various development models, roles involved, quality attributes, tools used, and challenges faced in software development. Understanding these fundamentals is crucial for creating reliable and maintainable software systems.

Uploaded by

james
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views4 pages

Overview of Software Engineering Principles

This chapter provides an overview of software engineering, covering its definition, types of software, and the importance of systematic approaches in software development. It outlines the Software Development Life Cycle (SDLC), various development models, roles involved, quality attributes, tools used, and challenges faced in software development. Understanding these fundamentals is crucial for creating reliable and maintainable software systems.

Uploaded by

james
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

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.

You might also like