Software Engineering
, Unit 3
Introduction to Software Engineering
• Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be a collection of executable programming code
associated libraries and documentations. Software, when made for a specific requirement is called
software product.
• Engineering on the other hand, is all about developing products, using well-defined, scientifi
principles and methods.
• IEEE defines software engineering as: The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of software.
,Key Principles of Software Engineering
• Modularity: Breaking the software into smaller, reusable components that can be developed and
tested independently.
• Abstraction: Hiding the implementation details of a component and exposing only the necessary
functionality to other parts of the software.
• Encapsulation: Wrapping up the data and functions of an object into a single unit, and protecting
the internal state of an object from external modifications.
• Reusability: Creating components that can be used in multiple projects, which can save time and
resources.
• Maintenance: Regularly updating and improving the software to fix bugs, add new features, and
address security vulnerabilities
, • Testing: Verifying that the software meets its requirements and is free of bugs.
• Design Patterns: Solving recurring problems in software design by providing templates for solving
them.
• Agile methodologies: Using iterative and incremental development processes that focus on
customer satisfaction, rapid delivery, and flexibility.
• Continuous Integration & Deployment: Continuously integrating the code changes and
deploying them into the production environment.
, Unit 3
Introduction to Software Engineering
• Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be a collection of executable programming code
associated libraries and documentations. Software, when made for a specific requirement is called
software product.
• Engineering on the other hand, is all about developing products, using well-defined, scientifi
principles and methods.
• IEEE defines software engineering as: The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of software.
,Key Principles of Software Engineering
• Modularity: Breaking the software into smaller, reusable components that can be developed and
tested independently.
• Abstraction: Hiding the implementation details of a component and exposing only the necessary
functionality to other parts of the software.
• Encapsulation: Wrapping up the data and functions of an object into a single unit, and protecting
the internal state of an object from external modifications.
• Reusability: Creating components that can be used in multiple projects, which can save time and
resources.
• Maintenance: Regularly updating and improving the software to fix bugs, add new features, and
address security vulnerabilities
, • Testing: Verifying that the software meets its requirements and is free of bugs.
• Design Patterns: Solving recurring problems in software design by providing templates for solving
them.
• Agile methodologies: Using iterative and incremental development processes that focus on
customer satisfaction, rapid delivery, and flexibility.
• Continuous Integration & Deployment: Continuously integrating the code changes and
deploying them into the production environment.