71 resultados para distributed software development
Resumo:
Työn tavoitteena oli selvittää erilaisten ohjelmistokehitysprosessien soveltuvuus maantieteellisesti hajallaan oleville kehitysryhmille. Aluksi selvitettiin yleisemmin käytössä olevat ohjelmistoprosessit ja niiden pääkohdat. Selvittäminen tehtiin kirjallisuuden ja internet-sivustojen perusteella. Saatuja tuloksia verrattiin CASE – yrityksen, Komartek Oyj:n, prosesseihin. Komartek Oyj:n prosessit selvitettiin haastatteluin sekä yrityksen sisäistä dokumentaatiota hyväksikäyttäen. Toisena tehtävänä työssä käytiin läpi hajautetun kehityksen aiheuttamia erityisvaatimuksia ohjelmistoprojekteille. Kirjallisuudesta löydettyjä vaatimuksia verrattiin jälleen Komartekin tämän hetkiseen kehitystyön hajautukseen ja selvitettiin myös lähitulevaisuuden näkymiä yrityksessä.
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:
The goal of this thesis is to define and validate a software engineering approach for the development of a distributed system for the modeling of composite materials, based on the analysis of various existing software development methods. We reviewed the main features of: (1) software engineering methodologies; (2) distributed system characteristics and their effect on software development; (3) composite materials modeling activities and the requirements for the software development. Using the design science as a research methodology, the distributed system for creating models of composite materials is created and evaluated. Empirical experiments which we conducted showed good convergence of modeled and real processes. During the study, we paid attention to the matter of complexity and importance of distributed system and a deep understanding of modern software engineering methods and tools.
Resumo:
Tässä työssä on esitetty sen ohjelmiston kehittämisen prosessi, joka on tarkoitettu annettavien palveluiden valvottavaksi käyttäen prototyyppimallia. Raportti sisältää vaatimusten, kohteisiin suunnatun analyysin ja suunnittelun, realisointiprosessien kuvauksen ja prototyypin testauksen. Ohjelmiston käyttöala – antavien palveluiden valvonta. Vaatimukset sovellukselle analysoitiin ohjelmistomarkkinoiden perusteella sekä ohjelmiston engineeringin periaatteiden mukaisesti. Ohjelmiston prototyyppi on realisoitu käyttäen asiakas-/palvelinhybridimallia sekä ralaatiokantaa. Kehitetty ohjelmisto on tarkoitettu venäläisille tietokonekerhoille, jotka erikoistuvat pelipalvelinten antamiseen.
Resumo:
Diplomityön tavoitteena oli kehittää kolmannen sukupolven fyysistä protokollakerrosta matkapuhelimen ohjelmistoarkkitehtuurille. Kolmannen sukupolven matkapuhelinjärjestelmät ovat aikaisempia järjestelmiä monimutkaisempia. Ohjelmiston koon ja monimutkaisuuden sekä aikataulujen kiireellisyyden vuoksi on tullut tarve ottaa käyttöön formaaleja menetelmiä ohjelmiston kehitystyöhön. Formaalit kuvauskielet mahdollistavat tarkan, yksiselitteisen ja simuloitavissa olevan järjestelmäkuvauksen muodostamisen. Fyysinen protokollakerros tarjoaa tiedon siirtoa ylemmille protokollakerroksille. Tämän tiedonsiirron hallinta vaatii protokollakerrosten välistä viestinvälitystä. Formaaleja kuvauskieliä käyttämällä voidaan viestinvälityksen toteutusta automatisoida ja siinä tarvittavaa logiikkaa havainnollistaa. Työssä suunniteltiin, toteutettiin ja testattiin ylempien protokollakerrosten kanssa kommunikoivaa osaa fyysisestä protokollakerroksesta. Tuloksena saatiin solunvalintatoiminnallisuuden vaatiman kommunikoinnin ja tilakoneen toteutus ohjelmistoarkkitehtuurissa. Ohjelmistonkehityksen alkuvaiheiden havaittiin olevan fyysisen kerroksen suorituskyvyn kannalta merkittävässä asemassa, koska tällöin viestinvälityksen optimointi on helpointa. Formaalit kuvauskielet eivät ole sellaisenaan täysin soveltuvia tarkoin määritellyn ohjelmistoarkkitehtuurin osien kehitykseen.
Resumo:
Taking the maximum advantage of technological innovations and the investment in them is of key importance for businesses. The IT industry offers a wide range of innovative high-technology solutions to manage information processing and distribution. However for end-user businesses to make informed decisions in this area is challenging. The aim of this research is to identify the key differences in principal solutions, and what the selection criteria should be for those involved. Existing methodologies for software development are classified, and some key criteria are described to help IT system developers and users determine what are the most important factors in system selection, development and deployment. Statistical data is researched and analysed, a theoretical basis is developed and reviewed, key issues from case studies are identified and generalized to be presented along with the conclusions in the current study. The results give a good basis for corporate consideration and provide overall support to the key decisions in developing web-based software. The conclusion is that new web developments should be considered the stakeholders as an evolution of existing business systems, but they should then pay particular attention to the new advantages that web-based software offers in terms of standardised interfaces and procedures, universal deployment opportunities, and a range of other benefits the study highlights.
Resumo:
Object-oriented programming is a widely adopted paradigm for desktop software development. This paradigm partitions software into separate entities, objects, which consist of data and related procedures used to modify and inspect it. The paradigm has evolved during the last few decades to emphasize decoupling between object implementations, via means such as explicit interface inheritance and event-based implicit invocation. Inter-process communication (IPC) technologies allow applications to interact with each other. This enables making software distributed across multiple processes, resulting in a modular architecture with benefits in resource sharing, robustness, code reuse and security. The support for object-oriented programming concepts varies between IPC systems. This thesis is focused on the D-Bus system, which has recently gained a lot of users, but is still scantily researched. D-Bus has support for asynchronous remote procedure calls with return values and a content-based publish/subscribe event delivery mechanism. In this thesis, several patterns for method invocation in D-Bus and similar systems are compared. The patterns that simulate synchronous local calls are shown to be dangerous. Later, we present a state-caching proxy construct, which avoids the complexity of properly asynchronous calls for object inspection. The proxy and certain supplementary constructs are presented conceptually as generic object-oriented design patterns. The e ect of these patterns on non-functional qualities of software, such as complexity, performance and power consumption, is reasoned about based on the properties of the D-Bus system. The use of the patterns reduces complexity, but maintains the other qualities at a good level. Finally, we present currently existing means of specifying D-Bus object interfaces for the purposes of code and documentation generation. The interface description language used by the Telepathy modular IM/VoIP framework is found to be an useful extension of the basic D-Bus introspection format.
Resumo:
The goal of this thesis is to make a case study of test automation’s profitability in the development of embedded software in a real industrial setting. The cost-benefit analysis is done by considering the costs and benefits test automation causes to software development, before the software is released to customers. The potential benefits of test automation regarding software quality after customer release were not estimated. Test automation is a significant investment which often requires dedicated resources. When done accordingly, the investment in test automation can produce major cost savings by reducing the need for manual testing effort, especially if the software is developed with an agile development framework. It can reduce the cost of avoidable rework of software development, as test automation enables the detection of construction time defects in the earliest possible moment. Test automation also has many pitfalls such as test maintainability and testability of the software, and if those areas are neglected, the investment in test automation may become worthless or it may even produce negative results. The results of this thesis suggest that test automation is very profitable at the company under study.
Resumo:
The software development industry is constantly evolving. The rise of the agile methodologies in the late 1990s, and new development tools and technologies require growing attention for everybody working within this industry. The organizations have, however, had a mixture of various processes and different process languages since a standard software development process language has not been available. A promising process meta-model called Software & Systems Process Engineering Meta- Model (SPEM) 2.0 has been released recently. This is applied by tools such as Eclipse Process Framework Composer, which is designed for implementing and maintaining processes and method content. Its aim is to support a broad variety of project types and development styles. This thesis presents the concepts of software processes, models, traditional and agile approaches, method engineering, and software process improvement. Some of the most well-known methodologies (RUP, OpenUP, OpenMethod, XP and Scrum) are also introduced with a comparison provided between them. The main focus is on the Eclipse Process Framework and SPEM 2.0, their capabilities, usage and modeling. As a proof of concept, I present a case study of modeling OpenMethod with EPF Composer and SPEM 2.0. The results show that the new meta-model and tool have made it possible to easily manage method content, publish versions with customized content, and connect project tools (such as MS Project) with the process content. The software process modeling also acts as a process improvement activity.
Resumo:
Verkostoitunut kansainvälinen tuotekehitys on tärkeä osa menestystä nykypäivän muuttuvassa yritysmaailmassa. Toimintojen tehostamiseksi myös projektitoiminnot on sopeutettava kansainväliseen toimintaympäristöön. Kilpailukyvyn säilyttämiseksi projektitoimintoja on lisäksi jatkuvasti tehostettava. Yhtenäkeinona nähdään projektioppiminen, jota voidaan edistää monin eri tavoin. Tässätyössä keskitytään projektitiedonhallinnan kehittämisen tuomiin oppimismahdollisuuksiin. Kirjallisuudessa kerrotaan, että projektitiedon jakaminen ja sen hyödyntäminen seuraavissa projekteissa on eräs projektioppimisen edellytyksistä. Tämäon otettu keskeiseksi näkökulmaksi tässä tutkimuksessa. Lisäksi tutkimusalueen rajaamiseksi työ tarkastelee erityisesti projektioppimista kansainvälisten tuotekehitysprojektien välillä. Työn tavoitteena on esitellä keskeisiä projektioppimisen haasteita ja etsiä konkreettinen ratkaisu vastaamaan näihin haasteisiin. Tuotekehitystoiminnot ja kansainvälinen hajautettu projektiorganisaatio kohtaavat lisäksi erityisiä haasteita, kuten tiedon hajautuneisuus, projektihenkilöstön vaihtuvuus, tiedon luottamuksellisuus ja maantieteelliset haasteet (esim. aikavyöhykkeet ja toimipisteen sijainti). Nämä erityishaasteet on otettu huomioon ratkaisua etsittäessä. Haasteisiin päädyttiin vastaamaan tietotekniikkapohjaisella ratkaisulla, joka suunniteltiin erityisesti huomioiden esimerkkiorganisaation tarpeet ja haasteet. Työssä tarkastellaan suunnitellun ratkaisun vaikutusta projektioppimiseen ja kuinka se vastaa havaittuihin haasteisiin. Tuloksissa huomattiin, että projektioppimista tapahtui, vaikka oppimista oli vaikea suoranaisesti huomata tutkimusorganisaation jäsenten keskuudessa. Projektioppimista voidaan kuitenkin sanoa tapahtuvan, jos projektitieto on helposti koko projektiryhmän saatavilla ja se on hyvin järjesteltyä. Muun muassa nämä ehdot täyttyivät. Projektioppiminen nähdään yleisesti haastavana kehitysalueena esimerkkiorganisaatiossa. Suuri osa tietämyksestä on niin sanottua hiljaistatietoa, jota on hankala tai mahdoton saattaa kirjalliseen muotoon. Näin olleen tiedon siirtäminen jää suurelta osin henkilökohtaisen vuorovaikutuksen varaan. Siitä huolimatta projektioppimista on mahdollista kehittää erilaisin toimintamallein ja menetelmin. Kehitys vaatii kuitenkin resursseja, pitkäjänteisyyttä ja aikaa. Monet muutokset voivat vaatia myös organisaatiokulttuurin muutoksen ja vaikuttamista organisaation jäseniin. Motivaatio, positiiviset mielikuvat ja selkeät strategiset tavoitteet luovat vakaan pohjan projektioppimisen kehittämiselle.
Resumo:
Opinnäytetyö etsii korrelaatiota ohjelmistomittauksella saavutettujen tulosten ja ohjelmasta löytyneiden virheiden väliltä. Työssä käytetään koeryhmänä jo olemassaolevia ohjelmistoja. Työ tutkii olisiko ohjelmistomittareita käyttämällä ollut mahdollista paikallistaa ohjelmistojen ongelmakohdat ja näin saada arvokasta tietoa ohjelmistokehitykseen. Mittausta voitaisiin käyttää resurssien parempaan kohdentamiseen koodikatselmuksissa, koodi-integraatiossa, systeemitestauksessa ja aikataulutuksessa. Mittaamisen avulla nämä tehtävät saisivat enemmän tietoa resurssien kohdistamiseen. Koeryhmänä käytetään erilaisia ohjelmistotuotteita. Yhteistä näille kaikille tuotteille on niiden peräkkäiset julkaisut. Uutta julkaisua tehtäessä, edellistä julkaisua käytetään pohjana, jonka päällekehitetään uutta lähdekoodia. Tämän takia ohjelmistomittauksessa pitää pystyä erottelemaan edellisen julkaisun lähdekoodi uudesta lähdekoodista. Työssä käytettävät ohjelmistomittarit ovat yleisiä ja ohjelmistotekniikassalaajasti käytettyjä mittaamaan erilaisia lähdekoodin ominaisuuksia, joiden arvellaan vaikuttavan virhealttiuteen. Tämän työn tarkoitus on tutkia näiden ohjelmistomittareiden käytettävyyttä koeryhmänä toimivissa ohjelmistoympäristöissä. Käytännön osuus työstä onnistui löytämään korrelaation joidenkinohjelmistomittareiden ja virheiden väliltä, samalla kuin toiset ohjelmistomittarit eivät antaneet vakuuttavia tuloksia. Ohjelmistomittareita käyttämällä näyttää olevan mahdollista tunnistaa virhealttiit kohdat ohjelmasta ja siten parantaa ohjelmistokehityksen tehokkuutta. Ohjelmistomittareiden käyttö tuotekehityksessäon perusteltavaa ja niiden avulla mahdollisesti pystyttäisiin vaikuttamaan ohjelmiston laatuun tulevissa julkaisuissa.
Resumo:
Ohjelmiston kehitystyökalut käyttävät infromaatiota kehittäjän tuottamasta lähdekoodista. Informaatiota hyödynnetään ohjelmistoprojektin eri vaiheissa ja eri tarkoituksissa. Moderneissa ohjelmistoprojekteissa käytetyn informaation määrä voi kasvaa erittäin suureksi. Ohjelmistotyökaluilla on omat informaatiomallinsa ja käyttömekanisminsa. Informaation määrä sekä erilliset työkaluinformaatiomallit tekevät erittäin hankalaksi rakentaa joustavaa työkaluympäristöä, erityisesti ongelma-aluekohtaiseen ohjelmiston kehitysprosessiin. Tässä työssä on analysoitu perusinformaatiometamalleja Unified Modeling language kielestä, Python ohjelmointikielestä ja C++ ohjelmointikielestä. Metainformaation taso on rajoitettu rakenteelliselle tasolle. Ajettavat rakenteet on jätetty pois. ModelBase metamalli on yhdistetty olemassa olevista analysoiduista metamalleista. Tätä metamallia voidaan käyttää tulevaisuudessa ohjelmistotyökalujen kehitykseen.
Resumo:
Agile software development methods are attempting to provide an answer to the software development industry's need of lighter weight, more agile processes that offer the possibility to react to changes during the software development process. The objective of this thesis is to analyze and experiment the possibility of using agile methods or practices also in small software projects, even in projects containing only one developer. In the practical part of the thesis a small software project was executed with some agile methods and practices that in the theoretical part of the thesis were found possible to be applied to the project. In the project a Bluetooth proxy application that is run in the S60 smartphone platform and PC was developed further to contain some new features. As a result it was found that certain agile practices can be useful even in the very small projects. The selection of the suitable practices depends on the project and the size of the project team.
Resumo:
BlueGiga Technologies on uusi Bluetooth -teknologiaa soveltava pk-yritys. Yrityksen tuotekehitysprosessia täydentämään tarvittiin testausprosessi. Testausprosessin luominen oli haastavaa, koska Bluetooth -teknologia on uutta ja yritys on vielä nuori. Lisäksi se integroi kovo- ja ohjelmistokomponentteja tuotteissaan. Testaus aloitettiin evaluoimalla standardinmukaista tapaa dokumentoida testit. Tämän jälkeen tutkittiin BlueGigan ohjelmistokehitysprosessin suhdetta olemassa oleviin ohjelmistokehitysprosesseihin. Samanaikaisesti perehdyttiin Bluetooth -kvalifikaation testaukselle asettamiin vaatimuksiin. Tämän seurauksena TTCN:ää kokeiltiin helppolukuisen testitapauksen määrittelyssä. Käyttötapauksiin perustuvan testauksen sopivuutta Wireless Remote Access Platform:in (WRAP) testaamiseen arvioitiin kokeilemalla sitä Man-to-Machine -käyttötapauksen testaamisessa. Yllämainittujen tehtävien aikana kerätyn tiedon ja hankittujen kokemusten pohjalta laadittiin testausprosessi, joka kattaa yksikkö-, integraatio- ja järjestelmätason testauksen. Painopiste on järjestelmätason testauksessa. Prosessi määrittelee myös vastuuhenkilön tai -henkilöt eri testaustasoille.
Resumo:
Vaatimusmäärittely on tärkeä vaihe ohjelmistotuotannossa, koska virheelliset ja puutteelliset asiakasvaatimukset vaikuttavat huomattavasti asiakkaan tyytymättömyyteen ohjelmistotuotteessa. Ohjelmistoinsinöörit käyttävät useita erilaisia menetelmiä ja tekniikoita asiakasvaatimusten kartoittamiseen. Erilaisia tekniikoita asiakasvaatimusten keräämiseen on olemassa valtava määrä.Diplomityön tavoitteena oli parantaa asiakasvaatimusten keräämisprosessia ohjelmistoprojekteissa. Asiakasvaatimusten kartoittamiseen käytettävien tekniikoiden arvioinnin perusteella kehitettiin parannettu asiakasvaatimusten keräämisprosessi. Kehitetyn prosessin testaamiseksi ja parantamiseksi järjestettiin ryhmätyöistuntoja liittyen todellisiin ohjelmistokehitysprojekteihin. Tuloksena vaatimusten kerääminen eri sidosryhmiltä nopeutui ja tehostui. Prosessi auttoi muodostamaan yleisen kuvan kehitettävästä ohjelmistosta, prosessin avulla löydettiin paljon ideoita ja prosessi tehosti ideoiden analysointia ja priorisointia. Prosessin suurin kehityskohde oli fasilitaattorin ja osallistujien valmistautumisessa ryhmätyöistuntoihin etukäteen.