Spelling suggestions: "subject:"applied ciences"" "subject:"applied csciences""
311 |
McSAF: An extensible static analysis framework for the MATLAB languageDoherty, Jesse January 2012 (has links)
MATLAB is a popular language for scientific and numerical programming. Despite its popularity, there are few active rojects providing open tools for MATLAB related compiler research. This thesis provides the McLAB Static Analysis Framework, McSAF, the goal of which is to simplify the development of new compiler tools for MATLAB. The McLAB project was started in order to develop such tools in the hopes of attracting further research. The goal of the project is to provide an extensible compiler toolkit for MATLAB and scientific programming. It is intended to explore the compilation challenges unique to MATLAB and to explore new language features that could help scientific programmers be more productive. One piece of functionality that is particularly important for compiler research is the ability to perform static analysis. Without the information provided by static analyses, program transformations and optimizations, and automated programmer feedback would not be possible. In order to make the development of static analyses simpler, this thesis contributes a framework for creating static analyses for the MATLAB language. This framework is intended to make writing analyses easier by providing core functionality and API for developing such analyses. It also aims to make analysis development easier by providing an intermediate representation called McLAST, which provides simpler syntax and explicitly exposes some of MATLAB's semantics. In order to give analysis writers a head start, some example analyses are provided. These include simple analyses intended to demonstrate the use of the framework, and some more complicated analyses that provide basic semantic information about MATLAB programs. In addition to the framework making development of analyses simpler, McSAF is also designed to be extended to new language features. Not only can the framework be extended, but existing analyses can also be extended. This allows work that was previously done for analyzing MATLAB code to be applied to future language extensions. / MATLAb est un langage de programmation science et numérique utilisé autant en industrie que dans le milieu académique. Malgré cette popularité, peu de project de rercherhe on été entreprise dans le but de produire une suite de compilation pour MATLAB. Cette thèse contribue le McLAB Static Analysis Framework, McSAF, qui a l'objectif de simplifier le développement des nouveaux outils de compilation pour MATLAB. Le projet McLAB fait suite à ce manque, dans l'espoir d'attiser les recherches sur ce sujet. L'objectif principale ce résume au développent d'une trousse de compilation extensible pour MATLAB et les langage de programmation pour science. Le projet est motivé par des défis de compilation unique à MATLAB, et par l'exploration de nouvelles structures syntaxical améliorant l'expérience de programmation scientifique. L'une des fonctionnalité cher au domaine de la compilation est l'habilité a performer des analyses statique de programme. Sans ces informations que nous procures l'analyse statique, une grande partie des transformations et autres optimisations désiré lors du processus de compilation ne serait pas possible. Pour rendre la développent des analyses statique plus simple, cette thèse contribue un cadre pour créer des analyses statique pour le langage MATLAB. L'objectif de ce cadre est de rendre la programmation des analyses plus simple en fournissant les fonctionnalités de base et une API pour développer de telles analyses. Un autre objectif est de rendre le développent des analyses plus simple en fournissant une représentation intermédiaire, \mclast, qui fourni une syntaxe plus simple est qui expose les sémantiques de MATLAB. Pour aider les écrivains d'analyse, quelques exemples d'analyse sont fournis. En plus, quelques analyses utiles sont également fournis. Ces analyses fournissent des informations de base reliée à les sémantiques de MATLAB. Ils ont des application partout dans le projet. L'objectif final du cadre est d'être extensible. Le framework doit fonctionner avec des nouvelles structure de langue. Sa veut dire que les programmeur peuvent créer des nouvelles analyses pour ces extension, et que les analyses qui existaient pour le langage de base, peut être adapter aux nouvelles structure.
|
312 |
Enabling precise interpretations of software change dataKawrykow, David January 2012 (has links)
Numerous techniques mine change data captured in software archives to assist software engineering efforts. These change-based approaches typically analyze change sets -- groups of co-committed changes -- under the assumption that the development work represented by change sets is both meaningful and related to a single change task. However, we have found that change sets often violate this assumption by containing changes that we consider to be non-essential, or less likely to be representative of the kind of meaningful software development effort that is most interesting to typical change-based approaches. Furthermore, we have found many change sets addressing multiple subtasks -- groups of isolated changes that are related to each other, but not to other changes within a change set. Information mined from such change sets has the potential for interfering with the analyses of various change-based approaches. We propose a catalog of non-essential changes and describe an automated technique for detecting such changes within version histories. We used our technique to conduct an empirical investigation of over 30000 change sets capturing over 25 years of cumulative development activity in ten open-source Java systems. Our investigation found that between 3% and 26% of all modified code lines and between 2% and 16% of all method updates consisted entirely of non-essential modifications. We further found that eliminating such modifications reduces the amount of false positive recommendations that would be made by an existing association rule miner. These findings are supported by a manual evaluation of our detection technique, in which we found that our technique falsely identifies non-essential method updates in only 0.2% of all cases. These observations should be kept in mind when interpreting insights derived from version repositories. We also propose a formal definition of "subtasks" and present an automated technique for detecting subtasks within change sets. We describe a new benchmark containing over 1800 manually classified change sets drawn from seven open-source Java systems. We evaluated our technique on the benchmark and found that the technique classifies single- and multi-task change sets with a precision of 80% and a recall of 24%. In contrast, the current "default strategy" of assuming all change sets are single-task classifies single- and multi-task change sets with a precision of 95% and a recall of 0%. We further characterized the performance of our technique by manually assessing its false classifications. We found that in most cases (78%), false classifications made by our technique can be further refined to produce useful recommendations for change-based approaches. Our observations should aid future change-based seeking to derive more precise representations of the changes they analyze. / De nombreuses techniques de génie logiciel exploitent l'information stockée dans des systèmes de gestion de versions. Ces techniques analysent généralement des groupes de changements (ou change sets) sous l'hypothèse que le travail de développement contenus dans ces change sets est à la fois pertinent et relié à une seule tâche. Nous avons constaté que les change sets violent souvent cette hypothèse lorsqu'ils contiennent des changements que nous considérons comme non-essentiels, c'est-à-dire, non-représentatif des changements normalement associés au développement de logiciel. Par ailleurs, nous avons trouvé de nombreux change sets qui contiennent plusieurs sous-tâches -- des groupes de changements isolés qui sont reliés les uns aux autres, mais pas à d'autres changements du même change set. L'information extraite de change sets contenants des changements non-essentiels ou des changements reliés à plusieurs sous-tâches peut interférer avec les diverses techniques qui exploitent des systèmes de gestion de versions. Nous proposons un catalogue de modifications non-essentielles et une technique automatisée pour détecter de tels changements dans les systèmes de gestion de versions. Nous avons utilisé notre technique pour mener une étude empirique de plus de 30,000 change sets dans dix logiciels libres en Java. Notre étude a révélé que entre 3% et 26% de toutes les lignes de code modifiés et entre 2% et 16% de toutes les méthodes modifiées sont modifiés seulement par des modifications non-essentielles. Nous avons également constaté que l'élimination de telles modifications réduit la quantité de fausses recommandations qui seraient faites par un analyse de type "associtation rule mining." Ces conclusions sont appuyées par une évaluation manuelle de notre technique de détection, par laquelle nous avons constaté que notre technique identifie faussement des méthodes non-essentielles dans seulement 0,2% des cas. Ces observations devraient être tenues en compte dans l'interprétation des résultats d'analyse de données contenues das des systèmes de gestion de versions. Nous proposons aussi une définition formelle de "sous-tâches" et présentons une technique automatisée pour détecter les sous-tâches dans les change sets. Nous décrivons un benchmark contenant plus de 1800 change sets tirées de sept systèmes Java. Nous avons évalué notre technique sur cette référence et avons trouvé que la technique classifie des change sets mono-tâche et multi-tâche avec une précision de 80% et un rappel de 24%. En revanche, la "stratégie par défaut" qui assume que tous les change sets sont mono-tâches classifie les change sets avec une précision de 95% et un rappel de 0%. Nous avons également caractérisé la performance de notre technique en évaluant manuellement ses classifications erronées. Nous avons constaté que dans la plupart des cas (78%), les classifications fausses faites par notre technique peuvent être améliorées pour produire des recommandations utiles.
|
313 |
Scalable object-based load balancing in multi-tier architecturesJoshipura, Sanket Manjul January 2012 (has links)
An exponential growth in internet usage and penetration amongst the general population has led to an ever increasing demand for e-commerce applications and other internet-based services. E-commerce applications must provide high levels of service that include reliability, low response times and scalability. Most e-commerce applications follow a multi-tier architecture. As they are highly dynamic and data-intensive, the database is often a bottleneck in the whole system as most systems deploy multiple application servers in the replicated application tier, while only deploying a single database as managing a replicated database is not a trivial task. Hence, in order to achieve scalability, caching of data at the application server is an attractive option.In this thesis, we develop effective load balancing and caching strategies for read-only transaction workloads that help scaling multi-tier architectures and improve their performance. Our strategies have several special features. Firstly, our strategies take into account statistics about the objects of the cache, such as access frequency. Secondly, our algorithms that generate the strategies, despite being object-aware, are generic in nature, and thus, not limited to any specific type of applications. The main objective is to direct a request to an appropriate application server so that there is a high probability that the objects required to serve that request can be accessed from the cache, avoiding a database access. We have developed a whole suite of strategies, which differ in the way they assign objects and requests to application servers. We use distributed caching so as to make better utilization of the aggregate cache capacity of the application servers. Experimental results show that our strategies are promising and help to improve performance. / Une croissance exponentielle de l'utilisation d'Internet et sa pénétration dans la population générale ont conduit à une demande toujours croissante d'applications de commerce électronique et d'autres services basés sur l'internet. Les applications de commerce électronique doivent fournir des niveaux élevés de services qui comprennent la fiabilité, un court temps de réponse et de la variabilité dimensionnelle. La plupart des applications de commerce électronique suivent une architecture multi-niveau. Comme elles sont très dynamiques et possèdent une forte intensité de données, la base de données est souvent un goulot d'étranglement dans le système en entier comme la plupart des systèmes déploient des serveurs d'applications multiples dans l'application tierce reproduite. D'un autre côté, le déploiement d'une base de données unique pour la gestion d'une base de données répliquée n'est pas une tâche simple. Ainsi, afin de parvenir à une variabilité dimensionnelle, la mise en cache des données au serveur d'applications est une option attrayante.Dans cette thèse, nous développons un équilibrage de charge efficace et des stratégies de mise en cache qui aident à échelonner les architectures multi-niveaux et à améliorer leurs performances. Nos stratégies ont plusieurs caractéristiques particulières. Premièrement, nos stratégies prennent en compte les statistiques sur les objets de la mémoire cache, comme la fréquence d'accès. Deuxièmement, nos algorithmes qui génèrent les stratégies, tout en étant conscients des objets, sont de nature générique, et donc, ne se limitent pas à un type spécifique d'applications. L'objectif principal est de diriger une requête au serveur d'applications approprié afin qu'il y ait une forte probabilité que les objets requis pour servir cette demande puissent être consultés à partir de la mémoire cache, évitant un accès à la base de données. Nous avons développé toute une série de stratégies qui différent dans leur façon d'assigner des objets et des requêtes aux serveurs d'applications. Nous utilisons une mise en cache distribuée de manière à mieux utiliser la capacité totale de la mémoire cache des serveurs d'applications. Les résultats expérimentaux montrent que nos stratégies sont prometteuses et permettent d'améliorer les performances.
|
314 |
Combined static-dynamic deformations with haptic renderingSedaghat, Yasaman January 2012 (has links)
We present a real-time, physically based simulation method for animating high-resolution elastic deformations with a focus on haptic interaction. To achieve interactive rates without losing accuracy, the reduced material stiffness matrix is precomputed by removing the equations that correspond to the internal nodes of the system. In addition, we employ linear modal analysis to precompute the natural vibration modes of the system. We introduce a deformation-coupling technique in order to achieve the reduced dynamic behaviour while keeping the high-resolution local deformations. During real-time simulation, the high-spatial-frequency static deformations are coupled with the low-spatial-frequency dynamics, by projecting the reduced coordinate deformations onto an orthogonal basis constructed from natural vibration modes. To explore the implications of the coupling system, we describe different integration techniques to time-step the reduced dynamic solution in addition to evaluating the force feedback. Moreover, we show how we handle multiple contact points for non-sticky materials. To improve the contact-handling procedure, we employ our sliding technique to include friction. We compare our proposed method to the previously existing techniques in terms of run-time complexity and deformation properties using 3D meshes embedded in finite elements. / Nous présentons une méthode de simulation temps réel conforme aux lois de la physique pour animer des déformations élastiques à haute résolution, tout en portant une attention particulière aux interactions haptiques. Pour obtenir un résultat permettant une interaction temps réel sans perte de précision, la matrice réduite de rigidité du matériau est précalculée en excluant les équations correspondant aux noeuds internes du système. De plus, nous avons recours à l'analyse modale linéaire pour pré-calculer les modes de vibration naturelle du système. Nous proposons une technique de couplage des déformations afin d'obtenir le comportement à dynamique réduite recherché tout en préservant les propriétés des déformations locales à haute résolution. Lors de la simulation temps réel, les déformations statiques à haute fréquence spatiale sont couplées à la dynamique spatiale réduite à basse fréquence en projetant les déformations en coordonnées réduites sur une base orthogonale construite à partir des modes de vibration naturelle. Afin d'explorer l'impact du système de couplage, nous décrivons différentes techniques d'intégration pour avancer la solution de dynamique réduite dans le temps tout en évaluant le retour de force haptique. De plus, nous détaillons notre approche pour la gestion de points de contact multiples pour des matériaux non-adhésifs ainsi que notre méthode pour la gestion du glissement. Nous comparons la méthode que nous avançons aux techniques existantes en termes de complexité du temps d'exécution et en termes des propriétés de déformation, et ce en utilisant un maillage 3D intégré à un système à éléments finis.
|
315 |
On the three-dimensional visibility skeleton: implementation and analysisZhang, Linqiao January 2009 (has links)
The visibility skeleton is a data structure that encodes global visibility information of a given scene in either 2D or 3D. While this data structure is in principle very useful in answering global visibility queries, its high order worst-case complexity, especially in 3D scene, appears to be prohibitive. However, previous theoretical research has indicated that the expected size of this data structure can be linear under some restricted conditions. This thesis advances the study of the size of the visibility skeleton, namely, using an experimental approach. We first show that, both theoretically and experimentally, the expected size of the visibility skeleton in 2D is linear, and present a linear asymptote that facilitates estimation of the size of the 2D visibility skeleton. We then study the 3D visibility skeleton defined by visual events, which is a subset of the full skeleton defined by Durand et al. We first present an implementation to compute the vertices of that skeleton for convex disjoint polytopes in general position. This implementation makes it possible to carry on our empirical study in 3D. We consider input scenes that consist of disjoint convex polytopes that approximate randomly distributed unit spheres. We found that, in our setting, the size of the 3D visibility skeleton is quadratically related to the number of the input polytopes and linearly related to the expected silhouette size of the input polytopes. This estimate is much lower than the worst-case complexity, but higher than the expected linear complexity that we had initially hoped for. We also provide arguments that could explain the obtained complexity. We finally prove that, using the 3D visibility skeleton defined by visual events, we can compute the remaining vertices of the full skeleton in almost linear time in the size of their output. / Le squelette de visibilité est une structure de donnée qui encode l'information de visibilité globale pour une scène donnée en 2D ou 3D. Cette structure de donnée est en principe très utile pour répondre à des requêtes de visiblité globale, mais elle est, en particulier en 3D, d'une complexité de haut degré dans le pire des cas qui semble prohibitive. Cependant, les recherches théoriques précédentes ont indiqué que l'espérance de la taille de cette structure de donnée peut être linéaire sous certaines conditions restreintes. Cette thèse approfondit l'étude de la taille du squelette de visibilité, au moyen d'une approche expérimentale. Nous montrons d'abord qu'aussi bien théoriquement qu'empiriquement, l'espérance de la taille du squelette de visibilité en 2D est linéaire, et présentons une asymptote affine qui facilite l'estimation de la taille du squelette de visibilité en 2D. Nous étudions ensuite le squelette de visibilité 3D défini par événement visuels, qui est un sous-ensemble du squelette complet défini par Durand et al. Nous présentons tout d'abord une implantation calculant les sommets de ce squelette pour des polytopes convexes disjoints en position générale. Cette implantation nous permet de continuer notre étude empirique en 3D. Nous considérons des scénes données consistant en des polytopes convexes disjoints qui sont une approximation de sphéres unités distribuées aléatoirement. Nous avons découvert que, dans ces conditions, la taille du squelette de visibilité 3D a une relation quadratique en le nombre de polytopes donnés, et linéaire en l'espérance de la taille de la silhouette des polytopes donnés. Cette estimation est bien plus basse que la complexité dans le pire des cas, mais plus haute que la complexité linéaire que nous espérions initialement. Nous présentons aussi des arguments qui pourraient expliquer la co
|
316 |
Dependability-oriented model-driven requirements engineering for reactive systemsMustafiz, Sadaf January 2010 (has links)
Errors made during requirements development of dependable systems are very expensive to fix later in the lifecycle, and can result in minor to catastrophic failures. Discovering and documenting potential abnormal situations and irregular user behavior that can interrupt normal system interaction is of tremendous importance in the context of dependable systems development. Exceptions that are not identified during requirements elicitation might eventually lead to an incomplete system specification during analysis, and ultimately to an implementation that lacks certain functionality, or even behaves in an unreliable way. / This thesis introduces a model-driven requirement development process that systematically guides the developer to consider reliability and safety concerns of dependable reactive systems. Our Dependability-Oriented Requirements Engineering Process (DREP) comprises of five phases: requirements elicitation, requirements specification, dependability assessment, dependability-based refinement, and requirements summary. / Our approach extends use case-based elicitation with ideas from the exception handling world. It leads the developer to explore exceptional situations arising in the environment that change user goals and service-related exceptional situations that threaten to fail user goals. The process requires the developer to specify means that detect such situations, to define the recovery measures that attempt to continue to provide service in a dependable manner, to offer degraded services where applicable or to ensure system and user safety. The need for exceptional modes of operation is also taken into account. The notions of dependability are integrated in activity diagrams and communication diagrams, which are used as specification models. / We also propose a probabilistic extension of statecharts to formally model the interaction requirements defined in the use cases. The formalism, DA-Charts, allows a modeller to use success and failure probabilities to model the unreliable behaviour of the environment. Subsequently, the model can be probabilistically analyzed to determine achievable reliability and safety of the system interactions. A visual modelling environment for DA-Charts supporting automatic probability analysis has been implemented. / We show that the proposed methodology leads to notable improvement in system dependability by applying our work to three case studies: the Elevator Control System, the 407 Express Toll Route System, and the Crisis Management System. / Lorsque l'on développe des systèmes fiables, les erreurs ou oublis qui pourraient éventuellement se glisser dans la spécification du système peuvent avoir des conséquences néfastes, et pas seulement du point de vue monétaire. / Il est par conséquent impératif de découvrir et d'analyser toute situation anormale ou comportement irrégulier d'un utilisateur du système qui pourrait interrompre le fonctionnement et les interactions habituelles du système. Une telle exception, qui n'aurait pas été découverte pendant la phase d'analyse des besoins, produirait une spécification de l'application à développer contenant des lacunes, ce qui, à la fin, causerait une implémentation de l'application à laquelle il manquerait des fonctionnalitées, ou qui se comporterait d'une manière peu fiable. / Cette thèse présente un processus de développement orienté modèle qui mène le développeur à prêter une attention particulière à la sûreté et à la fiabilité du système en développement. Notre approche, nommée DREP, est constituée de cinq phases: la découverte des besoins, la spécification des besoins, l'évaluation de la fiabilité, le raffinement, et le résumé des besoins. / Notre phase de découverte des besoins se base sur les cas d'utilisation. Elle mène le développeur à considérer des situations exceptionnelles qui pourraient surgir dans l'environnement et changer les buts des utilisateurs du système. Le développeur est également poussé à réfléchir aux situations qui pourrait empêcher le système de fournir un service avec succès. Dans ces cas, DREP demande au développeur de spécifier les démarches à suivre pour traiter cette situation, si possible en continuant à fournir le service demandé, ou à défaut, en fournissant un service diminué, ou simplement en s'assurent que le système s'arrête sans causer de dommage. DREP intègre également la notion de modes exceptionnels d'opération du système. / DREP propose des extensions au diagrammes d'activités et de communication d'UML pour permettre au développeur d'exprimer la fiabilité dans les modèles de spécification du système. Une extension des diagrammes d'états intégrant les probabilités permet de modéliser les pannes qui pourraient surgir dans l'environnement. Un outil d'analyse permet ensuite de déterminer la sûreté et la fiabilité atteignable du système. / On démontre que notre approche génère des spécifications de systèmes plus fiables avec trois cas d'études: un contrôleur d'ascenseur, un système de collecte de payage d'autoroute, et un système de gestion de crises.
|
317 |
Unsupervised learning for mobile robot terrain classificationGiguère, Philippe January 2010 (has links)
No description available.
|
318 |
Security and privacy analysis of radio frequency identification systemsYassaei, Mahshid January 2013 (has links)
No description available.
|
319 |
Persistent transaction models for massively multiplayer online gamesZhang, Kaiwen January 2010 (has links)
No description available.
|
320 |
An integrative bioinformatics approach for developing predictors of recurrence for the triple negative and basal subtypes of breast cancerShahalizadeh Kalkhoran, Solmaz January 2011 (has links)
No description available.
|
Page generated in 0.047 seconds