projektowanie oprogramowania systemów - multimed.org · projektowanie przyrostowe tego również...
TRANSCRIPT
Projektowanie
oprogramowania
systemów WYKŁAD WPROWADZAJĄCY
przedstawmy się…
Osoba odpowiedzialna za wykład: dr inż. Piotr Suchomski
Absolwent informatyki (PG ETI, 1997),
Adiunkt w Katedrze Systemów Multimedialnych,
Specjalność: systemy multimedialne, tworzenie
oprogramowania do przetwarzania dźwięku i obrazu.
Większość materiałów do wykładu została opracowana przez
mgr inż. Andrzeja Ciarkowskiego (byłego pracownika KSM)
kontakt
Miejsce pracy: p. 730 „stare” ETI (Katedra
Systemów Multimedialnych)
Konsultacje Poniedziałek, 9-10; Czwartek 13-14
E-mail: [email protected], tel. 23-01
Portal z prezentacjami:
www.sound.eti.pg.gda.pl
Login: student
hasło: lab@kaesem
cel i założenia przedmiotu
Olbrzymia większość aktualnie prowadzonych prac magisterskich, inżynierskich, projektów i projektów grupowych na kierunku EiT polega na wytworzeniu jakiegoś oprogramowania
Studenci EiT znajdują się w tej sytuacji w gorszym położeniu, niż studenci Informatyki, gdyż nie są w toku studiów przygotowywani do realizacji tych prac – najczęściej nauka praktycznych podstaw następuje w trakcie wykonywania dyplomów i projektów, absorbując znaczną część energii wykonawców, kosztem uzyskanego efektu
Dla pracodawców umiejętność tworzenia systemów informatycznych staje się wymogiem równie oczywistym co znajomość języków obcych – wiedza i umiejętności specjalistyczne, zdobywane w Katedrach pozwalają zaś wyróżnić absolwentów EiT wśród „tłumu programistów”
tego nikomu nie życzymy…
cel i założenia przedmiotu
Niniejszy przedmiot ma za zadanie:
„Wyrównać szanse” studentów EiT w praktycznym podejściu do zarządzania, projektowania i programowania systemów informatycznych
Umożliwić im sięganie po bardziej ambitne projekty i oswoić się z problemami jakie napotkają podczas ich realizacji
Nauczyć się korzystania z narzędzi i wzorców oczekiwanych przez pracodawców
Pozwolić studentom wypłynąć na „szerokie wody” ;)
organizacja zajęć
Wykłady trwają do połowy semestru (2h/tydz)
Ostatni wykład – 2016-04-19
Po zakończeniu wykładów rozpoczyna się
projekt, prowadzony przez osoby z Katedry
odpowiedzialnej za daną specjalizację (np. KSM
– dr inż. Grzegorz Szwoch)
W ramach projektu celem będzie wykonanie
systemu informatycznego z wykorzystaniem
przedstawionych narzędzi, usług i technik
(tematy dostępne w Katedrach)
zaliczenie
Egzamin
test jednokrotnego wyboru
punktacja 0/1 – bez ułamków,
Ok. 21 pytań
Min. 50% poprawnych odpowiedzi aby zaliczyć test
Punktowana jest obecność na
wykładach:
+3 pkt – obecność na wszystkich wykładach,
+2 pkt – 1 nieusprawiedliwiona nieobecność,
+1 pkt – 2 nieusprawiedliwione nieobecności
zaliczenie
Idealnym rozwiązaniem byłaby pojedyncza
ocena z wykładu i projektu, odzwierciedlająca
umiejętność zastosowania przekazanej wiedzy w
praktyce – niestety trudne do realizacji ze
względu na to, że projekt prowadzi kto inny
program wykładu
1. Wykład wprowadzający: cel przedmiotu, omówienie zagadnień,
kryteria zaliczenia; Projektowanie i wytwarzanie złożonych systemów w
zakresie Technologii Informacyjnych (TI).
2. Specyfikacja i dokumentacja projektowa systemów w zakresie
technologii informacyjnych (TI). Podstawy zarzadzania projektem
metoda Scrum
3. Narzędzia pracy grupowej, kontroli wersji kodu, automatycznej
generacji dokumentacji oprogramowania oraz rejestrowania i
zarządzania informacjami o błędach napotkanych w
oprogramowaniu.
4. Konfiguracje uruchomieniowe oprogramowania (Debug/Release).
Narzędzia wspomagające usuwanie błędów oprogramowania
(debbugery), optymalizację czasu wykonania (profilery) oraz kontrolę
jakości oprogramowania.
program wykładu
5. Rola procesów w systemach TI, zarządzanie procesami. Wątki i
synchronizacja międzywątkowa. Mechanizmy komunikacji
międzyprocesowej (IPC)
6. Dostęp do zasobów systemowych i usług (zegary i liczniki czasu,
pliki i urządzenia we/wy, zarządzanie pamięcią i zasobami
dyskowymi.
7. Komunikacja sieciowa i międzyplatformowa w złożonych
systemach TI (gniazda sieciowe, RPC/RMI, platformy
middleware).
8. Wykorzystanie bibliotek programistycznych i generatorów
gotowych projektów w kontekście wytwarzania
oprogramowania systemów. Podstawowe wzorce proejktowe.
organizacjyjnie – last but not least…
Jakie języki oprogramowania były dotychczas w
programie studiów i na jakim poziomie?
Ile osób zna języki: Java, C#, C, C++?
Ile osób ma doświadczenie inne niż projekty
akademickie w w/w językach?
Ile osób uważa, że jest biegła w zagadnieniach
poruszanych przez niniejszy wykład?
Projektowanie
oprogramowania
systemów CHARAKTERYSTYKA WSPÓŁCZESNYCH SYSTEMÓW INFORMATYCZNYCH,
NOWE KONCEPCJE I TRENDY
Systemy IT są wszechobecne…
SmartHomeSmartWear
Internet of things
Cloud computing
Mobile platforms
Video on demand
SmartTV
Semantic Web
VoIP
Computing Everywhere
3D Printing
BigData
DLNA
…i będzie ich tylko więcej
Systemy IT
Rozproszone
Wielowątkowe
Osadzone(embedded)
Mobilne
Wieloplatformowe
Webowe
Superkomputerowe
Czasu rzeczywistego
Bazodanowe
Repozytoria
Systemy IT są różnorodne…
Perspektywy
Rozwiązania bazujące na technologiach IT będą coraz bardziej
wypierać „tradycyjne” metody we wszystkich dziedzinach życia
Coraz więcej urządzeń nas otaczających będzie miało
charakter programowalny – koncepcje „smart”
Dopóki urządzenia nie nauczą się programować same,
umiejętność tworzenia systemów informatycznych będzie
kluczowa w każdej dziedzinie gospodarki, bez względu na
obszar, specjalność, profil
Współczesne trendy zakładają coraz większą rolę urządzeń
połączonych – np. „Internet of things” – ważna jest
komunikacja, wymiana danych, interfejsy, protokoły…
Projektowanie i wytwarzanie
systemów informatycznych
Współczesne trendy
Praca grupowa (collaborative programming)
Metodyki zwinne (Agile, SCRUM)
Programowanie ekstremalne (extreme programming)
Test-driven development
Programowanie parami
Projektowanie przyrostowe
Tego również będą oczekiwać Wasi przyszli pracodawcy!
O czym NIE jest ten wykład?
Ten wykład nie ma ambicji nauczyć Was projektowania
systemów informatycznych
Nie ma czasu na omówienie nawet najważniejszych metodyk
projektowych
Oczekiwania pracodawców w tym zakresie są tak różnorodne,
że i tak ciężko w nie trafić
Ten wykład ma za zadanie nauczyć praktycznych
aspektów wytwarzania oprogramowania
Ale, wszędzie gdzie to możliwe, będziemy starać się konsekwentnie stosować podejście zgodne z metodykami
Agile/XP
Czy są jakieś pytania?
Cancel I Agree