Narzędzia programistyczne

Wykład i laboratorium

Termin zajęć w semestrze zimowym 2013/2014

wtorki, godz. 1000-1130, sala 28, WFAiIS

Laboratorium: poniedziałki, godz. 8-10, sala PK1, WFAiIS

Przebieg zajęć/ prezentacje

Data	Temat	Prowadzący	Źródła/Projekty/
08/10/2013	Wstęp - plan	MG
15/10/2013	IDE przegląd	MG
22/10/2013	TFS + ALM	MG
29/10/2013	Git	R. Gardziński
Subversion	M. Schalau
Porównanie SVN vs. git	MG
5/11/2013	Doxygen	A. Ławniczak	demo.zip
Testy jednostkowe w VS	W. Szymecki	demo.zip
19/11/2013	firebug	M. Przybył	demo.7z
Deployment w VS 2010	R. Burzyński
26/11/2013	MonoGame	Ł. Kiełczykowski
PhysX Visual Debugger	T. Gańko
3/12/2013	X Code, tworzenie oprogramowania Apple	M. Bartnicki
Free Pascal	Ł. Gorzel
10/12/2013	GCC + make	S. Chojnicki
Eclipse + libgdx	Ł. Dzwonkowski	demo.7z
17/12/2013	Matlab	K. Falewicz
gettext	J. Ejnik
14/01/2014	autotools	P. Milewski
Narzędzia deweloperskie Java	Ł. Demski	java-cmd
21/01/2014	NetBeans	G. Furdyna	Żródła
Delphi	Ł. Król	Opis
PHP + Framework Symfony	N. Rybarczyk
28/01/2014	Kolokwium

Propozycje tematów

Niektóre, w zależności od ujęcia, można/należy podzielić na kilka prezentacji:

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

Debugger

Projektowanie wizualne (WindowsForms, WPF, inne)

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,

Programowanie Windoes Phone/Windoes 8

Blend

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

Team Foundation Service

Azure, usługi

przegląd narzędzi,

JDT - Java development tools

CDT, Eclipse IDE for C/C++ Developers, wsparcie dla C++

Eclipse for Mobile Developers

Eclipse Modeling Tools (MDT)

Eclipse for Testers

PDT, PHP Development Tools

Mylyn - Application Lifecycle Tools

jest tu bardzo dużo różnych narzędzi postaci dodatków: Memory Analyzer, Test and Performance Tools Platform (TPTP), Web Tools

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

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.)

Zarządzanie projektami (Project Management Software)

List_of_project_management_software

Trac, TFS, Google Code, GitHub, CodePlex, inne...

TaskJuggler, Redmine, Microsoft Project, MS Project Server

metodologie zarządzania: Scrum, inne.. i oprogramowanie wspierające

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 przydatne narzędzia:

ReSharper

FxCop

DebugView

dotTrace

dotCover

dotPeak

Zaliczenie zajęć

Zagadnienia na kolokwium

Warunki zaliczenia laboratorium:

Kolokwium zaliczeniowe ...

... lub prezentacja wybranych narzędzi programistycznych (ok. 30-45 min.). W prezentacji, obok części prowadzającej teoretycznie, warto zawrzeć przykłady demonstracyjne.

Obecność.