Softwarové inženýrství

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Softwarové inženýrství je činnost zahrnující inženýrství, informatiku a management, jejímž cílem je návrh, tvorba a údržba počítačových programů.

Jako tradiční inženýrské disciplíny i softwarové inženýrství řeší především cenu a spolehlivost. Například moderní letadla mají miliony součástek (raketoplán dokonce kolem deseti milionů) a software pro jejich obsluhu může mít miliony řádků zdrojového kódu.

Známými průkopníky softwarového inženýrství byli především Fred Brooks a C. A. R. Hoare.

Pojem softwarové inženýrství není nijak jednotný, může mít víc významů: * Obecný termín, který znamená mnoho činností, dříve označovaných jako programování. * Obecný termín, který znamená praktickou činnost s počítači, na rozdíl od teoretického přístupu, který se nazývá informatika. +more * Argument pro jisté přístupy k programování se zaměřením na inženýrskou profesi, nikoli jako pohled na programování jako druh umění, řemeslné zručnosti a kultury. Tento termín se používá zvláště ve spojitosti s různými programátorskými metodologiemi a při zavádění pravidel. * Terminologie užívaná v softwarovém inženýrství (vč. pojmu softwarové inženýrství) je definovaná jako standard IEEE 610. 12.

Definice: Softwarové inženýrství je disciplína zabývající se praktickými problémy vývoje rozsáhlých softwarových systémů.

Vývoj softwarového systému zahrnuje celou řadu faktorů nutných k úspěšnému vytvoření požadovaného produktu: * technické aspekty zahrnující počítačovou infrastrukturu * netechnické aspekty jako organizační struktura organizace vyvíjející daný produkt a její ekonomické možnosti * znalostmi z oblasti specifikace požadavků na softwarový produkt, jeho analýzy, návrhu, implementace, testování a na konec také instalace u zákazníka; * lidské zdroje schopné aplikovat výše uvedené znalosti a uplatnit je tak při realizaci softwarového systému * řízení spjaté s vývojem samotného produktu umožňující efektivní (?) ??

Historie

Softwarové inženýrství je jako obor velmi mladé a ve srovnání s ostatními inženýrskými odvětvími je úplným nováčkem. Kořeny softwarového inženýrství jsou jistě mladší než celá řada jeho uživatelů. +more Právě proto tento obor zažívá bleskový rozvoj a prochází silnými proměnami. To je také důvodem, proč mnohé části softwarového inženýrství nejsou exaktně stanoveny a utvářejí se „za pochodu“, tak jak vývoj reaguje na měnící se požadavky okolního světa. Některé body softwarového inženýrství jsou považovány za neměnné, jiné lze přirovnat spíše k vysněnému ideálu.

Historii softwarového inženýrství lze rozdělit do několika základních etap. Etapa do poloviny 60. +more let minulého století: Tzv. průkopnická etapa. Programátoři té doby vytvářeli programy šité na míru danému počítači či architektuře. Vytvářené programy jsou většinou neudržované a neměnné, často jsou vypáleny na trvalé paměti.

Přelom 60. a 70. +more let: Začíná se klubat obor softwarové inženýrství. Počátek vzniku pojmů: „návrh shora dolů“, „modularita“ atd. Začíná být chápán význam správně složeného týmu.

70. léta: Softwarové inženýrství vzniká jako obor. +more Tvorba programů začíná být častějším jevem, hardware se stává dostupnější. Začínají se vytvářet první aplikace umožňující interakci s uživatelem. Začínají se prodávat knihovny a části programů jako doplňky, namísto programů šitých na míru. Spolu s těmito věcmi také vystupují první větší problémy - problém s dodávkami, nekonečné projekty - vývoj softwaru není řízen a nejsou žádné zavedené postupy. V letech 1967-1977 se začínají využívat mnohé ještě dnes používané techniky, specifikace, návrh, architektura, testování, zajištění kvality, modely životního cyklu atd.

