Narzędzia programistyczne - Wstęp

Semestr zimowy 2013/2014

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++, dużo rozszerzeń )

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

Zarządzanie projektami informatycznymi

Team Foundation Server

Trac

Mylyn - Application Lifecycle Tools

Bugzilla, CodePLex, SourceForge, Team Foundation Service, inne

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, KCacheGrind (KDE, Linux)

Visual Leak Detector (Visual C++)

Eclipse Memory Analyzer (Java)

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 aplikacji okienkowych (GUI builder)

Visual Studio (Forms, WPF), Microsoft Expression Blend

Eclipse (wtyczki)

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

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

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)

Git, Mercurial (rozproszony system kontroli wersji)

TFS

inne

Ż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

Testowanie kodu i aplikacji

Unit testing using Visual Studio (VS Professional ), NUnit, XUnit

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

inne : JUnit, 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

Aplikacje Mobilne

Android: Eclipse, IntelliJ IDEA, Project Kenai Android plugin for NetBeans, MS VS (Mono for Android)

Windows Phone, Windows 8: Visual Studio

iOS: Xcode, AppCode

wieloplatformowe: RhoMobile, PhoneGap, Appcelerator, MoSync, ...

Remote device access - Nokia

Cloud

Cloud IDEs: Eclipse Orion, Cloud9, Codeanywhere, Cloud IDE, Sourcekit, Kodingen

Cloud computing: Windows Azure, Google App Engine (Eclipse plugin), Apache CloudStack, IBM SmartCloud, Amazon Web Services

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ę!