69 resultados para Search-based Software Engineering
Resumo:
Ketterillä menetelmillä tarkoitetaan erilaisista hyväksi havaituista ohjelmistotuotannon menetelmistä luotua sekä teoreettista että käytännöllistä viitekehystä. Nykyaikaiset ohjelmistotuotannon menetelmät, ketterät menetelmät ja käytettävyyssuunnittelu, vievät ohjelmistokehitystä kohtiasiakaslähtöisempää lähestymistapaa. Ohjelmien laadun takaamiseksi asiakas osallistuu tiiviisti jo ohjelmiston tuotantovaiheessa, jolloin turhilta ominaisuuksilta ja vääriltä ratkaisuilta vältytään paremmin. Tässä työssä käsitellään tapoja, joilla pk-yritys voisi parantaa toimintaansa ja saavuttaa siten kilpailuetua sovelluskehityksessä. Pk-yritys on suurempia yrityksiä paremmassa asemassa siinä, että se on luontaisesti ketterä ja nopea käännöksissään, mutta siltä puuttuu perinteet ohjelmistokehityksessä ja siksi käytössä voi olla kehittymättömiä ratkaisuja. Yrityksissä ohjelmistotuotannon muuttaminen kohti ketterämpiä menetelmiä ei ole mahdotonta, mutta se vaatii sekä työntekijöiltä että sidosryhmiltä halua ja sitoutumista kehitykseen. Jos edellä mainittuja asioita ei löydy, ei ketteriin menetelmiin siirtyminen ole järkevää, vaan yrityksen kannattaa pitäytyä nykyisissä menetelmissä ja kehittää niitä. Työssä käsitellään myös käytettävyyden suunnittelua ja sen toteutusta hyvin pienin muutoksin perinteisiin työtapoihin. Lähtökohtaisesti voidaan ajatella, etteivät pk-yrityksen voimavarat riitä täysimittaiseen käytettävyyssuunnitteluun, siksi työssä ehdotetaan keveitä ratkaisuja, joilla voidaan kuitenkin huomattavasti parantaa ohjelmiston käyttökokemusta.
Resumo:
World Wide Webin suosiolla on ollut merkittävä vaikutus yhteiskuntaan. WWW-sivut ovat helposti saatavilla ja sisällön tekeminen WWW:hen on helppoa. WWW-ympäristölle myös kehitetään paljon sovelluksia. WWW-sovellusten kehittämiselle ominaista on valinnanvapaus ja nopeuden tavoittelu. WWW-sovellusten ohjelmoinnin mahdollistavat useat toisilleen vaihtoehtoiset tekniikat. Ne eroavat toisistaan suoritusnopeudessa, ominaisuuksien määrässä ja joustavuudessa. Ohjelmoinnissa käytetään apuna useita erilaisia menetelmiä. Apumenetelmiä ovat muun muassa työkalut ja valmiiden komponenttien hyödyntäminen. Valmiit komponentit voivat olla joko ilmaisia, avointa lähdekoodia tai maksullisia. Tämän kandidaatintyön aikana valmistui sovellus, joka piirtää tilastotiedoista kaaviokuvia ja näyttää niitä dynaamisella WWW-sivulla. Sovellus pyrittiin toteuttamaan älykkäästi apumenetelmiä sopivasti hyödyntäen. Sovelluksen kehittämisessä käytettiin apuna sekä ohjelmointityökaluja että valmiita komponentteja. Kaaviokuvien tyypin ja ulkoasun haluttiin olevan käyttäjien muokattavissa. Toisaalta sovelluksen haluttiin olevan helposti laajennettavissa. Vaatimuksiin vastattiin tekemällä kaaviokuvien piirrosta osittain tietokannalla ohjelmoitava.
Resumo:
Tutkimuksen tavoitteena oli selvittää ohjelmistotestauksen tarve ohjelmistoliiketoiminnan yrityksissä. Ensin tutkittiin ohjelmistotestauksen sekä markkinatutkimuksen teoriaa, kirjallisuuden ja lehtiartikkelien avulla. Markkinatutkimus toteutettiin kirjekyselynä. Erityistä huomiota kiinnitettiin testauksen ulkoistamiseen, yritysten haasteisiin sekä tarpeisiin liittyen ohjelmistokehitykseen ja –testaukseen. Ohjelmistotestauksen avulla saavutettava laatu on olennainen osa suomalaista ohjelmistoliiketoiminnan kilpailukykyä ja se on keino erottua edukseen muista ohjelmistotuotteista kilpailtaessa samoista asiakkaista kansainvälisillä markkinoilla. Markkinatutkimuksessa saatiin merkittäviä tuloksia ohjelmistotestausmarkkinoista, yritysten sisäisestä sekä ulkoisesta ohjelmistotestauksesta ja testaustyökalujen käytöstä. Tutkimuksissa selvisi, että yritysten suurimpana haasteena oli ohjelmistokehitys- ja testausprosessien kehittäminen. Tätä aihetta on Suomessa tutkinut Teknillinen korkeakoulusta SoberIT-yksikkö ja he ovat kehittäneet SEMS-ohjelmistotuotannon ohjausjärjestelmän pk-ohjelmistotuoteyrityksille. SoftaTest aikoo hyödyntää näitä tutkimustuloksia mm. perustamalla liiketoimintaan tähtäävän projektin vahvistamaan suomalaisten ohjelmistotuoteyritysten menestymistä markkinoilla.
Resumo:
Tämä diplomityö käsittelee vaatimusmäärittelyä. Erityinen keskittymisalue on vaatimusten jäljitettävyys. Vaatimusmäärittely on osa ohjelmistokehitysprosessia. Insinöörit tietävät, että ymmärtääkseen ongelmaa on sen lähtökohdat ymmärrettävä. Tästä huolimatta määrittelyvaihe epähuomioidaan helposti. Diplomityössä kartoitetaan ensin vaatimusmäärittelyä järjestelmäprojektin osana. Vaatimusmäärittelyn rakennetta tarkennetaan ja sen sisältöä tuodaan esille. Olemassaolevana projektina analysoidaan, kuinka Soneran Mobile Pay osaston suorittama vaatimusmäärittely on toteutunut Mobile Payment Platform projektin alkuvaiheessa. Lähinnä keskitytään näyttämään, kuinka vaatimukset on kirjattu ylös. Tämän jälkeen tarkastellaan jäljitettävyyden olemusta. Työssä kartoitetaan lukijalle, mitä jäljitettävyys tarkoittaa. Kartoituksen jälkeen käydään läpi jäljitettävyyttä tukevia toimenpiteitä Sonera Mobile Payn tuotekehitysprosessissa.
Resumo:
Tässä työssä esitetään ohjelmistotuotteenhallintasuunnitelman teko selainpohjaiselle perintäsovellukselle. Työssä on ensin tutustuttu ohjelmistotuotteenhallinnan tarjoamiin mahdollisuuksiin, jonka jälkeen on tutkittu, miten ohjelmistotuotteenhallinnan menetelmiä voidaan hyödyntää selainpohjaisen sovelluksen kehityksessä Kaakontieto Oy:ssä. Työssä aluksi tutustutaan kirjallisuudesta löytyviin ohjelmistotuotteenhallinnan osa-alueisiin ja mahdollisuuksiin sekä tutustutaan myös ohjelmistotuotteenhallinnan standardeihin. Työn keskiosassa tutustutaan selainpohjaisen sovelluksen rakenteeseen sekä tutustutaan Kaakontieto Oy:n tuotteenhallinnan apuna käytettäviin sovelluksiin. Lisäksi esitetään, miten peruspaketti eriytetään asiakaskohtaisesta kehityksestä sekä miten kehitystä voidaan jatkaa. Työn aikana toteutettiin myös muutostenhallintasovellus, jonka toimintoja käydään myös läpi. Työn lopussa keskitytään tuotteenhallintasuunnitelman toteuttamiseen perintäsovellukselle. Työn lopuksi luodaan katsaus tuotteenhallintasuunnitelman toimivuuteen ja siihen, mitä tulevaisuudessa suunnitelmalle joudutaan tekemään.
Resumo:
Organisaatio, prosessimalli ja menetelmät vaikuttavat toisiinsa sekä suorasti että prosessien ja tavoitteiden kautta epäsuorasti. Prosessimallit vaihtelevat eri organisaatioiden välillä, mutta työkalut ja menetelmät, erityisesti toteutusmenetelmät, saattavat vaihdella jopa eri projektien ja sovelluskehittäjien välillä. Toteutusmenetelmien yhtenäistämisellä tavoitellaan ohjelmistokehityksen tehokkuuden parantamista, ohjelmistojen laatutason nostamista ja työmotivaation kohottamista. Tämän diplomityön käytännön osuudessa selvitettiin ohjelmistokehitysorganisaation asenteita ja edellytyksiä toteutusmenetelmien yhtenäistämistä kohtaan. Diplomityön tuloksena laadittiin suositus siitä, kuinka parhaat käytännöt -dokumentti voidaan toteuttaa. Suosituksen mukaan kyseinen dokumentti tulisi jakaa kahdeksi dokumentiksi siten, että toinen dokumenteista kattaisi käytännöllisimmät toteutusmenetelmät, toinen sisältäisi suunnittelumenetelmät.
Resumo:
Vaatimusmäärittely on tärkeä osa ohjelmistotuotantoa. Vaatimusten jäljitettävyys on osa vaatimustenhallinta prosessia. Jäljitettävyystieto helpottaa vaatimusten hallintaa läpi koko tuotekehitys projektin. Hyvin usein vaatimusten jäljitettävyyttä ei kuitenkaan ole toteutettu ohjelmistokehitysprojekteissa. Työn tavoitteena oli selvittää vaatimusten jäljitettävyyden tärkeyttä ohjelmistotuotannossa sekä kuinka jäljitettävyys voitaisiin toteuttaa ohjelmistokehitysprojekteissa. Vaatimusten jäljitettävyyttä sekä eri tekniikoita sen toteuttamiseksi on tutkittu kirjallisuuden avulla. Yrityksen vaatimusten jäljitettävyyden nykytilaa on selvitetty tutkimalla olemassa olevaa prosessimallia sekä todellisia tuotekehitysprojekteja. Tuloksena esitettiin perusteluja, miksi jäljitettävyystieto pitäisi sisällyttää ohjelmistokehitysprojekteihin sekä menetelmiä, kuinka jäljitettävyystieto voidaan toteuttaa projekteissa kustannustehokkaasti. Työssä on esitetty strategiavaihtoehto ja menetelmät jäljitettävyyden toteuttamiseksi. Pienillä korjauksilla jäljitettävyys pystytään toteuttamaan kevyellä tasolla. Suurin parannusehdotus prosessimalliin on jäljitettävyysmatriisien luominen. Matriisien avulla pystytään projekteissa toteuttamaan jäljitettävyys sekä eteen- että taaksepäin. Vaatimustenhallintatyökalu helpottaisi jäljitettävyystiedon ylläpitoa.
Resumo:
Tässä työssä selvitettiin hyviä tapoja ja vakiintuneita käytäntöjä pitkän käyttöiän web-sovelluksen tekemiseksi. Saatiin selville, että sovelluksen elinkaaren aikana suurin osa kustannuksista tulee ylläpidosta. Tavoitteena oli tehdä pitkään käytettävä sovellus, joten ylläpidon kustannusten osuudesta tuli saada mandollisimman pieni. Ohjelmistotuotantoprosessissa mandollisimman aikaisessa vaiheessa havaitut virheet vähentävät korjauskustannuksia oleellisesti verrattuna siihen, että virheet havaittaisiin valmiissa tuotteessa. Siksi tässä työssä tehdyssä web-sovelluksessa panostettiin prosessin alkuvaiheisiin, määrittelyyn ja suunnitteluun. Web-sovelluksen ylläpidettävyyteen ja selkeyteen vaikuttavat oleellisesti hyvät ohjelmistokehitystavat. Käyttämällä valmista sovelluskehystä ja lisäämällä toiminnallisuuksia valmiiden ohjelmistokomponenttien avulla saadaan aikaiseksi hyvien tapojen mukaisesti tehty sovellus. Tässä työssä toteutettu web-sovellus laadittiin käyttämällä sovelluskehystä ja komponenttiarkkitehtuuria. Toteutuksesta saatiin selkeä. Sovellus jaettiin loogisiin kokonaisuuksiin, jotka käsittelevät näkymiä, tietokantaa ja tietojen yhdistämistä näiden välillä. Jokainen kokonaisuus on itsenäisesti toimiva, mikä auttaa sovelluksen ylläpitämisessä ja testaamisessa.
Resumo:
Ketterät menetelmät ovat yleistymässä ohjelmistotuotannossa. Yleistyminen aiheuttaa paineita ohjelmistotestaukselle, koska ketteryyttä vaaditaan myös testaukselta. Ketterät menetelmät jakavat samat perusarvot ja periaatteet, mutta lähestymistavat niiden täyttämiseksi poikkeavat toisistaan. Tässä työssä tutkitaan tarkemmin Scrum-menetelmän vaikutuksia ohjelmistotestaukseen ja laadunhallintaan. Scrum-menetelmää verrataan myös eXtreme Programming-menetelmään.
Resumo:
Työn tavoitteena oli toteuttaa tietojärjestelmä maito- ja maitotuotetilastoinnin tarpeisiin. Tietojärjestelmän tulee tukea lähes koko tilastotuotantoprosessia tallentamisesta raportointiin. Tietojärjestelmän tarpeet tulivat vaatimusmäärittelystä ja ne piti yhdistää tietohallinnon linjauksiin. Tietojärjestelmä tehdä kustannustehokkaasti tietyssä aikataulussa. Lisäksi tuli luoda käytäntöjä tuleville tilastotietojärjestelmille. Työn teoriaosan aluksi käsitellään tilastotutkimuksen perusteita ja tilastoviranomaisvaatimuksia. Tästä edetään käytännön tilastotuotantoprosessiin ja sen järjestelmävaatimuksiin. Teoriaosan loppupuoliskossa käydään läpi ohjelmistotuotantoprosessi ja tietojärjestelmän suunnittelun peruskäsitteitä. Käytännön osassa puretaan vaatimukset ja ongelma-alue. Sitten analysoidaan eri ratkaisuvaihtoehtoja. Niistä päädytään toteutusratkaisuun, jonka tuloksia tarkastellaan projektin lopputulosten ja kahden vuoden käyttökokemusten perusteella. Tietojärjestelmä toteutettiin onnistuneesti ja se mahdollistaa taloudellisen sekä laadukkaan maito- ja maitotuotetilastoinnin Suomessa.
Resumo:
Web application performance testing is an emerging and important field of software engineering. As web applications become more commonplace and complex, the need for performance testing will only increase. This paper discusses common concepts, practices and tools that lie at the heart of web application performance testing. A pragmatic, hands-on approach is assumed where applicable; real-life examples of test tooling, execution and analysis are presented right next to the underpinning theory. At the client-side, web application performance is primarily driven by the amount of data transmitted over the wire. At the server-side, selection of programming language and platform, implementation complexity and configuration are the primary contributors to web application performance. Web application performance testing is an activity that requires delicate coordination between project stakeholders, developers, system administrators and testers in order to produce reliable and useful results. Proper test definition, execution, reporting and repeatable test results are of utmost importance. Open-source performance analysis tools such as Apache JMeter, Firebug and YSlow can be used to realise effective web application performance tests. A sample case study using these tools is presented in this paper. The sample application was found to perform poorly even under the moderate load incurred by the sample tests.
Resumo:
Tässä työssä kuvataan erästä kaupallista ohjelmistoprojektia, jossa ohjelmistojen uudelleenkäyttöä tavoiteltiin komponenttipohjaisen uudelleenkäytön ja ohjelmistojen sovittamisen kautta. Projektissa toteutettiin matkapuhelinsovellus, jonka ydin eristettiin uudelleenkäytettäväksi ja sovitettavaksi komponentiksi. Ytimen sovitettavuus verifioitiin sovittamalla ydin toiselle ympäristölle ja edelleen toteuttamalla toimiva prototyyppisovellus sovitetun ytimen varaan. Ytimen sovittamisen sekä prototyyppisovelluksen toteuttamisen vaatima työmäärä oli huomattavasti pienempi kuin ytimen tekemiseen alkuperin käytetty työmäärä. Työssä on osoitettu ohjelmistometriikoiden avulla, että merkittävä osa ohjelmiston toiminnallisuudesta saatiin uudelleenkäytettäväksi sovitettavan ytimen avulla. Lisäksi työssä on kuvattu millaisia kehitysprosessikäytäntöjä projektissa oli käytössä tukemassa uudelleenkäytettävyystavoitetta.
Resumo:
Diplomityössä toteutettiin varastonhallintajärjestelmän hankinta prosessoimalla tietoa hallitusti varastonhallinnan kehittämiseksi. Kvalitatiivinen tapaustutkimus tehtiin tietojohtamisen näkökulmasta käyttäjälähtöisen C-CEI –menetelmän avulla haastattelemalla ja havainnoimalla tapausyritystä. Haastatteluja tehtiin 10 kertaa. Tutkimuksessa kartoitettiin ja kilpailutettiin kotimaiset järjestelmätoimittajat, joita löydettiin 15. Näistä toimittajista 6 vastasi vaatimuksia ja teki tarjouksen. Tutkimuksen lopuksi tehtiin järjestelmän hankintaehdotus. Tutkimuksen teoreettinen viitekehys koostui tietojohtamisesta, varastonhallinnasta ja ohjelmistotuotannosta. Tutkimuksessa pääkysymyksenä esitettiin miten tietojohtamisen avulla voidaan tukea varastonhallintajärjestelmän hankintaa. Tutkimuksessa havaittiin, että tietojärjestelmän hankinta varastonhallinnan osalta on moniulotteinen liiketoiminnan kehittämistehtävä. Tietojärjestelmähankinta tulisi siten nähdä liiketoimintaa eteenpäin vievänä mahdollisuutena. Lisäksi loppukäyttäjän vaatimusten kartoittamiseen tulisi sitoutua huolella ja suhtautua kriittisesti eri järjestelmävaihtoehtoihin. Vaatimusmäärittelyn asettaminen ja vaatimusten priorisoiminen ovat haasteellisia tehtäviä. Tiedon hallinnan aikana saatiin selville, että loppukäyttäjän vaatimusten mukainen tarjouspyyntö edesauttaa ensinnäkin tarjousten tekemistä mutta myös niiden prosessointia ja analysointia. Vain oikealla tiedolla ja sen yhteyksillä on merkitystä. Tutkimuksen perusteella tietojärjestelmän hankinta suositellaan tehtäväksi hallitsemalla tietoa systemaattisesti erityisesti sen alkuvaiheen aikana. Tietojohtaminen virtaviivaistaa hankkeen etenemistä ja aikataulutusta, vähentää loppukäyttäjän kustannuksia tehokkaalla kilpailutusmenettelyllä, edistää kilpailukykyä ja luo hyvän lähtökohdan koko tietojärjestelmän hankinnan läpiviemiselle ja yhteistyö-suhteen rakentumiselle kauppakumppaneiden välille.
Resumo:
Tämän tutkimuksen tavoitteena on selvittää opintojensa alussa olevien yliopisto-opiskelijoiden vaikeimpina pitämät käytännön ohjelmoinnin aihealueet sekä koostaa luentomoniste käytettäväksi seuraavalla alkavalla Käytännön ohjelmointi -kurssilla. Tutkimusmetodina käytettiin konstruktiivista tutkimusmetodia, jossa tavoitteen spesifioinnin jälkeen implementoitiin luentomoniste koostamalla määriteltyjen aihekokonaisuuksien lähdemateriaalia yhtenäiseksi, luettavaksi kokonaisuudeksi. Yliopistoissa ei yleisesti opeteta ohjelmistojen testausta ennen syventäviä ohjelmistotekniikan kursseja, mikä on kuitenkin puute työelämän kannalta. Tässä työssä esitetään perusteluja käytännönläheisten aihekokonaisuuksien painottamiselle ohjelmointikursseilla jo yliopisto-opintojen alkuvaiheessa. Työssä käsitellään Käytännön ohjelmointi -kurssin kurssipalautetta, missä havaittiin opiskelijoiden pitävän kurssin hankalimpina aihealueina linkitettyä listaa, osoittimia, dynaamista muistinhallintaa, tietorakenteita ja versionhallintaa. Työn avulla on pyritty kehittämään käytännön ohjelmoinnin yliopisto-opetusta Lappeenrannan teknillisessä yliopistossa luentomateriaalin avulla, jossa on muun muassa teoriaa, keskeisiä opiskelijoiden tarvitsemia komentoja, www-linkkejä sekä ohjelmoinnin tyyliopas.
Resumo:
Tässä työssä tutkitaan peliteollisuudesta tehtyä ohjelmistotekniikan tutkimusta. Työssä selvitetään kirjallisuuskatsauksen keinoin mitä on tutkittu aiemmin, ketkä ovat tutkineet ja missä on tutkittu. Löydetystä aineistosta poimitaan oleellisimmat julkaisut tarkempaan tarkasteluun. Johtopäätöksenä todetaan, että peliteollisuudesta tehty ohjelmistotekniikan tutkimus on tehdyn kirjallisuuskatsauksen perusteella pääosin mittaluokaltaan pientä ja määrältään vähäistä. Huomattavaa julkisuutta tutkijapiireissä saaneita peliteollisuutta ohjelmistotekniikan näkökulmasta tutkineita henkilöitä tai tutkimuslaitoksia ei noussut esille tutkimusta tehdessä.