903 resultados para Search Based Software Engineering
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:
Software engineering is criticized as not being engineering or 'well-developed' science at all. Software engineers seem not to know exactly how long their projects will last, what they will cost, and will the software work properly after release. Measurements have to be taken in software projects to improve this situation. It is of limited use to only collect metrics afterwards. The values of the relevant metrics have to be predicted, too. The predictions (i.e. estimates) form the basis for proper project management. One of the most painful problems in software projects is effort estimation. It has a clear and central effect on other project attributes like cost and schedule, and to product attributes like size and quality. Effort estimation can be used for several purposes. In this thesis only the effort estimation in software projects for project management purposes is discussed. There is a short introduction to the measurement issues, and some metrics relevantin estimation context are presented. Effort estimation methods are covered quite broadly. The main new contribution in this thesis is the new estimation model that has been created. It takes use of the basic concepts of Function Point Analysis, but avoids the problems and pitfalls found in the method. It is relativelyeasy to use and learn. Effort estimation accuracy has significantly improved after taking this model into use. A major innovation related to the new estimationmodel is the identified need for hierarchical software size measurement. The author of this thesis has developed a three level solution for the estimation model. All currently used size metrics are static in nature, but this new proposed metric is dynamic. It takes use of the increased understanding of the nature of the work as specification and design work proceeds. It thus 'grows up' along with software projects. The effort estimation model development is not possible without gathering and analyzing history data. However, there are many problems with data in software engineering. A major roadblock is the amount and quality of data available. This thesis shows some useful techniques that have been successful in gathering and analyzing the data needed. An estimation process is needed to ensure that methods are used in a proper way, estimates are stored, reported and analyzed properly, and they are used for project management activities. A higher mechanism called measurement framework is also introduced shortly. The purpose of the framework is to define and maintain a measurement or estimationprocess. Without a proper framework, the estimation capability of an organization declines. It requires effort even to maintain an achieved level of estimationaccuracy. Estimation results in several successive releases are analyzed. It isclearly seen that the new estimation model works and the estimation improvementactions have been successful. The calibration of the hierarchical model is a critical activity. An example is shown to shed more light on the calibration and the model itself. There are also remarks about the sensitivity of the model. Finally, an example of usage is shown.
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.
Resumo:
The question of Pilot Project creation, due to support pre-development stage of software product elaboration, nowadays might be used as an approach, which allows improving the whole scheme of information technology project running. This subject is not new, but till now no model has been presented, which gives deep description of this important stage on the early phase of project. This Master's Thesis represents the research's results and findings concerning the pre-development study from the Software Engineering point of view. The aspects of feasibility study, pilot prototype developments are analyzed in this paper. As the result, the technique of Pilot Project is formulated and scheme has been presented. The experimental part is focused on particular area Pilot Project scheme's implementation- Internationally Distributed Software projects. The specific characteristic, aspects, obstacles, advantages and disadvantages are considered on the example of cross border region of Russia and Finland. The real case of Pilot Project technique implementation is given.
Resumo:
Ohjelmistokehitys on monimutkainen prosessi. Yksi keskeisistä tekijöistä siinä on ohjelmistolle asetettavat vaatimukset. Näitä vaatimuksia on hyvin monenlaisia, ja eri tasoisia; toivotusta toiminnallisuudesta hyvinkin yksityiskohtaisiin vaatimuksiin. Näiden vaatimusten hallinta on myöskin hyvin monitahoista, vaikkakin se on kirjallisuudessa esitetty selkeänä prosessissa, joka on sarja toisistaan erottuviavaiheita. Työn painopiste oli näiden vaatimusten muutoksen ja valmiiseen ohjelmistoon kohdistuvan palautteen hallinnassa, ja kuinka vaatimustenhallintaohjelmisto voisi olla avuksi näissä prosesseissa. Vaatimustenhallintatyökalun käyttö ei sinällään ratkaise mitään ongelmia, mutta se suo puitteet parantaa vaatimusten hallitsemista. Työkalun käytöstä on muun muassa seuraavia etuja: vaatimusten keskitetty varastointi, käyttäjäoikeuksien määrittely koskien eri käyttäjiä ja heidän pääsyään näkemään tai muuttamaan tietoa, muutoksenhallintaprosessin hallinta, muutosten vaikutuksen analysointi ja jäljitettävyys ja pääsy tietoihin web-selaimella.
Resumo:
Oliopohjainen lähestymistapa on varsin uusi toimintaperiaate käytännön ohjelmistotuotantoprosesseissa. Oliopohjaisuus mahdollistaa nopean ja tehokkaan ohjelmistotuotannon sekä tuottaa uudelleenkäytettäviä luokkia. Tässä työssä tutkitaan oliopohjaisen mallinnuksen käyttömahdollisuuksia erään ohjelmistotuotteen kehityksessä ja keskitytään tuotteen määrittely- ja suunnitteluvaiheisiin. Tavoitteena on konkretisoida tarkastelun kohteena olevalle yritykselle oliopohjaisen mallinnuksen käyttötavat ja -mahdollisuudet osana yrityksen ohjelmistotuotantoprosessia. Työssä tarkastellaan yleisiä oliopohjaisen mallinnuksen toimintoja määrittely- ja suunnitteluvaiheissa. Erityisesti tarkastellaan yrityksen omaa ohjelmistotuotantoprosessia, TE Objectia, ja sen yhtymäkohtia yleisen oliopohjaisen mallinnuksen kanssa. Työssä kuvataan ohjelmistotuote, mallinnetaan ohjelmistotuotteen osa TE Objectia hyödyntäen ja pohditaan TE Objectin soveltuvuutta kyseisen tuotteen määrittelyyn ja suunnitteluun. Oliopohjaisen mallinnuksen todetaan sopivan hyvin tarkastellun tuotepohjaisen ohjelmiston kehitykseen. Tarkasteltavan tuotteen kehityksen pääpaino on uudelleenkäytettävyydellä, jota oliopohjainen mallintaminen erityisesti tukee. Kohdeyrityksen oman ohjelmistotuotantoprosessin, TE Objectin, todetaan vastaavan hyvin yleistä oliopohjaista mallinnusta määrittely- ja suunnitteluvaiheissa ja sitä suositellaan hyödynnettävän tarkastellun tuotteen määrittelyyn ja suunnitteluun soveltuvin osin. Työssä mallinnettiin kohdeyrityksen tuotteen osa esimerkinomaisesti, mikä konkretisoi TE Objectin käyttömahdollisuuksia osana yrityksen ohjelmistotuotantoprosessia.
Resumo:
Työn tavoitteena oli luoda selkeä kuvaus sanomalehden lehtitilausprosessin toiminnasta tilauksesta jakeluun sekä kartoittaa lehtitilausprosessiin liittyvät ongelmakohdat ja esittää alustavia parannus- ja kehittämisehdotuksia niiden ratkaisemiseksi. Kuvauksen rakenteen teoreettisen pohjan luo työn alussa esitetty strukturoitu analyysi eli SA-menetelmä (structured analysis), jota soveltaen varsinainen kuvaus pääosin henkilöhaastatteluista saatuihin tietoihin perustuen toteutettiin.Sanomalehden lehtitilausprosessi on hyvin laaja ja monivaiheinen prosessi. Työn yhtenä tarkoituksena olikin selventää henkilöstölle, mitä kyseisen prosessin sisällä oikein tapahtuu. Kuvausta tehtäessä havaittiin useita lehtitilausprosessiin liittyviä ongelma- ja kehittämiskohteita, joiden kuntoon saattamiseksi on työssä esitetty alustavia ratkaisuvaihtoehtoja. Diplomityön teettämisen perusteena oli halu kehittää lehtitilausprosessia tilauksesta jakeluun nykyprosessin laadun parantamiseksi.Toimenpide-ehdotuksena esitetään tutkimuksessa läpi käytyjen sekä sen pohjalta mahdollisesti ilmenevien uusien parannus- ja kehittämisehdotusten toteuttamista lähitulevaisuudessa. Näin kyetään takaamaan lehtitilausprosessin toimivuus sekä vastaamaan asiakkaiden kasvaviin tarpeisiin myös tulevaisuudessa.
Resumo:
Diplomityön tavoitteena oli luoda suunnitelma elektronisen hankintatoimen aloittamiseksi, analysoimalla nykyisiä ostoprosesseja ja konsernin laajuista elektronista hankintajärjestelmää. Työ pohjautuu yritysten väliseen elektroniseen kauppaan, elektroniseen hankintatoimeen ja systeemisuunnitteluun liittyvään kirjallisuuteen. Työssä tehdyn suunnitelman tarkoituksena on auttaa Siemens Oy:tä siirtymään uuteen elektroniseen ostotoimintaan. Elektroniselle ostotoiminnalle suunniteltiin tavoitteet ja näitä vastaavat vaatimukset. Elektronisen hankintajärjestelmän analysointi perustuu kirjallisuudessa esitettyihin järjestelmän elinkaari-mallin vaiheisiin. Analysoinnin tarkoituksena oli saada selville järjestelmän soveltuvuus Siemens Oy: n liiketoimintaympäristöön, prosesseihin ja vaatimuksiin. Elektronisen hankintatoiminnan etuja ovat liiketoiminta prosessien johtamisen parantuminen, kustannusten väheneminen sekä taloudellisen suorituskyvyn lisääntyminen. Elektronisen hankintatoiminnan aloittaminen vaatii kuitenkin huolellista suunnittelua. Työssä tehdyt suunnitelmat ja analysoinnit auttavat arvioidessa järjestelmän sopivuutta Siemens Oy: n vaatimuksiin. Oikean ja toimivan järjestelmän valinta ei kuitenkaan takaa elektronisesta hankintatoiminnasta hyötymistä. Tärkeimpiä jatkotoimenpiteitä onkin suorittaa kustannus/hyöty analyysi ja arvioida toimittajien halukkuutta ja kykyjä osallistua markkinapaikkaan.
Resumo:
Tämän diplomityön tarkoituksena oli esittää menetelmä erääseen ohjelmistoon toteutettavista muutoksista aiheutuvien riskien hallintaan. Ohjelmistoa käyttää päivittäin useita satoja henkilöitä ja sen ongelmaton toiminta on ohjelmiston omistavalle asiakkaalle erittäin tärkeää. Ohjelmiston ja sen kehitystyön kannalta riski on asianomistajan tavoitteita uhkaava menetyksen mahdollisuus tai menetykseen liittyvä ominaisuus, tekijä tai toiminta. Tämän työn yhteydessä asianomistaja on yritys, joka on toteuttanut nykyisen ohjelmiston ja on vastuussa ohjelmiston jatkokehityksestä. Yrityksen riskienhallintatarpeita vastaava ratkaisu pyritään löytämään perehtymällä riskienhallinnan perusteisiin sekä kahteen erityisesti ohjelmistotuotantoon tarkoitettuun riskienhallintamenetelmään. Riskienhallinnan kehittämisen kannalta on tärkeää, että ohjelmistotuotannon tyypilliset virheet onnistutaan pääsääntöisesti välttämään. Riskienhallinnan yleisempien virheiden tiedostamisesta on suurta hyötyä omaa riskienhallintaa kehitettäessä. Ohjelmiston kehitysorganisaation systemaattinen tapa toteuttaa ohjelmistomuutoksia perustuu ohjelmistotuotantoon tarkoitetun tuotteenhallintaohjelman käyttöön. Tuotteenhallintaohjelmassa muutospyyntö on ohjelmiston kehitystyön perusyksikkö, johon riskienhallintatoimet on pyrittävä kohdistamaan. Yrityksen tarpeita vastaava riskienhallintamalli rakennetaan lisäämällä Riskit-menetelmän mukainen riskienhallintaprosessi osaksi muutospyynnön systemaattista käsittelyprosessia. Työn tuloksena aikaansaadun mallin mukaista riskienhallintaa voidaan käytännössä harjoittaa usealla eri tavalla. Arvioiden perusteella kaavionluonti- ja tekstinkäsittelyohjelma ovat riittävät työkalut riskienhallinnan käytännön toteutusta varten. Kokemukset uudesta riskienhallintamenetelmästä osoittivat sen käyttökelpoiseksi. Menetelmän käyttöönoton sujuvuuden varmistamiseksi, riskienhallintatoimet kannattaa kuitenkin aluksi kohdistaa yksittäistä muutospyyntöä suurempaan kokonaisuuteen.
Resumo:
This thesis studies the problems and their reasons a software architect faces in his work. The purpose of the study is to search and identify potential factors causing problens in system integration and software engineering. Under a special interest are non-technical factors causing different kinds of problems. Thesis was executed by interviewing professionals that took part in e-commerce project in some corporation. Interviewed professionals consisted of architects from technical implementation projects, corporation's architect team leader, different kind of project managers and CRM manager. A specific theme list was used as an guidance of the interviews. Recorded interviews were transcribed and then classified using ATLAS.ti software. Basics of e-commerce, software engineering and system integration is described too. Differences between e-commerce and e-business as well as traditional business are represented as are basic types of e-commerce. Software's life span, general problems of software engineering and software design are covered concerning software engineering. In addition, general problems of the system integration and the special requirements set by e-commerce are described in the thesis. In the ending there is a part where the problems founded in study are described and some areas of software engineering where some development could be done so that same kind of problems could be avoided in the future.
Resumo:
Reusability has become more popular factor in modern software engineering. This is mainly because object-orientation has brought methods that allow reusing more easily. Today more and more application developer thinks how they can reuse already existing applications in their work. If the developer wants to use existing components outside the current project, he can use design patterns, class libraries or frameworks. These provide solution for specific or general problems that has been already encountered. Application frameworks are collection of classes that provides base for the developer. Application frameworks are mostly implementation phase tools, but can also be used in application design. The main purpose of the frameworks is separate domain specific functionalities from the application specific. Usually the frameworks are divided into two categories: black and white box. Difference between those categories is the way the reuse is done. The application frameworks provide properties that can be examined and compared between different frameworks. These properties are: extensibility, reusability, modularity and scalability. These examine how framework will handle different platforms, changes in framework, increasing demand for resources, etc. Generally application frameworks do have these properties in good level. When comparing general purpose framework and more specific purpose framework, the main difference can be located in reusability of frameworks. It is mainly because the framework designed to specific domain can have constraints from external systems and resources. With general purpose framework these are set by the application developed based on the framework.
Resumo:
Tässä tutkimuksessa tarkasteltiin tuottavuuden käsitettä ja mittaamista palvelualoilla. Tutkielman tavoitteena oli kuvata ja ymmärtää sähköisen taloushallinnon vaikutusta tilitoimistojen tuottavuuteen. Aihetta lähestyttiin sähköisiä taloushallinto-ohjelmia valmistavan case-yhtiö Heeros Systems Oy:n avulla. Tutkimus on luonteeltaan laadullinen tutkimus, jonka tutkimusmenetelmä-nä käytettiin teemahaastatteluja. Tutkimusaineisto kerättiin haastattelemal-la yhteensä kymmentä tutkimuksen kohteena olevan tilitoimiston edusta-jaa. Tutkimuksen perusteella ei havaittu sähköisen taloushallinnon selkeästi vaikuttavan tilitoimistojen tuottavuuteen tässä vaiheessa, mutta toiminto-ympäristön sähköistyessä, esimerkiksi verkkolaskujen yleistyessä, tilan-teen uskotaan muuttuvan nopeasti. Tällöin tuottavuuden kasvu edellyttää työprosessin muuttamista ja huolellista suunnittelua.
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.