Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Documentatie SCD - controlul Traficului Feroviar



Documentatie SCD - controlul Traficului Feroviar


Documentatie Proiect SCD - Controlul Traficului Feroviar


1.Definirea problemei

Se cere implementarea unui sistem pentru controlul distribuit al unei retele de cale ferata.Reteaua de cai ferate este compusa din gari interconectate intre ele prin linii duble de cale ferata.

Garile sunt compuse din:
- Linii interne: ce sunt folosite pentru dirijarea trenurilor in cadrul garii.
- Semafoare: ce permit sau nu intrarea unui tren pe un anumit segment de cale ferata.
- Macaze: acestea servesc pentru conectarea intre liniile de intrare in gara si liniile interne.
- Trenuri apartinatoare: trenurile se formeaza intr-o gara sursa si au un traseu reprezentat prin lista de gari prin care acesta trebuie sa treaca.
- Controler: fiecare gara are un controler de trafic ce deserveste macazele si semafoarele pe care le are in subordine. Controlerele garilor invecinate colaboreaza intre ele pentru a asigura buna desfasurare a traficului;acestea comunica intre ele pentru a asigura o cale libera pentru un anumit tren.

Trenurile au in dotare un sistem GPS ce permite localizarea in orice moment in timp ce se aflat in tranzit de la o gara la alta.

Se va implementa o aplicatie care sa cuprinda componentele descrise anterior. Aplicatia va permite atat controlul automat (prin intermediul controlerelor aflate la nivelul garilor) cat si controlul manual prin intermediul unei interfete.

Aplicatia implementata va contine urmatoarele componente:
- Sistem de monitorizare al traficului prin intermediul caruia se poate vizualiza in orice moment starea trenurilor a macazelor si a semfoarelor.
Toate datele referitoare la activitatea sistemului vor fi salvate de asemenea intr-un fisier.
- Sistem de control al traficului prin intermediul caruia trenurile sunt dirijate in cadrul garilor si in timpul tranzitului de la o gara la alta.
- Simulator de trafic ce simuleaza circulatia trenurilor in cadrul retelei feroviare.

OBSERVATIE: Fiecare gara va avea o interfata grafica ce va permite atat vizualizarea starii curente cat si controlul manual al trenurilor in caz de nevoie. Interfata grafica nu va contine componente animate.





2.Arhitectura generala a sistemului

Fiecare gara va contine un obiect de tip Controller care va implementa o interfata grafica.Trenurile vor fi create folosind un buton din interfata grafica respectiva.Trenul va primi si o destinatie.Dupa ce trenul a fost creat, controllerul v-a stabili sensul in care va trebui sa se deplaseze trenul.Trenul va parcurge liniile dintre gari asistat de controller care va citi senzorii si va controla semafoarele si macazele.Trenul va apela metode la iesirea si intrarea intr-o gara.Cand trenul va ajunge la destinatie, acesta va fi eliminat.

Liniile dintre gari sunt implementate ca liste de segemente de linie.Va fi folosit un iterator pentru deplasare pe lista (trenul va apela metoda iterator.next()).Garile vor primi id-uri pentru a decide in ce parte se va deplasa trenul.Fiecare linie din gara va avea 4 semafoare simulate printr-un vector de variabile boolean.

3.Specificatii:

Proiectul va fi implementat in mediul de programare Eclipse folosind JRE 6.0 Update 10.Va avea urmatoarea diagrama UML

Descrierea claselor:

Clasa Station - folosita pentru a crea obiecte de tip gara.

Contine urmatoarele atribute

stlines:StationRail este un obiect de tip array ce va contine un numar n de linii din gara

name:String contine numele garii

trains:Train va contine trenurile care sunt create in aceasta gara

Contine urmatoarele metode

getName():String va returna numele garii

newTrain(String destination):void va crea un nou tren in gara respectiva cu destinatia destination

Clasa Controller - folosita pentru a crea obiecte de tip Controller pentru gari.Controller-ul controleaza semafoarele si macazele dintr-o gara.

Contine urmatoarele atribute

station:Station va contine obiectul de tip gara care va fi controlat de controller-ul respectiv

Clasa Train - folosita pentru a crea obiecte de tip tren.Obiectele vor fi de tipul fir de executie.

Contine urmatoarele atribute:

