80 resultados para Metriche del software Stima del software Software embedded Function point Lines of code
Resumo:
Cloud computing enables on-demand network access to shared resources (e.g., computation, networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort. Cloud computing refers to both the applications delivered as services over the Internet and the hardware and system software in the data centers. Software as a service (SaaS) is part of cloud computing. It is one of the cloud service models. SaaS is software deployed as a hosted service and accessed over the Internet. In SaaS, the consumer uses the provider‘s applications running in the cloud. SaaS separates the possession and ownership of software from its use. The applications can be accessed from any device through a thin client interface. A typical SaaS application is used with a web browser based on monthly pricing. In this thesis, the characteristics of cloud computing and SaaS are presented. Also, a few implementation platforms for SaaS are discussed. Then, four different SaaS implementation cases and one transformation case are deliberated. The pros and cons of SaaS are studied. This is done based on literature references and analysis of the SaaS implementations and the transformation case. The analysis is done both from the customer‘s and service provider‘s point of view. In addition, the pros and cons of on-premises software are listed. The purpose of this thesis is to find when SaaS should be utilized and when it is better to choose a traditional on-premises software. The qualities of SaaS bring many benefits both for the customer as well as the provider. A customer should utilize SaaS when it provides cost savings, ease, and scalability over on-premises software. SaaS is reasonable when the customer does not need tailoring, but he only needs a simple, general-purpose service, and the application supports customer‘s core business. A provider should utilize SaaS when it offers cost savings, scalability, faster development, and wider customer base over on-premises software. It is wise to choose SaaS when the application is cheap, aimed at mass market, needs frequent updating, needs high performance computing, needs storing large amounts of data, or there is some other direct value from the cloud infrastructure.
Resumo:
The aim of this master’s thesis is to study how Agile method (Scrum) and open source software are utilized to produce software for a flagship product in a complex production environment. The empirical case and the used artefacts are taken from the Nokia MeeGo N9 product program, and from the related software program, called as the Harmattan. The single research case is analysed by using a qualitative method. The Grounded Theory principles are utilized, first, to find out all the related concepts from artefacts. Second, these concepts are analysed, and finally categorized to a core category and six supported categories. The result is formulated as the operation of software practices conceivable in circumstances, where the accountable software development teams and related context accepts a open source software nature as a part of business vision and the whole organization supports the Agile methods.
Resumo:
Object-oriented programming is a widely adopted paradigm for desktop software development. This paradigm partitions software into separate entities, objects, which consist of data and related procedures used to modify and inspect it. The paradigm has evolved during the last few decades to emphasize decoupling between object implementations, via means such as explicit interface inheritance and event-based implicit invocation. Inter-process communication (IPC) technologies allow applications to interact with each other. This enables making software distributed across multiple processes, resulting in a modular architecture with benefits in resource sharing, robustness, code reuse and security. The support for object-oriented programming concepts varies between IPC systems. This thesis is focused on the D-Bus system, which has recently gained a lot of users, but is still scantily researched. D-Bus has support for asynchronous remote procedure calls with return values and a content-based publish/subscribe event delivery mechanism. In this thesis, several patterns for method invocation in D-Bus and similar systems are compared. The patterns that simulate synchronous local calls are shown to be dangerous. Later, we present a state-caching proxy construct, which avoids the complexity of properly asynchronous calls for object inspection. The proxy and certain supplementary constructs are presented conceptually as generic object-oriented design patterns. The e ect of these patterns on non-functional qualities of software, such as complexity, performance and power consumption, is reasoned about based on the properties of the D-Bus system. The use of the patterns reduces complexity, but maintains the other qualities at a good level. Finally, we present currently existing means of specifying D-Bus object interfaces for the purposes of code and documentation generation. The interface description language used by the Telepathy modular IM/VoIP framework is found to be an useful extension of the basic D-Bus introspection format.
Resumo:
Open source and open source software development have been interesting phenomena during the past decade. Traditional business models do not apply with open source, where the actual product is free. However, it is possible to make business with open source, even successfully, but the question is: how? The aim of this study is to find the key factors of successfully making business out of commercial open source software development. The task is achieved by finding the factors that influence open source projects, finding the relation between those factors, and find out why some factors explain the success more than others. The literature review concentrates first on background of open innovation, open source and open source software. Then business models, critical success factors and success measures are examined. Based on existing literature a framework was created. The framework contains categorized success factors that influence software projects in general as well as open source software projects. The main categories of success factors in software business are divided into community management, technology management, project management and market management. In order to find out which of the factors based on the existing literature are the most critical, empirical research was done by conducting unstructured personal interviews. The main finding based on the interviews is that the critical success factors in open source software business do not differ from those in traditional software business or in fact from those in any other business. Some factors in the framework came out in the interviews that can be considered as key factors: establishing and communicating hierarchy (community management), localization (technology management), good license know-how and IPR management (project management), and effective market management (market management). The critical success factors according to the interviewees are not listed in the framework: low price, good product and good business model development.
Resumo:
Formal software development processes and well-defined development methodologies are nowadays seen as the definite way to produce high-quality software within time-limits and budgets. The variety of such high-level methodologies is huge ranging from rigorous process frameworks like CMMI and RUP to more lightweight agile methodologies. The need for managing this variety and the fact that practically every software development organization has its own unique set of development processes and methods have created a profession of software process engineers. Different kinds of informal and formal software process modeling languages are essential tools for process engineers. These are used to define processes in a way which allows easy management of processes, for example process dissemination, process tailoring and process enactment. The process modeling languages are usually used as a tool for process engineering where the main focus is on the processes themselves. This dissertation has a different emphasis. The dissertation analyses modern software development process modeling from the software developers’ point of view. The goal of the dissertation is to investigate whether the software process modeling and the software process models aid software developers in their day-to-day work and what are the main mechanisms for this. The focus of the work is on the Software Process Engineering Metamodel (SPEM) framework which is currently one of the most influential process modeling notations in software engineering. The research theme is elaborated through six scientific articles which represent the dissertation research done with process modeling during an approximately five year period. The research follows the classical engineering research discipline where the current situation is analyzed, a potentially better solution is developed and finally its implications are analyzed. The research applies a variety of different research techniques ranging from literature surveys to qualitative studies done amongst software practitioners. The key finding of the dissertation is that software process modeling notations and techniques are usually developed in process engineering terms. As a consequence the connection between the process models and actual development work is loose. In addition, the modeling standards like SPEM are partially incomplete when it comes to pragmatic process modeling needs, like light-weight modeling and combining pre-defined process components. This leads to a situation, where the full potential of process modeling techniques for aiding the daily development activities can not be achieved. Despite these difficulties the dissertation shows that it is possible to use modeling standards like SPEM to aid software developers in their work. The dissertation presents a light-weight modeling technique, which software development teams can use to quickly analyze their work practices in a more objective manner. The dissertation also shows how process modeling can be used to more easily compare different software development situations and to analyze their differences in a systematic way. Models also help to share this knowledge with others. A qualitative study done amongst Finnish software practitioners verifies the conclusions of other studies in the dissertation. Although processes and development methodologies are seen as an essential part of software development, the process modeling techniques are rarely used during the daily development work. However, the potential of these techniques intrigues the practitioners. As a conclusion the dissertation shows that process modeling techniques, most commonly used as tools for process engineers, can also be used as tools for organizing the daily software development work. This work presents theoretical solutions for bringing the process modeling closer to the ground-level software development activities. These theories are proven feasible by presenting several case studies where the modeling techniques are used e.g. to find differences in the work methods of the members of a software team and to share the process knowledge to a wider audience.
Resumo:
Poster at Open Repositories 2014, Helsinki, Finland, June 9-13, 2014
Resumo:
Software is a key component in many of our devices and products that we use every day. Most customers demand not only that their devices should function as expected but also that the software should be of high quality, reliable, fault tolerant, efficient, etc. In short, it is not enough that a calculator gives the correct result of a calculation, we want the result instantly, in the right form, with minimal use of battery, etc. One of the key aspects for succeeding in today's industry is delivering high quality. In most software development projects, high-quality software is achieved by rigorous testing and good quality assurance practices. However, today, customers are asking for these high quality software products at an ever-increasing pace. This leaves the companies with less time for development. Software testing is an expensive activity, because it requires much manual work. Testing, debugging, and verification are estimated to consume 50 to 75 per cent of the total development cost of complex software projects. Further, the most expensive software defects are those which have to be fixed after the product is released. One of the main challenges in software development is reducing the associated cost and time of software testing without sacrificing the quality of the developed software. It is often not enough to only demonstrate that a piece of software is functioning correctly. Usually, many other aspects of the software, such as performance, security, scalability, usability, etc., need also to be verified. Testing these aspects of the software is traditionally referred to as nonfunctional testing. One of the major challenges with non-functional testing is that it is usually carried out at the end of the software development process when most of the functionality is implemented. This is due to the fact that non-functional aspects, such as performance or security, apply to the software as a whole. In this thesis, we study the use of model-based testing. We present approaches to automatically generate tests from behavioral models for solving some of these challenges. We show that model-based testing is not only applicable to functional testing but also to non-functional testing. In its simplest form, performance testing is performed by executing multiple test sequences at once while observing the software in terms of responsiveness and stability, rather than the output. The main contribution of the thesis is a coherent model-based testing approach for testing functional and performance related issues in software systems. We show how we go from system models, expressed in the Unified Modeling Language, to test cases and back to models again. The system requirements are traced throughout the entire testing process. Requirements traceability facilitates finding faults in the design and implementation of the software. In the research field of model-based testing, many new proposed approaches suffer from poor or the lack of tool support. Therefore, the second contribution of this thesis is proper tool support for the proposed approach that is integrated with leading industry tools. We o er independent tools, tools that are integrated with other industry leading tools, and complete tool-chains when necessary. Many model-based testing approaches proposed by the research community suffer from poor empirical validation in an industrial context. In order to demonstrate the applicability of our proposed approach, we apply our research to several systems, including industrial ones.
Resumo:
Sulautettujen järjestelmien määrä kuten niiden sisältämä älykkyyskin ovat viime vuosina kasvaneet merkittävästi. Sulautettujen ohjelmistojen yleistymistä ja monipuolistumista on edesauttanut sulautettujen laitteistojen prosessointitehon merkittävä kehittyminen, jonka myötä entistä vaativampien ohjelmistojen totetuttaminen sulautetusti on mahdollistunut. Seuraavana sulautettujen järjestelmien kehitysaskeleena on nähtävissä järjestelmien kommunikointikyvyn paraneminen ja siten uusien ja uudentyyppisten sulautettujen ratkaisujen toteuttaminen. VTT on päättänyt tutkia sulautettujen järjestelmien kommunikointia ja kehittää sulautettun protokolla-alustan. Tutkimuksen perusta on CVOPS protokollajärjestelmä, jota jatkokehittämällä pyritään toteuttamaan sulautettu protokollajärjestelmä, µCVOPS. Tässä diplomityössä esitetään kommunikaation sulautetulle järjestelmälle asettamia vaatimuksia, järjestelmän suunnittelu ja prototyypitys sulautetulla laitteistolla. Prototyypitykseen on käytetty sulautettua DragonBall mikrokontrolleria jonka käyttöjärjestelmänä käytettiin sulautettua Linux:a. Tälle alustalle on tehty CVOPS:sta modifioitu versio, jolla µCVOPS:ia pystytään simuloimaan.
Resumo:
Software systems are expanding and becoming increasingly present in everyday activities. The constantly evolving society demands that they deliver more functionality, are easy to use and work as expected. All these challenges increase the size and complexity of a system. People may not be aware of a presence of a software system, until it malfunctions or even fails to perform. The concept of being able to depend on the software is particularly significant when it comes to the critical systems. At this point quality of a system is regarded as an essential issue, since any deficiencies may lead to considerable money loss or life endangerment. Traditional development methods may not ensure a sufficiently high level of quality. Formal methods, on the other hand, allow us to achieve a high level of rigour and can be applied to develop a complete system or only a critical part of it. Such techniques, applied during system development starting at early design stages, increase the likelihood of obtaining a system that works as required. However, formal methods are sometimes considered difficult to utilise in traditional developments. Therefore, it is important to make them more accessible and reduce the gap between the formal and traditional development methods. This thesis explores the usability of rigorous approaches by giving an insight into formal designs with the use of graphical notation. The understandability of formal modelling is increased due to a compact representation of the development and related design decisions. The central objective of the thesis is to investigate the impact that rigorous approaches have on quality of developments. This means that it is necessary to establish certain techniques for evaluation of rigorous developments. Since we are studying various development settings and methods, specific measurement plans and a set of metrics need to be created for each setting. Our goal is to provide methods for collecting data and record evidence of the applicability of rigorous approaches. This would support the organisations in making decisions about integration of formal methods into their development processes. It is important to control the software development, especially in its initial stages. Therefore, we focus on the specification and modelling phases, as well as related artefacts, e.g. models. These have significant influence on the quality of a final system. Since application of formal methods may increase the complexity of a system, it may impact its maintainability, and thus quality. Our goal is to leverage quality of a system via metrics and measurements, as well as generic refinement patterns, which are applied to a model and a specification. We argue that they can facilitate the process of creating software systems, by e.g. controlling complexity and providing the modelling guidelines. Moreover, we find them as additional mechanisms for quality control and improvement, also for rigorous approaches. The main contribution of this thesis is to provide the metrics and measurements that help in assessing the impact of rigorous approaches on developments. We establish the techniques for the evaluation of certain aspects of quality, which are based on structural, syntactical and process related characteristics of an early-stage development artefacts, i.e. specifications and models. The presented approaches are applied to various case studies. The results of the investigation are juxtaposed with the perception of domain experts. It is our aspiration to promote measurements as an indispensable part of quality control process and a strategy towards the quality improvement.
Resumo:
Tämän diplomityön tavoitteena oli kehittää menetelmiä ja ohjeitataajuusmuuttajan sulautetun ohjelmiston kehityksen aikaiseen testaukseen. Soveltuvia menetelmiä etsittiin tutkimalla laajasti kirjallisuutta sekä selvittämälläyrityksen testauskäytäntöä. Tutkittuja kirjallisuudesta löytyneitä menetelmä olivat testauskehykset, simulointi ja staattinen sekä automaattinen testaus. Kirjallisuudesta etsittiin myös menetelmiä, joiden avulla testausprosessia voidaan helpottaa tai muuten parantaa. Tällaisista menetelmistä tutkittiin muun muassa testidatan valintaa, testauslähtöistä kehitystä sekä testattavuuden parantamista. Lisäksi selvitettiin uudelleenkäytettävien testien ohjelmointiin soveltuvia ohjelmointikieliä. Haastatteluiden ja dokumentaation avulla saatiin hyvä käsitys yrityksessä vallitsevasta testauskäytännöstä sekä sen ongelmakohdista. Testauksen ongelmiksi havaittiin testausprosessin järjestelmällisyyden puute sekä tarve suunnittelijoiden testauskoulutukseen. Testausprosessin parantamiseksi esitetään moduulitestauskehyksen käyttöönottoa. Lisäksi suunnittelijoiden testauskoulutuksella arvioidaan olevan suuri vaikutus koko testausprosessiin. Testitapausten suunnitteluun esitetään menetelmiä, joiden avulla voidaan suunnitella kattavampia testejä.
Resumo:
Ohjelmistoprojektin läpivienti vaatii suunnittelua ja yhteisiä tapaamisia toimittajan ja asiakkaan kesken. Ohjelmistotuotannon prosessit ovat määrittely, suunnittelu, toteutus, testaus ja käyttöönotto. Tärkeimmät dokumentit ovat projektisuunnitelma, toiminnallinen määrittely ja tekninen määrittely. Ongelmia projektin läpiviennissä voi tulla silloin, jos toimittaja ja asiakas eivät ymmärrä toisiaan. Tässä työssä tehdään SMSviestejä käsittelevä mobiilisovellus ja siihen liittyvät projektisuunnitelma sekä määrittelydokumentit. Mobiilisovellus ohjelmoidaan J2ME:llä, joka on sulautettujen järjestelmien ohjelmointiin suunniteltu Java-kieli. Sovellus tukee toisen asteen opiskelijoille suunnattuja mobiiliohjelmointi opintoja. Opintojakso kuuluu Pohjois- Karjalan ammattiopiston järjestämään turvallisuusalan koulutukseen. Sovelluksella voidaan lähettää ohjausviestejä OUMAN EH-60 -ohjaus- ja valvontayksikköön. Yksikön avulla voi ohjata ja valvoa esimerkiksi kiinteistön lämmönsäätöä, vesivahinkoja, oven lukitusta jne. Tässä työssä tehtävällä sovelluksella demonstroidaan kesämökin ohjausta. Langaton tiedonsiirto tulee tulevaisuudessa lisääntymään kiinteistöjen ohjaus- ja valvontajärjestelmänä. Hätä- ja valvontaviestit lähetetään automaattisesti kiinteistön omistajalle, hoivapalveluyrittäjälle, talohuoltoon tai hätäkeskukseen. Kiinteistön omistaja voi omalla matkapuhelimellaan ajasta ja paikasta riippumattavalvoa ja ohjata kiinteistöään reaaliaikaisesti. Pohjois-Karjalan ammattiopisto haluaa olla kehittämässä ja toteuttamassa turvallisuusalan koulutusta nyt ja tulevaisuudessa.
Resumo:
Työ tehtiin Nokia Technology Platforms S60 Mobile Runtime-yksikölle. Työn tavoitteena oli evaluoida ATS3-testausjärjestelmä. ATS3-järjestelmällä voidaan automatisoida ohjelmistotestausta. Evaluoinnilla pyrittiin selvittämään voidaanko tuotekehitysvaiheessa oleva järjestelmä ottaa jo käyttöön vai vaatiiko se vielä lisäkehitystä. Työssä kerrotaan aluksi yleisesti ohjelmistotestauksesta. Siinä käydään läpi myös testausprosessin vaiheet sekä kerrotaan lyhyesti avuksi kehitetyistä työkaluista. Työssä kerrotaan myös ATS3-järjestelmän edeltäjien ominaisuuksista, sekä miten ne eroavat tarkastelun kohteena olevasta järjestelmästä. Varsinainen evaluointi alkoi tutustumalla ja asentamalla järjestelmä. Tämän jälkeen suoritettiin samat testit sekä ATS2.x-järjestelmässä että ATS3-järjestelmäss. Testauksen jälkeen analysoitiin testitulosten yhdenmukaisuuden perusteella, voidaanko siirtyä käyttömään ATS3-järjestelmää. Testitulokset olivat käytännässä yhdenmukaiset suoritettaessa testejä matkapuhelimessa, mutta emulaattoritestaus täytyi jättää väliin. Lukuisista yrityksistä sekä järjestelmän kehittäjän avusta huolimatta testejä ei onnistuttu suorittamaan ATS3-järjestelmän emulaattoriympäristössä. Näin ollen päädyttiin tulokseen, ettei järjestelmää voida ottaa vielä käytöön emulaattoritestauksessa, vaan se vaatii lisätutkimusta sekä perehtymistä järjestelmään.
Resumo:
Yhteisön langaton palvelualusta on konsepti langattomien yhteisöllisten verkkopalveluiden tarjoamiseen.Konsepti perustuu langattomaan WLAN-reititinlaitteeseen sekä Linux-käyttöjärjestelmäpohjaiseen laiteohjelmistoon, joiden avulla voidaan tarjota paikallisia, erilaisten pienten yhteisöjen käyttöön tarkoitettuja langattomia verkkopalveluita.Soveltuvia käyttökohteita voivat olla esimerkiksi asuntoyhteisöjen välinen tiedotuskanava tai perheen sisäinen viihdekeskus, jonka kautta voidaan tarjota yhteisön toimintaa helpottavia ja tavoitteita edistäviä palveluita. Yhteisön langattomat palvelut perustuvat vapaisiin ohjelmistoihin, jotka mahdollistavat monipuolisen palveluvalikoiman luomisen. Langattoman palvelualustan avulla pienten yhteisöjen tarvitsemat langattomat palvelut voidaan luoda helposti, edullisesti ja joustavasti, ilman kaupallisten palveluoperaattoreiden asettamia rajoituksia.
Resumo:
Tässä diplomityössä esitellään ohjelmistotestauksen ja verifioinnin yleisiä periaatteita sekä käsitellään tarkemmin älypuhelinohjelmistojen verifiointia. Työssä esitellään myös älypuhelimissa käytettävä Symbian-käyttöjärjestelmä. Työn käytännön osuudessa suunniteltiin ja toteutettiin Symbian-käyttöjärjestelmässä toimiva palvelin, joka tarkkailee ja tallentaa järjestelmäresurssien käyttöä. Verifiointi on tärkeä ja kuluja aiheuttava tehtävä älypuhelinohjelmistojen kehityssyklissä. Kuluja voidaan vähentää automatisoimalla osa verifiointiprosessista. Toteutettu palvelin automatisoijärjestelmäresurssien tarkkailun tallentamalla tietoja niistä tiedostoon testien ajon aikana. Kun testit ajetaan uudestaan, uusia tuloksia vertaillaan lähdetallenteeseen. Jos tulokset eivät ole käyttäjän asettamien virherajojen sisällä, siitä ilmoitetaan käyttäjälle. Virherajojen ja lähdetallenteen määrittäminen saattaa osoittautua vaikeaksi. Kuitenkin, jos ne määritetään sopivasti, palvelin tuottaa hyödyllistä tietoa poikkeamista järjestelmäresurssien kulutuksessa testaajille.
Resumo:
Tämän diplomityön tavoitteena oli rakentaa uusi vaihto-omaisuuden arvostamismalli kohdeyritykseen. Vanha arvostamismallioli todettu epätarkaksi ja vaikeasti päivitettäväksi. Uuden mallin oli tarkoitus olla tarkempi ja helpommin päivitettävissä, mutta kumminkin käyttäjäystävällinen. Toisena tavoitteena oli kuvata tuotantoprosessi, jossa kustannukset sitoutuvat tuotteisiin. Työn voi jakaa kolmeen vaiheeseen. Ensin esiteltävä teoria-aineisto pohjautuu pääasiassa vaihto-omaisuuden arvostamisen teoriaan sekä kustannuslaskennan teoriaan. Toisessa vaiheessa kuvataan yrityksen tämänhetkinentuotantoprosessi sekä sen tavoitetila. Viimeisenä vaiheena on arvostamismallin kehittäminen, jossa käydään yksityiskohtaisesti läpi uuden mallin rakenne, logiikka ja sen antamat tulokset. Työn keskeisimpänä lopputuloksena oli taulukkolaskentapohjaisena toteutettu arvostamismalli, mikä huomio erilaiset kustannusrakenteet sekä laskee jälkihinnoittelussa tarvittavan painotetun keskihinnan.Toisena lopputuloksena saatiin tuotannon prosessikuvaukset. Jatkokehitystarpeita kustannuslaskennan osalta ilmeni työn myötä, joihin tullaan myös jatkossa puuttumaan.