Projektowanie oprogramowania systemów - multimed.org · Projektowanie przyrostowe Tego również...

Preview:

Citation preview

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: pietka@sound.eti.pg.gda.pl, 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

Recommended