924 resultados para Software Engineering Environment


Relevância:

80.00% 80.00%

Publicador:

Resumo:

Ketterät menetelmät ovat yleistymässä ohjelmistotuotannossa. Yleistyminen aiheuttaa paineita ohjelmistotestaukselle, koska ketteryyttä vaaditaan myös testaukselta. Ketterät menetelmät jakavat samat perusarvot ja periaatteet, mutta lähestymistavat niiden täyttämiseksi poikkeavat toisistaan. Tässä työssä tutkitaan tarkemmin Scrum-menetelmän vaikutuksia ohjelmistotestaukseen ja laadunhallintaan. Scrum-menetelmää verrataan myös eXtreme Programming-menetelmään.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Työn tavoitteena oli toteuttaa tietojärjestelmä maito- ja maitotuotetilastoinnin tarpeisiin. Tietojärjestelmän tulee tukea lähes koko tilastotuotantoprosessia tallentamisesta raportointiin. Tietojärjestelmän tarpeet tulivat vaatimusmäärittelystä ja ne piti yhdistää tietohallinnon linjauksiin. Tietojärjestelmä tehdä kustannustehokkaasti tietyssä aikataulussa. Lisäksi tuli luoda käytäntöjä tuleville tilastotietojärjestelmille. Työn teoriaosan aluksi käsitellään tilastotutkimuksen perusteita ja tilastoviranomaisvaatimuksia. Tästä edetään käytännön tilastotuotantoprosessiin ja sen järjestelmävaatimuksiin. Teoriaosan loppupuoliskossa käydään läpi ohjelmistotuotantoprosessi ja tietojärjestelmän suunnittelun peruskäsitteitä. Käytännön osassa puretaan vaatimukset ja ongelma-alue. Sitten analysoidaan eri ratkaisuvaihtoehtoja. Niistä päädytään toteutusratkaisuun, jonka tuloksia tarkastellaan projektin lopputulosten ja kahden vuoden käyttökokemusten perusteella. Tietojärjestelmä toteutettiin onnistuneesti ja se mahdollistaa taloudellisen sekä laadukkaan maito- ja maitotuotetilastoinnin Suomessa.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Web application performance testing is an emerging and important field of software engineering. As web applications become more commonplace and complex, the need for performance testing will only increase. This paper discusses common concepts, practices and tools that lie at the heart of web application performance testing. A pragmatic, hands-on approach is assumed where applicable; real-life examples of test tooling, execution and analysis are presented right next to the underpinning theory. At the client-side, web application performance is primarily driven by the amount of data transmitted over the wire. At the server-side, selection of programming language and platform, implementation complexity and configuration are the primary contributors to web application performance. Web application performance testing is an activity that requires delicate coordination between project stakeholders, developers, system administrators and testers in order to produce reliable and useful results. Proper test definition, execution, reporting and repeatable test results are of utmost importance. Open-source performance analysis tools such as Apache JMeter, Firebug and YSlow can be used to realise effective web application performance tests. A sample case study using these tools is presented in this paper. The sample application was found to perform poorly even under the moderate load incurred by the sample tests.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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ä.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

A web service is a software system that provides a machine-processable interface to the other machines over the network using different Internet protocols. They are being increasingly used in the industry in order to automate different tasks and offer services to a wider audience. The REST architectural style aims at producing scalable and extensible web services using technologies that play well with the existing tools and infrastructure of the web. It provides a uniform set of operation that can be used to invoke a CRUD interface (create, retrieve, update and delete) of a web service. The stateless behavior of the service interface requires that every request to a resource is independent of the previous ones facilitating scalability. Automated systems, e.g., hotel reservation systems, provide advanced scenarios for stateful services that require a certain sequence of requests that must be followed in order to fulfill the service goals. Designing and developing such services for advanced scenarios with REST constraints require rigorous approaches that are capable of creating web services that can be trusted for their behavior. Systems that can be trusted for their behavior can be termed as dependable systems. This thesis presents an integrated design, analysis and validation approach that facilitates the service developer to create dependable and stateful REST web services. The main contribution of this thesis is that we provide a novel model-driven methodology to design behavioral REST web service interfaces and their compositions. The behavioral interfaces provide information on what methods can be invoked on a service and the pre- and post-conditions of these methods. The methodology uses Unified Modeling Language (UML), as the modeling language, which has a wide user base and has mature tools that are continuously evolving. We have used UML class diagram and UML state machine diagram with additional design constraints to provide resource and behavioral models, respectively, for designing REST web service interfaces. These service design models serve as a specification document and the information presented in them have manifold applications. The service design models also contain information about the time and domain requirements of the service that can help in requirement traceability which is an important part of our approach. Requirement traceability helps in capturing faults in the design models and other elements of software development environment by tracing back and forth the unfulfilled requirements of the service. The information about service actors is also included in the design models which is required for authenticating the service requests by authorized actors since not all types of users have access to all the resources. In addition, following our design approach, the service developer can ensure that the designed web service interfaces will be REST compliant. The second contribution of this thesis is consistency analysis of the behavioral REST interfaces. To overcome the inconsistency problem and design errors in our service models, we have used semantic technologies. The REST interfaces are represented in web ontology language, OWL2, that can be part of the semantic web. These interfaces are used with OWL 2 reasoners to check unsatisfiable concepts which result in implementations that fail. This work is fully automated thanks to the implemented translation tool and the existing OWL 2 reasoners. The third contribution of this thesis is the verification and validation of REST web services. We have used model checking techniques with UPPAAL model checker for this purpose. The timed automata of UML based service design models are generated with our transformation tool that are verified for their basic characteristics like deadlock freedom, liveness, reachability and safety. The implementation of a web service is tested using a black-box testing approach. Test cases are generated from the UPPAAL timed automata and using the online testing tool, UPPAAL TRON, the service implementation is validated at runtime against its specifications. Requirement traceability is also addressed in our validation approach with which we can see what service goals are met and trace back the unfulfilled service goals to detect the faults in the design models. A final contribution of the thesis is an implementation of behavioral REST interfaces and service monitors from the service design models. The partial code generation tool creates code skeletons of REST web services with method pre and post-conditions. The preconditions of methods constrain the user to invoke the stateful REST service under the right conditions and the post condition constraint the service developer to implement the right functionality. The details of the methods can be manually inserted by the developer as required. We do not target complete automation because we focus only on the interface aspects of the web service. The applicability of the approach is demonstrated with a pedagogical example of a hotel room booking service and a relatively complex worked example of holiday booking service taken from the industrial context. The former example presents a simple explanation of the approach and the later worked example shows how stateful and timed web services offering complex scenarios and involving other web services can be constructed using our approach.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.

Relevância:

80.00% 80.00%

Publicador:

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.