1 / 19

Utvikling av tegneverktøy for Generalized Sketches

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

ayla
Download Presentation

Utvikling av tegneverktøy for Generalized Sketches

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Utvikling av tegneverktøy forGeneralized Sketches • Student: • Ørjan Hatland • Veiledere: • Yngve Lamo, Høgskolen i Bergen • Uwe Wolter, Universitetet i Bergen

  2. 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!!!

  3. Semantikk for et modelleringsspråk

  4. 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!!!

  5. 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

  6. Generalized Sketches (2) • Graf basert • Rettet multigraf • Noder • Piler • Diagrammer merket med spesielle predikater • Parametrisk språk med hensyn til valgt signatur • Universell formalisme

  7. Sketches vs. ER diagrams

  8. 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

  9. 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

  10. 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

  11. 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å!

  12. 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

  13. 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!

  14. 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

  15. 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

  16. Visual Studio .NET • Kildekode editor • Fremhevet syntaks og fargekoder • Parantes matching • Intellisense • GUI designer • Enkel dokumentering • Svært produktiv måte å utvikle Windows applikasjoner!!!

  17. Løsning • Generalized Sketches (GS) spesifikk funksjonalitet • Modellering av GS • Visuell representasjon av GS • Signatur • Sketch • Tegneverktøy spesifikk funksjonalitet • Tegneflate • Verktøykasse

  18. Generalized Sketches modell

  19. Refleksjon • Har brukt veldig mye tid på brukergrensesnitt • Tidkrevende teknologiproblemer • Ikke all Generalized Sketches funksjonalitet ferdig • Diverse brukergrensesnitt for behandling av constraints

More Related