59 resultados para Automated software engineering


Relevância:

90.00% 90.00%

Publicador:

Resumo:

Software integration is a stage in a software development process to assemble separate components to produce a single product. It is important to manage the risks involved and being able to integrate smoothly, because software cannot be released without integrating it first. Furthermore, it has been shown that the integration and testing phase can make up 40 % of the overall project costs. These issues can be mitigated by using a software engineering practice called continuous integration. This thesis work presents how continuous integration is introduced to the author's employer organisation. This includes studying how the continuous integration process works and creating the technical basis to start using the process on future projects. The implemented system supports software written in C and C++ programming languages on Linux platform, but the general concepts can be applied to any programming language and platform by selecting the appropriate tools. The results demonstrate in detail what issues need to be solved when the process is acquired in a corporate environment. Additionally, they provide an implementation and process description suitable to the organisation. The results show that continuous integration can reduce the risks involved in a software process and increase the quality of the product as well.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

The front end of innovation is regarded as one of the most important steps in building new software products or services, and the most significant benefits in software development can be achieved through improvements in the front end activities. Problems in the front end phase have an impact on customer dissatisfaction with delivered software, and on the effectiveness of the entire software development process. When these processes are improved, the likelihood of delivering high quality software and business success increases. This thesis highlights the challenges and problems related to the early phases of software development, and provides new methods and tools for improving performance in the front end activities of software development. The theoretical framework of this study comprises two fields of research. The first section belongs to the field of innovation management, and especially to the management of the early phases of the innovation process, i.e. the front end of innovation. The second section of the framework is closely linked to the processes of software engineering, especially to the early phases of the software development process, i.e. the practice of requirements engineering. Thus, this study extends the theoretical knowledge and discloses the differences and similarities in these two fields of research. In addition, this study opens up a new strand for academic discussion by connecting these research directions. Several qualitative business research methodologies have been utilized in the individual publications to solve the research questions. The theoretical and managerial contribution of the study can be divided into three areas: 1) processes and concepts, 2) challenges and development needs, and 3) means and methods for the front end activities of software development. First, the study discloses the difference and similarities between the concepts of the front end of innovation and requirements engineering, and proposes a new framework for managing the front end of the software innovation process, bringing business and innovation perspectives into software development. Furthermore, the study discloses managerial perceptions of the similarities and differences in the concept of the front end of innovation between the software industry and the traditional industrial sector. Second, the study highlights the challenges and development needs in the front end phase of software development, especially challenges in communication, such as linguistic problems, ineffective communication channels, a communication gap between users/customers and software developers, and participation of multiple persons in software development. Third, the study proposes new group methods for improving the front end activities of software development, especially customer need assessment, and the elicitation of software requirements.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

Software testing is one of the essential parts in software engineering process. The objective of the study was to describe software testing tools and the corresponding use. The thesis contains examples of software testing tools usage. The study was conducted as a literature study, with focus on current software testing practices and quality assurance standards. In the paper a tool classifier was employed, and testing tools presented in study were classified according to it. We found that it is difficult to distinguish current available tools by certain testing activities as many of them contain functionality that exceeds scopes of a single testing type.

Relevância:

90.00% 90.00%

Publicador:

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.

Relevância:

90.00% 90.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.