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

Slides:



Advertisements
Liknande presentationer
Kampanjuppföljning Hur den senaste kupongkampanjen gick totalt sett vet du säkert. Men hur gick den i exempelvis Skåne jämfört med i Göteborg? Var resultatet.
Advertisements

Varför är det viktigt att mäta?
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
CiviCRM – en introduktion
Närvaro!!.
9. Gör ritningen innan Du bygger huset
Problemsnack eller bygga lösningar.
Picsara 10.2 Picsara Användardagar
Tema: Uppfinning Av Thomas Mesumbe.
Hur ger vi snabbt de kunskaperna? Vi behöver ge våra blivande e- handläggare förkunskaper, för att de ska klara sina utbildningar och uppdrag.
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Informationshantering
Syften med utvärderingar • Kontrollera och ge beslutsunderlag Har man gjort det man skall? Har man följt riktlinjerna? Behövs det kompletterande åtgärder?
Inlärningsmiljö för att öka motivation
Laterna Compact Booking Saknar du ett bra bokningssystem? Pröva det här! Lättanvänt Flexibelt Pålitligt.
Instruktioner Vilken grupp av frågor känner du att du instämmer mest med? Instämmer du i hög grad med de första 10 frågorna är din självkänsla lägre.
Logga in i Fronter och klicka på:  Rum  Alla rum  Biblioteket  Projektarbetet En plats att börja på Här hittar du massor av råd och tips – följ länkarna!
The Ubiquitous Interactor Mobila tjänster med flera användargränssnitt.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
Next previous Refactoring och lite mönster kodade i Java Innehåll Vad är refactoring? Ett större refactoringexempel Några mönster kodade i Java OOMPA 2000.
Programmeringsteknik K och Media
Att programmera i språket Java
Exjobb--Från Idé till Rapport Jürgen Börstler Umeå University SWEDEN
Av: Simon och Jonatan.
SVEROF programförklaring Sverige ska ha ett försvar som är modernt, kompetent och användbart. Vi ska gå från ett förrådsställt invasionsförsvar till ett.
Modellering med UML
Stöd för haptisk hårdvara i en spelmotor
Projektdokument.
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Icke farmakologiska metoder på särskilda boenden Vad tycker sjuksköterskan ? Uppfattningar och tillämpning Ett examensarbete av Tony Gustavsson och Malin.
Nätverket Sökguiden. Vi kommer berätta om : Nätverket Sökguiden Visa hur man: Lägger in texter och lärobjekt Kategoriserar och Redigerar.
Nätbaserade kurser.
Arkitekturenheten © CSN 2010 IBM System Architect - CSN Örjan Carlsson, chef för Arkitekturenheten på CSN
Presentation av forskningen “Öppenhet” inom industriella styrsytem –Teknik (kommersiella system, teori) –Kravställning (komm. upphandlingar, teori) Nyckelkomponent.
Välkommen till Del 1.
Ver 1.0 IT-satsningen Styrelsens förslag Riksstämman Skövde 2003.
Att upptäcka matematiken med symbolhanterande räknare biennetten 2005 Patrik Erixon.
Frågor om elevinflytande till elever i åk 3 – 9 i grundskolan
Känna till och ha provat metoder och verktyg för processledning
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
OOPJ I, 5p Objektorienterad Programmering i Java.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Mervärden och aha-upplevelser
1969 – Bell Labs Multics utvecklas men läggs ner Thompson & Ritchie skapar Unics (senare Unix) för att spela Space Traveler.
Dagens presentation  Vad är Öppna programmet och hur arbetar vi?  Hur ser vårt datoranvändande ut?  Tid för frågor.  Daniel Anderberg IT-samordnare.
Nya föreskrifter och allmänna råd
I det nationella materialet kan vi urskilja tre olika nivåer på arbetet att förbättra högskoleutbildningarna.
Designstöd Daniel Fällman Institutionen för informatik Umeå universitet Design och utvärdering, 5 poäng.
En guide för arbeten i SO
Utvecklingsprocessen Webbutveckling. Utvecklingsprocessen Bli inte rädd för alla begrepp och alla verktyg man verkar behöva kunna. Du måste inte använda.
Koha En presentation av bibliotekssystemet Koha. Projeketets syfte & mål Projektets syfte är att öka kunskapsnivån i Halland och Sverige kring bibliotekssystemet.
INTRODUKTION TILL PROGRAMMERING
Yrken inom Datorteknik
AquaInteracTV An aquatic experience in your livingroom.
Operating Systems (Operativsystem) Choosing The Operating Systems (Val av operativsystem)
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( )‏ Innehåll:  Att designa parallella program - manuell vs. automatisk parallellisering.
Föreläsning 1 Introduktion till kursen. Algoritmer
Ny mailtjänst vid LU Agenda –Nuvarande situation –Projektets mål –Framtida mål mars 2008, bild 1.
Föreläsning om RUP RUP – Rational Unified Process
Utvärdera – hur gör man praktiskt? Metoder och verktyg Presentation för Göta Styrgrupp,
1. Genomför enkäten och redovisa resultatet 4. Vid vilka tillfällen fungerar bra eller hyfsat bra redan idag? Vad är det som gör att det funkar vid dessa.
Utvärdering av workshop - Future Living Vilken grupp tillhörde du? NamnAntal% Byggteknik & Affärsmodeller för framtida bostäder 637,5 Energi och flödeseffektivitet.
Bild 1 EXAMENSARBETET KANSKE STARTEN PÅ DIN NYA KARRIÄR…
Viktiga dokument (ej licenser) - Vem skrev vad? Skall man behöva läsa det? Copyright © 2006, 2007, 2008 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten.
Licenser del 2 och Produktutvärderingar - Och lite annat som vanligt Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla.
När säger du ifrån? Om civilkurage på nätet.
Inspektioner vid akutmottagningar i Värmland och Gävleborgs län
Designstöd Design och utvärdering, 5 poäng
Logga in på din Nacka-sida. Sök på Varbi i sökrutan
Presentationens avskrift:

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

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

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

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

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

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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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)

Mer information ●