Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avRoland Danielsson
1
Presentation av examensarbete: Skapande av en grafeditor ● Kjell Winblad (kjellw@cs.umu.se) ● 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 http://www-cabri.imag.fr/CabriGraphes/cabri_anglais/gb_cabri.html ● 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
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 ● http://www.cs.umu.se/~kjellw/exjobb
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.