Autor programovacího jazyka c. §1 Obecné informace o jazyce

C++ programovací jazyk

Poslední aktualizace: 28.08.2017

Programovací jazyk C++ je kompilovaný programovací jazyk na vysoké úrovni obecný účel staticky typované, což je vhodné pro vytváření široké škály aplikací. C++ je dnes jedním z nejpopulárnějších a nejrozšířenějších jazyků.

Má své kořeny v jazyce C, který byl vyvinut v letech 1969-1973 v Bell Labs programátorem Dennisem Ritchiem. Na začátku 80. let dánský programátor Bjarne Stroustrup, tehdy pracující v Bell Labs, vyvinul C++ jako rozšíření jazyka C. Ve skutečnosti na začátku C++ jednoduše doplnil jazyk C o některé možnosti objektově orientovaného programování. A proto to sám Stroustrup zpočátku nazval „C s třídami“.

Následně si nový jazyk začal získávat na popularitě. Byly do něj přidány nové funkce, které z něj udělaly nejen doplněk k C, ale zcela nový programovací jazyk. V důsledku toho bylo „C s třídami“ přejmenováno na C++. A od té doby se oba jazyky začaly vyvíjet nezávisle na sobě.

C++ je výkonný jazyk, který zdědí bohaté paměťové schopnosti od jazyka C. Proto C++ často nachází své využití v programování systému, zejména při vytváření operačních systémů, ovladačů, různých utilit, antivirů atd. Mimochodem, OS Windows je většinou napsán v C++. Ale pouze aplikace pro systémové programování tohoto jazyka neomezená. C++ lze použít v programech jakékoli úrovně, kde je důležitá rychlost a výkon. Často se používá k vytváření grafických aplikací, různých aplikační programy. Zvláště často se také používá k vytváření her s bohatou a bohatou vizualizací. Kromě toho v Nedávno Nabírá na obrátkách mobilní směr, kde své uplatnění našlo i C++. A dokonce i ve vývoji webu můžete také použít C++ k vytváření webových aplikací nebo některých podpůrných služeb, které slouží webovým aplikacím. Obecně je C++ široce používaný jazyk, ve kterém můžete vytvořit téměř jakýkoli typ programu.

C++ je kompilovaný jazyk, což znamená, že překladač překládá zdroj v C++ do spustitelného souboru, který obsahuje sadu strojových instrukcí. Ale různé platformy mají své vlastní charakteristiky, takže zkompilované programy nelze jednoduše přenést z jedné platformy na druhou a tam běžet. Na úrovni zdrojového kódu jsou však programy C++ z velké části přenosné, pokud nejsou použity některé funkce specifické pro OS. A dostupnost kompilátorů, knihoven a vývojových nástrojů pro téměř všechny běžné platformy umožňuje kompilovat stejný zdrojový kód C++ do aplikací pro tyto platformy.

Na rozdíl od C vám jazyk C++ umožňuje psát aplikace v objektově orientovaném stylu, který představuje program jako kolekci tříd a objektů, které se vzájemně ovlivňují. Což zjednodušuje tvorbu velkých aplikací.

Hlavní fáze vývoje

V letech 1979-80 vyvinul Bjarne Stroustrup rozšíření jazyka C – „C with Classes“. V roce 1983 byl jazyk přejmenován na C++.

V roce 1985 byla vydána první komerční verze jazyka C++ a také první vydání knihy „Programovací jazyk C++“, která představovala první popis tohoto jazyka při absenci oficiálního standardu.

Vyšlo v roce 1989 novou verzi Jazyk C++ 2.0, který obsahoval řadu nových funkcí. Poté se jazyk vyvíjel poměrně pomalu až do roku 2011. Ale zároveň v roce 1998 byl učiněn první pokus o standardizaci jazyka organizací ISO (International Organization for Standardization). První norma se jmenovala ISO/IEC 14882:1998, nebo zkráceně C++98. Následně v roce 2003 byla zveřejněna nová verze standardu C++03.

V roce 2011 byla zveřejněna nový standard C++11, který obsahoval mnoho doplňků a obohatil jazyk C++ o velké množství nových funkcí. V návaznosti na to byl v roce 2014 vydán malý doplněk standardu, známý také jako C++14. A další klíčové vydání jazyka je naplánováno na rok 2017.

Kompilátory a vývojová prostředí

K vývoji programů v C++ potřebujete kompilátor – ten přeloží zdrojový kód v C++ do spustitelného souboru, který pak můžete spustit. Ale v současné době existuje mnoho různých kompilátorů. Mohou se lišit v různých aspektech, zejména v implementaci norem. Základní seznam kompilátorů pro C++ lze nalézt na Wikipedii. Pro vývoj se doporučuje vybrat ty kompilátory, které vyvíjejí a implementují všechny nejnovější standardy. V tomto tutoriálu tedy budeme primárně používat volně dostupný kompilátor g++ vyvinutý projektem GNU.

K vytváření programů můžete také použít IDE jako Visual Studio, Netbeans, Eclipse, Qt atd.

Historie stvoření

Jazyk vznikl na počátku 80. let, kdy zaměstnanec Bell Labs Björn Stroustrup přišel s řadou vylepšení jazyka C pro vlastní potřeby. Když Stroustrup začal koncem 70. let pracovat v Bellových laboratořích na problémech v teorii front (jak je aplikováno na modelování telefonních hovorů), zjistil, že pokusy o použití tehdy existujících modelovacích jazyků byly neúčinné a použití vysoce účinných strojových jazyků bylo příliš obtížné pro jejich omezenou expresivitu. Jazyk Simula má tedy vlastnosti, které by byly velmi užitečné pro vývoj velkých software, ale je příliš pomalý a BCPL je dostatečně rychlý, ale příliš blízký jazykům nízké úrovně a není vhodný pro vývoj velkého softwaru.

Stroustrup si připomněl zkušenosti ze své disertační práce a rozhodl se doplnit jazyk C (nástupce BCPL) o možnosti dostupné v jazyce Simula. Jazyk C je základní jazyk UNIXové systémy, na kterém počítače Bell běžely, je rychlý, bohatý na funkce a přenosný. Stroustrup přidal možnost pracovat s třídami a objekty. Ve výsledku se ukázalo, že praktické problémy modelování jsou snadno řešitelné jak z hlediska doby vývoje (díky použití tříd podobných Simula), tak z hlediska doby výpočtu (díky rychlosti C). Nejprve byly do C přidány třídy (se zapouzdřením), dědičnost tříd, silná kontrola typu, inline funkce a výchozí argumenty. Rané verze jazyka, původně nazývané „C s třídami“, byly k dispozici v roce 1980.

Při vývoji jazyka C s třídami Stroustrup napsal program nazvaný cfront, překladač, který převáděl zdrojový kód jazyka C s třídami na zdrojový kód prostého jazyka C. To mu umožnilo pracovat na novém jazyce a používat jej v praxi s využitím infrastruktury již dostupné v UNIXu pro vývoj C. Nový jazyk, pro autora nečekaně, si mezi svými kolegy získal velkou oblibu a brzy ho Stroustrup už nemohl osobně podporovat a odpovídat na tisíce otázek.

Při vytváření C++ chtěl Björn Stroustrup
  • Získejte univerzální jazyk se statickými datovými typy, efektivitou a přenositelností jazyka C.
  • Přímo a komplexně podporuje různé styly programování, včetně procedurálního programování, abstrakce dat, objektově orientovaného programování a generického programování.
  • Dejte programátorovi svobodu volby, i když mu to dává možnost vybrat si špatně.
  • Zachovejte maximální kompatibilitu s C, čímž je umožněn snadný přechod od C programování.
  • Vyhněte se nesrovnalostem mezi C a C++: jakákoli konstrukce, která je platná v obou jazycích, musí v každém z nich znamenat totéž a vést ke stejnému chování programu.
  • Vyhněte se funkcím, které jsou závislé na platformě nebo nejsou univerzální.
  • „Neplaťte za to, co nepoužíváte“ – žádná jazyková funkce by neměla způsobit snížení výkonu programů, které ji nepoužívají.
  • Nevyžadují příliš složité programovací prostředí.

Volba C jako základu pro vytvoření nového programovacího jazyka je vysvětlena skutečností, že jazyk C:

1. je víceúčelový, stručný a relativně nízkoúrovňový jazyk;
2. vhodné pro řešení většiny systémových problémů;
3. vystupoval všude a na všem;
4. rozhraní s programovacím prostředím UNIX.

— B. Stroustrup. C++ programovací jazyk. Oddíl 1.6

Navzdory řadě známých nedostatků jazyka C se Stroustrup rozhodl použít jej jako základ, protože „C má své problémy, ale jazyk vyvinutý od nuly by je měl a my známe problémy jazyka C“. Navíc to umožnilo rychle získat prototypový kompilátor (cfront), který pouze přeložil přidané syntaktické prvky do původního jazyka C.

Jak se C++ vyvíjelo, byly zahrnuty další funkce, které pokryly možnosti konstrukcí C, a proto byla opakovaně vznesena otázka opuštění jazykové kompatibility odstraněním zastaralých konstrukcí. Kompatibilita však byla zachována z následujících důvodů:

  • zachování aktuálního kódu, původně napsaného v C a přímo přeneseného do C++;
  • eliminace potřeby rekvalifikace programátorů, kteří dříve studovali C (potřebují se pouze naučit nové nástroje C++);
  • odstranění zmatků mezi jazyky, když sdílení(„Pokud se dva jazyky používají společně, jejich rozdíly by měly být buď minimální, nebo tak velké, aby nebylo možné jazyky zaměnit“).

Do roku 1983 byly do jazyka přidány nové funkce, jako jsou virtuální funkce, přetěžování funkcí a operátorů, odkazy, konstanty, uživatelská kontrola nad správou volné paměti, vylepšená kontrola typu a nový styl komentářů (//). Výsledný jazyk již nebyl jen rozšířenou verzí klasického C a byl přejmenován z C s třídami na „C++“. Jeho první komerční vydání se uskutečnilo v říjnu 1985.

Výsledný název jazyka pochází z unárního postfixového inkrementačního operátoru C++ (zvyšuje hodnotu proměnné o jednu).

Než začala oficiální standardizace, jazyk vyvíjel hlavně Stroustrup v reakci na požadavky programátorské komunity. Funkci standardních popisů jazyka plnily publikované práce na C++ napsané Stroustrupem (popis jazyka, Referenční příručku a tak dále).

Historie norem

V roce 1985 bylo publikováno první vydání The C++ Programming Language, poskytující první popis jazyka, což bylo extrémně důležité kvůli chybějícímu oficiálnímu standardu.


V roce 1989 byla vydána verze C++ 2.0. Jeho nové funkce zahrnovaly vícenásobnou dědičnost, abstraktní třídy, statické členské funkce, konstantní funkce a chráněné členy. V roce 1990 byla vydána „Anotovaná referenční příručka k C++“, která se později stala základem standardu. Poslední aktualizace zahrnovaly šablony, výjimky, jmenné prostory, nové typy přetypování a booleovský typ.

Spolu s ním se vyvíjela i standardní knihovna C++. Prvním přírůstkem do standardní knihovny C++ byly I/O proudy, které poskytují prostředky k nahrazení tradičních funkcí printf a scanf v jazyce C. Později bylo nejvýznamnějším rozvojem standardní knihovny zahrnutí knihovny standardních šablon.

V roce 1998 byla vydána jazyková norma ISO/IEC 14882:1998 (známá jako C++98), vyvinutá Výborem pro standardy C++ (pracovní skupina ISO/IEC JTC1/SC22/WG21). Standard C++ nepopisuje, jak jsou objekty pojmenovány, některé podrobnosti o zpracování výjimek a další implementační podrobné funkce, takže objektový kód vytvořený různými kompilátory není kompatibilní. Mnoho standardů však bylo vytvořeno třetími stranami pro konkrétní architektury a operační systémy.

V roce 2005 byla vydána Technická zpráva knihovny 1 (zkráceně TR1). Ačkoli to není oficiálně součástí standardu, zpráva popisuje rozšíření standardní knihovny, u kterých autoři očekávali, že budou zahrnuta do příští verze jazyka C++. Podpora TR1 se zlepšuje téměř ve všech podporovaných kompilátorech C++.

Od roku 2009 se pracuje na aktualizaci předchozího standardu, předběžná verze nového standardu byla nejprve C++09 a o rok později C++0x, dnes C++11, která zahrnovala doplnění jádra jazyk a rozšíření standardní knihovny, včetně většiny TR1.

C++ se neustále vyvíjí, aby vyhovoval dnešním požadavkům. Jednou ze skupin vyvíjejících jazyk C++ a předkládajících normalizační komisi C++ návrhy na jeho vylepšení je Boost, která se mimo jiné zabývá zlepšováním schopností jazyka přidáváním funkcí metaprogramování.

Nikdo nevlastní práva na jazyk C++, je zdarma. Samotný jazykový standardní dokument (kromě konceptů) však není k dispozici zdarma.

Štítky: Historie normalizace C, ANSI C, ISO C, C99, C11, ISO/IEC C, C.

Origins

C a je „vedlejším produktem“ získaným během tvorby operační systém UNIX, který v Bell Laboratories vyvinuli Ken Thompson, Denis Ritchie a spol. Thompson sám napsal původní verzi UNIXu, který běžel na DEC PDP-7, jednom z prvních minipočítačů s pouze 8000 slovy hlavní paměti (koneckonců byl rok 1969).

Stejně jako ostatní operační systémy té doby byl UNIX napsán v jazyce symbolických instrukcí. Ladění programů v assembleru je skutečná bolest a je těžké ho zlepšit a UNIX nebyl výjimkou. Thompson se rozhodl, že k dalšímu vývoji operačního systému je zapotřebí jazyk vysoká úroveň a přišel s malým jazykem B. Thompson jej založil na jazyku BCPL, jazyku pro programování systému, vyvinuté v polovině 60. let. BCPL zase pochází z ALGOL 60, jednoho z prvních (a nejvlivnějších) největší vliv) jazyky.

Ritchie se brzy připojil k projektu UNIX a začal psát v B. V roce 1970 zakoupily Bell Labs pro projekt PDP-11. Protože B bylo připraveno běžet na PDP-11, Thompson přepsal část UNIXu na B. V roce 1971 se ukázalo, že B není tak docela vhodný pro PDP-11, takže Ritchie začal vytvářet rozšířenou verzi B. nazval to NB (New B), ale když se jazyk velmi lišil od jazyka B, název byl změněn na C. V roce 1973 se jazyk stal dostatečně stabilním, aby do něj mohl být přepsán UNIX. Přechod na C poskytl důležitou výhodu: přenositelnost. Napsáním kompilátoru C pro každý ze strojů v Bell Labs by na ně vývojový tým mohl portovat UNIX.

Standardizace

C se dále vyvíjelo v 70. letech, zejména mezi lety 1977 a 1979, kdy byla vydána první kniha o C, napsaná Brianem Kernighanem a Denisem Ritchiem a publikovaná v roce 1978, se stala biblí programátorů C. Vzhledem k absenci oficiálního standardu se tato kniha – známá také jako K&R nebo „Bílá kniha“, jak ji fanoušci C rádi nazývají – stala de facto standardem. V 70. letech bylo málo programátorů C a většina z nich byli uživatelé UNIXu. V 80. letech se však C rozšířilo za úzké hranice světa UNIX. Kompilátory jazyka C se staly dostupnými na různých počítačích s různými operačními systémy. Zejména C se začalo šířit na rychle se rozvíjející platformě IBM PC.

Spolu s nárůstem popularity přišly problémy. Programátoři, kteří napsali nové kompilátory, vzali za základ jazyk popsaný v K&R. Bohužel v K&R byly některé rysy jazyka popsány vágně, takže je kompilátoři často interpretovali podle vlastního uvážení. Kniha navíc jasně nerozlišovala mezi tím, co je vlastnost jazyka a co je vlastnost operačního systému UNIX. Situaci ještě zhoršilo, že po vydání K&R se C dále vyvíjelo: byly do něj přidány nové funkce a staré byly z něj vyříznuty. Brzy byla zjevná potřeba komplexního, přesného a moderního popisu jazyka. Bez takové normy se začaly objevovat dialekty jazyka, které narušovaly přenositelnost – největší sílu jazyka.

Vývoj amerického standardu C začal v roce 1983 pod záštitou American National Standards Institute (ANSI). Po mnoha revizích byla norma dokončena v roce 1988 a formálně přijata v prosinci 1989 jako ANSI X3.159-1989. V roce 1990 byl schválen Mezinárodní organizací pro normalizaci (ISO) jako mezinárodní norma ISO/IEC 9899:1990. Tato verze jazyka se obvykle nazývá C89 nebo C90, aby nedošlo k záměně s původní verzí C, která se obvykle nazývá K&R C.

Jazyk prošel drobnými změnami v roce 1995 (změny jsou popsány v dokumentu běžně nazývaném dodatek 1). K významnějším změnám došlo v roce 1999, kdy byla vydána norma ISO/IEC 9899:1999. Jazyk popsaný v této normě se obvykle nazývá C99. Termíny "ANSI C", "ANSI/ISO C" a "ISO C", kdysi používané k popisu C99, mají dva významy kvůli existenci dvou norem.

V roce 2011 byl spolu s revizí jazyka C++ vydán standard C11. Navzdory existenci standardu '11 mnoho kompilátorů stále plně nepodporuje ani verze C99, takže použití standardu C11 bude výslovně uvedeno.

C++ (čti c-plus-plus) je zkompilovaný, staticky typovaný univerzální programovací jazyk, ve kterém můžete vytvářet programy jakékoli úrovně složitosti.
Již více než 20 let patří tento jazyk mezi tři nejoblíbenější a nejžádanější programovací jazyky. (Můžete si to ověřit na webových stránkách TIOBE).
Jazyk vznikl na počátku 80. let, kdy zaměstnanec Bell Labs Björn Stroustrup přišel s řadou vylepšení jazyka C pro vlastní potřeby.

Bjarne Stroustrup – tvůrce jazyka C++

Stroustrup se rozhodl rozšířit jazyk C o možnosti nalezené v jazyce Simula. C, což je základní jazyk systému UNIX, na kterém počítače Bell běžely, je rychlý, bohatý na funkce a přenosný. Stroustrup přidal možnost pracovat s třídami a objekty. Ve výsledku se ukázalo, že praktické problémy modelování jsou snadno řešitelné jak z hlediska doby vývoje (díky použití tříd podobných Simula), tak z hlediska doby výpočtu (díky rychlosti C).
Zde je návod, jak o tom mluví sám vývojář jazyka:



V roce 1998 byl výborem pro standardy publikován první jazykový standard, známý jako C++98. C++ se neustále vyvíjí, aby vyhovoval dnešním požadavkům. Jednou ze skupin, které vyvíjejí jazyk C++ a předkládají návrhy na jeho vylepšení Výboru pro standardy C++, je Posílit, která se mimo jiné zabývá vylepšováním schopností jazyka přidáním funkcí metaprogramování. Nejnovější standard byl vydán v roce 2017 a jmenuje se C++17. Další standard na sebe nenechá dlouho čekat a očekává se, že se objeví v roce 2020.
Nikdo nevlastní práva na jazyk C++, je zdarma. V březnu 2016 vzniklo Rusko pracovní skupina RG21 C++. Skupina byla zorganizována s cílem shromáždit návrhy standardu C++, předložit je komisi a obhájit je na valných hromadách Mezinárodní organizace pro standardizaci.
C++ je multiparadigmatický jazyk (od slova paradigma - styl psaní počítačové programy), včetně široké škály různých programovacích stylů a technologií. Často je klasifikován jako objektově orientovaný jazyk, ale přísně vzato tomu tak není. Vývojář získává během pracovního procesu absolutní volnost ve výběru nástrojů tak, aby problém řešený konkrétním přístupem byl vyřešen co nejefektivněji. Jinými slovy, C++ nenutí programátora dodržovat pouze jeden styl vývoje programu (například objektově orientovaný).
C++ má bohatou standardní knihovnu, která zahrnuje běžné kontejnery a algoritmy, I/O, regulární výrazy, podpora multithreadingu a další funkce. C++ ovlivnil mnoho programovacích jazyků, včetně: Java, C#, D. Protože C++ patří do rodiny jazyků založených na syntaxi jazyka C, můžete snadno ovládat další programovací jazyky této rodiny: JavaScript, PHP , Perl, Objective-C a mnoho dalších. atd., včetně samotného mateřského jazyka - C. ()
Jazyk C++ si za dobu své existence osvojil přetrvávající mýty, které lze snadno vyvrátit (viz zde: 1. část a 2. část)

Historie vydání jazyka a norem

1983

Tvůrcem jazyka je Björn Stroustrup, zaměstnanec Bell Labs, představil ranou verzi jazyka C++ („C s třídami“)

1985

První komerční verze C++, jazyk přebírá své moderní jméno

1986

Vydání prvního vydání The C++ Programovací jazyk- kniha o C++ od Björna Stroustrupa

1998

Byl ratifikován mezinárodní standard pro jazyk C++: ISO/IEC 14882:1998 „Standard pro programovací jazyk C++“

2003
2005

Byla vydána technická zpráva knihovny 1 (TR1). Ačkoli to není oficiálně součástí standardu, zpráva popisovala rozšíření standardní knihovny, která by měla být zahrnuta v příští verzi jazyka C++.

2011

Vydání nového standardu – C++11 nebo ISO/IEC 14882:2011; nový standard zahrnoval doplnění jazykového jádra a rozšíření standardní knihovny, včetně většiny TR1

2014

Vydání standardu C++14 („Mezinárodní standard ISO/IEC 14882:2014(E) Programovací jazyk C++“); C++14 lze považovat za malé rozšíření oproti C++11, které obsahuje většinou opravy chyb a drobná vylepšení

2017

Vydání nového standardu – C++1z (C++17). Tato norma přinesla mnoho změn a doplňků. Například STD zahrnoval knihovny standardu C11, souborový systém, založený na boost::filesystem, velké části experimentální knihovny TS I.

2020

C++20 je neoficiální název normy ISO/IEC pro programovací jazyk C++, od kterého se očekává, že bude následovat po C++17. Návrh normy N4800.

Filozofie C++

Björn Stroustrup ve své knize The Design and Evolution of C++ (2007) popisuje principy, kterými se řídil při navrhování C++ (zkráceně):

  • Získejte univerzální jazyk se statickými datovými typy, efektivitou a přenositelností jazyka C.
  • Přímo a komplexně podporuje různé styly programování.
  • Dejte programátorovi svobodu volby, i když mu to dává možnost vybrat si špatně.
  • Zachovejte maximální kompatibilitu s C, čímž je umožněn snadný přechod od C programování.
  • Vyhněte se nesrovnalostem mezi C a C++: jakákoli konstrukce, která je platná v obou jazycích, musí v každém z nich znamenat totéž a vést ke stejnému chování programu.
  • Vyhněte se funkcím, které jsou závislé na platformě nebo nejsou univerzální.
  • „Neplaťte za to, co nepoužíváte“ – žádná jazyková funkce by neměla vést ke snížení výkonu programů, které ji nepoužívají.
  • Nevyžadují příliš složité programovací prostředí.

C a C++

Syntaxe C++ je zděděna z jazyka C Ačkoli formálně zůstává jedním z principů C++ zachování kompatibility s jazykem C, ve skutečnosti normalizační skupiny pro tyto jazyky neinteragují a změny, které provádějí, neinteragují. pouze nekorelují, ale často si ideově zásadně odporují. Prvky, které nové standardy C přidávají do jádra, jsou tedy ve standardních prvcích C++ standardní knihovny a nejsou v jádře vůbec, například dynamická pole, pole s pevnými hranicemi, zařízení paralelní zpracování. Podle Stroustrupa by spojení vývoje těchto dvou jazyků bylo velkým přínosem, ale je nepravděpodobné, že by to bylo možné z politických důvodů. Takže praktická kompatibilita mezi C a C++ se postupně ztratí.
V v tomto příkladu, v závislosti na použitém kompilátoru bude výstup „C++“ nebo „C“:

Program 9.1

#zahrnout int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

To je způsobeno skutečností, že znakové konstanty v C jsou typu int a v C++ jsou typu char, ale velikosti těchto typů jsou různé.

Modely životního cyklu aplikací

Životní cyklus software je časový úsek, který začíná okamžikem rozhodnutí o potřebě vytvořit softwarový produkt a končí okamžikem jeho úplného vyřazení z provozu. Tento cyklus je proces budování a vývoje softwaru. Existuje několik modelů životního cyklu.
Kaskádový modelživotní cyklus (anglický model vodopádu) navrhl v roce 1970 Winston Royce. Zajišťuje postupnou realizaci všech fází projektu v přesně stanoveném pořadí. Přechod do další fáze znamená úplné dokončení práce v předchozí fázi. Požadavky stanovené ve fázi tvorby požadavků jsou přísně dokumentovány formou technických specifikací a jsou evidovány po celý vývoj projektu. Každá fáze vyvrcholí vydáním kompletní sady dokumentace dostatečné k tomu, aby ve vývoji mohl pokračovat další vývojový tým.
Fáze projektu podle vodopádového modelu:

  1. Tvorba požadavků;
  2. Design;
  3. Implementace;
  4. Testování;
  5. Implementace;
  6. Provoz a údržba.

