View page as slide show

Narzędzia programistyczne - Wstęp

Semestr zimowy 2013/2014

  • 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

Wikipedia: Comparison of integrated development environments

  • Team Foundation Server
  • Trac
  • Mylyn - Application Lifecycle Tools
  • Bugzilla, CodePLex, SourceForge, Team Foundation Service, inne
  • 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)

www.gnu.org_software_gdb_images_archer.jpg

  • Valgrind, KCacheGrind (KDE, Linux)
  • Visual Leak Detector (Visual C++)
  • Eclipse Memory Analyzer (Java)
  • inne: IBM Rational Purify, Insure++, TotalView, Dmalloc, memwatch, YAMD, mpatrol
  • 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,
  • 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

  • gcc
  • make
  • gettext
  • Autotools (Autoconf, Automake, Libtool)
  • inne : ltrace, objdump, strace, nm, ld

Wikipedia: GNU Build Tools

  • 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

Narzędzia wspierające tworzenie dokumentacji:

  • Dokumentacja kodu w Visual Studio
  • JavaDoc
  • inne : doxygen, TwinText

Wikipedia: Documentation generator Comparison of documentation generators

  • 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
  • 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

  • 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
  • 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++)