====== Narzędzia programistyczne ====== ===== Wykład i laboratorium ===== Termin zajęć w semestrze letnim 2011/2012 * Laboratorium + Wykład -każdy czwartek, 8:30 - 10:00, sala PK5, WFAiIS ===== Przebieg zajęć/ prezentacje ===== ^ Data ^ Temat ^ Prowadzący ^ Źródła/Projekty ^ | 16/02/2012 | [[.:wyklad:plan|Wstęp - plan]] | MG | | | 23/02/2012 | [[ide_wstep|Środowiska IDE - ogólny przegląd]] \\ [[vs_wstep|Visual Studio 2008/2010 - wstęp]] \\ Projekty i zarządzanie nimi. Kompilatory C%%++%% i C#. | MG | | | 1/03/2012 | [[http://prezi.com/md-wt0ak__nr/team-foundation-server-overview/|Team Foundation Server - prezentacja]] ({{zajecia:npr_2012_1:zarzycki-tfs:zarzycki-tfs_overview.pdf|PDF}}) \\ [[wp>Team_Foundation_Server|Team Foundation Server]] \\ Scrum \\ [[http://www.codeplex.com/|CodePlex]] | D. Zarzycki | | | 8/03/2012 | {{..:npr_2012_1:szatkowski:szatkowski.testy.pdf|Testowanie kodu (testy jednostkowe), NUnit, VS 2010 }} | J. Szatkowski | {{..:npr_2012_1:szatkowski:source.zip|Przykłady}} | | 22/03/2012 | {{..:npr_2012_1:matczynski-valgrind:matczynski-valgrind.pdf|Valgring}} | Ł. Matczyński | {{..:npr_2012_1:matczynski-valgrind:matczynski-valgrind.zip|Ćwiczenia}} | | 29/03/2012 | {{..:npr_2012_1:zwiewka-web.pdf|Tworzenie aplikacji WEB VS2010}} | A. Zwiewka | {{..:npr_2012_1:zwiewka-web.zip|Ćwiczenia}} | | 12/04/2012 | {{..:npr_2012_1:rusek-Trac.pdf|Trac}} | O. Rusek | | | ::: | {{..:npr_2012_1:leciejewski-firebug.pdf|Firebug/Notepad++}} | M. Leciejewski | | | 19/04/2012 | {{..:npr_2012_1:potwardowska.edi.pdf|Edi}} | O. Potwardowska | | | ::: | {{..:npr_2012_1:stankiewicz-gcc.pdf|GCC , make}} | M. Stankiewicz | | | 26/04/2012 | {{..:npr_2012_1:musial-matlab.pdf|Matlab}} | M. Musiał | | | 17/05/2012 | {{..:npr_2012_1:zielinski.bugzilla.pdf|Systemy raportujące błędy (Bugzilla)}} | R. Zielinski | | | ::: | {{..:npr_2012_1:sumowski-uml.pdf|UML w VS2010}} | K. Sumowski | | | 24/05/2012 | {{..:npr_2012_1:rozwadowski-eclipse.pdf|Eclipse}} | W. Rozwadowski | | | 31/05/2012 | {{..:npr_2012_1:warzocha-graphviz.pdf|GraphViz }} | P. Warzocha | {{..:npr_2012_1:warzocha-graphviz.rar|Dodatkowe materiały }} | | ::: | {{..:npr_2012_1:zarebski-debugger.pdf|Debbuger VS2010}} | R. Zarębski | | ===== Propozycje tematów ===== Inne tematy do przygotowania (niektóre można/należy podzielić na kilka prezentacji): * Visual Studio 2010 Professional (ewentualnie Ultimate) * Zarządzanie projektami. Kompilatory C%%++%% i C#. * Debugger * Projektowanie wizualne (WindowsForms) * Generowanie kodu :kreatory, refaktoryzacja, inne pomocne "sztuczki" (np. for) * Generowanie dokumentacji : VS2010 C#, c%%++%% \\ [[http://www.codeproject.com/KB/cpp/TestXMLdoc.aspx|Quick C# Documentation using XML]] \\ [[http://msdn.microsoft.com/en-us/magazine/cc302121.aspx|XML Comments Let You Build Documentation Directly From Your Visual Studio .NET Source Files]] \\ [[http://community.sharpdevelop.net/blogs/mattward/pages/FeatureTourXmlComments.aspx|XML Comments]] \\ Pomocne narzędzia: [[http://www.helixoft.com/vsdocman/overview.html|VSdocman]] [[http://ndoc.sourceforge.net/|NDoc]] [[http://submain.com/products/ghostdoc.aspx|GhostDoc]] * Wsparcie dla programowania obiektowego: ClassDiagram i generowanie kodu, ClassViewer, Nawigacja pomiędzy klasami/metodami, Diagramy UML (tylko Ultimate) * Tworzenie aplikacji web * Profilowanie kodu (tylko ultimate) * Testowanie : Testy jednostkowe (TestUnit, NUnit - trzeba zainstalować) * WPF, WorkFlow, * inne: [[http://msdn.microsoft.com/en-us/library/ms173063%28v=VS.100%29.aspx|Using the Visual C# Development Environment - MSDN]], * Team Foundation Server (VS2010, czy wirtualna maszyna to pociągnie?) * Netbeans * przegląd, tworzenie projektów, dostępne narzędzia i pluginy * Projektowanie GUI + SWING, mniej więcej to samo co dla VS + * profilowanie kodu * NetBeans i wsparcie dla C%%++%%, tworzenie aplikacji na system Linux. * Valgrind wykrywanie wycieków pamieci (Cygwin, ferm lub virtualna maszyna) * Doxygen lub/i javadoc (ferm (?), virtualna maszyna) * Systemy kontroli wersji * SVN - konfiguracja serwera (sprawdzić czy czy potrzebne uprawnienia administracyjne?) * SVN - użytkowanie, rozwiązywanie konfliktów, (zdalna maszyna) * GIT * Eclipse - przegląd narzędzi, wsparcie dla C%%++%% (do zainstalowania na pracowni) * jest tu durzo różnych narzędzi postaci dodatków * Kompilator gcc (Linux/Cygwin), najważniejsze opcje + narzędzie make (Linux/ferm/Cygwin) * GDB - debuuger * Tworzenie i używanie statycznych i/lub dynamicznych bibliotek: * VS2010 (C%%++%%) * Linux (gcc/g%%++%%, ar, ranlib, ldconfig, ld, ldd, nm) \\ [[http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html|Tutorial - Static, Shared Dynamic and Loadable Linux Libraries]] \\ [[http://www.tldp.org/HOWTO/Program-Library-HOWTO/|Program Library HOWTO]] * Autotools (Linux/Cygwin) * Systemy raportujące błędy (Trac , Bugzilla) * Trac - Wsparcie dla programowania zespołowego (harmonogramy, śledzenie wykonania zadań, itp.) * gettext - lokalizacja programów w Linuxie * Profilowanie kodu za pomocą GNU gprof + grafy wywołań (GraphViz) (Linux/ferm) * UML (Dia, dia2code, MS Visio, umbrello, argouml, bouml, ...), UML i inżynieria wstecz/wprzód na przykładzie diagramów klas/use case przy użyciu programu [[http://argouml.tigris.org/|ArgoUML]]\\ W miarę potrzeb moźna rozszerzyć temat o inne dostępne w programie diagramy lub uwzględnić inne narzędzia: [[http://alexdp.free.fr/violetumleditor/page.php|VioletUML]] (brak generowania kodu), [[http://staruml.sourceforge.net/en/|StarUML]] (brak wersji portable), VS2010 Ultimate (widomo, na pracowni jest professional), [[http://uml.sourceforge.net/download.php|umbrello]] (wymaga KDE), dia (wymaga GTK), inne (?)... * Wdrażanie aplikacji (deployment) * Wdrażanie aplikacji w VS2010 \\ [[http://msdn.microsoft.com/en-us/library/bb384837.aspx| Deploying Your Program (C%%++%%) - MSDN]] \\ [[http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx|http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx]] \\ [[http://msdn.microsoft.com/en-us/library/e2444w33.aspx|Choosing a Deployment Strategy]] * Inne: jakich narzędzi używacie? Pochwalcie się! ===== Zaliczenie zajęć ===== Warunki zaliczenia laboratorium: * Kolokwium zaliczeniowe ... * ... lub prezentacja wybranych narzędzi programistycznych (ok. 20-30 min.) + przykłady demonstracyjne (ćwiczenia) do wykonania na zajęciach. * Obecność.