People make new computer programs. 
People make new computer programs. 

Software engineering is a way to make computer programs. 
First, people study what the software must do. These are called requirements. Next, they make a plan. This is called design. They plan how the parts work together. Then, they write the code. This part is called construction.
After that, they must test the software. Testing finds mistakes. It checks if the program is safe and fast. People also fix errors after the program is done. This is called maintenance. This work can cost a lot of money.
Some people say this is not true engineering. They say real engineering builds physical things like bridges. Writing code only moves data. But software is very important today. It helps many modern machines work. 
Software engineering is a special way to build computer programs. It is a branch of computer science and engineering. This field focuses on designing, making, and testing software. It also involves keeping software working well over a long time. Engineers use specific rules to make sure software meets what people need. Some people argue about the name of this job. They say true engineering builds physical things like bridges or machines. They believe writing code only moves data and logic. However, software is a vital part of almost every modern system today. 
Making software follows a very careful set of steps. First, people look at requirements to see what the software must do. They study functional needs, like what the program outputs. They also look at non-functional needs, like how secure or fast it is. Next comes the design stage to make high-level plans. This includes planning how the main parts of the system will talk to each other. After the plan is ready, construction begins through coding. Finally, testers check the work to find any mistakes or risks. 
This field grew out of a struggle to make better programs. In the 1960s, many software projects had big problems. They often went over their budgets or missed their deadlines. Sometimes the software was never even finished or did not work for users. This was known as a "software crisis." To fix this, NATO organized a big conference in 1968. This meeting helped create the first official guidelines for the field. Professor Friedrich L. Bauer is often linked to this important event. 
Many important people helped shape how we work with software today. Margaret Hamilton worked on software during the Apollo missions. She used the term "software engineering" to show the importance of her work. In 1984, the Software Engineering Institute was started in Pittsburgh, Pennsylvania. It is located at Carnegie Mellon University. A man named Watts Humphrey founded its process program there. This helped the US Government learn how to judge software teams. Today, many experts follow the Software Engineering Body of Knowledge. 
Learning this skill often starts with a college degree. Many students study computer programming before they start engineering. In 1987, Imperial College London offered the first three-year degree in the world. Since then, many more schools have added these programs. In the United States, there are hundreds of different degree levels available. Students can also learn through internships at big companies. Some people even gain experience through military service. This training helps them manage the complex systems we use every day. 
Software engineering is a specialized branch of computer science and engineering. It focuses on the design, development, testing, and maintenance of software applications. This field uses engineering principles and programming expertise to build systems that meet specific user needs. While many people use the terms interchangeably, some experts distinguish between programmers and engineers. True engineering typically involves creating physical systems with measurable real-world consequences, such as bridges or machines. Writing code manipulates abstract logic and data rather than direct physical objects. However, software is now a critical component in modern systems like the Internet of Things and cyber-physical systems. 
The process of creating software follows several disciplined stages. It begins with requirements analysis, where developers determine what the software must do. This involves gathering functional requirements, which describe expected behaviors or outputs. It also includes non-functional requirements, such as security, reliability, and performance. Next is the design stage, where high-level plans are created. This includes interface design for user interaction and architectural design for major system components. Detailed design then outlines internal elements like algorithms and data structures. Finally, construction occurs through programming, unit testing, and debugging to implement the design.
Testing is a vital part of the software lifecycle and is often a separate activity. It is an empirical, technical investigation used to check the quality of the software. Testing is frequently viewed as a risk-based activity. Test engineers or quality assurance professionals often perform these checks at the system level. Their goal is to minimize the number of tests needed while prioritizing the most important risks. After the software is released, it enters the maintenance stage. Maintenance includes error correction, optimizing performance, and enhancing existing features. Interestingly, maintenance can account for 40% to 80% of the total project cost.
The history of software engineering is rooted in a period known as the "software crisis." During the 1960s, many software projects faced severe challenges. Programs often exceeded their budgets or missed important deadlines. Many systems required extensive debugging, or fixing errors, and failed to meet consumer needs. Some projects were never even completed. To address these emerging challenges, NATO organized a major conference in 1968. This meeting helped formalize guidelines and best practices for creating reliable and maintainable software. Professor Friedrich L. Bauer is often associated with this foundational era.
Several key figures helped establish the legitimacy of the discipline. Margaret Hamilton used the term "software engineering" during the Apollo missions to describe her work. This helped people understand the importance of the task. In 1984, the Software Engineering Institute (SEI) was established in Pittsburgh, Pennsylvania. It is a federally funded research and development center located at Carnegie Mellon University. Watts Humphrey founded the SEI Software Process Program there. This program introduced the Capability Maturity Model Integration for Development (CMMI-DEV). This model is used by the US Government to evaluate the abilities of software development teams.
Today, the field is guided by established bodies of knowledge and academic standards. The ISO/IEC JTC 1/SC 7 subcommittee publishes the Software Engineering Body of Knowledge (SWEBOK). This serves as a collection of modern, accepted best practices. Software engineering is also closely tied to systems engineering. In modern architectures, software is often the primary way to integrate complex system components. Because of this, good systems engineering is considered a key factor in enabling successful software engineering. The two disciplines are described as being intimately intertwined.
Education is a primary pathway into the software engineering profession. Most practitioners obtain a university degree or undergo vocational training. Knowledge of computer programming is a necessary prerequisite. In 1987, Imperial College London introduced the world's first three-year bachelor's degree in software engineering. Since then, many universities have expanded their offerings. In the United States alone, there are hundreds of programs ranging from bachelor's degrees to doctorates. Students can also gain real-world experience through company internships or military service. 
🖼️ Images & Media (1)
More to explore
✨ What else?
Related topics you might enjoy
🔬 Go deeper
More advanced topics to explore
🪜 Step back
Simpler topics to build understanding
What is Nepedia?
A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.