900 resultados para Component-based software engineering
Resumo:
Työn tavoitteena oli luoda selkeä kuvaus sanomalehden lehtitilausprosessin toiminnasta tilauksesta jakeluun sekä kartoittaa lehtitilausprosessiin liittyvät ongelmakohdat ja esittää alustavia parannus- ja kehittämisehdotuksia niiden ratkaisemiseksi. Kuvauksen rakenteen teoreettisen pohjan luo työn alussa esitetty strukturoitu analyysi eli SA-menetelmä (structured analysis), jota soveltaen varsinainen kuvaus pääosin henkilöhaastatteluista saatuihin tietoihin perustuen toteutettiin.Sanomalehden lehtitilausprosessi on hyvin laaja ja monivaiheinen prosessi. Työn yhtenä tarkoituksena olikin selventää henkilöstölle, mitä kyseisen prosessin sisällä oikein tapahtuu. Kuvausta tehtäessä havaittiin useita lehtitilausprosessiin liittyviä ongelma- ja kehittämiskohteita, joiden kuntoon saattamiseksi on työssä esitetty alustavia ratkaisuvaihtoehtoja. Diplomityön teettämisen perusteena oli halu kehittää lehtitilausprosessia tilauksesta jakeluun nykyprosessin laadun parantamiseksi.Toimenpide-ehdotuksena esitetään tutkimuksessa läpi käytyjen sekä sen pohjalta mahdollisesti ilmenevien uusien parannus- ja kehittämisehdotusten toteuttamista lähitulevaisuudessa. Näin kyetään takaamaan lehtitilausprosessin toimivuus sekä vastaamaan asiakkaiden kasvaviin tarpeisiin myös tulevaisuudessa.
Resumo:
Työn tarkoituksena oli tutkia tuotteen määrittelyyn liittyvää kirjallisuutta ja perehtyä tuotteen määrittelytyön nykytilaan kohdeyrityksessä. Näihin molempiin perustuen muodostetaan prosessimalli tuotteen määrittelytyölle kohdeyrityksessä. Työssä käsitellään prosessijohtamisen pääperiaatteet sekä tuotteen määrittelyä koskevaa kirjallisuutta ja tutkimuksia. Koska kysessä oleva tuote on suurelta osalta ohjelmistotuote, ohjelmistojen suunnittelua, erityisesti ohjelmistovaatimusten hallintaa ja ohjelmistojen määrittelyä, on myös tarkasteltu työssä. Tuotteen määrittelyn haasteita on käsitelty yksityiskohtaisemmin, esimerkiksi dokumentointia, prosessin kulkua, vaatimusten epävakaisuutta sekä muutoksia. Kohdeyritys ja sen ongelmakohdat esitellään ja luodaan prosessimalli. Tämä malli esittelee seuraavat prosessit: raakavaatimusten hallinta -prosessin, roadmapping -prosessin, esisuunnittelu- ja spesifikaatioprosessin ja julkaisun suunnittelu -prosessin. Kaikki nämä ovat vaiheita ennen varsinaisen tuotekehitysprojektin aloittamista. Työssä esitellään myös kolmetasoinen dokumentaatiomalli.
Resumo:
Diplomityön tavoitteena oli luoda suunnitelma elektronisen hankintatoimen aloittamiseksi, analysoimalla nykyisiä ostoprosesseja ja konsernin laajuista elektronista hankintajärjestelmää. Työ pohjautuu yritysten väliseen elektroniseen kauppaan, elektroniseen hankintatoimeen ja systeemisuunnitteluun liittyvään kirjallisuuteen. Työssä tehdyn suunnitelman tarkoituksena on auttaa Siemens Oy:tä siirtymään uuteen elektroniseen ostotoimintaan. Elektroniselle ostotoiminnalle suunniteltiin tavoitteet ja näitä vastaavat vaatimukset. Elektronisen hankintajärjestelmän analysointi perustuu kirjallisuudessa esitettyihin järjestelmän elinkaari-mallin vaiheisiin. Analysoinnin tarkoituksena oli saada selville järjestelmän soveltuvuus Siemens Oy: n liiketoimintaympäristöön, prosesseihin ja vaatimuksiin. Elektronisen hankintatoiminnan etuja ovat liiketoiminta prosessien johtamisen parantuminen, kustannusten väheneminen sekä taloudellisen suorituskyvyn lisääntyminen. Elektronisen hankintatoiminnan aloittaminen vaatii kuitenkin huolellista suunnittelua. Työssä tehdyt suunnitelmat ja analysoinnit auttavat arvioidessa järjestelmän sopivuutta Siemens Oy: n vaatimuksiin. Oikean ja toimivan järjestelmän valinta ei kuitenkaan takaa elektronisesta hankintatoiminnasta hyötymistä. Tärkeimpiä jatkotoimenpiteitä onkin suorittaa kustannus/hyöty analyysi ja arvioida toimittajien halukkuutta ja kykyjä osallistua markkinapaikkaan.
Resumo:
Tämän diplomityön tarkoituksena oli esittää menetelmä erääseen ohjelmistoon toteutettavista muutoksista aiheutuvien riskien hallintaan. Ohjelmistoa käyttää päivittäin useita satoja henkilöitä ja sen ongelmaton toiminta on ohjelmiston omistavalle asiakkaalle erittäin tärkeää. Ohjelmiston ja sen kehitystyön kannalta riski on asianomistajan tavoitteita uhkaava menetyksen mahdollisuus tai menetykseen liittyvä ominaisuus, tekijä tai toiminta. Tämän työn yhteydessä asianomistaja on yritys, joka on toteuttanut nykyisen ohjelmiston ja on vastuussa ohjelmiston jatkokehityksestä. Yrityksen riskienhallintatarpeita vastaava ratkaisu pyritään löytämään perehtymällä riskienhallinnan perusteisiin sekä kahteen erityisesti ohjelmistotuotantoon tarkoitettuun riskienhallintamenetelmään. Riskienhallinnan kehittämisen kannalta on tärkeää, että ohjelmistotuotannon tyypilliset virheet onnistutaan pääsääntöisesti välttämään. Riskienhallinnan yleisempien virheiden tiedostamisesta on suurta hyötyä omaa riskienhallintaa kehitettäessä. Ohjelmiston kehitysorganisaation systemaattinen tapa toteuttaa ohjelmistomuutoksia perustuu ohjelmistotuotantoon tarkoitetun tuotteenhallintaohjelman käyttöön. Tuotteenhallintaohjelmassa muutospyyntö on ohjelmiston kehitystyön perusyksikkö, johon riskienhallintatoimet on pyrittävä kohdistamaan. Yrityksen tarpeita vastaava riskienhallintamalli rakennetaan lisäämällä Riskit-menetelmän mukainen riskienhallintaprosessi osaksi muutospyynnön systemaattista käsittelyprosessia. Työn tuloksena aikaansaadun mallin mukaista riskienhallintaa voidaan käytännössä harjoittaa usealla eri tavalla. Arvioiden perusteella kaavionluonti- ja tekstinkäsittelyohjelma ovat riittävät työkalut riskienhallinnan käytännön toteutusta varten. Kokemukset uudesta riskienhallintamenetelmästä osoittivat sen käyttökelpoiseksi. Menetelmän käyttöönoton sujuvuuden varmistamiseksi, riskienhallintatoimet kannattaa kuitenkin aluksi kohdistaa yksittäistä muutospyyntöä suurempaan kokonaisuuteen.
Resumo:
Työn tavoitteena oli tutkia ja vertailla komponenttipohjaisia ohjelmistoarkkitehtuureita (Microsoft .NET ja J2EE). Työn tarkoituksena oli valita ohjelmistoarkkitehtuuri uudelle neuroverkkopohjaiselle urasuunnittelupalvelulle. Tässä työssä selvitettiin myös, miten luodaan kansainvälistettäviä ja lokalisoitavia sovelluksia, sekä kuinka Web-, Windows-, mobiili-, puhe- ja Digi-TV -käyttöliittymät soveltuvat uudelle urasuunnittelupalvelulle. Tutkimustyössä käytettiin alan kirjallisuutta, Microsoftin ja Sun Microsystemsin Web-sivuja. Tutkimustyössä analysoitiin Microsoft Pet Shop- ja Sun Microsystemsin Java Pet Store -esimerkkisovellusten suorituskykyvertailua. Analyysituloksiin perustuen urasuunnittelupalvelussa suositellaan käytettäväksi J2EE-arkkitehtuuria. Uudelle urasuunnittelupalvelulle toimenpide-ehdotus on komponenttipohjainen järjestelmä Web-, puhe- ja Digi-TV -käyttöliittymillä ja personoidulla sisällöllä. Järjestelmä tehdään viisivaiheisena hankkeena, johon sisältyy pilottitestejä. Uuteen urasuunnittelupalveluun liitetään mukaan opiskelijat, oppilaitokset ja työnantajat sekä asiantuntijoita neuroverkon opetusdatan määrittämiseen. Palvelu perustuu integroituun tietokantaan. Eri osajärjestelmissä tuotettua tietoa voidaan hyödyntää kaikkialla urasuunnittelupalvelussa.
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.
Resumo:
Tässä työssä selvitettiin hyviä tapoja ja vakiintuneita käytäntöjä pitkän käyttöiän web-sovelluksen tekemiseksi. Saatiin selville, että sovelluksen elinkaaren aikana suurin osa kustannuksista tulee ylläpidosta. Tavoitteena oli tehdä pitkään käytettävä sovellus, joten ylläpidon kustannusten osuudesta tuli saada mandollisimman pieni. Ohjelmistotuotantoprosessissa mandollisimman aikaisessa vaiheessa havaitut virheet vähentävät korjauskustannuksia oleellisesti verrattuna siihen, että virheet havaittaisiin valmiissa tuotteessa. Siksi tässä työssä tehdyssä web-sovelluksessa panostettiin prosessin alkuvaiheisiin, määrittelyyn ja suunnitteluun. Web-sovelluksen ylläpidettävyyteen ja selkeyteen vaikuttavat oleellisesti hyvät ohjelmistokehitystavat. Käyttämällä valmista sovelluskehystä ja lisäämällä toiminnallisuuksia valmiiden ohjelmistokomponenttien avulla saadaan aikaiseksi hyvien tapojen mukaisesti tehty sovellus. Tässä työssä toteutettu web-sovellus laadittiin käyttämällä sovelluskehystä ja komponenttiarkkitehtuuria. Toteutuksesta saatiin selkeä. Sovellus jaettiin loogisiin kokonaisuuksiin, jotka käsittelevät näkymiä, tietokantaa ja tietojen yhdistämistä näiden välillä. Jokainen kokonaisuus on itsenäisesti toimiva, mikä auttaa sovelluksen ylläpitämisessä ja testaamisessa.
Resumo:
Aquest treball final de carrera presenta l'anàlisi i disseny de un component software sotmès a una normativa.
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.
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.
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.
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.
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:
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.