58 resultados para Software Engineering
Resumo:
Formal software development processes and well-defined development methodologies are nowadays seen as the definite way to produce high-quality software within time-limits and budgets. The variety of such high-level methodologies is huge ranging from rigorous process frameworks like CMMI and RUP to more lightweight agile methodologies. The need for managing this variety and the fact that practically every software development organization has its own unique set of development processes and methods have created a profession of software process engineers. Different kinds of informal and formal software process modeling languages are essential tools for process engineers. These are used to define processes in a way which allows easy management of processes, for example process dissemination, process tailoring and process enactment. The process modeling languages are usually used as a tool for process engineering where the main focus is on the processes themselves. This dissertation has a different emphasis. The dissertation analyses modern software development process modeling from the software developers’ point of view. The goal of the dissertation is to investigate whether the software process modeling and the software process models aid software developers in their day-to-day work and what are the main mechanisms for this. The focus of the work is on the Software Process Engineering Metamodel (SPEM) framework which is currently one of the most influential process modeling notations in software engineering. The research theme is elaborated through six scientific articles which represent the dissertation research done with process modeling during an approximately five year period. The research follows the classical engineering research discipline where the current situation is analyzed, a potentially better solution is developed and finally its implications are analyzed. The research applies a variety of different research techniques ranging from literature surveys to qualitative studies done amongst software practitioners. The key finding of the dissertation is that software process modeling notations and techniques are usually developed in process engineering terms. As a consequence the connection between the process models and actual development work is loose. In addition, the modeling standards like SPEM are partially incomplete when it comes to pragmatic process modeling needs, like light-weight modeling and combining pre-defined process components. This leads to a situation, where the full potential of process modeling techniques for aiding the daily development activities can not be achieved. Despite these difficulties the dissertation shows that it is possible to use modeling standards like SPEM to aid software developers in their work. The dissertation presents a light-weight modeling technique, which software development teams can use to quickly analyze their work practices in a more objective manner. The dissertation also shows how process modeling can be used to more easily compare different software development situations and to analyze their differences in a systematic way. Models also help to share this knowledge with others. A qualitative study done amongst Finnish software practitioners verifies the conclusions of other studies in the dissertation. Although processes and development methodologies are seen as an essential part of software development, the process modeling techniques are rarely used during the daily development work. However, the potential of these techniques intrigues the practitioners. As a conclusion the dissertation shows that process modeling techniques, most commonly used as tools for process engineers, can also be used as tools for organizing the daily software development work. This work presents theoretical solutions for bringing the process modeling closer to the ground-level software development activities. These theories are proven feasible by presenting several case studies where the modeling techniques are used e.g. to find differences in the work methods of the members of a software team and to share the process knowledge to a wider audience.
Resumo:
In today’s world because of the rapid advancement in the field of technology and business, the requirements are not clear, and they are changing continuously in the development process. Due to those changes in the requirements the software development becomes very difficult. Use of traditional software development methods such as waterfall method is not a good option, as the traditional software development methods are not flexible to requirements and the software can be late and over budget. For developing high quality software that satisfies the customer, the organizations can use software development methods, such as agile methods which are flexible to change requirements at any stage in the development process. The agile methods are iterative and incremental methods that can accelerate the delivery of the initial business values through the continuous planning and feedback, and there is close communication between the customer and developers. The main purpose of the current thesis is to find out the problems in traditional software development and to show how agile methods reduced those problems in software development. The study also focuses the different success factors of agile methods, the success rate of agile projects and comparison between traditional and agile software development.
Resumo:
Tämän insinöörityön tavoitteena oli suunnitella ja toteuttaa selainpohjainen käyttäjienhallintaohjelma GateKeeper Karttakeppi.com-työryhmälle. GateKeeper-ohjelma kuuluu osana laajempaan ohjelmistoprojektiin, jonka tarkoituksena on tuottaa opetusmateriaalia etäopiskelijoille Internetissä. Etäopetusmateriaalin tuottamisessa käytetään useita ohjelmia, joille on määriteltävä eritasoisia käyttäjätunnuksia ja käyttöoikeuksia. Ohjelmien käyttäjienhallintamekanismit ovat erilaisia, mikä osaltaan lisää järjestelmän ylläpitäjien työtä ja vastuuta. GateKeeper-ohjelman tavoitteena on nopeuttaa, helpottaa ja yksinkertaistaa käyttäjienhallintaan liittyviä toimintoja tietoturvallisesti. GateKeeper-ohjelma on suunniteltu siten, että uusien käyttäjien ja ohjelmien lisäämiselle ei ole asetettu rajoja. Jokaisen lisättävän ohjelman yhteydessä on kuitenkin selvitettävä kyseisen ohjelman käyttäjienhallintamekanismi. Tässä insinöörityössä tutkittiin, miten versionhallintaohjelma Subversionin, julkaisujärjestelmä Mambon, sekä oppimisalusta Moodlen käyttäjiä voidaan keskitetysti hallinnoida GateKeeper-ohjelman avulla. GateKeeper-ohjelma noudattaa arkkitehtuuriltaan kolmikerrosmallia, jossa käyttöliittymä, sovelluslogiikka ja tietovarasto on erotettu toisistaan. Ohjelma koostuu joukosta PHP-kielellä toteutettuja dynaamisia web-sivuja. Tietovarastona käytetään tietokantapalvelimella sijaitsevaa MySQL-tietokantaa.
Resumo:
Ohjelmistoprojektit pohjautuvat nykyään useasti osittain itsenäisesti suunniteltujen ja; toteutettujen ohjelmakomponenttien yhdistelemiseen. Tällä keinolla voidaan vähentää kehitystyön; viemää aikaa ja kustannuksia, jotta saadaan tuotettua kilpailukykyisempiä ohjelmistoja.; Tässädokumentissa käsitellään komponenttipohjaisen ohjelmistotuotannon näkökulmia ja; Microsoft .NET Framework ympäristöä, joka on kehitysympäristö komponenttipohjaisille; ohjelmistoille. Lisäksi esitellään tapauskohtainen ohjelmistoprojekti extranet-verkon; toteutukseen.
Resumo:
Tämädiplomityö tutkii kuinka Eclipse -ympäristöä voidaan käyttää testitapausten generoinnissa. Eräs diplomityön pääaiheista on tutkia voidaanko olemassa olevilla Eclipsen komponenteilla parantaa symboolitietoutta, jotta testitapausten generointiin saataisiin lisää tietoa. Aluksi diplomityö antaa lyhyen katsauksen ohjelmistojentestaukseen, jotta lukija ymmärtää mitä ohjelmistotekniikan osa-aluetta diplomityö käsittelee. Tämän jälkeen kerrotaan lisää tietoa itse testitapausten generointiprosessista. Kun perusteet on käsitelty, tutustetaan lukija Eclipse -ympäristöön, mikä se on, mistä se koostuu ja mitä sillä voidaan tehdä. Tarkempaa tietoa kerrotaan Eclipsen komponenteista joita voidaan käyttää apuna testitapausten generoinnissa. Integrointi esimerkkinä diplomityössä esitellään valmiin testitapausgeneraattorin integrointi Eclipse -ympäristöön. Lopuksi Eclipse -pohjaista ratkaisua verrataan symboolitietouden sekä ajoajan kannalta aikaisempaan ratkaisuun. Diplomityön tuloksena syntyi prototyyppi jonka avulla todistettiin, että Eclipse - ympäristöön on mahdollista integroida testitapausgeneraattori ja että se voi lisätä symboolitietoutta. Tämätietouden lisäys kuitenkin lisäsi myös tarvittavaa ajoaikaa, joissakintapauksissa jopa merkittävästi. Samalla todettiin, että tällä hetkellä on menossa projekteja joiden tarkoituksena on parantaa käytettyjen Eclipse komponenttien suorituskykyä ja että tämä voi parantaa tuloksia tulevaisuudessa.
Resumo:
Tutkielman tavoitteena on tunnistaa Kaakkois-Suomen alueella olevat ohjelmistoyritysten tyypilliset yritysryhmät ja kuvata niiden toimintaa. Tunnistamalla alueen ohjelmistoyrityksille ominaiset piirteet työ antaa myös pohjaa tulevien kehityskohteiden löytämisessä ja kehitystoimenpiteiden kohdistamisessa useisiin samantyyppisiin yrityksiin. Työn taustaksi esitellään ohjelmistoalaa ja ohjelmistoliiketoiminnan malleja, joiden pohjalta muodostetaan viitekehys alueen ohjelmistoyritysten empiiriseen tarkasteluun. Empiriaosuudessa tarkastellaan työn teoreettisessa osiossa esitettyjen liiketoimintamallien toteutumista Kaakkois-Suomessa ja ryhmitellään alueen ohjelmistoyritykset erottelevimpien tekijöiden avulla. Tutkimus on luonteeltaan kvantitatiivinen kokonaistutkimus Kaakkois-Suomen ohjelmistoyrityksistä, ja tutkimusotteeltaan deskriptiivinen eli kuvaileva. Tutkimusaineisto perustui tutkimusryhmän suorittamaan strukturoituun haastatteluun, jossa haastateltiin kaikkiaan 58 ohjelmistoyrityksen vastuuhenkilöitä. Tutkimustulosten perusteella alueelta pystyttiin tunnistamaan neljä toimintatavoiltaan erilaista ohjelmistoliiketoiminnan perustyyppiä: asiakaslähtöiset toimijat (26 toimipaikkaa), räätälöijät (14 toimipaikkaa), integroijat (10 toimipaikkaa) ja tuotteistajat (8 toimipaikkaa). Tulokset osoittavat, että perinteisten ohjelmistoalan liiketoimintamallien kuvaukset ja niistä tehtävät yleistykset antavat hyvän lähtökohdan ohjelmistoyritysten tarkasteluun. Kuitenkin perinteisten ohjelmistoalan liiketoimintamallien antama näkökulma on liian rajoittunut,jos halutaan tarkastella syvällisemmin ohjelmistoyritysten liiketoimintalogiikkaa.
Resumo:
Useiden pitkän kehityskaaren ohjelmistojen ylläpitäminen ja kehittäminen on vaikeaa, sillä niiden dokumentaatio on vajaata tai vanhentunutta. Tässä diplomityössä etsitään ratkaisua tällaisen ohjelmiston ja sen taustalla olevan järjestelmän kuvaukseen. Tavoitteina on tukea nykyisen ohjelmiston ylläpitoa ja uuden työvoiman perehdyttämistä. Tavoitteena on myös pohjustaa uuden korvaavan ohjelmiston suunnittelua kuvaamalla nykyiseen järjestelmään sitoutunutta sovellusalueosaamista. Työssä kehitetään kuvausmenetelmä järjestelmän kuvaamiseen hierarkkisesti laitteistotason yleiskuvauksesta ohjelmiston luokkarakenteeseen sekä toiminnallisuuteen asti. Laite- ja luokkarakennekuvaukset ovat rakenteellisia kuvauksia, joiden tehtävänä on selittää järjestelmän ja sen osien kokoonpano. Toiminnallisuudesta kertovat kuvaukset on toteutettu käyttötapauskuvauksina. Työssä keskityttiin erityisesti kohdejärjestelmän keskeisen ohjelmiston ja tietokannan kuvaamiseen. Ohjelmistosta valittiin tärkeimmät ja eniten sovellusalueen tietotaitoa sisältävät osat, joista työssä luotiin esimerkkikuvaukset. Kuvauksia on kehitettyä menetelmää hyödyntäen helppo laajentaa tarpeiden mukaan paitsi ohjelmiston muihin osiin, myös laitteiston ja järjestelmän kuvaamiseen kokonaisuudessaan syvemmin.
Resumo:
Ohjelmistojen uudelleenkäyttö on hyvin tärkeä käsite ohjelmistotekniikan alueella.Ohjelmistojen uudelleenkäyttötekniikat parantavat ohjelmistokehitysprosessin laatua. Yleisiä ratkaisuja sekä ohjelmiston suunnittelun että arkkitehtuurin uudelleenkäyttöön ovat olio-ohjelmointi ja sovelluskehykset. Tähän asti ei ole ollut olemassa yleisiä tapoja sovelluskehysten erikoistamiseen. Monet nykyääntunnetuista sovelluskehyksistä ovat hyvin suuria ja mutkikkaita. Tällaisten sovelluskehyksien käyttö on monimutkaista myös kokeneille ohjelmoijille. Hyvin dokumentoidut uudelleenkäytettävät sovelluskehyksen rajapinnat parantavat kehyksen käytettävyyttä ja tehostavat myös erikoistamisprosessiakin sovelluskehyksen käyttäjille. Sovelluskehyseditori (framework editor, JavaFrames) on prototyyppityökalu, jota voidaan käyttää yksinkertaistamaan sovelluskehyksen käyttöä. Perusajatus JavaFrames lähestymistavassa ovat erikoistamismallit, joita käytetään kuvamaan sovelluskehyksen uudelleenkäytettäviä rajapintoja. Näihin malleihin perustuen JavaFrames tarjoaa automaattisen lähdekoodi generaattorin, dokumentoinninja arkkitehtuurisääntöjen tarkistuksen. Tämä opinnäyte koskee graafisen mallieditorin kehittämistä JavaFrames ympäristöön. Työssä on laadittu työkalu,jonka avulla voidaan esittää graafisesti erikoistamismalli. Editori sallii uusien mallien luomisen, vanhojen käyttämättä olevien poistamisen, kuten myös yhteyksien lisäämisen mallien välille. Tällainen graafinen tuki JavaFrames ympäristöönvoi huomattavasti yksinkertaistaa sen käyttöä ja tehdä sovellusten kehittämisprosessista joustavamman.
Resumo:
Tutkimuksen tavoitteena oli selvittää ohjelmistotestauksen tehokkuuteen vaikuttavia tekijöitä tutkimalla yritysten ohjelmistotestausta, hyviä toimintatapojasekä toiminnan ongelmia. Tutkimalla yritysten ohjelmistotestausta on mahdollista kehittää ohjelmistotestauksen tehokkuutta parantavia toimenpiteitä ja malleja. Tutkimuksen ensimmäisessä vaiheessa oli mukana 26 yritystä, joista valittiin viisi case-yritystä tutkimuksen jatkovaiheisiin. Työn teoriaosuudessa esitetään sekä ohjelmistotestauksen teoria että käytetyn tutkimusmenetelmän teoriaa. Tässä diplomityössä keskitytään valittuihin viiteen case-yritykseen. Näiden viiden yrityksen sekä aiemman vaiheen 26 yrityksen kohdalla tehtiin kvalitatiivinen tutkimus käyttäen grounded-teorian mukaista tutkimusmenetelmää. Tämän kvalitatiivisen eli laadullisen tutkimuksen näkökulmat perustuivat aiempiin teknologiaselvitysvaiheen tuloksiin. Tämän diplomityön näkökulmana oli prosessien kehittäminen. Työn tuloksena löytyi tekijöitä, joilla näyttää olevan vaikutuksia testauksen tehokkuuteen. Tulosten avulla pystytään muodostamaan parannusehdotuksia testauksen tehokkuuden parantamiseksi yhdessä tutkimushankkeen muiden osa-alueiden tulosten kanssa. Testauksen tehokkuuteen vaikuttavatprosessinäkökulmasta mm. aikataulupaineet, lisääntyvä monimutkaisuus sekä ulkoahankittujen ohjelmiston osien testaamisen hankaluus. Ongelmia voidaan ratkaistatestauksen aikaisella mukanaololla projekteissa, ohjelmistotuotannon luonteen huomioimisella testauksessa, testauksen priorisoinnilla sekä ulkoisten komponenttien testattavuuden parantamisella.
Resumo:
Ohjelmistotestaus on suuri ja kasvava kustannuserä ohjelmistotuotannossa. Kirjallisuudessa mainittu ohjelmistotestauksen kustannusten osuus on noin 50% ohjelmistokehityshankkeiden budjetista. Tutkimusprojektin tarkoituksena on selvittää, kuinka ohjelmistotestauksen kustannusten kasvu saataisiin pysähtymään tai laskemaan laatua menettämättä. Tässä työssä keskitytään laadullisen analyysin kautta selvittämään ja ymmärtämään tietämyksen välittämistä ohjelmistotestausorganisaatiossa. Tutkimusmateriaali on kerätty haastattelemalla26 organisaatioyksikön edustajia. Näiden organisaatioyksiköiden joukosta on edelleen valittu viisi organisaatioyksikköä lähempään tarkasteluun. Työssä havaittiin muun muassa, että tuotesuuntautuneessa ohjelmistokehityksessä tietämystä on vaivattomampi kodifioida. Esimerkiksi testitapausten määrittäminen ennakkoon on tällöin helpompaa. Kodifiointi mahdollistaa myös testauksen laajamittaisen ulkoistamisen, sillä kodifioitua tietämystä on helpompi välittää. Räätälöityjen järjestelmien testaamisessa tarvittava tietämys vaikuttaa olevan suurelta osin hiljaista, esimerkiksi sovellusalueosaaminen painottuu enemmän.
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:
Today's business environment has become increasingly unexpected and fast changing because of the global competition. This new environment requires the companies to organize their control differently, e.g. by logistic process thinking. Logistic process thinking in software engineering applies the principles of production process to immaterial products. Processes must be optimized, so that every phase adds value to the customer, and the lead times can be cut shorter to meet the new customer requirements. The purpose of this thesis is to examine and optimize the testing processes of software engineering concentrating on module testing, functional testing and their interface. The concept of logistic process thinking is introduced through production process, value added model and process management. Also theory of testing based on literature is presented, concentrating on module testing and functional testing. The testing processes of the Case Company are presented together with the project models in which they are implemented. The real life practices in module testing and functional testing and their interface are examined through interviews. These practices are analyzed against the processes and the testing theory, through which ideas for optimizing the testing process are introduced. The project world of the Case Company is also introduced together with two example testing projects in different life cycle phases. The examples give a view of how much effort of the project is put in different types of testing.
Resumo:
Nykyään kolmeen kerrokseen perustuvat client-server –sovellukset ovat suuri kinnostuskohde sekä niiden kehittäjille etta käyttäjille. Tietotekniikan nopean kehityksen ansiosta näillä sovelluksilla on monipuolinen käyttö teollisuuden eri alueilla. Tällä hetkellä on olemassa paljon työkaluja client-server –sovellusten kehittämiseen, jotka myös tyydyttävät asiakkaiden asettamia vaatimuksia. Nämä työkalut eivät kuitenkaan mahdollista joustavaa toimintaa graafisen käyttöliittyman kanssa. Tämä diplomityö käsittelee client-server –sovellusten kehittamistä XML –kielen avulla. Tämä lähestymistapa mahdollistaa client-server –sovellusten rakentamista niin, että niiden graafinen käyttöliittymä ja ulkonäkö olisivat helposti muokattavissa ilman ohjelman ytimen uudelleenkääntämistä. Diplomityö koostuu kahdesta ostasta: teoreettisesta ja käytännöllisestä. Teoreettinen osa antaa yleisen tiedon client-server –arkkitehtuurista ja kuvailee ohjelmistotekniikan pääkohdat. Käytannöllinen osa esittää tulokset, client-server –sovellusten kehittämisteknologian kehittämislähestymistavan XML: ää käyttäen ja tuloksiin johtavat usecase– ja sekvenssidiagrammit. Käytännöllinen osa myos sisältää esimerkit toteutetuista XML-struktuureista, jotka kuvaavat client –sovellusten kuvaruutukaavakkeiden esintymisen ja serverikyselykaaviot.
Resumo:
Sähkömies -taloushallinto-ohjelmisto on pienille sähköalan yrityksille suunnattu valmisohjelmisto. Se on tarkoitettu tehostamaan talous- ja materiaalihallinnon tehtäviä yrityksessä. Tämän työn tavoitteena oli suunnitella ja toteuttaa ostoreskontra –moduuli Sähkömies –taloushallinto-ohjelmistoon. Ostoreskontra -ominaisuuden lisääminen ohjelmistoon on saanut alkunsa useiden asiakkaiden palautteesta saada automatisoitua yrityksen ostoreskontra -toiminto. Samalla ohjelmistosta saadaan kilpailukykyisempi tuote sähköalalla. Työssä on ensiksi tutkittu ostoreskontran yleistä toimintamallia. Ohjelmiston kehitysprosessissa on sovellettu vesiputous –ohjelmistoprosessimallia. Ostoreskontra –moduulin vaatimukset on määritelty yhdessä avainasiakkaiden kanssa. Ohjelmiston toiminnallisuuden määrittelyssä on käytetty use case –menetelmää. Vaatimusmäärittelyyn ja toiminnalliseen määrittelyyn perustuen on suunniteltu tietokantataulut, käyttöliittymälomakkeet sekä tehty ohjelmamäärittelyt. Ohjelmiston toteutukseen on käytetty Visual Basic –sovelluskehitintä sekä Access 2000 –tietokanta-ohjelmistoa.Työn lopullista onnistumista on vielä aikaista arvioida, koska ohjelmiston ostoreskontra –moduulin sisältävää versiota ei ole vielä toimitettu asiakkaille. Lupaavaa palautetta on kuitenkin tullut projektissa tiiviisti mukana olleilta asiakkailta.