Design by contract, abbreviated as DBC, is a software development methodology that aims to increase the reliability and robustness of software components. While a fair amount of research has been done around how DbC can be utilised in an in-process object-oriented system, not much is known about how DbC concepts can be applied to systems that predominantly communicate over the network by way of remote procedure calls. With the recent increase in popularity of service-oriented and microservice system architectures, the ability to develop robust networked components at scale is highly relevant. This study applies the DbC notion of software contracts to remote procedure calls by developing an interface definition language that can be used in conjunction with JSON-RPC and JSON Schema. The results demonstrate that it is possible to leverage DbC concepts when implementing networked software services, but that it may in many cases be impractical to do so due to the resulting concurrency issues and increased complexity. / Design genom kontrakt, abbrevierat ned till DbC, är en metodik för mjukvaruutveckling vars syfte är att öka pålitlighet och robusthet av programvara. Medan en ansenlig mängd har forskats för att bedöma hur DbC kan utnyttjas i ett objekt-orentierad sammanhang, det är fortsatt ovetandes om hur DbC konceptet kan appliceras till system som huvudsakligen kommunicerar över nätverket. Med den ökade populariteten av service-orienterad mjukvaruarkitektur, förmågan att utveckla robusta nätverkskomponenter är högst relevant. Denna studie applicerar en DbC förståelse av mjukvarukontrakt till gränssnittav av avlägsna proceduranropp genom att använda JSON-RPC och JSON Schema. Resultatet visar att det finns möjlighet att verkställa DbC koncepter när man implementerar mjukvara som kommunicerar över nätverket, men detta kan vara opraktiskt pga ökad komplexitet och resulterande samtidighetsproblem.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-279970 |
Date | January 2020 |
Creators | Kairaitis, Matas |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2020:343 |
Page generated in 0.002 seconds