80. léta: Zároveň s rozvojem softwaru se rozvíjí i softwarové inženýrství. +more V této době dochází k nástupu softwarově-inženýrských metodik. Nastupuje objektově orientované přístupy, objektivně orientovaná analýza a objektivně orientovaný návrh. Později i standardizace, snaha o interoperabilitu a vzájemnou spolupráci softwarových produktů, ústup jednorázových řešení, zdokonalování komponentových technologii, architektur a modelů.

1997: Softwarové inženýrství uznáno jako obor s certifikátem v USA.

Softwarová krize

Počátky vzniku softwarového inženýrství provázela krize v šedesátých letech minulého století, díky níž pravděpodobně tento obor vznikl. Charakteristickými znaky softwarové krize bylo neúnosné prodlužování a prodražování projektů, nízká kvalita programů, nesnadnost či nemožnost údržby a inovace, špatná produktivita práce programátorů, neefektivita vývoje, nejistota výsledku a řada dalších.

Příčin této krize bylo hned několik: * Špatná komunikace - mezi osobami tvořícími software a také mezi vývojáři a zákazníkem. * Nesprávný přístup - Požadovaný software vyhotovoval a schvaloval vývojář a nespokojený zákazník byl označen za osobu, která tomu nerozumí. +more * Špatné plánování - celého projektu. Vývojáři předpokládali, že to nějak stihnou. ** Nesprávné odhady - trvání vývoje, nákladů, rozsahu. * Nízká produktivita práce - Programátoři se zabývali vším možným, jen ne dosti tím, čím měli. * Neznalost základních pravidel - Např. Brooksův zákon z roku 1975: „Přidání řešitelské kapacity u zpožděného softwarového projektu způsobí jeho další zpoždění. “ * Podcenění hrozeb a rizik - Málo byly sledovány hrozby a místo snadného předcházení přerůstaly ve velké problémy. * Nezvládnuté technologie - Falešná představa, že po zavedení nové technologie se potíže samy vyřeší.

Rozdíly oproti ostatním disciplínám

;Matematika :Programy mají matematicky odvoditelné vlastnosti, ale spočítání některých parametrů by bylo v praxi neproveditelné. Matematika používá exaktní metody a formální postupy, zatímco programování zaujímá spíše pragmatické postupy. +more Teoretik Edsger Dijkstra však tvrdil, že programování je matematická disciplína.

Inženýrství :Softwarové inženýrství je mnohými považováno za inženýrskou disciplínu, protože používá pragmatické postupy očekávané od inženýra. Nicméně na rozdíl od inženýrů nepracují programátoři pouze s modely výrobku a návrhem, ale mohou nové programy okamžitě využít, což například strojní inženýr nemůže, ten musí s testy čekat na vyrobení součástky jiným oddělením. +more David Parnas argumentoval, že softwarové inženýrství je inženýrství.

Tovární výroba :Programy se vyrábějí určitou posloupností kroků, podobně jako tovární výroba. Nejedná se o pásovou výrobu, kdy například jeden programátor přidá do aplikace tlačítko, další programátor napíše na tlačítko popisek atd. +more Podobnost s tovární výrobou vedla k návrhu některých metodologií, které se snaží zrychlit a zkvalitnit výrobu programů.

Management :Komerční i větší nekomerční softwarové projekty běžně využívají management pro tvorbu rozpočtu, plánování času, najímání a řízení lidských i dalších zdrojů (počítačů, kanceláří…), což patří do zodpovědnosti manažera. Programátoři a jim příbuzní odborníci si však toto často musí / umí dělat i sami, a přitom na rozdíl od managementu ještě vytvářejí produkty. +more (podle přístupu, že kdo to dělá a potřebuje to, ať si to i sám řídí: nejtěsněji k věci).

Umění :Programátoři provádějí mnoho tvůrčích činností, podobně jako spisovatelé nebo malíři. I dobře navržené grafické uživatelské rozhraní programů je možné považovat za esteticky hodnotné. +more Navíc pojem „dobrý program“ je velmi subjektivní, a je často hodnocen více citem, než měřením. I pojmenování tříd a proměnných se řídí vkusem. Donald Ervin Knuth často zdůrazňuje, že programování je umění, jeho nejslavnější dílo se jmenuje The Art of Computer Programming (kde slovo Art znamená umění).

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top