Vis enkel innførsel

dc.contributor.advisorHendseth, Sverre
dc.contributor.authorEiring, Håvard Roalsø
dc.date.accessioned2022-09-27T17:21:19Z
dc.date.available2022-09-27T17:21:19Z
dc.date.issued2022
dc.identifierno.ntnu:inspera:102231297:37616991
dc.identifier.urihttps://hdl.handle.net/11250/3021931
dc.description.abstractSeparasjon av ansvarsområder er et meget effektivt design-prinsipp innen programvareutvikling. Bruken av dette prinsipper fører til fleksibel og ryddig programvare av stor frihetsgrad. Rekursive, hierarkiske strukturer, implementert som objekttrær, representerer en intuitiv framgangsmåte man kan bruke i mange sammenhenger. Deres generative egenskaper gjør at de egner seg meget godt innen for eksempel fagfeltet om prosedyrisk generering. Uheldigvis begrenses potensialet deres kraftig av at trær med hver sine distinkte ansvarsområder før eller siden tvinges til å bli integrert sammen. Prinsippet om separasjon av ansvarsområder kan dermed ikke anvendes. Derfor blir programvareutviklere tvunget til å klemme de distinke trærne sammen i form av en utilfredsstillende ad hoc løsning. Resultatet er dermed dårlig strukturert programvare som er meget krevende å vedlikeholde. For å løse dette problemet var målet med denne masteroppgvaen å utvikle Marble-biblioteket. Dette programvarebiblioteket skulle støtte generering av trær og fasilitere tette interaksjoner mellom dem mens de holdes separert fra hverandre. Dermed anvendes nemlig prinsippet om separasjon av ansvarsområder. To applikasjoner av biblioteket skulle også utvikles for å demonstrere bibliotekets evner og mulige bruksområder. Utrustet med at bredt spekter av verktøy i stand til å generere trær i mange ulike arter, endte biblioteket opp med å vise stor grad av allsidighet og evne til å tilpasse seg mange sammenhenger. Applikasjonene som ble utviklet (Marbleviz- og Tilfeldig Tekst Som Genererer Melodi-applikasjonen), demonstrerte Marble-bibliotekets evne til å la rekursive, hierarkiske strukturer interagere tett med hverandre mens de fortsatt holdes separert fra hverandre. Dermed ble prinsippet om separasjon av ansvarsområder anvendt på et vellykket vis. Ved å utnytte bibliotekets evne til å holde seksjoner som omhandler hver sine ansvarsområder separert, demonstrerte også den sistnevnte applikasjonen hvordan biblioteket kan brukes til å utvikle metoder innen prosedyrisk generering.
dc.description.abstractSeparation of concerns is a highly effective software design principle which when applied, results in flexible and tidy software with high degrees of freedom. Unfortunately, there are contexts where this design principle cannot be applied. Recursive, hierarchical structures, implemented as object trees, represent an intuitive approach which one can use in many contexts. Their generative power make them very useful in e.g. the field of procedural generation. However, their power is severely restricted by the fact that several trees addressing separate concerns, are sooner or later forced to be integrated together. In other words, the separation of concerns principle cannot be applied. Therefore, software developers are forced to cram the trees together in some unsatisfactory ad hoc solution, resulting in unmaintainable software of poor quality. In an effort to resolve this issue, the purpose of this thesis was to develop the Marble library. This software library was to support creation of object trees and facilitate the necessary tight interactions between them while the trees are kept separated from each other, effectively applying the separations of concerns design principle. Two library applications were also to be developed, in order to demonstrate the features of the library. Equipped with an extensive set of features capable of creating a wide variety of object trees, the resulting library showed great versatility and ability to adapt to a wide range of contexts. In addition, the applications that were developed (the Marbleviz and the Random Lyrics Generating Melody applications), demonstrated how the Marble library can be used to let recursive, hierarchical structures interact tightly while still being kept separate from each other, effectively applying the separations of concern design principle. Utilizing the library's ability to keep sections addressing separate concerns independent of each other, the latter application also demonstrated how the library could be used to develop procedural generation methods.
dc.languageeng
dc.publisherNTNU
dc.titlePresenting The Marble Library: Separating the Concerns of Tightly Coupled Abstractions
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel