Software engineering is a specialized field of study that emerged in the 1960s, primarily concerned with the design and creation of software systems. The discipline experienced significant evolution due to the rapid advancements in hardware tecnologia[2]. It gained global recognition after the term ‘software engineering’ was popularized at the 1968 NATO conference and further endorsed by Margaret Hamilton during her work on the Apollo program. Today, it encompasses a range of practices and specialties, including project management, system analysis, development, testing, and more. The education for this profession typically begins with a solid foundation in programação informática[1], often obtained through a university degree or vocational training, followed by continual learning outlined by resources like the Software Engineering Body of Knowledge (SWEBOK). Software engineers work across various sectors and can often choose to be freelancers. They may also pursue professional certifications to enhance their career prospects. Despite varying global regulations, the field adheres to codes of ethics published by professional organizations like the IEEE and ACM.
Engenharia de software é um engineering-based approach to software development. A software engineer is a person who applies the engineering design process to design, develop, test, maintain, and evaluate software informático. The term programmer is sometimes used as a synonym, but may emphasize software implementation over design and can also lack connotations of engineering education or skills.
Engineering techniques are used to inform the software development process, which involves the definition, implementation, assessment, measurement, management, change, and improvement of the software life cycle process itself. It heavily uses software configuration management, which is about systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration and code throughout the system life cycle. Modern processes use software versioning.