Zasady zaliczania
Projekt z przedmiotu:
,,Systemy czasu rzeczywistego''
Zajęcia projektowe prowadzone w Katedrze Informatyki Stosowanej AGH z
przedmiotu ,,Systemy czasu rzeczywistego'' umożliwiają
zapoznanie się
z językiem programowania Ada 95/2005 w zakresie tworzenia
oprogramowania
współbieżnego
jako istotnej części systemów czasu rzeczywistego. W ramach tych zajęć
tworzonych
jest szereg krótkich programów tematycznych i jeden dłuższy całościowy
na
koniec semestru. Program ten nazywany jest dalej programem
zaliczeniowym.
Język programowania -- Ada 95/2005.
Program wielozadaniowy -- minimum dwa komunikujące się zadania.
Komunikacja przez spotkania lub przez obiekty chronione.
Poniższy schemat odnosi się głównie do programów mających
charakter symulacji!
Większość programów obowiązuje następujący schemat funkcjonowania:
- Po uruchomieniu programu możemy wybrać przynajmniej następujące
opcje:
- Start części wielozadaniowej np. symulacji
- Zmiana parametrów. Symulacja powinna mieć minimum 2 parametry
ustawiane w menu na cały czas symulacji. Mają one charakter
niezmiennych parametrów np. rozmiary pojemnika, moc maksymalna kotła,
maksymalna liczba okienek na
poczcie.
- Wyjście z programu
- Możliwa jest wielokrotna zmiana parametrów jak i start
symulacji.
- Po każdej symulacji powinno się pojawić podsumowanie, w którym
podajemy minimum:
- czas symulacji
- wartości parametrów (niezmiennych) ustawionych przed
symulacją w menu
- wybrane wartości, zależne od rodzaju symulacji mogące dobrze
charakteryzować przebieg symulacji, mające charakter kryteriów (można
je użyć do porównań), podsumowujące symulację np. ilość energii zużytej
przez kocioł, liczba osób
obsłużonych w banku, liczba samochodów, które skorzystały ze
skrzyżowania
itp.
Podczas zaliczania programu będą brane pod uwagę między innymi
następujące czynniki:
- czytelność kodu w tym:
- układ tekstu programu (wcięcia itp.)
- nazwy zmiennych, podprogramów,
- podział na jednostki - podprogramy, pakiety, ...
- wykorzystanie możliwości języka programowania,
- dobór struktur danych,
- obsługa sytuacji wyjątkowych i błędów wykonania przez nas (program
nie powinien przerwać działania przez wygenerowanie wyjątku),
- zawsze użytkownik powinien wiedzieć co dzieje się w trakcie
wykonywania programu, a jeśli w danym momencie ma możliwość ingerencji
(np. menu) to
musi znać swoje opcje,
- wszystkie pliki przedstawione do oceny (bez pakietów
cudzych) powinny być podpisane!
- zapewnienie bezpiecznego dostępu (z wzajemnym
wykluczaniem) do
zasobów dzielonych np. zmiennych globalnych, ekranu,
klawiatury, drukarki,
joysticka, portu RS itp.
- pakiety i istotne procedury powinny być opatrzone komentarzami,
- nie umieszczamy w kodzie źródłowym więcej niż jedną linię
odstępu,
- bardzo dobra znajomość zaliczanego programu!
Wraz z programem zaliczeniowym należy oddać sprawozdanie.
W sprawozdaniu nie umieszczamy listingu
naszego
programu!
Sprawozdanie powinno zawierać następujące informacje:
- Dane studenta - imię, nazwisko, rok i kierunek studiów, numer
grupy dziekanatowej,
- Datę oddania programu,
- Tytuł programu,
- Cel programu - krótki opis
- Opis i schemat struktury logicznej programu,
- Informacje o stosowanych pakietach zewnętrznych
(niestandardowych),
- Informacje o zastosowaniu specyficznych metod rozwiązania
problemu np.
do odwrócenia macierzy użyto metody ...
- Krótka instrukcja obsługi,
- Możliwe rozszerzenia programu (na przyszłość),
- Ograniczenia programu np. maksymalna liczba obsługiwanych plików,
max.
czas symulacji itp.,
- Inne informacje zależne od tematu.
Przygotowanie referatu jest nieobowiązkowe. Ocena za referat może
wpłynąć
na ocenę końcową w zakresie 0 . . +0,5 oceny. W ramach
referatu należy przygotować
wystąpienie na ok. 15 - 20 min oraz treść do prezentacji w Internecie
(html)
-- na serwerze deathstar. Przedstawione informacje powinny być poparte
własnymi
doświadczeniami np. na podstawie realizacji programu powiązanego z
tematem
referatu.
- Obiektowość w Adzie
- Użycie pakietu JEWL
- Użycie pakietu GtkAda
- Sockety w Adzie
- Bazy danych w Adzie
- Szyfrowanie w języku Ada
- Grafika w Adzie na bazie OpenGL
- Systemy czasu rzeczywistego w Adzie, w tym priorytety, przerwania
itp.
- Systemy rozproszone w Adzie
- Obsługa COM w Adzie
- Zmiany w nowej wersji Ady 2005
Uwaga. Symulacja nie musi przebiegać w czasie rzeczywistym.
Może
być zwolniona lub przyspieszona.
- winda - wiele wariantów np.:
- skrzyżowanie ze światłami - warianty np.:
- dodatkowo czujniki ruchu
- przyciski na pieszych
- procesy technologiczne
- sterowanie piecem indukcyjnym w hucie
- napełnianie butelek wodą mineralna
- sterowanie ramieniem robota
- sterowanie dźwigiem
- produkcja ogórków konserwowych
- proces rektyfikacji spirytusu
- sortowanie i pakowanie np. owoców
- instalacje w budynkach
- alarmowa
- centralnego ogrzewania np.:
- sterowanie kotłem gazowym
- układ sterowania c.o. z kolektorem słonecznym
- sterowanie żaluzjami
- inteligentny dom
- urządzenia pomocnicze stosowane w/przy budynkach
- sterowanie bramą wjazdową
- elektrownia wiatrowa
- urządzenia codziennego użytku
- tuner radiowy
- magnetowid
- odtwarzacz DVD
- odtwarzacz MP3
- pralka
- kuchnia mikrofalowa
- urządzenia stosowane w samochodach
- ABS
- sterowanie światłami
- alarm
- silnik spalinowy
- tempomat
- autopilot
- zawieszenie
- automatyczna skrzynia biegów
- urządzenia medyczne
- łódź podwodna
- sonda samobieżna (omijanie przeszkód) np. na Marsie
- satelitarny system pozycjonowania GPS
- akwarium
- symulator procesora/mikrokontrolera
- system identyfikacji osób np. w budynku
- prom na rzece
- kolej linowa
- automat do napojów np. napoje ciepłe i zimne
- automatyczna kasa biletowa
Część pomysłów można zaczerpnąć z czasopism np. Elektronika praktyczna.
- Biblioteka + obsługa czytelników
- Dziekanat + obsługa studentów
- Obsługa klientów na poczcie
- Obsługa klientów w banku
- Giełda
- Firma handlowa
- Kontrola ruchu powietrznego
- Straż pożarna
- Zintegrowany system ratownictwa
- Stacja benzynowa
- Stacja kolejowa
- Dworzec autobusowy
- Linia tramwajowa/autobusowa
- Firma taksówkarska
- Sieć parkingów
- Przejście graniczne
- Centrala telefoniczna
- Zbiornik retencyjny
- Hodowla ryb
- Szklarnia
- Punkt poboru opłat na autostradzie
- Myjnia samochodowa
- Pralnia
- Obsługa portu
- sieć energetyczna kraju
- sieć komórkowa (telefony)
- sieć komputerowa
- zmiana pogody na wybranym obszarze
- rozkład zanieczyszczeń na pewnym obszarze
- Życie w mrowisku
- Wydolność sportowca biegacza, kolarza, itp.
- Sterowanie jachtem
- Holowanie ryby podczas wędkowania
- Własna obsługa dostępnej bazy danych
- Obsługa własnej bazy danych (własny format)
- Serwer ftp, telnet itp.,
- Komunikacja, wymiana informacji przez sieć,
- Tablica ogłoszeń (sieciowa)
- Gry planszowe
- Gry zręcznościowe
- Metody numeryczne
- Optymalizacja
- Obliczenia na macierzach
Konwertery pomiędzy różnymi formatami tekstowymi, graficznymi itp.
Realizacja systemu rozproszonego wg zasad udostępnianych przez Adę
(min.
2 komputery pod Linux'em).
Realizujemy wybrany temat jako system rozproszony.
- Open GL
- Przetwarzanie obrazów
- Obsługa formatów graficznych
Pakiet z przykładem jego wykorzystania. Pakiet rodzajowy lub
zwykły.
- Obsługa złożonej struktury danych np. graf, drzewo,
- Obsługa wybranych formatów np. XML, TEX
Z wykorzystaniem standardowych portów: RS, USB, Centronics itp.
Pakiet z przykładem jego wykorzystania:
- Pakiet do obsługi portu USB
- Pakiet do obsługi portu Centronics z możliwością operacji na
pojedynczych bitach portu.
- Pakiet do obsługi portu szeregowego RS232C
- Pakiet do obsługi portu na podczerwień IRDA
- Pakiet do obsługi joysticka
- Pakiet do obsługi karty dźwiękowej
- Pakiet do dekodowania dźwięku (np. mp3) lub obrazu (np. DivX).
2013-01-10