Presentation laddar. Vänta.

Presentation laddar. Vänta.

Presentation av examensarbete: Skapande av en grafeditor ● Kjell Winblad ● 10 studiepoäng på C-nivå ● Uppdrag åt: lektor Klas Markstöm.

Liknande presentationer


En presentation över ämnet: "Presentation av examensarbete: Skapande av en grafeditor ● Kjell Winblad ● 10 studiepoäng på C-nivå ● Uppdrag åt: lektor Klas Markstöm."— Presentationens avskrift:

1 Presentation av examensarbete: Skapande av en grafeditor ● Kjell Winblad ● 10 studiepoäng på C-nivå ● Uppdrag åt: lektor Klas Markstöm på matematik ● Handledare: Jürgen Börstler

2 Presentationens innehåll ● Presentation av uppdrag ● Projektets mål ● Marknadsunderökning angående grafeditorer ● Projektets genomförande ● Resultat ● Framtiden

3 Uppdrag ● Skapa ett verktyg för att redigera grafer ● Verktyget skall bland annat: – Vara anpassat för den mattematiska grenen grafteori – Ha ett interaktivt gränssnitt – Kunna exportera och importera grafer från/till externa filformat (ex. Mathematica och bildformat) – Kunna ångra och göra om ändringar samt kopiera och klisra in

4 Projektets mål ● Uppdragsgivaren Klas Markström har tidigare använt programmet Cabri-graph som grafeditor ● Anledningen till att Cabri-graph behöver en efterföljare är: – Det har inte underhållits sedan 1998 – Programmet fungerar bara på Mac OS 9 och tidigare – Programmet går inte att vidarutveckla då källkoden inte är tillgänglig ● Ett av målen är att skapa ett program som liknar Cabri-graph men som inte har restriktionerna ovan

5 Cabri-graph Skärmdump på cabri-graph ● Cabri-graph har använts som ”förebild” till programmet

6 Finns det inte redan grafeditorer? ● En fråga som har ställts av uppdragsgivaren och mig ● Det finns grafeditorer för att: – Rita flödesscheman – Rita klassdiagram – Rita kopplingsscheman – Och för många andra typer av editorer ● Men…

7 Finns det inte redan grafeditorer? ● Men... : – Det är väldigt få som är anpassade för arbete med grafteori – De har någon form av restriktion som t.ex.: ● En licens som inte tillåter vidareutveckling ● Att de är gjorda till en specifik plattform ● Att de har ett rörigt användargränssnitt ● Detta motiverar utveckling av ytterligare en grafeditor

8 Marknadsundersökning ● Vilka grafeditorer och annan relaterad mjukvara finns som kan vara intressant för projektet ● Genomfördes genom sökning på Internet ● Undersökningen kan inte vara heltäckande

9 Grafeditorer för grafteori ● JGraphEd – Skriven i Java med öppen källkod – Utvecklad som examensarbete av: ● Jon Harris vid School Of Computer Science vid Carleton University, Ottawa, Canada – Den editor som kanske är det bästa alternativet till editorn som har utvecklats i det här projektet

10 Grafeditorer för grafteori ● Grin (GRaph INterface) – Utvecklad för windows – Inte öppen källkod – Har ej testats ● Cabri-graph – Grafeditorn som har diskuterats tidigare – Den editor som uppdragsgivaren har erfarenhet av att använda

11 Intressanta mjukvarubibliotek ● JGraph ● JGraphT ● Jgraph Pad CE – Alla är öppen källkod och är gjorda i Java ● Det finns även en mängd bibliotek som är: – Utan öppen källkod – Skrivna i andra språk än Java

12 Tidsplanering ● I projektets inledning skapades en tidsplanering ● Tidsplaneringen innehöll några huvudpunkter: 1.Design 2.Utveckling av den grundläggande funktionaliteten 3.Utveckling av extra funktionaliteter 4.Dokumentation och slutförande

13 GUI Design ● sketch för användargränssnittet gjordes först på papper ● Dessa sketcher diskuterades med uppdragsgivaren ● Låg till grund för implementations arbetet

14 Val av programmeringspråk ● Programmet är utvecklat i Java ● Andledning till att Java valdes är: – Plattformsoberoende – Har ett bra bibliotek för att utveckla GUI (Swing) – Det programmeringspråk som utvecklaren känner till bäst – Bra tredjepartsbibliotek

15 Externa mjukvarubibliotek ● Tredjepartsbibliotek har stor betydelse för programmets design ● Programmet använder många tredjepartsbibliotek ● Alla bibliotek som har används har en s.k. öppen källkod licens – Viktigt för att programmet skall vara vidareutvecklingsbart

16 Externa mjukvarubibliotek ● JGraph ● JGraphT ● JGraphpad CE ● XStream ● EPS Graphics Library ● Java Help System ● BrowserLuncher2

17 Externa mjukvarubibliotek ● JGraph har stor betydelse – En komponent för visualisering och ändring av grafer – Använder sig av klasser i Swing biblioteket – JGraph är konstruerad för att vara anpassningsbar till en mängd tillämpningar

18 Objektorienterad design ● En objekt orienterad design skapades innan implementationsarbetet ● En mycket grov design – Innehåller exempelvis inga metodnamn eller definitioner – Bara de klasser som anses viktiga för sammanhanget

19 Alternativ för OO-design 1.Mycket detaljerad design ● - Skulle kräva omfattande förarbete ● - Bli tvungen att sätta sig in i alla externa mjukvarubibliotek ● + Programmets design skulle bli mycket övertänkt 2.Översiktlig design ● - Programmets design kan bli mindre genomtänkt ● + Implementationsarbetet kan börja snabbt ● + Man kan sätta sig in i det man för tillfället håller på med

20

21 Implementationsarbete ● Genomfördes i två faser – I första steget implementerades basfunktionaliteten ● Dessa utvärderades – En lista med ”extrafunktionalitet” sorterad i prioritetsordning ● Av dessa implementerades de flesta ● Tre punkter saknas – random key regular graph-algoritm implementation – Importera och exportera grafer till/från Graph6-formatet – Implementera visualisering av grafalgoritmer (BFS och DFS)

22 Resultat ● Den grundläggande funktionaliteten är implementerad ● Det mesta av extrafunktionaliteten ● Icke funktionell målsättning? – Plattformsoberoende – Vidareutvecklingsbart – Användarvänligt

23 Framtiden ● Programmets nuvarande funktionalitet kan förbättras ● Det finns väldigt mycket grafoperationer och liknande som skulle kunna läggas till ● Ett plugin-system – Anpassa programmet till specifikt användningsområde ● En hemsida för programmet (sourceforge.net)

24 Mer information ●


Ladda ner ppt "Presentation av examensarbete: Skapande av en grafeditor ● Kjell Winblad ● 10 studiepoäng på C-nivå ● Uppdrag åt: lektor Klas Markstöm."

Liknande presentationer


Google-annonser