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	Wstęp - plan	MG
23/02/2012	Środowiska IDE - ogólny przegląd Visual Studio 2008/2010 - wstęp Projekty i zarządzanie nimi. Kompilatory C++ i C#.	MG
1/03/2012	Team Foundation Server - prezentacja (PDF) Team Foundation Server Scrum CodePlex	D. Zarzycki
8/03/2012	Testowanie kodu (testy jednostkowe), NUnit, VS 2010	J. Szatkowski	Przykłady
22/03/2012	Valgring	Ł. Matczyński	Ćwiczenia
29/03/2012	Tworzenie aplikacji WEB VS2010	A. Zwiewka	Ćwiczenia
12/04/2012	Trac	O. Rusek
Firebug/Notepad++	M. Leciejewski
19/04/2012	Edi	O. Potwardowska
GCC , make	M. Stankiewicz
26/04/2012	Matlab	M. Musiał
17/05/2012	Systemy raportujące błędy (Bugzilla)	R. Zielinski
UML w VS2010	K. Sumowski
24/05/2012	Eclipse	W. Rozwadowski
31/05/2012	GraphViz	P. Warzocha	Dodatkowe materiały
Debbuger VS2010	R. Zarębski

Propozycje tematów

Inne tematy do przygotowania (niektóre można/należy podzielić na kilka prezentacji):

(ewentualnie Ultimate)

Zarządzanie projektami. Kompilatory C++ i C#.

Debugger

Projektowanie wizualne (WindowsForms)

Generowanie kodu :kreatory, refaktoryzacja, inne pomocne „sztuczki” (np. for<Tab>)

Generowanie dokumentacji : VS2010 C#, c++
Quick C# Documentation using XML
XML Comments Let You Build Documentation Directly From Your Visual Studio .NET Source Files
XML Comments
Pomocne narzędzia: VSdocman NDoc 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: 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)
Tutorial - Static, Shared Dynamic and Loadable Linux Libraries
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 ArgoUML
W miarę potrzeb moźna rozszerzyć temat o inne dostępne w programie diagramy lub uwzględnić inne narzędzia: VioletUML (brak generowania kodu), StarUML (brak wersji portable), VS2010 Ultimate (widomo, na pracowni jest professional), umbrello (wymaga KDE), dia (wymaga GTK), inne (?)...

Wdrażanie aplikacji (deployment)

Wdrażanie aplikacji w VS2010
Deploying Your Program (C%%++%%) - MSDN
http://msdn.microsoft.com/en-us/library/zebw5zk9.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ść.