Ślad: • plan

Narzędzia programistyczne - Wstęp

Writing /home/grochu/public_html/wiki/data/cache/3/3e9db173fcbf66747331b7740b562b25.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/grochu/public_html/wiki/data/cache/3/3e9db173fcbf66747331b7740b562b25.metadata failed
Writing /home/grochu/public_html/wiki/data/cache/a/a7319d1bdb1539f42426f7b5aec8059d.i failed
Writing /home/grochu/public_html/wiki/data/cache/a/a7319d1bdb1539f42426f7b5aec8059d.metadata failed

View page as slide show

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)

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)

www.gnu.org_software_gdb_images_archer.jpg

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

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.