Projektni zadatak
Softverski obrasci i komponente
Kreirano 2024-09-30 Mon 13:32, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu
1. Tema zadatka
- Ex tensible P latform for S tructure V isualization and N avigation
(ExP re S si V e N ess).
- Vizualizacija i navigacija nad strukturama tipa grafa.
- Promenjivi modeli: razne vrste POPO (Plain Old Python Object) objektnih
grafova.
- Promenjive konkretne sintakse.
- Brz pregled i navigacija.
- Operacije: pan, point zoom in/out, tree outline, bird-view, filter, search,
dobijanje detalja o tekućem objektu itd.
- Opciono: konzola za upravljanje platformom: izmena sintaksi, izmena modela
itd.
2. Motivacija
- Vizualizacija kao pomoć u razumevanju međuzavisnosti objekata realnih
softverskih sistema.
- Pomoć u analizi složenih softverskih sistema kod npr. reinženjeringa.
- Primeri:
- Vizualizacija šeme baze podataka – isčitavanje metapodataka proizvoljne
baze i prikaz zavisnosti između tabela.
- Vizualizacija strukture programskog koda – parsiranje proizvoljnog
programskog koda i prikaz veza nasleđivanja, referenciranja i sl.
3. Tehnologije
- Integraciona platforma – Python
setuptools
(pkg_resources
)
- GUI - Web (HTML, CSS, JavaScript), Flask ili Django.
- Vizualizacija - d3.
4. Različite sintakse
- Izmenjive sintakse realizovane kao nezavisne komponente.
- Osnovna sintaksa – labelirani usmereni graf.
- Složenije sintakse – sintaksa tipa UML dijagrama klasa, sintakse za opis
procesa, sintakse za opis složenih hijerarhija itd.
5. Modeli
- Obični Python objekti (POPOs – Plain Old Python Objects).
- Modeli ne znaju za vizualizaciju (sledi se MVC obrazac).
- Modeli se mogu adaptirati za različite konkretne sintakse.
- Adaptacija se obavlja eksternim adapterima.
- Otvorena pitanja:
- Izvori modela.
- Mehanizmi kreiranja objektnih grafova.