68 resultados para software engineering practices
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:
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:
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:
Ohjelmistotestauksen merkitys on kasvanut sen mukaan mitä enemmän ohjelmisto-tuotteet vaikuttavat jokapäiväisesseen elämämme. Tämän vuoksi yritysten investointien ja laadunvarmentamisen yhteys on ilmeinen. Organisaatiot panostavat yhä enemmän ei–funktionaaliseen testaukseen, kuten turvallisuuden, suorituskyvyn ja käytettävyyden testaamiseen. Tämän työn tarkoituksena on tutkia ohjelmistotestauksen nykytilannetta Suomessa. Syy tähän on uudistaa ja parantaa ohjelmistotestauksen kurssitarjontaa Turun yliopistossa vastaamaan parhaalla mahdollisella tavalla yritysten tarvetta. Opinnäyte on toteutettu replikaatio-tutkimuksena. Pääosa kyselystä sisältää kysymyksiä ohjelmistotestauksen menetelmistä ja työkaluista testausprosessin toimintojen aikana. Lisäksi on yleisiä kysymyksiä yrityksistä ja niiden ohjelmistotestausympäristöistä. Kyselyssä otetaan myös kantaa yritysten käyttämiin monenlaisiin testaus-tasoihin, -tyyppeihin ja testauksessa kohdattuihin haasteisiin. Tämä opinnäyte perustuu testausprosessistandardeihin. Ohjelmistotestausstandardit ovat keskeisessä asemassa tässä työssä, vaikka ne ovat olleet viime aikoina vahvan kritiikin kohteena. Epäilys standardien välttämättömyyteen on syntynyt muutoksista ohjelmistokehityksessä. Tämä työ esittelee tulokset ohjelmistotestauksen käytännöistä. Tuloksia on verrattu aiheeseen liittyvän aiemman kyselyn (Lee, Kang, & Lee, 2011) tuloksiin. Ajanpuutteen havaitaan olevan suuri haaste ohjelmistotestauksessa. Ketterä ohjelmistokehitys on saavuttanut suosiota kaikissa vastaajien yrityksissä. Testauksen menetelmät ja työkalut testauksen arviointiin, suunnitteluun ja raportointiin ovat hyvin vähäisessä käytössä. Toisaalta testauksen menetelmien ja työkalujen käyttö automaattiseen testauksen toteuttamiseen ja virheiden hallintaan on lisääntynyt. Järjestelmä-, hyväksyntä-, yksikkö- ja integraatiotestaus ovat käytössä kaikkien vastaajien edustamissa yrityksissä. Kaikkien vastaajien mielestä regressio- sekä tutkiva- ja ei-funktionaalinen testaus ovat tärkeitä tekniikoita.
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.