69 resultados para Search Based Software Engineering


Relevância:

100.00% 100.00%

Publicador:

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.

Relevância:

100.00% 100.00%

Publicador:

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.

Relevância:

100.00% 100.00%

Publicador:

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.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The front end of innovation is regarded as one of the most important steps in building new software products or services, and the most significant benefits in software development can be achieved through improvements in the front end activities. Problems in the front end phase have an impact on customer dissatisfaction with delivered software, and on the effectiveness of the entire software development process. When these processes are improved, the likelihood of delivering high quality software and business success increases. This thesis highlights the challenges and problems related to the early phases of software development, and provides new methods and tools for improving performance in the front end activities of software development. The theoretical framework of this study comprises two fields of research. The first section belongs to the field of innovation management, and especially to the management of the early phases of the innovation process, i.e. the front end of innovation. The second section of the framework is closely linked to the processes of software engineering, especially to the early phases of the software development process, i.e. the practice of requirements engineering. Thus, this study extends the theoretical knowledge and discloses the differences and similarities in these two fields of research. In addition, this study opens up a new strand for academic discussion by connecting these research directions. Several qualitative business research methodologies have been utilized in the individual publications to solve the research questions. The theoretical and managerial contribution of the study can be divided into three areas: 1) processes and concepts, 2) challenges and development needs, and 3) means and methods for the front end activities of software development. First, the study discloses the difference and similarities between the concepts of the front end of innovation and requirements engineering, and proposes a new framework for managing the front end of the software innovation process, bringing business and innovation perspectives into software development. Furthermore, the study discloses managerial perceptions of the similarities and differences in the concept of the front end of innovation between the software industry and the traditional industrial sector. Second, the study highlights the challenges and development needs in the front end phase of software development, especially challenges in communication, such as linguistic problems, ineffective communication channels, a communication gap between users/customers and software developers, and participation of multiple persons in software development. Third, the study proposes new group methods for improving the front end activities of software development, especially customer need assessment, and the elicitation of software requirements.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Software testing is one of the essential parts in software engineering process. The objective of the study was to describe software testing tools and the corresponding use. The thesis contains examples of software testing tools usage. The study was conducted as a literature study, with focus on current software testing practices and quality assurance standards. In the paper a tool classifier was employed, and testing tools presented in study were classified according to it. We found that it is difficult to distinguish current available tools by certain testing activities as many of them contain functionality that exceeds scopes of a single testing type.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Increase of computational power and emergence of new computer technologies led to popularity of local communications between personal trusted devices. By-turn, it led to emergence of security problems related to user data utilized in such communications. One of the main aspects of the data security assurance is security of software operating on mobile devices. The aim of this work was to analyze security threats to PeerHood, software intended for performing personal communications between mobile devices regardless of underlying network technologies. To reach this goal, risk-based software security testing was performed. The results of the testing showed that the project has several security vulnerabilities. So PeerHood cannot be considered as a secure software. The analysis made in the work is the first step towards the further implementation of PeerHood security mechanisms, as well as taking into account security in the development process of this project.

Relevância:

100.00% 100.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:

100.00% 100.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:

100.00% 100.00%

Publicador:

Resumo:

