71 |
Multipla loggar för ökad programförståelse : Hur multipla loggar kan bidra till programutveckling och programförståelse / Multiple traces for increased program comprehension : How multiple traces can contribute to software development and program comprehensionHejderup, Jacob January 2018 (has links)
För att utveckla eller underhålla mjukvara krävs en viss nivå av programförståelse. För att underlätta denna förståelse används olika typer av verktyg. Denna studie fokuserar på två olika verktyg som använder sig av dynamisk analys: enkla och multipla loggar. Studiens syfte är att undersöka om multipla loggar kan bidra till en ökad programförståelse vid programutveckling. Eclipse är en utvecklingsmiljö som används för att visa programmets källkod. Trace Compass är ett verktyg som används för att inspektera loggar. Denna studie utfördes i två moment: experiment och intervjuer. Experimentet bestod av 10 typiska förståelseuppgifter i ett program-utvecklingssammanhang. Efter experimentet utfördes en intervju med samtliga deltagare. Resultatet av undersökningen blev att multipla loggar skulle kunna vara lämpligare att använda vid problem som var relaterade till två eller fler komponenter i ett system. En av begränsningarna i denna studie var att studien hade för få deltagare för ett generellt ställningstagande. / To develop or maintain a piece of code requires a certain level of comprehension of the developed or maintained software itself. To achieve this goal the developer uses a set of different tools. This report will focus on two types of debug tools: single trace and multiple traces. The purpose of the study is to examine how multiple traces can contribute to an improved program comprehension. The study was carried out through experiments and interviews. The experiment consisted of 10 typical comprehension tasks in a development context. Eclipse and Trace Compass were used to display the logs. Eclipse is a development environment that shows the source code. Trace Compass is a tool for inspecting traces. After the experiment, an interview was carried out with the subjects of the experiment. The results of this study indicated that multiple traces could have an advantage over a single trace when the task is to understand the interactions between code components in a software system. One of the limitations of the study was due to the limited number of subjects taken part in the study and cannot be used to draw a more general conclusion.
|
72 |
Content assist in integrated development environments for hardware description languages / Automatisk komplettering i integrerade utvecklingsmiljöer för hårdvarubeskrivningsspråkNadjar, David January 2023 (has links)
Content assist is one of the most powerful features in integrated development environments (IDE). While a lot of research papers exist on content assist for software programming languages (SPL), hardware description languages (HDL) aren’t covered at all. In this thesis, we improve content assist for SystemVerilog, one of the most widely used HDL, by using different ordering strategies and comparing them to each other. In the end, 6 different strategies are kept: two based on frequencies, one on the usage of the content assist, one on the name of the variable, one on the type of the variable, and one on the distance from their declaration to the cursor position. We test our implementation in 3 different open-source projects well-known and used by the SystemVerilog community: OpenTitan, SweRV, and riscv-dv. We achieve having the expected entry in the top 5 in more than 40% of cases with no prefix and up to 66% of cases with 1 character already typed. / Automatisk komplettering är en av de mest kraftfulla funktionerna i integrerade utvecklingsmiljöer (integrated development environments, IDE). Även om det finns många forskningsartiklar om automatisk komplettering för mjukvaruprogrammeringsspråk (software programming languages, SPL), täcks inte hårdvarubeskrivningsspråk (hardware description language, HDL) alls. I det här examensarbetet förbättras innehållshjälp för SystemVerilog, en av de mest använda HDL:erna, genom att använda olika ordningsstrategier och jämföra dem med varandra. Slutligen behålls 6 olika strategier: två baserade på frekvenser, en baserad på användningen av automatisk komplettering, en baserad på variabelns namn, en baserad på variabelns typ och en baserad på avståndet från deras deklaration till markörens position. Implementeringen testas i 3 olika open source-projekt som är välkända och används av SystemVerilog-användarna: OpenTitan, SweRV och riscvdv. Implementeringen föreslog den förväntade termen bland de fem första förslagen i 40% av fallen där inget prefix var givet och i 66% av fallen när ett tecken var givet
|
73 |
Energy-Efficient Communication with Lightweight M2M in IoT NetworksGonzalo Peces, Carlos January 2018 (has links)
OMA’s Lightweight Machine to Machine (LwM2M) is an application protocol for device management in the Internet of Things (IoT) that has been recently published and widely adopted in a lot of projects. The protocol is designed to operate in sensor networks and machine-to-machine environments, where one of the main constraints is the energy consumption since the nodes are usually battery powered. Different strategies to achieve high energy efficiency in IoT networks have been developed, but there is no deep knowledge about the performance of LwM2M operating with them. Moreover, the specification of this protocol includes one strategy, called the Queue Mode, which could be more efficient than the usual ones because it has been specified for this particular protocol. This project aims to implement this Queue Mode at both sides of the communication, and then evaluate its performance by comparing it with TSCH, which is the standard MAC protocol used in IEEE 802.15.4 that defines a way of radio duty cycling. It has been proven to achieve a high energy efficiency, and that is the main reason why it is selected. The comparison is performed according to several metrics to have a comprehensive evaluation, and in different kind of scenarios, with different numbers of IoT devices and different parameters in the communication. The implementation was done inside the Contiki-NG OS for the client side, which is an operating systems designed for constrained devices. For the server side it has been carried out inside the Eclipse Leshan code, which is a LwM2M implementation in Java made by the Eclipse Foundation. As a result of the evaluation, it shown that both implementations operate correctly. This thesis contributes as a guideline for making decisions about which low power strategy is better to use depending on the IoT scenario and the type of application. It shows that for many use cases Queue Mode is a better option than TSCH because it achieves a higher energy efficiency and the rest of the metrics used in the evaluation have also improved values. TSCH has a better performance only in demanding scenarios or in cases where the communication is not produced at fixed time instants. The thesis was developed in cooperation with RISE SICS AB, Networked Embedded Systems Group. / OMA:s Lightweight Machine to Machine (LwM2M) är ett applikationsprotokoll för enhetshantering i Sakernas Internet (IoT) som nyligen har publicerats och börjat användas i många projekt. Protokollet är utformat för att fungera i sensornätverk och maskin-till-maskin miljöer, där en av de viktigaste begränsningarna är energiförbrukningen eftersom noderna vanligtvis är batteridrivna. Olika strategier för att uppnå hög energieffektivitet i sensornätverk har utvecklats, men det finns ingen djup kunskap om hur LwM2M fungerar med dem. Dessutom innehåller specifikationen av LwM2M en strategi kallad Queue Mode (köläge) som kan vara effektivare än de vanliga strategierna eftersom den har utvecklats direkt för det här protokollet.Detta examensarbete syftar till att implementera detta köläge på båda sidor av kommunikationen och sedan utvärdera prestandan genom att jämföra det med TSCH, vilket är ett MAC-protokoll specificerat i IEEE 802.15.4-standarden. Tidigare arbeten har visat att TSCH kan uppnå en låg energiförbrukning, vilket är den främsta anledningen till att detta protokoll väljs ut för att jämföra mot LwM2M:s köläge. Jämförelsen inkluderar flera olika typer av mätvärden och scenarier för att få en omfattande utvärdering, samt med flera olika antal sensor noder och parametrar.Implementationen gjordes för Contiki-NG OS på klientsidan, vilket är ett operativsystem för resursbegränsade IoT-enheter. På serversidan har implementationen gjorts för Eclipse Leshan, vilken är en LwM2M-implementation skriven i Java och publicerad av Eclipse Foundation. Som en följd av utvärderingen har det visat sig att båda implementationerna fungerar korrekt.Detta examensarbete bidrar med riktlinjer för att fatta beslut om vilken energibesparingsstrategi som är bättre att använda beroende på IoT-scenariot och typen av applikation. Utvärderingen visar hur Queue Mode i många användningsfall är ett bättre alternativ än TSCH eftersom det uppnår en högre energieffektivitet utan att de andra typerna av mätvärden påverkas av det. I vissa fall uppnås dessutom förbättrade resultat även i de andra typerna av mätvärden. TSCH har endast bättre prestanda i krävande scenarier eller i fall där kommunikationen inte genereras vid bestämda tillfällen.Examensarbetet har genomförts hos Networked Embedded Systems-gruppen på RISE SICS AB.
|
74 |
Knowledge-based Data Extraction Workbench for EclipseRangaraj, Jithendra Kumar 18 December 2012 (has links)
No description available.
|
75 |
Sunshade Demonstrator Spacecraft Earth Sphere of Influence Escape Using a Propellant-free AOCS / Sunshade Demonstrator Rymdfarkost Earth Influenssfär flyr med hjälp av en drivgasfri AOCSRicci, Leonardo January 2021 (has links)
This thesis provides insights to what is peculiar about a solar sail attitude and orbit control system and provides the assessment, in the form of a feasibility study, of the effectiveness of sail tip vanes as a control hardware to escape the Earth sphere of influence. The demonstrator aims to prove the technology for the Sunshade project, a constellation of solar sails located at the Lagrangian point L1 to obscure part of the solar radiation directed towards earth. Solar sailing poses a few fundamental challenges to spaceflight and it is a yet-to-be-proven branch of space engineering. Other tentative design exist but there is no standard to follow or off-the-shelf component that can be straightforward used. Moreover the scalability to the final project has to be accounted for in every step of the project.</p><p>The project is divided in a preliminary dimensioning, followed by a Simulink® based simulation which tests preliminary decisions. The simulation, performed on an orbit on the ecliptic plane, integrates models of Earth’s eclipse and environmental disturbance torques. The escape time for a 100 m solar sail is found to be 1215 days, with a nonlinear PD control algorithm and sail tip vanes as the only control hardware. Attention is also posed on the consequence of a simplified sail film deformation in terms of centre of pressure to centre of mass off-set. / I detta examensarbete studeras vad som är speciellt med solsegels system för attityd- och bankontroll och ger en bedömning, i form av en möjlighetsstudie, av effektiviteten hos flöjlar som sätts på seglets hörn som kontrollhårdvara för att lämna jordens inflytelsesfär. Demonstratorn syftar till att bevisa tekniken för Sunshade-projektet, en konstellation av solsegel belägen vid lagrangepunkten L1 för att skugga en del av solstrålningen riktad mot jorden. Solsegling innebär några grundläggande utmaningar för rymdfärden och det är en ännu inte bevisad gren av rymdteknik. Annan preliminär design finns, men det finns ingen standard att följa eller standardkomponenter som enkelt kan användas. Dessutom måste skalbarheten till det slutliga projektet redovisas i varje steg i projektet.Projektet är uppdelat i en preliminär dimensionering, följt av en Simulink-baserad simulering som testar preliminära beslut. Simuleringen, utförd på en omloppsbana påekliptikan, integrerar modeller av jordens skugga och störningar av vridmoment från ett antal källor.Flykttiden för ett 100m solsegel blir 1215 dagar, med en icke-linjär PD kontrollalgoritm och segelhörnsflöjlar som den enda styrhårdvaran. Dessutom studeras förskjutningen av tryckcentrum i förhållande till masscentrum under en förenklad modell av segeldeformation.
|
76 |
Automated coverage calculation and test case generationMorrison, George Campbell 03 1900 (has links)
Thesis (MScEng)--Stellenbosch University, 2012. / ENGLISH ABSTRACT: This research combines symbolic execution, a formal method of static analysis, with various
test adequacy criteria, to explore the e ectiveness of using symbolic execution for calculating
code coverage on a program's existing JUnit test suites. Code coverage is measured with a
number of test adequacy criteria, including statement coverage, branch coverage, condition
coverage, method coverage, class coverage, and loop coverage. The results of the code coverage
calculation is then used to automatically generate JUnit test cases for areas of a program that
are not su ciently covered. The level of redundancy of each test case is also calculated during
coverage calculation, thereby identifying fully redundant, and partially redundant, test cases.
The combination of symbolic execution and code coverage calculation is extended to perform
coverage calculation during a manual execution of a program, allowing testers to measure the
e ectiveness of manual testing.
This is implemented as an Eclipse plug-in, named ATCO, which attempts to take advantage
of the Eclipse workspace and extensible user interface environment to improve usability of the
tool by minimizing the user interaction required to use the tool.
The code coverage calculation process uses constraint solving to determine method parameter
values to reach speci c areas in the program. Constraint solving is an expensive
computation, so the tool was parallellised using Java's Concurrency package, to reduce the
overall execution time of the tool. / AFRIKAANSE OPSOMMING: Hierdie navorsing kombineer simboliese uitvoering, 'n formele metode van statiese analise, met
verskeie toets genoegsaamheid kriteria, om die e ektiwiteit van die gebruik van simboliese
uitvoer te ondersoek vir die berekening van kode dekking op 'n program se bestaande JUnit
toets stelle. Kode dekking word gemeet deur verskeie toets genoegsaamheid kriteria, insluited
stelling dekking, tak dekking, kondisie dekking, metode dekking, klas dekking, en lus dekking.
Die resultate van die kode dekking berekeninge word dan gebruik om outomaties JUnit toets
voorbeelde te genereer vir areas van 'n program wat nie doeltre end ondersoek word nie. Die
vlak van oortolligheid van elke toets voorbeeld word ook bereken gedurende die dekkingsberekening,
en daardeur word volledig oortollige, en gedeeltelik oortollige, toets voorbeelde
identi seer. Die kombinasie van simboliese uitvoer en kode dekking berekening is uitgebrei
deur die uitvoer van dekking berekeninge van 'n gebruiker-beheerde uitvoer, om sodoende kode
dekking van 'n gebruiker-beheerde uitvoer van 'n program te meet. Dit laat toetsers toe om
die e ektiwiteit van hulle beheerde uitvoer te meet.
Bogenoemde word ge mplimenteer as 'n Eclipse aanvoegsel, genaamd ATCO, wat poog om
voordeel te trek vanuit die Eclipse werkspasie, en die uitbreibare gebruiker oordrag omgewing,
om die bruikbaarheid van ATCO te verbeter, deur die vermindering van die gebruiker interaksie
wat benodig word om ATCO te gebruik.
Die kode dekking berekeningsproses gebruik beperking oplossing om metode invoer waardes
te bereken, om spesi eke areas in die program te bereik. Beperking oplossing is 'n duur berekening,
so ATCO is geparalleliseer, met behulp van Java se Concurrency pakket, om die algehele
uitvoer tyd van die program te verminder.
|
77 |
使 Eclipse 平台具備遠端外掛程式功能之研究 / Enhance Eclipse platform with remote plug-ins林庭瑋 Unknown Date (has links)
Eclipse 是目前最廣受歡迎的軟體工具整合平台,其可擴充的架構,允許第三方撰寫名為 Plug-in 的擴充套件將既有的或是新開發的工具程式整合至此平台。然而隨著 Eclipse 的普及以及可用工具套件的增加,衍生的困擾則是幾乎每一套 Eclipse 平台都會裝載過多的工具。雖然 Eclipse 的架構提供了諸如 Plug-in 的延遲載入(Lazy-Loading)、快速裝載與更新等功能,讓 Eclipse 平台具有相當高度的可延展性(Scalability),但整體效能還是會因為裝載過多的工具程式而下滑。
為了解決上述問題,本研究提出一套名為 Remote Plug-in 的解決方案,允許使用者或是廠商將原生(Native)或非原生的工具發布到遠端站台,並透過本研究提供的開發工具快速產生包裝程式,讓標的工具能以 Web Services 的型式發布到站台上供使用者叫用。另一方面,需要使用這些工具服務的 Eclipse 平台則可以透過本研究提供的輔助 Plug-in 提供之功能,直接叫用這些工具服務,效果則有如使用安裝於相同電腦的 Plug-in 一樣。
此作法除了能降低 Plug-in 的安裝數量,進而改善 Eclipse 平台的整體效能外,也能減少許多不常使用工具的裝卸。此外,Remote Plug-in 架構的其他優點在於讓用戶得以使用在其平台無法安裝執行的工具程式,軟體商亦可經由發布 Remote Plug-in 加強對軟體的記錄控管。 / Since its inception in 2001, Eclipse has quickly become the most popular platform for software development, partly thanks to its extensible architecture, which allows third parties to easily integrate their software tools into the platform in the form of plug-ins. As the quick increase and abundance of free or cheap Eclipse plug-ins available to the public, coming up also is the problem that most users install too many plug-ins than tolerable in a platform. Although the designers of Eclipse have develped mechanisms such as Lazy-Loading [42], and quick installation and update subsystem to make Eclipse scalable, the overall performance is inevitably degraded for the installation of too many plug-ins.
In order to overcome this problem, we propose in this thesis a method called remote plug-ins which can enable the distribution and sharing of plug-ins in remote sites. Users or ISVs (independent software vendors) can deploy their tools on remote sites and use the tool we have developed to wrap them as web services accepting requests from Eclipse platforms. On the other hand, users needing services of remote plug-ins could install in their local Eclipse the proxy plug-in which we developed for requesting services of remote plug-ins. With the help of the proxy, remote plug-ins can be invoked as if they were local ones.
By moving unnecessary plug-ins outside of local Eclipse installation, not only can our method improve the overall performance of the platform, but it can also diminish the waste of time on tedious installation and uninstallation of plug-ins which are seldom used. Other advantages of our method include the feasibility of invoking remote plug-ins which are either hard or unable to be installed in local Eclipse, as well as more complete control of vendors to client's access to their tools deployed as remote plug-ins.
|
78 |
Generación de planes de desarrollo a partir de procesos formalizadosLópez Quevedo, Agustín Andrés January 2016 (has links)
Ingeniero Civil en Computación / El contexto de este trabajo de título se enmarca en empresas que pertenecen al rubro de desarrollo de software en Chile. En particular, este trabajo se enfoca en la operación de las pequeñas y medianas empresas (PyMEs). Estas son típicamente diferentes a las grandes empresas de software en términos de su operatoria, lo cual hace que la gestión de los proyectos requiera consideraciones particulares para ellas.
Un problema de las PyMEs de desarrollo de software chilenas es que carecen de un proceso automático para la generación de planes de desarrollo a partir de sus procesos formalizados. Es decir, a partir de sus procesos formalizados ellos tienen que crear manualmente sus planes de desarrollo, lo que les toma tiempo y esfuerzo considerable.
El objetivo general de la memoria es el definir, diseñar e implementar una herramienta capaz de generar, en forma automática, planes de desarrollo para proyectos de software a partir del proceso de desarrollo de una empresa y de la información de los recursos asignados al proyecto.
En este proyecto se implementó un sistema capaz de obtener la información de un proceso formalizado, para luego generar de forma automática un plan de desarrollo. Para ello se definieron los requisitos mínimos que el sistema debía cumplir; dentro de los más destacables, se emplean tecnologías open source y las más populares en el rubro. Las herramientas utilizadas fueron: Eclipse Process Framework Composer (EPFC) en la cual se formalizan los procesos de desarrollo de las PyMEs y Redmine, una plataforma web de gestión de proyectos, usada para crear planes de desarrollo.
La solución consiste en dos plugins y un artefacto de intercambio. Uno de ellos llamado XmlGen se integra a EPFC y extrae la información del proceso formalizado y la transfiere a un artefacto de intercambio, que en este caso es un archivo XML. Finalmente el segundo plugin, llamado XmlImport, se integra con Redmine, éste lee la información del archivo XML y construye el plan de desarrollo del proyecto en la plataforma.
Con el fin de validar la solución propuesta y desarrollada, se utilizó un proceso de desarrollo de software formalizado por la PyME de desarrollo de software Ki Teknology. Con él se presentó una serie de demostraciones del sistema a paneles de expertos que opinaron sobre el funcionamiento de este, lo que conllevó a su validación y, finalmente, a un potencial uso en la operación de las PyMEs. Finalmente se concluye que el sistema desarrollado logra satisfacer el problema planteado: generar automáticamente planes de desarrollo para un proyecto a partir de un proceso formalizado.
|
79 |
Génération de squelettes des contrats de classes et des tests unitaires en JavaMaïga, Cheick Ismaël January 2016 (has links)
Le logiciel est devenu omniprésent dans nos vies de sorte qu'on le retrouve dans plusieurs domaines de la vie courante. Cependant cette omniprésence, n'est pas sans conséquences. Les bogues de logiciel peuvent causer de vrais désastres, économiques, écologiques voire sanitaires. Vu la forte omniprésente du logiciel dans nos vies, le fonctionnement de nos sociétés dépend fortement de sa qualité.
La programmation par contrat a pour but de produire des logiciels fiables, c'est-à-dire corrects et robustes. En effet, ce paradigme de programmation vise à introduire des assertions qui sont des spécifications de services. Ces spécifications représentent une forme de contrat. Les contrats définissent les responsabilités entre le client et le fournisseur. Le respect des contrats permet de garantir que le logiciel ne fait ni plus ni moins que ce que l'on attend de lui qu'il fasse.
Le test unitaire est un test qui permet de s'assurer du bon fonctionnement d'une partie précise d'un logiciel. C'est un test dont la vérification se fait en exécutant une petite unité de code. En somme, un test unitaire est un code qui exécute de manière indirecte le code d'une classe pour vérifier que le code fonctionne bien.
L'outil Génération de Squelettes des Contrats de classes et des tests unitaires (GACTUS) permet la génération automatique de squelettes de contrats de classes et celles des classes des tests unitaires d'un projet Java. La génération automatique du code source permet d'obtenir un code uniforme. GACTUS est un plug-in pour l'environnement de développement Eclipse écrit en Java. L'objectif principal de GACTUS est de faciliter la réalisation de logiciel de qualité grâce à la génération automatique des squelettes de contrats de classe et celui des tests unitaires et aussi d'accroître la productivité des développeurs. Pour faciliter son utilisation, GACTUS dispose d'une interface graphique permettant de guider l'utilisateur.
|
80 |
Architektura aplikací pro mobilní zařízení / Architecture of applications for mobile devicesHavel, Vojtěch January 2010 (has links)
This thesis discusses the architecture and the development of applications for mobile device, namely of applications in Java ME platform. The goal of this paper is to draw near the problematic of development for mobile device, analyse pros and cons of several solutions and design the architecture for a few type applications in chosen solution. The theoretical part of this thesis includes the introduction to the mobile development, discussion of benefits and drawbacks of development in Java ME in comparison with other possible solutions, description of main Java ME elements and choosing of type applications for practical part. In the hands-on part of this thesis are chosen the development tools and using previously described elements, the architectures for type applications are made. For each of type application is designed and developed real-life usable application.
|
Page generated in 0.0175 seconds