Hide metadata

dc.contributor.authorJacobsen, Martin Røed
dc.date.accessioned2016-11-22T22:27:37Z
dc.date.available2016-11-22T22:27:37Z
dc.date.issued2016
dc.identifier.citationJacobsen, Martin Røed. A Possible Composite Design Pattern for Immature REST APIs. Master thesis, University of Oslo, 2016
dc.identifier.urihttp://hdl.handle.net/10852/53094
dc.description.abstractSoftware design patterns are formalized best practices, which provide reusable solutions to commonly occurring design problems in a given context in software engineering. The aim of this study was to investigate how software design patterns can be combined to provide a wait-free abstraction layer over REST APIs on the low end of service maturity. We present an implementation of a possible “composite pattern” in C# and perform static analysis of the example source code to measure its maintainability, reusability, and testability. Thus, we collect five software quality metrics: Coupling Between Objects (CBO), Cyclomatic Complexity (CC), Depth of Inheritance (DIT), Lines of Code (NLOC) and Maintainability Index (MI). All of the classes involved in the implementation receive a very good score on all metrics. Our research suggests that this particular combination of design patterns is very useful, and that it may be a design pattern by itself. However, it has to be identified in other independent and unrelated systems for that to be true. Note that it may be challenging to integrate this solution into existing code bases due to its considerable structural requirements.eng
dc.language.isoeng
dc.subjectREST
dc.subjectsoftware
dc.subjectpatterns
dc.subjectmetrics
dc.subjectGoF
dc.titleA Possible Composite Design Pattern for Immature REST APIseng
dc.typeMaster thesis
dc.date.updated2016-11-22T22:27:37Z
dc.creator.authorJacobsen, Martin Røed
dc.identifier.urnURN:NBN:no-56396
dc.type.documentMasteroppgave
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/53094/1/thesis.pdf


Files in this item

Appears in the following Collection

Hide metadata