In today’s world because of the rapid advancement in the field of technology and business, the requirements are not clear, and they are changing continuously in the development process. Due to those changes in the requirements the software development becomes very difficult. Use of traditional software development methods such as waterfall method is not a good option, as the traditional software development methods are not flexible to requirements and the software can be late and over budget. For developing high quality software that satisfies the customer, the organizations can use software development methods, such as agile methods which are flexible to change requirements at any stage in the development process. The agile methods are iterative and incremental methods that can accelerate the delivery of the initial business values through the continuous planning and feedback, and there is close communication between the customer and developers. The main purpose of the current thesis is to find out the problems in traditional software development and to show how agile methods reduced those problems in software development. The study also focuses the different success factors of agile methods, the success rate of agile projects and comparison between traditional and agile software development.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The study develops an approach that tries to validate software functionality to work systems needs in SMEs. The formulated approach is constructed by using a SAAS based software i.e., work collaboration service (WCS), and SMEs as the elements of study. Where the WCS’s functionality is qualified to the collaboration needs that exist in operational and project work within SMEs. For this research constructivist approach and case study method is selected because the nature of the current study requires an in depth study of the work collaboration service as well as a detailed study of the work systems within different enterprises. Four different companies are selected in which fourteen interviews are conducted to gather data pertaining. The work systems method and framework are used as a central part of the approach to collect, analyze and interpret the enterprises work systems model and the underlying collaboration needs on operational and project work. On the other hand, the functional model of the WCS and its functionality is determined from functional model analysis, software testing, documentation and meetings with the service vendor. The enterprise work system model and the WCS model are compared to reveal how work progression differs between the two and make visible unaddressed stages of work progression. The WCS functionality is compared to work systems collaboration needs to ascertain if the service will suffice the needs of the project and operational work under study. The unaddressed needs provide opportunities to improve the functionality of the service for better conformity to the needs of enterprise and work. The results revealed that the functional models actually differed in how operational and project work progressed within the stages. WCS shared similar stages of work progression apart from the stages of identification and acceptance, and progress and completion stages were only partially addressed. Conclusion is that the identified unaddressed needs such as, single point of reference, SLA and OLA inclusion etc., should be implemented or improved within the WCS at appropriate stages of work to gain better compliance of the service to the needs of the enterprise an work itself. The developed approach can hence be used to carry out similar analysis for the conformance of pre-built software functionality to work system needs with SMEs.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The estimating of the relative orientation and position of a camera is one of the integral topics in the field of computer vision. The accuracy of a certain Finnish technology company’s traffic sign inventory and localization process can be improved by utilizing the aforementioned concept. The company’s localization process uses video data produced by a vehicle installed camera. The accuracy of estimated traffic sign locations depends on the relative orientation between the camera and the vehicle. This thesis proposes a computer vision based software solution which can estimate a camera’s orientation relative to the movement direction of the vehicle by utilizing video data. The task was solved by using feature-based methods and open source software. When using simulated data sets, the camera orientation estimates had an absolute error of 0.31 degrees on average. The software solution can be integrated to be a part of the traffic sign localization pipeline of the company in question.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Tämän insinöörityön tavoitteena oli suunnitella ja toteuttaa selainpohjainen käyttäjienhallintaohjelma GateKeeper Karttakeppi.com-työryhmälle. GateKeeper-ohjelma kuuluu osana laajempaan ohjelmistoprojektiin, jonka tarkoituksena on tuottaa opetusmateriaalia etäopiskelijoille Internetissä. Etäopetusmateriaalin tuottamisessa käytetään useita ohjelmia, joille on määriteltävä eritasoisia käyttäjätunnuksia ja käyttöoikeuksia. Ohjelmien käyttäjienhallintamekanismit ovat erilaisia, mikä osaltaan lisää järjestelmän ylläpitäjien työtä ja vastuuta. GateKeeper-ohjelman tavoitteena on nopeuttaa, helpottaa ja yksinkertaistaa käyttäjienhallintaan liittyviä toimintoja tietoturvallisesti. GateKeeper-ohjelma on suunniteltu siten, että uusien käyttäjien ja ohjelmien lisäämiselle ei ole asetettu rajoja. Jokaisen lisättävän ohjelman yhteydessä on kuitenkin selvitettävä kyseisen ohjelman käyttäjienhallintamekanismi. Tässä insinöörityössä tutkittiin, miten versionhallintaohjelma Subversionin, julkaisujärjestelmä Mambon, sekä oppimisalusta Moodlen käyttäjiä voidaan keskitetysti hallinnoida GateKeeper-ohjelman avulla. GateKeeper-ohjelma noudattaa arkkitehtuuriltaan kolmikerrosmallia, jossa käyttöliittymä, sovelluslogiikka ja tietovarasto on erotettu toisistaan. Ohjelma koostuu joukosta PHP-kielellä toteutettuja dynaamisia web-sivuja. Tietovarastona käytetään tietokantapalvelimella sijaitsevaa MySQL-tietokantaa.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Kiihtyvän kasvihuoneilmiön aiheuttama ilmaston lämpeneminen on modernin yhteiskunnan suurimpia haasteita. Ympäristöteknologian tavoitteena on hidastaa tämän ilmiön haitallisia vaikutuksia maailmanlaajuisesti, kansallisesti sekäkunnallisella tasolla. Tässä työssä on selvitetty, kuinka kunnallinen kasvihuonekaasupäästölaskenta toteutetaan ja voidaanko siitä saada luotettavia tuloksia. Lisäksi tulosten pohjalta on laadittu kunnallinen kasvihuonekaasupäästöjen kehitysennuste sekä toimenpide-ehdotus päästöjen leikkaamiseksi. Esimerkkikuntana on Lappeenrannan kaupunki ja päästölaskenta on kohdistettu vuoteen 2004. Lappeenrannan kaupungin alueen kasvihuonekaasupäästöt vuonna 2004 olivat 1 156 500 tonnia hiilidioksidiekvivalenttia. Alueen luonnon nieluvaikutus oli 23 500 tonnia hiilidioksidiekvivalenttia. Laskennassa käytetty aineisto, eli yritysten ja kunnallisten toimintojen päästö- ja polttoainetiedot, saatiin kirjallisuudesta, virallislähteistä sekä henkilökohtaisina tiedonantoina. Laskentaohjelmistona käytettiin Suomen Kuntaliiton kehittämää Excel-pohjaista kasvihuonekaasu-ja energiataseohjelmisto KASVENER:ia. Työssä on osoitettu, että kasvihuonekaasupäästölaskennan tarkkuus ja onnistuminen ovat riippuvaisia käytettävissä olevista resursseista, ennen kaikkea laskennan lähtötietojen laajuudesta ja tarkkuudesta. Laskentatuloksista selviää, että esimerkkikunnan kasvihuonekaasupäästöt ovat kasvaneet Suomen keskiarvoa vastaavalla tavalla. Toimenpide-ehdotuksia listatessa kävi lisäksi ilmi, että kasvihuonekaasupäästöjen leikkaaminen on melko helppoa olemassa olevalla teknologialla tiettyyn pisteeseen asti. Isompien tavoitteiden saavuttaminen edellyttää laajamittaisia investointeja ja kunnan infrastruktuurin muuttamista.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Useiden pitkän kehityskaaren ohjelmistojen ylläpitäminen ja kehittäminen on vaikeaa, sillä niiden dokumentaatio on vajaata tai vanhentunutta. Tässä diplomityössä etsitään ratkaisua tällaisen ohjelmiston ja sen taustalla olevan järjestelmän kuvaukseen. Tavoitteina on tukea nykyisen ohjelmiston ylläpitoa ja uuden työvoiman perehdyttämistä. Tavoitteena on myös pohjustaa uuden korvaavan ohjelmiston suunnittelua kuvaamalla nykyiseen järjestelmään sitoutunutta sovellusalueosaamista. Työssä kehitetään kuvausmenetelmä järjestelmän kuvaamiseen hierarkkisesti laitteistotason yleiskuvauksesta ohjelmiston luokkarakenteeseen sekä toiminnallisuuteen asti. Laite- ja luokkarakennekuvaukset ovat rakenteellisia kuvauksia, joiden tehtävänä on selittää järjestelmän ja sen osien kokoonpano. Toiminnallisuudesta kertovat kuvaukset on toteutettu käyttötapauskuvauksina. Työssä keskityttiin erityisesti kohdejärjestelmän keskeisen ohjelmiston ja tietokannan kuvaamiseen. Ohjelmistosta valittiin tärkeimmät ja eniten sovellusalueen tietotaitoa sisältävät osat, joista työssä luotiin esimerkkikuvaukset. Kuvauksia on kehitettyä menetelmää hyödyntäen helppo laajentaa tarpeiden mukaan paitsi ohjelmiston muihin osiin, myös laitteiston ja järjestelmän kuvaamiseen kokonaisuudessaan syvemmin.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Ohjelmistotestaus on suuri ja kasvava kustannuserä ohjelmistotuotannossa. Kirjallisuudessa mainittu ohjelmistotestauksen kustannusten osuus on noin 50% ohjelmistokehityshankkeiden budjetista. Tutkimusprojektin tarkoituksena on selvittää, kuinka ohjelmistotestauksen kustannusten kasvu saataisiin pysähtymään tai laskemaan laatua menettämättä. Tässä työssä keskitytään laadullisen analyysin kautta selvittämään ja ymmärtämään tietämyksen välittämistä ohjelmistotestausorganisaatiossa. Tutkimusmateriaali on kerätty haastattelemalla26 organisaatioyksikön edustajia. Näiden organisaatioyksiköiden joukosta on edelleen valittu viisi organisaatioyksikköä lähempään tarkasteluun. Työssä havaittiin muun muassa, että tuotesuuntautuneessa ohjelmistokehityksessä tietämystä on vaivattomampi kodifioida. Esimerkiksi testitapausten määrittäminen ennakkoon on tällöin helpompaa. Kodifiointi mahdollistaa myös testauksen laajamittaisen ulkoistamisen, sillä kodifioitua tietämystä on helpompi välittää. Räätälöityjen järjestelmien testaamisessa tarvittava tietämys vaikuttaa olevan suurelta osin hiljaista, esimerkiksi sovellusalueosaaminen painottuu enemmän.