Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta

Tämä kandidaatintutkielma on kirjallisuuskatsaus. Tutkielman tutkimuskysymys on, tarjoaako abstrakti luokka paremman uudelleenkäytettävyyden kuin rajapinta. Tutkielmassa noudatettiin EBSE-menetelmää. Tutkielmassa havaitaan, että kuluja, joita syntyy ohjelmistokehityksessä voidaan vähentää uudelleenk...

Full description

Bibliographic Details
Main Author: Räihä, Rauno
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, University of Jyväskylä, Jyväskylän yliopisto
Format: Bachelor's thesis
Language:fin
Published: 2013
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/42363
_version_ 1826225813681340416
author Räihä, Rauno
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_facet Räihä, Rauno Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto Räihä, Rauno Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_sort Räihä, Rauno
datasource_str_mv jyx
description Tämä kandidaatintutkielma on kirjallisuuskatsaus. Tutkielman tutkimuskysymys on, tarjoaako abstrakti luokka paremman uudelleenkäytettävyyden kuin rajapinta. Tutkielmassa noudatettiin EBSE-menetelmää. Tutkielmassa havaitaan, että kuluja, joita syntyy ohjelmistokehityksessä voidaan vähentää uudelleenkäyttämällä ohjelmakoodia. Tutkielmassa saatiin tulokseksi, että uudelleenkäytettävyyttä edistävät kapselointi, matala kytkösaste, korkea koheesio ja perintä. Uudelleenkäytettävyyttä haittaa heikko ymmärrettävyys. Perintä ja koostaminen ovat keinoja, joilla koodia voidaan uudelleenkäyttää. Tutkielmassa havaittiin, että abstraktin luokan ja rajapinnan keskeisin ero on se, että abstraktilla luokalla voidaan määritellä myös toteutusta. Niinpä jos käyttökonteksti tunnetaan huonosti ja on hyvin muutosaltis on rajapinta turvallisempi vaihtoehto koska se ei rajaa uudelleenkäytettävyyttä samaan tapaan kuin abstrakti luokka. Abstrakti luokka on hyvä, jos halutaan määritellä attribuutteja tai toiminnallisuutta, jolla on toteutus. This bachelor’s thesis is a review of the literature. The research question for this study is whether an abstract class offers better reusability than interface. The EBSE method was followed in this thesis. Expenses of software development can be reduced by reusing software code. Thesis results were that factors that promote reusability are encapsulation, loose coupling, high cohesion and inheritance. Poor undestandability weakens the possibility for reuse. Inheritance and composition are ways of reusing software code. Observation made in the thesis is that the most significant difference between abstract class and interface is that abstract class can also define implementation. Therefore if the context of use is not know very well and is likely to change then interface is more safer alternative than abstract class, because it does not delimit reusability in the same way as abstract class does. Abstract class is good when there is a need to define attributes or functionality that has implementation.
first_indexed 2024-09-11T08:53:04Z
format Kandityö
free_online_boolean 1
fullrecord [{"key": "dc.contributor.author", "value": "R\u00e4ih\u00e4, Rauno", "language": null, "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2013-10-24T14:50:55Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2013-10-24T14:50:55Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2013", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/42363", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "T\u00e4m\u00e4 kandidaatintutkielma on kirjallisuuskatsaus. Tutkielman tutkimuskysymys on, tarjoaako abstrakti luokka paremman uudelleenk\u00e4ytett\u00e4vyyden\nkuin rajapinta. Tutkielmassa noudatettiin EBSE-menetelm\u00e4\u00e4. Tutkielmassa havaitaan, ett\u00e4 kuluja, joita syntyy ohjelmistokehityksess\u00e4 voidaan v\u00e4hent\u00e4\u00e4 uudelleenk\u00e4ytt\u00e4m\u00e4ll\u00e4 ohjelmakoodia. Tutkielmassa saatiin tulokseksi, ett\u00e4 uudelleenk\u00e4ytett\u00e4vyytt\u00e4 edist\u00e4v\u00e4t kapselointi, matala kytk\u00f6saste, korkea koheesio ja perint\u00e4. Uudelleenk\u00e4ytett\u00e4vyytt\u00e4 haittaa heikko ymm\u00e4rrett\u00e4vyys. Perint\u00e4 ja koostaminen ovat keinoja, joilla koodia voidaan uudelleenk\u00e4ytt\u00e4\u00e4. Tutkielmassa havaittiin, ett\u00e4 abstraktin luokan ja rajapinnan keskeisin ero on se, ett\u00e4 abstraktilla luokalla voidaan m\u00e4\u00e4ritell\u00e4 my\u00f6s toteutusta. Niinp\u00e4 jos k\u00e4ytt\u00f6konteksti tunnetaan huonosti ja on hyvin\nmuutosaltis on rajapinta turvallisempi vaihtoehto koska se ei rajaa uudelleenk\u00e4ytett\u00e4vyytt\u00e4 samaan tapaan kuin abstrakti luokka. Abstrakti luokka on hyv\u00e4, jos halutaan m\u00e4\u00e4ritell\u00e4 attribuutteja tai toiminnallisuutta, jolla on toteutus.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "This bachelor\u2019s thesis is a review of the literature. The research question\nfor this study is whether an abstract class offers better reusability than interface.\nThe EBSE method was followed in this thesis. Expenses of software development\ncan be reduced by reusing software code. Thesis results were that factors that promote reusability are encapsulation, loose coupling, high cohesion and inheritance.\nPoor undestandability weakens the possibility for reuse. Inheritance and composition are ways of reusing software code. Observation made in the thesis is that the\nmost significant difference between abstract class and interface is that abstract class\ncan also define implementation. Therefore if the context of use is not know very\nwell and is likely to change then interface is more safer alternative than abstract\nclass, because it does not delimit reusability in the same way as abstract class does.\nAbstract class is good when there is a need to define attributes or functionality that\nhas implementation.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted using Plone Publishing form by Rauno R\u00e4ih\u00e4 (rahemira) on 2013-10-24 14:50:55.278937. Form: Kandin tutkielma -lomake (1 tekij\u00e4) (https://kirjasto.jyu.fi/julkaisut/julkaisulomakkeet/kandin-tutkielma-lomake-1-tekijae). JyX data:", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by jyx lomake-julkaisija (jyx-julkaisija@noreply.fi) on 2013-10-24T14:50:55Z\nNo. of bitstreams: 2\nURN:NBN:fi:jyu-201310242492.pdf: 203986 bytes, checksum: 9318f72f3445876bc3fe1d1c4ca2e9b2 (MD5)\nlicense.html: 5007 bytes, checksum: a07a8b06e4b24aa749a59c7e8cd48343 (MD5)", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2013-10-24T14:50:55Z (GMT). No. of bitstreams: 2\nURN:NBN:fi:jyu-201310242492.pdf: 203986 bytes, checksum: 9318f72f3445876bc3fe1d1c4ca2e9b2 (MD5)\nlicense.html: 5007 bytes, checksum: a07a8b06e4b24aa749a59c7e8cd48343 (MD5)\n Previous issue date: 2013", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "20", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "ajapinnat", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "abstraktit luokat", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "uudelleenk\u00e4ytett\u00e4vyys", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "olio-ohjelmointi", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Abstrakti luokka vai rajapinta uudelleenk\u00e4ytett\u00e4vyyden n\u00e4k\u00f6kulmasta", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "bachelor thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201310242492", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.dcmitype", "value": "Text", "language": "en", "element": "type", "qualifier": "dcmitype", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Kandidaatintutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Bachelor's thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.date.updated", "value": "2013-10-24T14:50:56Z", "language": null, "element": "date", "qualifier": "updated", "schema": "dc"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_7a1f", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": "fi", "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "bachelorThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}]
id jyx.123456789_42363
language fin
last_indexed 2025-02-18T10:56:55Z
main_date 2013-01-01T00:00:00Z
main_date_str 2013
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/7fc4154a-7dc2-4cc8-ad8c-4e155f95584a\/download","text":"URN:NBN:fi:jyu-201310242492.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2013
record_format qdc
source_str_mv jyx
spellingShingle Räihä, Rauno Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta ajapinnat abstraktit luokat uudelleenkäytettävyys olio-ohjelmointi Tietotekniikka Mathematical Information Technology
title Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_full Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_fullStr Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_full_unstemmed Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_short Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_sort abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
title_txtP Abstrakti luokka vai rajapinta uudelleenkäytettävyyden näkökulmasta
topic ajapinnat abstraktit luokat uudelleenkäytettävyys olio-ohjelmointi Tietotekniikka Mathematical Information Technology
topic_facet Mathematical Information Technology Tietotekniikka abstraktit luokat ajapinnat olio-ohjelmointi uudelleenkäytettävyys
url https://jyx.jyu.fi/handle/123456789/42363 http://www.urn.fi/URN:NBN:fi:jyu-201310242492
work_keys_str_mv AT räihärauno abstraktiluokkavairajapintauudelleenkäytettävyydennäkökulmasta