Softwarové inženýrství
Z Multimediaexpo.cz
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[1] 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.
- 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.[2]
Obsah |
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ů. 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. 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. 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. 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í. 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í.
- Š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í."[3]
- 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. 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. 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. Je však nemyslitelné, že by se jednalo o striktně pásovou výrobu, kdy jeden programátor přidá do aplikace tlačítko, další programátor napíše na tlačítko popisek atd. Nicméně 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 potřebují management pro rozpočet, plánování času, najímání a řízení lidských i dalších zdrojů (počítačů, kanceláří…), což patří do činnosti manažera. Na rozdíl od managementu však programátoři vytvářejí produkty, takže mohou vykazovat činnost.
- 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é. 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í).
Reference
- ↑ (anglicky) Fred Brooks, anglická Wikipedie
- ↑ (anglicky) IEEE standard glossary of software engineering terminology, norma IEEE 610.12-1990
- ↑ (anglicky) BROOKS, Frederick Phillips, ml.. The Mythical Man Month: Essays on Software Engineering. [s.l.] : Addison-Wesley, 1995. ISBN 0-201-83595-9. „Adding manpower to a late software project makes it later.“
|
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |