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#)
- C++Builder i Delphi - raczej nie
- Visual Web Developer Express (ASP.NET) - ??
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, …
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
- SWIG (Simplified Wrapper and Interface Generator) - łączenie języków
- Inne …
- … jakich narzędzi używacie? Pochwalcie się!