id:String contine id-ul trenului


destination:String contine destinatia trenului (numele garii)

trainInStation:Boolean arata daca trenul este intr-o gara sau nu

currentStation:Station arata care este ultima gara in care a fost trenul

gps:GPS este obiectul GPS folosit pentru a afla locatia unde este trenul la un moment dat

Contine urmatoarele metode:

move():void muta trenul de pe un segment de linie pe urmatorul segment de linie

getId():String returneaza id-ul trenului respectiv

getDestination():String returneaza destinatia trenului

enterStation():void este apelata cand trenul intra intr-o statie; contine operatii de setare a senzorilor si update-are a GPS-ului

exitStation():void este apelata cand trenul iese dintr-o statie

Clasa RailSegment - simuleaza un segment de linie de cale ferata

Contine atributul

sensor:Boolean care reprezinta senzorul segmentului; ia valoarea true sau false in functie de pozitia trenului; este setat de catre obiectele de tip Train

Contine metodele:

setSensor():void care seteaza valoarea senzorului

getSensor():Boolean citeste valoarea senzorului

Clasa StationRail - simuleaza o linie din gara sau un peron

Contine urmatoarele atribute

id:String este un identificator pentru linie; este folosit pentru a face diferenta dintre liniie dintr-o gara

semaphores:Boolean[4] simuleaza cele 4 semafoare ale unei linii din gara

Contine urmatoarele metode:

getId():String returneaza id-ul liniei

setSemaphores():void seteaza cele 4 semafoare

getSemaphores():boolean[] citește starea semafoarelor

Clasa GPS - simuleaza un gps

Contine atributul

l:Location care va contine locatia unui tren

Contine metodele:

setStation(Station s):void care va seta gara curenta la s

setRailSegment(RailSegment rs):void va seta segmental curent de linie la rs

getLocation():Location va returna locatia curenta

Clasa Location - contine locatia curenta a unui tren

Contine atributele:

station:Station contine gara curenta

segment:RailSegment contine segmentul de linie curent

Proiectarea


Class diagram:

Atributele si metodele fiecarei clase sunt explicate la punctual 3.1.




Collaboration diagram:

In clasa MainClass sunt create obiecte care simuleaza liniile de cale ferata si anume StationRail si RailSegment, obiecte de tip Station si obiecte de tip Controller.In clasa Station se creaza obiecte de tip Train prin metoda newTrain().Pentru a se deplasa, firul de tip tren apeleaza metoda proprie move() care muta trenul pe segmentul de linie urmator.Trenul apeleaza metoda getController() a obiectului de tip Controller atasat cand trece de la o gara la alta și metodele enterStation() și exitStation() cand intra sau iese din gara.Obiectul Controller porneste trenul prin metoda start(), citeste si seteaza senzorii sau semafoarele segmentelor de linie prin metodele getSensor(), setSensor(), getSemaphores() si setSemaphores().


Use Case diagram:

Actorii proiectului sunt utilizatorul, partial in mod automat cand creaza trenurile și total in mod manual cand el controloeza toate trenurile, controllerele care controleaza trenurile, semafoarele și senzorii in mod automat și trenurile.

In diagram Use Case au fost trecute operațiile principale efectuate de catre fiecare actor.Mai exista și alte operații cum ar fi setarea GPS-ului de catre tren care sunt tratate in diagram claselor.






Sequence diagram:

Au fost trecute toate tipurile de obiecte existente in proiect și relațiile dintre ele in timp.MainClass creaza toate obiectele prin metoda new() la inceputul programului.Un obiect de tip Station creaza un tren care este pornit iar un obiect de tip Controller verifica semafoarele și senzorii pentru deplasarea trenului.Cand trenul ajunge in alta gara apeleaza metoda getController() pentru o fi controlat de controllerul garii respective.Trenul isi compara numele garii cu destinația sa, iar cand coincid, trenul ve fi șters de catre Main.

Activity diagram


Este prezentata o secvența de functionare.La inceput se creaza obiectele, se creaza trenul și se pornește.Controllerul verifica condițiile trenului, daca a ajuns sau nu la destinație.Daca trenul ajunge la destinație,este oprit și sters.

La diagram State este tratat si obiectul de tip Controller care controleaza trenurile cum este descris mai sus.

State diagram:



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright