190 likes | 349 Views
Utvikling av tegneverktøy for Generalized Sketches. Student: Ørjan Hatland Veiledere: Yngve Lamo, Høgskolen i Bergen Uwe Wolter, Universitetet i Bergen. Motivasjon. Hvorfor modellere? Abstraksjon Kommunikasjon Programvare er svært komplekse enheter
E N D
Utvikling av tegneverktøy forGeneralized Sketches • Student: • Ørjan Hatland • Veiledere: • Yngve Lamo, Høgskolen i Bergen • Uwe Wolter, Universitetet i Bergen
Motivasjon • Hvorfor modellere? • Abstraksjon • Kommunikasjon • Programvare er svært komplekse enheter • Modellering essensielt i programvareutvikling • Grafiske spesifikasjonsspråk • Ideelt med klar semantikk • Eksempler på grafiske spesifikasjonsspråk: UML, ER • Problem: Uklar semantikk, tvetydige konstruksjoner eller for lite uttrykksfull Forskjellige tolkninger og subjektive preferanser!!!
Motivasjon (2) • Formaliserte spesifikasjonsspråk gir: • Formelle spesifikasjoner • Muligheter for verifisering • Muligheter for automatisert konvertering av spesifikasjoner • Osv. • Generalized Sketches er et formalisert grafisk spesifikasjonsspråk!!!
Generalized Sketches • Formelt diagrammatisk språk • Basert på kategoriteori • Matematisk arbeidsområde • Fokuserer på relasjoner mellom objekt • Passer bra til bruk innenfor Software Engineering • Alt som er formaliserbart kan bli uttrykt i kategoriteori! • Presentasjonsorientert språk utviklet for bruk i Software Engineering
Generalized Sketches (2) • Graf basert • Rettet multigraf • Noder • Piler • Diagrammer merket med spesielle predikater • Parametrisk språk med hensyn til valgt signatur • Universell formalisme
Motivasjon (3) • Med et tegneverktøy for Generalized Sketches blir det mulig å: • Sammenligne ulike spesifikasjonsspråk • Sammensette diagrammer • Utforske mulighetene som dette språket inneholder, og bruke verktøyet som en basis for videre arbeid • Eksisterende løsning ikke egnet for praktisk bruk
Eksisterende løsning • 1995, Latvia • Utviklet for 16-bit Windows • Konvertering til 32-bit Windows 95 • Stopp i prosjektet pga finansiering • Ikke egnet for praktisk bruk • Tilgjengelig • Ingen kildekode, ikke dokumentert • Demonstrasjon på arkitektiske valg • Demonstrasjon av brukergrensesnitt
Teknologivalg • .NET Framework 1.1 • Potensiell plattformuavhengig utviklingsteknologi • Kommunikasjon på tvers av forskjellige språk • Rikt bibliotek av språkuavhengige, gjenbrukbare klasser • Windows Forms • C# • XML for lagring • XML Serialization • XML Schema • Visual Studio .NET
Windows Forms • Tilbyr et stort, utvidbart rammeverk for GUI applikasjonsutvikling • Controls • UserControls • Events og Event-Handlers • 3. generasjons Windows programmering • Et grensesnitt over underliggende Windows API • Plattformavhengig • Beste måten å programmere Windows applikasjoner på!
Refleksjon over Windows Forms • Oversiktlig og lett • Produktiv • Stort sett enhetlig • Lite bruk av design patterns • Data hører til de forskjellige kontrollklassene • For eksempel: • ListBox – Items • ImageList • Kan lede til vanskelig kode – må gjøre ting selv • For eksempel: TreeView class
C# • C-basert programmeringsspråk • Objekt-orientert • Komponent-orientert • Event-drevet • Garbage Collection • Metadata attributes • Et suverent programmeringsspråk som har tatt det beste fra C++ og Java og samtidig lagt til ny funksjonalitet!
C# (2) • Tett knyttet opp til dets kjøretidsmiljø, .NET Framework • Konverteres til et midlertidig assembly-lignende språk (CIL) som blir kompilert til kjørbar systemspesifikk maskinkode ved førstegangs kjøring (JIT-kompilering) • Kjører i ”native speed” • Tregere enn C++ grunnet bedre C++-kompilatorer • Raskere enn Java på grunn av bedre JIT
Refleksjon over C# • Stort sett veldig fornøyd • Dårlig Collection support • Må implementere egne Collection klasser for å få sterkt typet Collections • Ikke vanskelig, men får veldig mange klasser! • Bedre i C# 2.0 – støtter templates
Visual Studio .NET • Kildekode editor • Fremhevet syntaks og fargekoder • Parantes matching • Intellisense • GUI designer • Enkel dokumentering • Svært produktiv måte å utvikle Windows applikasjoner!!!
Løsning • Generalized Sketches (GS) spesifikk funksjonalitet • Modellering av GS • Visuell representasjon av GS • Signatur • Sketch • Tegneverktøy spesifikk funksjonalitet • Tegneflate • Verktøykasse
Refleksjon • Har brukt veldig mye tid på brukergrensesnitt • Tidkrevende teknologiproblemer • Ikke all Generalized Sketches funksjonalitet ferdig • Diverse brukergrensesnitt for behandling av constraints