Software Engineering is the process of designing, developing, testing, and maintaining software. It is a systematic and disciplined approach to software development that aims to create high-quality, reliable, and maintainable software. Software engineers create software solutions for end users by utilizing engineering principles and their understanding of programming languages
Functionality, Reliability, Usability (User-friendly, Efficiency, Flexibility, Portability, Integrity
Functionality: It refers to the software performance compared to the purpose it was created for.
Reliability: It is a characteristics of software that refers to its ability to perform what it was designed to do accurately and consistently over time.
Usability (User-friendly): It refers to the extent to which the software can be used with ease. The amount of effort or time required to learn how to use the software.
Efficiency: It refers to the ability of the software to use system resources in the most effective and efficient manner.
Flexibility: It refers to how simple it is to improve and modify the software.
Maintainability: It refers to how easily a software system can be modified to add feature, improve speed, or repair faults.
Portability: It refers to how well the software can work on different platforms or situations without making major modifications.
Integrity: It refers to how well the software maintains the accuracy and consistency of data throughout its cycle.
The software is used extensively in several domains including hospitals, banks, schools, defense, finance, stock markets, and so on. It can be categorized into different types:
Based on Application
- System Software
- Application Software
- Web Applications Software
- Embedded Software
- Reservation Software
- Business Software
- Artificial Intelligence Software
- Scientific Software
Based on Copyright
- Commercial Software
- Shareware Software
- Freeware Software
- Public Domain Software
SDLC stands for Software Development Life Cycle. It is a process followed for software building within a software organization. SDLC consists of a precise plan that describes how to develop, maintain, replace, and enhance specific software. The life cycle defines a method for improving the quality of software and the all-around development process.
Phases of SDLC
Following are the phases of SDLC:
1. Planning and Requirement Analysis
2. Defining Requirements
3. Designing Architecture
4. Developing Product
5. Product Testing and Integration
6. Deployment and Maintenance of Products