Engenharia de software

Partilhar isto
" Voltar ao Índice do Glossário

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.

Definições de termos
1. programação informática. Computer programming is a crucial field within computer science, which involves the creation of instruction sets that computers execute to accomplish specific tasks. Originating with pioneers like Ada Lovelace, programming has evolved significantly over time. From primitive programmable devices in the 9th century to the advent of stored-program computers in the 1949, the discipline has seen tremendous growth. Various programming languages and tools, like machine code, assembly languages, and high-level languages, have been developed to simplify the coding process. Modern programming places emphasis on quality attributes such as reliability, robustness, usability, portability, and maintainability. It involves various concepts and techniques like readability of source code, algorithmic complexity, and software development methodologies. Besides coding, a programmer's skills encompass prototyping, debugging, documentation, and integration. The field also extends to related topics like computer networking and competitive programming. This discipline is not just about writing code, but understanding and building functional and efficient software systems.
2. tecnologia. A tecnologia, derivada das palavras gregas que significam ofício e conhecimento, é um termo amplo que se refere às ferramentas, máquinas e sistemas desenvolvidos pelo homem para resolver problemas ou cumprir objectivos. Com origem em ferramentas primitivas como os machados de pedra e a descoberta do fogo, a tecnologia evoluiu significativamente ao longo da história da humanidade. Foi fundamental em diferentes épocas, desde a invenção da roda e dos sistemas avançados de irrigação nas civilizações antigas até ao nascimento das universidades e da imprensa durante os períodos medieval e renascentista. A Revolução Industrial, no século XVIII, marcou uma mudança significativa na produção em massa e na inovação, dando origem a tecnologias modernas como a eletricidade, os automóveis e as plataformas de comunicação digital. Hoje em dia, a tecnologia faz parte integrante de vários aspectos da vida e da sociedade, impulsionando o crescimento económico e a mudança social, ao mesmo tempo que suscita preocupações sobre a segurança, a privacidade e os impactos ambientais. Espera-se que o futuro da tecnologia traga ainda mais avanços, prevendo-se que o aumento da inteligência artificial tenha implicações significativas no mercado de trabalho.

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.

" Voltar ao Índice do Glossário
pt_PT_ao90PT
Deslocar para o topo