Co je softwarové inženýrství? Charakteristika, definice
⚡ Chytré shrnutí
Softwarové inženýrství je disciplinovaný proces analýzy požadavků a následného návrhu, tvorby a testování softwaru, který je splňuje. Tento zdroj vysvětluje jeho definice, softwarovou krizi, která ho způsobila, jeho popularitu, související obory, výzvy a vlastnosti dobrého softwaru.

Co je softwarové inženýrství?
Softwarové inženýrství je definováno jako proces analýzy uživatelských požadavků a následného návrhu, tvorby a testování softwarové aplikace, která tyto požadavky splňuje.
Podívejme se na různé definice softwarového inženýrství:
- IEEE ve své normě 610.12-1990 definuje softwarové inženýrství jako aplikaci systematického, disciplinovaného a vypočítatelného přístupu k vývoji, provozu a údržbě softwaru.
- Fritz Bauer to definoval jako „zavedení a používání standardních inženýrských principů. Pomáhá vám to ekonomicky získat software, který je spolehlivý a efektivně funguje na reálných strojích“.
- Boehm definuje softwarové inženýrství jako „praktickou aplikaci vědeckých poznatků na kreativní návrh a tvorbu počítačových programů“. Zahrnuje také související dokumentaci potřebnou pro vývoj“ping, jejich provozování a údržba.“
Proč softwarové inženýrství? Softwarová krize a její řešení
Co to byla softwarová krize?
- Bylo to koncem 1960. let, kdy mnoho softwarových projektů selhalo.
- Mnoho softwaru překročilo rozpočet. Výsledkem byl nespolehlivý software, jehož údržba byla drahá.
- Větší software byl náročný a poměrně nákladný na údržbu.
- Mnoho softwaru nebylo schopno uspokojit rostoucí požadavky zákazníka.
- Složitost softwarových projektů se zvyšovala vždy, když se zvyšovaly jejich hardwarové možnosti.
- Poptávka po novém softwaru rostla rychleji ve srovnání se schopností generovat nový software.
Všechny výše uvedené problémy vedly k „softwarové krizi“.
Řešení
Řešením problému byla transformace neorganizovaného kódovacího úsilí do disciplíny softwarového inženýrství. Tyto inženýrské modely pomohly společnostem zefektivnit provoz a dodávat software splňující požadavky zákazníků.
- Konec 70. let 20. století byl svědkem širokého používání principů softwarového inženýrství.
- V 80. letech 20. století došlo k automatizaci procesu softwarového inženýrství a rozvoji počítačem podporovaného softwarového inženýrství (CASE).
- V 90. letech 20. století se kladl větší důraz na „řídící“ aspekty projektů a standardy kvality a procesů, stejně jako ISO 9001.
Proč je softwarové inženýrství populární?
Zde jsou důležité důvody popularity softwarového inženýrství:
- Velký software – V reálném životě je mnohem snazší postavit zeď než dům nebo budovu. Stejně tak, jak se velikost softwaru zvětšuje, softwarové inženýrství vám pomůže s jeho tvorbou.
- Škálovatelnost – Pokud je proces vývoje softwaru založen na vědeckých a inženýrských konceptech, je snazší znovu vytvořit nový software pro škálování stávajícího.
- Přizpůsobivost – Pokud je softwarový proces založen na vědeckých a inženýrských principech, je snadné znovu vytvořit nový software s pomocí softwarového inženýrství.
- Stát – Hardwarový průmysl ukázal své dovednosti a obrovská výroba snížila náklady na počítače a elektronický hardware.
- Dynamická příroda – Neustále rostoucí a přizpůsobující se povaha softwaru. Záleží na prostředí, ve kterém uživatel pracuje.
- Řízení jakosti – Nabízí lepší metodu vývoje softwaru pro poskytování kvalitních softwarových produktů.
Vztah softwarového inženýrství k jiným oborům
Zde je ukázka vztahu softwarového inženýrství k jiným oborům:
- Počítačová věda: Poskytuje vědecký základ pro software, stejně jako je fyzika základem pro elektrotechniku.
- Management věda: Softwarové inženýrství je práce náročná na pracovní sílu, která vyžaduje jak technické, tak manažerské řízení. Proto se široce používá v manažerské vědě.
- Ekonomika: V tomto odvětví vám softwarové inženýrství pomáhá s odhadem zdrojů a kontrolou nákladů. Musí být vyvinut výpočetní systém a data by měla být pravidelně uchovávána v rámci daného rozpočtu.
- Systémové inženýrství: Většina softwaru je součástí mnohem většího systému, například software v průmyslovém monitorovacím systému nebo letový software v letadle. Pro studium těchto typů systémů by se měly aplikovat metody softwarového inženýrství.
Výzvy softwarového inženýrství
Zde jsou některé kritické výzvy, kterým čelí softwaroví inženýři:
- V oblastech kritických z hlediska bezpečnosti, jako je vesmír, letectví a jaderné elektrárny, mohou být náklady na selhání softwaru obrovské, protože jsou ohroženy životy.
- Zvýšené požadavky trhu na rychlou dobu obratu.
- Řešení rostoucí složitosti softwaru potřebného pro nové aplikace.
- Rozmanitost softwarových systémů, které by měly spolu komunikovat.
Atributy pro softwarové produkty
Charakteristiky jakéhokoli softwarového produktu zahrnují funkce, které produkt zobrazuje při instalaci a uvedení do provozu.
Nejsou to služby, které produkt poskytuje. Spíše se vztahují k dynamickému chování produktu a jeho využití.
Příklady těchto atributů jsou:
Efficiency, reliability, robustness, maintainability, etc.
Relativní význam těchto charakteristik se však u jednotlivých softwarových systémů liší.
| Charakteristika produktu | Description |
|---|---|
| Udržitelnost | Software by se měl vyvíjet, aby vyhovoval měnícím se požadavkům klientů. |
| Spolehlivost | Spolehlivost zahrnuje různé vlastnosti. Spolehlivý software by nikdy neměl způsobit žádné fyzické nebo ekonomické škody v době selhání systému. |
| Účinnost | Softwarová aplikace by neměla nadměrně využívat systémové prostředky, jako je paměť a procesor. |
| Použitelnost | Softwarová aplikace by měla mít vhodné uživatelské rozhraní a dokumentaci. |
Optimalizace výše uvedených atributů je velmi náročná. Například nabídka lepšího uživatelského rozhraní může snížit efektivitu systému.
Charakteristika dobrého softwaru
Jakýkoli software by měl být posuzován podle toho, co nabízí, a podle metod, které vám pomohou jej používat.
Každý software musí splňovat následující atributy:
- OperaTional
- Přechodný
- Údržba
Zde jsou některé důležité vlastnosti dobrého softwaru vyvinutého softwarovými profesionály.
OperaTional
Tato charakteristika nám umožňuje zjistit, jak dobře software funguje v provozu, což lze měřit na základě:
- Rozpočet
- Účinnost
- Použitelnost
- Spolehlivost
- Správnost
- Funkčnost
- Bezpečnost
- Bezpečnost
Přechodný
Toto je základní aspekt při přesunu softwaru z jedné platformy na druhou:
- Interoperabilita
- Opakovatelnost
- Přenositelnost
- Přizpůsobivost
Údržba
Tento aspekt hovoří o tom, jak dobře se software dokáže přizpůsobit rychle se měnícímu prostředí:
- Flexibilita
- Udržitelnost
- Modularita
- Škálovatelnost

