Softwarové inženýrství

Softwarové inženýrství (angl. Software Engineering) je disciplína vědy o počítačích, která se zabývá systematickým, disciplinovaným a měřitelným přístupem k návrhu, vývoji, testování, nasazení, údržbě a správě softwarových systémů. Cílem softwarového inženýrství je vytvářet kvalitní software, který splňuje požadavky uživatelů, je spolehlivý, údržbou snadno upravitelný a ekonomicky efektivní v celém svém životním cyklu.

Původ termínu

Termín „softwarové inženýrství“ byl poprvé použit na konferenci NATO Software Engineering Conference v roce 1968, jako reakce na tzv. softwarovou krizi (software crisis) – období, kdy se mnoho softwarových projektů značně prodražovalo, zpožďovalo nebo zcela selhalo kvůli nedostatečnému plánování, chybějícím metodikám a rostoucí složitosti systémů.

Klíčové principy

Systematičnost – software se vyvíjí podle jasně definovaných fází a procesů.
Opakovatelnost – používají se osvědčené postupy, které lze znovu aplikovat v různých projektech.
Řízení kvality – kvalita softwaru je kontrolována během celého vývojového cyklu (např. kódové revize, testování, statická analýza).
Zaměření na uživatele – softwarové řešení musí splňovat skutečné potřeby jeho cílové skupiny.
Správa změn – změny požadavků nebo technologií jsou řízeny formálními procesy (např. správa verzí, change management).

Hlavní aktivity

Shromažďování a analýza požadavků
Návrh architektury a komponent
Implementace (kódování)
Testování (jednotkové, integrační, systémové, uživatelské)
Nasazení a provoz
Údržba a evoluce softwaru

Související disciplíny

Počítačová věda
Projektový management
Kybernetická bezpečnost
Interakce člověk–počítač (HCI)
DevOps a SRE (Site Reliability Engineering)

Významné metodiky a přístupy

Vodopádový model (Waterfall)
Agilní metody (Agile) – např. Scrum, Kanban, Extreme Programming
DevOps – integrace vývoje a provozu
CI/CD – průběžná integrace a nasazování

Reference

IEEE Standard Glossary of Software Engineering Terminology (IEEE Std 610.12-1990)
Ian Sommerville: Software Engineering, 10th Edition, Pearson, 2015
NATO Software Engineering Conferences (1968, 1969)