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.

  • 📘 Základní definice: Softwarové inženýrství aplikuje systematické a disciplinované inženýrské principy k vývoji, provozu a údržbě spolehlivého softwaru.
  • ⚠️ Softwarová krize: Neúspěchy projektů na konci 1960. let a rostoucí náklady vytvořily potřebu strukturované inženýrské disciplíny.
  • 📈 Proč je důležitá: Umožňuje tvorbu rozsáhlého, škálovatelného, ​​adaptabilního a nákladově efektivního softwaru s konzistentní správou kvality.
  • 🔗 Související obory: Čerpá z informatiky, manažerských věd, ekonomie a systémového inženýrství.
  • (Tj. Dobrý software: Kvalitní software je provozuschopný, přechodný a udržovatelný v měnícím se prostředí.

Co je softwarové inženýrství

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í:

Proč je softwarové inženýrství populární

  • 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

Nejčastější dotazy

Umělá inteligence pomáhá s generováním kódu, automatizovaným testováním a detekcí chyb. Zvládá rutinní úkoly, což umožňuje inženýrům soustředit se na návrh, architekturu a řešení složitých problémů, a přitom stále vyžaduje lidskou kontrolu kvality a správnosti.

Ne. Umělá inteligence zvyšuje produktivitu, ale nemůže nahradit lidský úsudek při shromažďování požadavků, navrhování architektury, zvažování etických kompromisů a přijímání složitých rozhodnutí. Inženýři stále častěji řídí a ověřují výstupy, které nástroje umělé inteligence generují.

Programování se zaměřuje na psaní kódu. Softwarové inženýrství aplikuje disciplinované procesy v celém životním cyklu, včetně požadavků, návrhu, testování a údržby, aby dodávalo spolehlivý software ve velkém měřítku v rámci rozpočtových a časových omezení.

Základní životní cyklus zahrnuje analýzu požadavků, návrh, kódování, testování, nasazení a údržbu. Každá fáze navazuje na předchozí, aby se zajistilo, že finální software je spolehlivý, udržovatelný a splňuje potřeby uživatelů.

Shrňte tento příspěvek takto: