Programovací nástroj - Programming tool
Vývoj softwaru |
---|
Programovací nástroj nebo nástroj pro vývoj software je počítačový program , který vývojáři softwaru používají k vytváření, ladění, údržbu nebo jinak podporovat ostatní programy a aplikace. Termín se obvykle vztahuje k relativně jednoduchým programům, které lze kombinovat pro splnění úkolu, podobně jako by člověk mohl použít více rukou k opravě fyzického objektu. Nejzákladnějšími nástroji jsou editor zdrojových kódů a překladač nebo překladač , které se používají všudypřítomně a nepřetržitě. Další nástroje se používají víceméně v závislosti na jazyce, metodice vývoje a individuálním inženýrovi, často se používají pro diskrétní úkoly, jako je debugger nebo profiler. Nástroje mohou být diskrétní programy, prováděné samostatně - často z příkazového řádku - nebo mohou být součástí jednoho velkého programu, nazývaného integrované vývojové prostředí (IDE). V mnoha případech, zejména pro jednodušší použití, se místo nástroje používají jednoduché ad hoc techniky, jako je například ladění tisku místo použití ladicího programu, ruční časování (celkového programu nebo části kódu) namísto profilovacího nástroje nebo sledování chyb v textový soubor nebo tabulku místo systému pro sledování chyb.
Rozdíl mezi nástroji a aplikacemi je temný. Například vývojáři jako nástroje neustále používají jednoduché databáze (například soubor obsahující seznam důležitých hodnot ). Plnohodnotná databáze je však obvykle považována za aplikaci nebo software sama o sobě. Mnoho let byly vyhledávány nástroje počítačového asistovaného softwarového inženýrství (CASE). Úspěšné nástroje se ukázaly jako nepolapitelné. V jednom smyslu nástroje CASE kladly důraz na podporu designu a architektury, například pro UML. Ale nejúspěšnější z těchto nástrojů jsou IDE.
Využití programovacích nástrojů
Překlad z lidského do počítačového jazyka
Moderní počítače jsou velmi složité a aby je bylo možné produktivně naprogramovat, jsou zapotřebí různé abstrakce. Programátor například místo zápisu binární reprezentace programu napíše program v programovacím jazyce jako C, Java nebo Python. Programovací nástroje, jako jsou assemblery , kompilátory a linkery, překládají program z lidského zapisovatelného a čitelného zdrojového jazyka do bitů a bajtů, které může provádět počítač. Tlumočníci interpretují program za běhu, aby vytvořili požadované chování.
Tyto programy provádějí mnoho dobře definovaných a opakujících se úkolů, které by však byly časově náročné a náchylné k chybám, pokud by je prováděl člověk, například rozložení částí programu do paměti a stanovení odkazů mezi částmi programu tak, jak to dělá linker. Optimalizace kompilátorů na druhé straně může provádět složité transformace zdrojového kódu, aby se zlepšila rychlost provádění nebo jiné vlastnosti programu. Programátor se tak může více soustředit na koncepční aspekty programu na vyšší úrovni, aniž by si dělal starosti s detaily stroje, na kterém běží.
Zpřístupnění informací o programu pro lidi
Kvůli vysoké složitosti softwaru není možné pochopit většinu programů na první pohled ani pro nejzkušenějšího vývojáře softwaru. Abstrakce poskytované programovacími jazyky na vysoké úrovni také ztěžují pochopení spojení mezi zdrojovým kódem napsaným programátorem a chováním skutečného programu. Aby vývojář softwaru našel chyby v programech a zabránil vytváření nových chyb při rozšiřování programu, používá některé programovací nástroje k vizualizaci všech druhů informací o programech.
Ladicí program například umožňuje programátorovi extrahovat informace o spuštěném programu z hlediska zdrojového jazyka použitého k jeho programování. Ladicí program může vypočítat hodnotu proměnné ve zdrojovém programu ze stavu konkrétního stroje pomocí informací uložených kompilátorem. Ladicí programy paměti mohou přímo upozorňovat na diskutabilní nebo přímo špatné přístupy do paměti spuštěných programů, které by jinak mohly zůstat nezjištěny a jsou běžným zdrojem selhání programu.
Seznam nástrojů
Softwarové nástroje mají mnoho podob:
- Nástroje pro analýzu binární kompatibility
- Databáze chyb : Porovnání systémů pro sledování problémů - Včetně systémů pro sledování chyb
- Nástroje pro vytváření: Automatizace sestavení , Seznam softwaru pro automatizaci sestavení
- Graf volání
- Pokrytí kódu : Pokrytí kódu#Nástroje pro pokrytí softwarového kódu .
- Kontrola kódu : Seznam nástrojů pro kontrolu kódu
- Stránky pro sdílení kódu: Freshmeat , Krugle , Sourceforge , GitHub . Viz také vyhledávače kódů .
- Kompilační a propojovací nástroje: GNU toolchain , gcc , Microsoft Visual Studio , CodeWarrior , Xcode , ICC
- Debuggers : Debugger#Seznam debuggerů . Viz také Ladění .
- Demontážní nástroje : Obecně nástroje reverzního inženýrství .
- Generátory dokumentace : Porovnání generátorů dokumentace , help2man, Plain Old Documentation , asciidoc
- Formální metody : Matematické techniky pro specifikaci, vývoj a ověřování
- Generátory rozhraní GUI
- Generátory rozhraní knihovny: SWIG
- Integrační nástroje
- Ladicí programy paměti se často používají v programovacích jazycích (například C a C ++ ), které umožňují ruční správu paměti a tím i možnost nevracení paměti a další problémy. Jsou také užitečné pro optimalizaci účinnosti využití paměti. Příklady: dmalloc , Electric Fence , Insure ++ , Valgrind
- Generátory analyzátoru : Software pro analýzu#Analyzátor
- Analýza výkonu nebo profilování: Seznam nástrojů pro analýzu výkonu
- Kontrola revizí : Seznam softwaru pro kontrolu revizí , Porovnání softwaru pro kontrolu revizí
- Skriptovací jazyky : PHP , Awk , Perl , Python , REXX , Ruby , Shell , Tcl
- Hledat: grep , najít
- Zdrojový kód Klony/Duplikace Hledání: Duplicitní kód#Nástroje
- Editor zdrojového kódu
- Formátování zdrojového kódu : odrážka , hezké tiskárny , zkrášlovače , minifikátory
- Nástroje pro generování zdrojového kódu : Automatické programování#Implementace
- Statická analýza kódu : vlákna , Seznam nástrojů pro statickou analýzu kódu
- Unit testing: Seznam rámců pro testování jednotek
IDE
Integrovaná vývojová prostředí kombinují funkce mnoha nástrojů do jednoho balíčku. Usnadňují například provádění konkrétních úkolů, například hledání obsahu pouze v souborech v konkrétním projektu. IDE lze například použít pro vývoj aplikací na podnikové úrovni.
V tomto srovnání integrovaných vývojových prostředí lze nalézt různé aspekty IDE pro konkrétní programovací jazyky .
Viz také
- Počítačové nástroje softwarového inženýrství
- Počítačová věda
- Konfigurační systém
- Skriptovací jazyk
- Sada pro vývoj softwaru
- Softwarové inženýrství a seznam témat softwarového inženýrství
- Softwarové systémy
- Sady nástrojů pro inovace uživatelů
Reference
- Nástroje pro vývoj softwaru pro Petascale Computing Workshop 2007
- Kernighan, Brian W .; Plauger, PJ (1976), Softwarové nástroje , Addison-Wesley, s. 352 , ISBN 0-201-03669-X
externí odkazy
Média související s programovacími nástroji na Wikimedia Commons