Narzędzia programistyczne - Wstęp

Semestr letni 2011/2012

Narzędzia programistyczne

Tworzenie aplikacji (edytory, kompilatory, interpretatory)

Wykrywanie błędów: statyczna/dynamiczna analiza kodu/programu

„Odpluskwianie” kodu (Debugging)

Analiza wydajności aplikacji (profilowanie kodu)

Analiza pamięci - wykrywanie „wycieków”

Zarządzanie projektami, np.: systemy kontroli wersji, raportowanie błędów

Tworzenie dokumentacji

Źródła: Programming Tool

Zintegrowane środowiska programistyczne (IDE)

MS Visual Studio Express/Professional/Ultimate (C/C++, C#)

NetBeans vs. Eclipse (Java, plugin C/C++ )

C++Builder i Delphi - raczej nie

Visual Web Developer Express (ASP.NET) - ??

inne : Code::Blocks, Kdevelop, Anjuta DevStudio, NetBeans

Wikipedia: Comparison of integrated development environments

Odpluskwianie (Debuggers)

Debuggowanie w środowiskach IDE (m.in. edit and continue(MS), IntelliTrace/Hotswap Bug Fixing (Java), Multi-Threaded Debugging)

GDB (GNU Debugger) - Linux, Cygwin (MinGW)

Valgrind - GPL (Linux, Mac OS) dynamiczna analiza aplikacji (memory error detector, debuuger, profiler)

Analiza pamięci (Memory debugging tools)

Valgrind

Visual Leak Detector (Visual C++)

inne: IBM Rational Purify, Insure++, TotalView, Dmalloc, memwatch, YAMD, mpatrol

Profilowanie

Visual Studio Profiler (raczej tylko Stand-Alone profiler)

GNU gprof, Valgrind

NetBeans Profiler, Eclipse Profiler Plugin,

grafy wywołań Call graph

inne : nprof, CLR Profiler, RotateRight Zoom, pin, JProfiler (commercial), TAU Performance System, slimtune (.Net), CMT++ (Complexity Measures Tool), AQtime (.Net, Java, commercial), dotTrace Performance/Memory,

Projektowanie wizualne/RAD

Visual Studio (Forms)

Eclipse (wtyczki)

NetBeans (Java, SWING, project Matisse; C++ wsparcie dla Qt)

biblioteka Qt (Qt Creator, Qt Designer), Glade (GTK)

Wikipedia: GUI Builder Rapid Application Development

Tworzenie aplikacji GNU Linux

gcc

make

gettext

Autotools (Autoconf, Automake, Libtool)

inne : ltrace, objdump, strace, nm, ld

Wikipedia: GNU Build Tools

Systemy kontroli wersji

Subversion (svn)

Toroise (MS Windows)

VisualSVN, AnkhSVN dla VS

Eclipse (Subversive), NetBeans (wbudowane, także CVS, Mercurial)

inne: CSV, Git (rozproszony system kontroli wersji)

Żródła: Comparison of revision control software Version Control System Comparison

Tworzenie dokumentacji

Narzędzia wspierające tworzenie dokumentacji:

Dokumentacja kodu w Visual Studio

JavaDoc

inne : doxygen, TwinText

Wikipedia: Documentation generator Comparison of documentation generators

Unit Test / Software Test Tools

Unit testing using Visual Studio (VS Professional )

Eclipse TPTP (Test and Performance Tools Platform), NetBeans wbudowane

inne : JUnit, NUnit, CPPUnit Emma coverage tool (Java)

Makro Assert (C,PHP)

Narzędzia do automatyzacji testów

Unit Test / Software Test Tools

Unit testing using Visual Studio (VS Professional )

Eclipse TPTP (Test and Performance Tools Platform), NetBeans wbudowane

inne : JUnit, NUnit, CPPUnit Emma coverage tool (Java)

Makro Assert (C,PHP)

Narzędzia do automatyzacji testów

UML

diagramy klas, użycia, ...

inżynieria wstecz/wprzód

VS2010 Ultimate, umbrello (wymaga KDE), dia (wymaga GTK), ArgoUML, MS Visio

Wikipedia: List_of_Unified_Modeling_Language_tools

Inne

Dekomilatory i deasemblatory (!?)

Software visualization: Eclipse Project Dependencies Viewer, CppDepend, NDepend

Automatic programming and code generation : VS, Eclipse, RISE

Narzędzia wspierające zarządzanie projektami i zespołami programistycznymi (Trac, MS TFS)

CASE tools: ClassBuilder (c++)

Inne c.d.

Raportowanie błędów (Bugtrackery) Bug tracking system (klient-serwer: Bugzilla, rozproszeone: Fossil, aplikacja hostowana: SourceForge, Google Code, BerliOS ), Team Foundation Server (MS VSTS), Comparison of issue-tracking systems

Narzędzia bazodanowe: Comparison_of_data_modeling_tools

Aplikacje web: Category:Web development software, web testing : List_of_web_testing_tools

Duplicate code

SWIG (Simplified Wrapper and Interface Generator) - łączenie języków

Inne ...

... jakich narzędzi używacie? Pochwalcie się!