V kaskádovém modelu přechod z jedné projektové fáze do druhé předpokládá, že výsledek předchozí fáze je zcela správný. U velkých projektů je toho téměř nemožné dosáhnout. Proto je tento model vhodný pouze pro vývoj malého projektu. (W. Royce sám se tohoto modelu nedržel a použil iterativní model).
Iterativní model
Alternativou ke kaskádovému modelu je model iterativního a inkrementálního vývoje (IID), který obdržel od T. Gilba v 70. letech. název evolučního modelu. Model IID zahrnuje rozdělení životního cyklu projektu do posloupnosti iterací, z nichž každá připomíná „miniprojekt“, včetně všech vývojových procesů aplikovaných na vytváření menších částí funkčnosti ve srovnání s projektem jako celkem. Cílem každé iterace je získat pracovní verzi softwarový systém, včetně funkčnosti definované integrovaným obsahem všech předchozích a současných iterací. Výsledek konečné iterace obsahuje veškerou požadovanou funkčnost produktu. S dokončením každé iterace tedy produkt dostává přírůstek – přírůstek – ke svým schopnostem, které se tedy evolučně vyvíjejí.


Ve většině moderních vývojových metodologií jsou implementovány různé varianty iterativního přístupu:

Vývojový proces – Rational Unified Process (RUP)

Rational Unified Process (RUP)(racionální jednotný proces) je metodika vývoje softwaru spravovaná společností Rational Software (IBM). Metodika poskytuje doporučení pro všechny fáze vývoje: od obchodního modelování až po testování a uvedení hotového programu do provozu. Jako modelovací jazyk se používá Unified Modeling Language (UML).
Kompletní životní cyklus vývoje produktu se skládá ze čtyř fází, z nichž každá zahrnuje jednu nebo více iterací.

  • Počáteční fáze (začátek)
  • Stanovení rozsahu projektu a množství požadovaných zdrojů. Jsou stanoveny základní požadavky, omezení a klíčová funkčnost produktu. Posuzují se rizika. Plánování akcí. Na konci počáteční fáze se posuzuje dosažení milníku cíle životního cyklu, což předpokládá dohodu mezi zúčastněnými stranami o pokračování projektu.

  • Vyjasnění
  • Požadavky na dokumentaci. Návrh, implementace a testování spustitelné architektury. Vyjasnění podmínek a nákladů. Snížení klíčových rizik. Úspěšné dokončení vývojové fáze znamená dosažení milníku architektury životního cyklu.

  • Konstrukce
  • Ve fázi „Build“ je implementována většina funkcí produktu: je dokončen návrh aplikace, je napsán zdrojový kód. Fáze Build končí prvním externím vydáním systému a milníkem Initial Operational Capability.

  • Úvod
  • Ve fázi „Implementace“ a Finální verze produkt a je převeden z vývojáře na zákazníka. To zahrnuje beta testovací program, školení uživatelů a stanovení kvality produktu. V případě, že kvalita nesplňuje očekávání uživatele nebo kritéria stanovená ve fázi Start, fáze Implementace se znovu opakuje. Splnění všech cílů znamená dosažení milníku vydání produktu a dokončení celého vývojového cyklu.



« Informační technologie. Systémové a softwarové inženýrství. Procesy životního cyklu software". Tato norma byla přijata Federální agenturou pro technickou regulaci a metrologii Ruské federace a je podobná mezinárodní normě ISO/IEC 12207:2008. Tento standard, vytváří obecný rámec pro procesy životního cyklu softwaru, který lze použít k vedení softwarového průmyslu. Standard nenabízí konkrétní modelživotní cyklus. Jeho ustanovení jsou společná pro všechny modely životního cyklu, metody a technologie pro tvorbu softwaru. Popisuje strukturu procesů životního cyklu, aniž by specifikoval, jak implementovat nebo dokončit činnosti a úkoly zahrnuté v těchto procesech.

Prezentace na lekci
Témata zpráv
  • Free Software Foundation (FSF)
  • Licence svobodného softwaru
  • FreeSoftware a Open Source
  • Historie vývoje programovacích jazyků
  • Historie jazyka C a C++
  • Příběh
  • Kritika C++
  • Historie UNIXu
  • Spirálový model životního cyklu softwaru
  • UML (Unified Modeling Language)
  • Microsoft Solutions Framework
  • IDE pro programování v C/C++ na Windows
  • C/C++ kompilátory
  • Vytvoření konzolové aplikace ve Windows
Otázky
  1. Proč se vodopádový model vývoje softwaru nepoužívá ve velkých projektech?
  2. Jaký je rozdíl mezi vodopádovými a iterativními modely vývoje?
  3. Vyjmenujte fáze vývoje softwaru v metodice Rational Unified Process (RUP).