Co je softwarové inženýrství? Definice, základy, charakteristika
Co je softwarové inženýrství?
Softwarové inženýrství je definováno jako proces analýzy požadavků uživatelů a následného návrhu, sestavení a testování softwarové aplikace, která tyto požadavky splní.
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, vypočitatelného přístupu pro vývoj, provoz a údržbu softwaru.
- Fritz Bauer to definoval jako „založení a použil standardní inženýrské principy. Pomůže vám ekonomicky získat software, který je spolehlivý a efektivně funguje na skutečných strojích.
- Boehm definuje softwarové inženýrství, které zahrnuje „praktickou aplikaci vědeckých poznatků při kreativním navrhování a vytváření počítačových programů. Zahrnuje také související dokumentaci potřebnou pro jejich vývoj, provoz a údržbu.“
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ýstupem byl nespolehlivý software, jehož údržba je nákladná.
- Větší software byl náročný a poměrně nákladný na údržbu.
- Spousta softwaru není schopna uspokojit rostoucí požadavky zákazníka.
- Složitost softwarových projektů se zvyšovala, kdykoli se zvýšila jeho hardwarová kapacita.
- Poptávka po novém softwaru rostla rychleji ve srovnání se schopností generovat nový software.
Všechny výše uvedené problémy vedou k „Softwarové krizi“.
Řešení
Řešením problému byla transformace neorganizovaného kódování na disciplínu softwarového inženýrství. Tyto inženýrské modely pomohly společnostem zefektivnit provoz a dodat software splňující požadavky zákazníků.
- Koncem sedmdesátých let došlo k širokému využití principů softwarového inženýrství.
- V 1980. letech došlo k automatizaci procesu softwarového inženýrství a růstu (CASE) Computer-Aided Software Engineering.
- V 1990. letech 9001. století byl zaznamenán zvýšený důraz na aspekty „řízení“ standardů kvality projektů a procesů, stejně jako ISO XNUMX
Proč je softwarové inženýrství populární?
Zde jsou důležité důvody popularity softwarového inženýrství:
- Velký software – V našem reálném životě je mnohem pohodlnější postavit zeď než dům nebo budovu. Stejně tak, jak se velikost softwaru zvětšuje, softwarové inženýrství vám pomáhá vytvářet software.
- Škálovatelnost- Pokud by proces vývoje softwaru byl založen na vědeckých a inženýrských konceptech, je snazší znovu vytvořit nový software a škálovat stávající.
- Přizpůsobivost: Kdykoli byl softwarový proces založen na vědeckých a inženýrských základech, je snadné znovu vytvořit nový software pomocí softwarového inženýrství.
- Náklady- Hardwarový průmysl ukázal své dovednosti a obrovská výroba snížila náklady na počítač 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ší způsob vývoje softwaru pro poskytování kvalitních softwarových produktů.
Vztah softwarového inženýrství k jiným oborům
Zde, jak softwarové inženýrství souvisí s jinými disciplínami:
- Počítačová věda: Poskytuje vědecký základ pro software, protože elektrotechnika závisí hlavně na fyzice.
- Management věda: Softwarové inženýrství je pracná práce, která vyžaduje technickou i manažerskou kontrolu. Proto je široce používán v managementu.
- Ekonomika: V tomto sektoru vám softwarové inženýrství pomáhá při odhadu zdrojů a řízení nákladů. Musí být vyvinut výpočetní systém a data by měla být pravidelně udržová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. Metody softwarového inženýrství by měly být aplikovány na studium tohoto typu systémů.
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í, jaderné elektrárny atd., 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í zvýšené složitosti potřeby softwaru pro nové aplikace.
- Různorodost softwarových systémů by měla mezi sebou komunikovat.
Atributy pro softwarové produkty
Charakteristiky jakéhokoli softwarového produktu zahrnují funkce, které jsou zobrazeny produktem, když je nainstalován a uveden do provozu.
Nejsou to služby, které produkt poskytuje. Místo toho se týkají dynamického chování produktů a použití produktu.
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 měla nadměrně využívat systémové prostředky, jako je paměť a cyklus procesoru. |
Použitelnost | Softwarová aplikace by měla mít specifické uživatelské rozhraní a dokumentaci. |
Optimalizace výše uvedeného atributu 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 jaké jsou metody, 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 dává vědět, jak dobře software funguje v operacích, které lze měřit na:
- 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 má software schopnosti přizpůsobit se rychle se měnícímu prostředí:
- Flexibilita
- Udržitelnost
- Modularita
- Škálovatelnost
Shrnutí
- Softwarové inženýrství je proces analýzy požadavků uživatelů a následného návrhu, sestavení a testování softwarové aplikace, která tyto požadavky splní
- Důležité důvody pro použití softwarového inženýrství jsou: 1) Velký software, 2) Škálovatelnost 3) Adaptabilita 4) Cena a 5) Dynamická povaha.
- Na konci 1960. let mnoho softwaru překročilo rozpočet. Nabízí tedy nespolehlivý software, jehož údržba je nákladná.
- Koncem sedmdesátých let došlo k širokému využití principů softwarového inženýrství.
- Koncepce softwarového inženýrství 1) Informatika 2) Management Science 3) Systémové inženýrství a 4) Ekonomika
- Zvýšené požadavky trhu na rychlou dobu obratu jsou největší výzvou v oblasti softwarového inženýrství.
- 1) Udržitelnost, 2) Spolehlivost, 3) Efektivita a 4) Použitelnost jsou nejdůležitějšími atributy softwarových produktů.
- Tři nejdůležitější vlastnosti dobrého softwaru jsou 1) Operapřechodné 2)Přechodné 3)Údržba.