58 resultados para 280302 Software Engineering
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ä.
Resumo:
Sulautettujen järjestelmien tekemisessä käytettävät metodit ovat moninaiset. Tämä johtuu siitä, että sulautettuja järjestelmiä on tuhansia erilaisia, sekä laitteiston ja ohjelmiston rakentamisen eroavaisuuksista. Sovellukset vaihtelevat kännyköistä aina avaruusluotaimiin. Näihin projekteihin on sovellettu metodeita joita ei ole alun perin suunniteltu laitteiston ja ohjelmiston yhteissuunnitteluun ja toteuttamiseen. Ohjelmistotuotannon menetelmistä oikean valinta nimenomaan tietylle sulautetulle järjestelmälle on haasteellista. Viimeisimpinä ovat tulleet erilaiset ketterät menetelmät ja niitäkin on olemassa useita erilaisia. Ketteriä ja perinteisempiä ohjelmistotuotannon menetelmiä esitellään tässä kandidaatin työssä. Tässä työssä on tarkoituksena selvittää mitkä olisivat parhaiten soveltuvia sulautetun järjestelmän projektille.
Resumo:
Sulautettujen järjestelmien projekti voidaan toteuttaa monella tavalla. Projektiin liittyy aina ohjelmiston, sekä laitteiston kehittäminen. Ohjelmiston suunnittelulla on suuri painoarvo ja tämä näkyy erityisesti varsinkin kulutuselektroniikassa. Kannettavien laitteiden räjähdysmäisesti lisääntynyt myynti ja käyttö ovat tuoneet markkinoille lisää rahaa ja mielenkiintoa. Tästä johtuen markkinoille tulee joka vuosi entistä kehittyneempiä laitteita. Laitteiston kehittymisen sekä asiakkaiden vaatimusten lisääntyessä ohjelmistojen koko on kasvanut. Tämä on luonut tarpeen myös sulautettujen järjestelmien projekteille ottaa käyttöön jokin tietty metodi ohjelmistojen tuotannossa. Ongelmana on kuitenkin se, että sulautettujen järjestelmien projekteihin on sovellettu metodeita, joita ei ole alun perin suunniteltu laitteiston ja ohjelmiston yhteissuunnitteluun ja toteuttamiseen. Miten voidaan valita oikea metodi sulautettujen järjestelmien projektiin? Tässä työssä esitellään perinteisiä ohjelmistotuotannon metodeita, sekä keskitytään eri ketterien metodien tutkimiseen. Tämä työ selvittää mikä vaikuttaa metodin valintaan sulautetun järjestelmän projektille. Tässä tutkimuksessa päädytään siihen johtopäätökseen, että sulautetuin järjestelmän suunnittelussa ja toteutuksessa ketterien menetelmien käyttö parantaa projektin mahdollisuutta onnistua täyttämään asiakkaan vaatimukset. Ketterien menetelmien käyttö ei poista tarvetta kehittää menetelmää, joka lähtökohtaisesti ottaa huomioon laitteiston ja ohjelmiston yhteissuunnittelun.
Resumo:
Software plays an important role in our society and economy. Software development is an intricate process, and it comprises many different tasks: gathering requirements, designing new solutions that fulfill these requirements, as well as implementing these designs using a programming language into a working system. As a consequence, the development of high quality software is a core problem in software engineering. This thesis focuses on the validation of software designs. The issue of the analysis of designs is of great importance, since errors originating from designs may appear in the final system. It is considered economical to rectify the problems as early in the software development process as possible. Practitioners often create and visualize designs using modeling languages, one of the more popular being the Uni ed Modeling Language (UML). The analysis of the designs can be done manually, but in case of large systems, the need of mechanisms that automatically analyze these designs arises. In this thesis, we propose an automatic approach to analyze UML based designs using logic reasoners. This approach firstly proposes the translations of the UML based designs into a language understandable by reasoners in the form of logic facts, and secondly shows how to use the logic reasoners to infer the logical consequences of these logic facts. We have implemented the proposed translations in the form of a tool that can be used with any standard compliant UML modeling tool. Moreover, we authenticate the proposed approach by automatically validating hundreds of UML based designs that consist of thousands of model elements available in an online model repository. The proposed approach is limited in scope, but is fully automatic and does not require any expertise of logic languages from the user. We exemplify the proposed approach with two applications, which include the validation of domain specific languages and the validation of web service interfaces.
Resumo:
Tässä työssä selvitettiin Microsoft BizTalk Server -tuotteen sopivuutta moniasiakasjärjestelmänä toimivan sovellusintegraatioympäristön toteuttamiseen. Työssä ei otettu kantaa ympäristössä suoritettaviin integraatioihin, niihin liittyviin asiakkuuksiin tai integraatioympäristöön liittyviin järjestelmiin ja sovelluksiin. Selvityksessä ilmeni, että Microsoft BizTalk Server -tuotetta on mahdollista käyttää moniasiakasjärjestelmänä, sillä lisenssiehdot eivät rajoita tuotteen käyttömahdollisuuksia. Moniasiakasjärjestelmän haasteet liittyvät tietoturvaan ja sovellustietojen näkyvyyteen. Toisaalta haasteena on moniasiakasjärjestelmän kannattavuus liiketoiminnan näkökulmasta.
Resumo:
An empirical study was conducted in the area of software engineering to study relationships between development, testing and intended software quality. International standards served as a starting point of the study. For analysis a round of interviews was kept and transcribed. It was found that interaction between humans is critical, especially in transferring knowledge and standards’ processes. The standards are communicated through interaction and learning processes are involved before compliance. One of the results was that testing is the key to sufficient quality. The outcome was that successful interaction, sufficient testing and compliance with the standards combined with good motivation may provide most repeatable intended quality.
Resumo:
Agile methods have become increasingly popular in the field of software engineering. While agile methods are now generally considered applicable to software projects of many different kinds, they have not been widely adopted in embedded systems development. This is partly due to the natural constraints that are present in embedded systems development (e.g. hardware–software interdependencies) that challenge the utilization of agile values, principles and practices. The research in agile embedded systems development has been very limited, and this thesis tackles an even less researched theme related to it: the suitability of different project management tools in agile embedded systems development. The thesis covers the basic aspects of many different agile tool types from physical tools, such as task boards and cards, to web-based agile tools that offer all-round solutions for application lifecycle management. In addition to these two extremities, there is also a wide range of lighter agile tools that focus on the core agile practices, such as backlog management. Also other non-agile tools, such as bug trackers, can be used to support agile development, for instance, with plug-ins. To investigate the special tool requirements in agile embedded development, the author observed tool related issues and solutions in a case study involving three different companies operating in the field of embedded systems development. All three companies had a distinct situation in the beginning of the case and thus the tool solutions varied from a backlog spreadsheet built from scratch to plug-in development for an already existing agile software tool. Detailed reports are presented of all three tool cases. Based on the knowledge gathered from agile tools and the case study experiences, it is concluded that there are tool related issues in the pilot phase, such as backlog management and user motivation. These can be overcome in various ways epending on the type of a team in question. Finally, five principles are formed to give guidelines for tool selection and usage in agile embedded systems development.
Resumo:
One of the main challenges in Software Engineering is to cope with the transition from an industry based on software as a product to software as a service. The field of Software Engineering should provide the necessary methods and tools to develop and deploy new cost-efficient and scalable digital services. In this thesis, we focus on deployment platforms to ensure cost-efficient scalability of multi-tier web applications and on-demand video transcoding service for different types of load conditions. Infrastructure as a Service (IaaS) clouds provide Virtual Machines (VMs) under the pay-per-use business model. Dynamically provisioning VMs on demand allows service providers to cope with fluctuations on the number of service users. However, VM provisioning must be done carefully, because over-provisioning results in an increased operational cost, while underprovisioning leads to a subpar service. Therefore, our main focus in this thesis is on cost-efficient VM provisioning for multi-tier web applications and on-demand video transcoding. Moreover, to prevent provisioned VMs from becoming overloaded, we augment VM provisioning with an admission control mechanism. Similarly, to ensure efficient use of provisioned VMs, web applications on the under-utilized VMs are consolidated periodically. Thus, the main problem that we address is cost-efficient VM provisioning augmented with server consolidation and admission control on the provisioned VMs. We seek solutions for two types of applications: multi-tier web applications that follow the request-response paradigm and on-demand video transcoding that is based on video streams with soft realtime constraints. Our first contribution is a cost-efficient VM provisioning approach for multi-tier web applications. The proposed approach comprises two subapproaches: a reactive VM provisioning approach called ARVUE and a hybrid reactive-proactive VM provisioning approach called Cost-efficient Resource Allocation for Multiple web applications with Proactive scaling. Our second contribution is a prediction-based VM provisioning approach for on-demand video transcoding in the cloud. Moreover, to prevent virtualized servers from becoming overloaded, the proposed VM provisioning approaches are augmented with admission control approaches. Therefore, our third contribution is a session-based admission control approach for multi-tier web applications called adaptive Admission Control for Virtualized Application Servers. Similarly, the fourth contribution in this thesis is a stream-based admission control and scheduling approach for on-demand video transcoding called Stream-Based Admission Control and Scheduling. Our fifth contribution is a computation and storage trade-o strategy for cost-efficient video transcoding in cloud computing. Finally, the sixth and the last contribution is a web application consolidation approach, which uses Ant Colony System to minimize the under-utilization of the virtualized application servers.
Resumo:
Context: Game development has become increasingly important in the software industry, but this importance has not affected the way software engineering approaches and methodologies manage the differences they have with game development. Similarly, software engineering does not fully support sustainability practices, causing this element to often not be considered or even known as a requirement for a development lifecycle. Goal: The aim of this thesis is to study the mode in which games are developed, and the involved sustainable aspects and the relevant concerns regarding the migration processes. Method: A quantitative study was conducted, gathering 33 answers of game professionals from four continents, from administrative (25%) and technical oriented positions (75%). Results: Three trends were observed: 1) Agile process models are used, 2) major concerns for mobile development and digital marketing, 3) minor concerns for eco-impact elements and certain development phases such as testing and crunch time development. Conclusion: Traditional Software engineering would require a major change on its processes and models to fit with modern agile development, game development approaches and sustainable requirements.
Resumo:
Työn tarkoituksena on selvittää, miten DSM ja siihen liittyvät analyysit toimivat. Työssä selvitetään myös, miten DSM:a voidaan hyödyntää tuotekehityksessä ja ohjelmistotuotannon kohtaamissa ongelmissa. DSM-neliömatriisiin sijoitetaan tarkasteltavan kohteen osat riveihin ja kolumneihin identtisessä järjestyksessä. Matriisin soluihin merkitään osien väliset riippuvuudet, joilla selvitetään kunkin osan lähettämä ja vastaanottama data suhteessa muihin osiin. DSM-analyysissa osien järjestystä muutetaan suoritus- tai toteutusjärjestyksen mukaisesti parhaaseen järjestykseen. Osat ryhmitellään moduuleihin, jolloin esimerkiksi tuotekehitys ohjautuu automaattisesti modulaarisuuteen. Tuotekehitysprojekteihin DSM on kompaktin muodon, yksinkertaisuuden ja automaattisen järjestelyn ansiosta erinomainen työkalu, jolla voidaan mallintaa käytännössä mitä tahansa, mikä voidaan jakaa toisistaan riippuviin osiin. DSM voi vähentää projektien suunnitteluun vaadittua työmäärää ja avustaa realististen budjettien ja aikataulujen luontia suurissa projekteissa.
Resumo:
Computer Supported Collaborative Learning (CSCL) is a teaching and learning approach which is widely adopted. However there are still some problems can be found when CSCL takes place. Studies show that using game-like mechanics can increase motivation, engagement, as well as modelling behaviors of players. Gamification is a rapid growing trend by applying the same mechanics. It refers to use game design elements in non-game contexts. This thesis is about combining gamification concept and computer supported collaborative learning together in software engineering education field. And finally a gamified prototype system is designed.