Introduction to Software Engineering
Software Engineering is engineering that is related to building a software product using techniques, methods, and scientific principles. Using software engineering we can make efficient, effective, and reliable software.
Software is a collection of programs and a program is a collection of instructions that does a specific task.
Engineering is the application of scientific and practical knowledge to invent, design, build, maintain, and improve frameworks and processes. Engineering can be chemical engineering, civil engineering, industrial engineering, electrical engineering, mechanical engineering, and software engineering.
Some important principles of software engineering:
- Modularity โ Creating smaller components of the software, making components reusable that can be maintained and tested independently
- Abstraction โ Hiding the implementation details of a component and showing only the important functions to other modules of the software
- Encapsulation โ Wrapping and protecting the function of a component from outside of that component.
- Reusability โ Creating components that can be used multiple times in the same or other projects
- Maintenance โ Updating, maintaining, and improving the software regularly to fix bugs, add new features, and fix the found vulnerability
- Testing โ Testing the software if there are bugs or if it meets or not to the software requirements
- Designing โ Solving recurring problems in software design by providing templates for solving them.
- Scalable and Deployment โ Continuously updating the codes and deploying them in production.
Program vs Software
Program | Software | |
1 | A program is a set of instructions that are given to the computer to perform a specific task on the computer | When a program is completely made and is ready to use for production and commercial businesses is called Software |
2 | A program is a stage of software development | Software development involves a feasibility study of the project, getting requirements, creating a prototype, system design, coding, and Testing |
Software = Program+Documentation+Licensing
Benefits of Software Engineering
- Time Saving
- Less Complex
- Minimize Software Cost
- Reliable Software
- Effective
- Handling Big Project