291 |
Um roteiro para a redução de tempo no desenvolvimento de projetos de software. / A roadmap for cycle time reduction in software development.Ribeiro, André Luiz Dias 15 December 2006 (has links)
A realização de projetos dentro do prazo estabelecido é um fator comum em diversas áreas de produção como a engenharia civil, de aviação, química, transportes, indústria em geral, entre outras. No entanto, na engenharia de software, a questão do tempo na construção de um produto é um desafio de processo a ser superado em cada novo projeto. O cumprimento de prazos no desenvolvimento de software é tão crítico que o próprio controle de atrasos no ciclo de produção é um fator a ser considerado na análise de redução do tempo de desenvolvimento. A complexidade do ambiente de software, a competitividade de mercado, as mudanças de requisitos constantes durante o projeto e o tempo disponível cada vez mais restrito, aumentam as chances de insucesso quando analisado o indicador de tempo na produção de software. O objetivo deste trabalho é reunir e organizar as práticas e técnicas de engenharia de software em um roteiro que permita a redução do tempo no desenvolvimento do software. Neste roteiro, é descrita a utilização organizada e planejada das práticas de engenharia de software que auxiliam no planejamento, na criação da arquitetura de solução, na definição da infra-estrutura técnica para reutilização e a utilização da engenharia simultânea, visando proporcionar ganhos reais no tempo de produção do software e no aumento da produtividade. / The completion of software project within schedule is a common goal in several industries like building engineering, aviation, chemical, transport, wares and so on. However, in software engineering, the schedule is a process challenge from the beginning of each new project. The time is so critical that the delay control is an analysis point for cycle time reduction in software development. The complex environment, the pressure to reduce time-to-market, frequent requirements changes during the project life-cycle, increase the failure chance of software projects when we analyze the time indicator in the software development process. The dissertation goal is to meet and to organize of software engineering practices and techniques in an organized roadmap aiming cycle time reduction in software development. In this roadmap, the practices are organized to help software planning, solution architecture, component based development definition, to promote reuse and concurrent engineering with purpose to reduce cycle time software development and improve productivity.
|
292 |
Projeto arquitetural de sistemas robóticos orientados a serviços / Architectural design of service-oriented robotic systemsOliveira, Lucas Bueno Ruas de 30 June 2015 (has links)
A robótica tem passado por uma notável evolução ao longo dos últimos anos, juntamente com um crescente interesse por parte da sociedade. Robôs não são mais exclusivamente produzidos para realizar atividades repetitivas em fábricas, eles têm sido projetados para apoiar humanos em diversos e importantes domínios de aplicação. Os sistemas robóticos utilizados para controlar tais robôs têm, portanto, se tornado maiores, mais complexos e difíceis de desenvolver. Nesse cenário, a Arquitetura Orientada a Serviços (do inglês, Service-Oriented Architecture - SOA) tem sido investigada como um promissor estilo arquitetural para o desenvolvimento de sistemas robóticos de forma mais flexível, reusável e produtiva. Embora um número considerável de Sistemas Robóticos Orientados a Serviços (do inglês, Service-Oriented Robotic Systems - SORS) já exista, grande parte deles têm sido desenvolvida de maneira ad hoc. A pouca atenção e o suporte limitado ao projeto das arquiteturas de software de SORS pode não só impedir a obtenção dos benefícios associados à adoção da SOA, mas também reduzir a qualidade dos sistemas robóticos que, frequentemente, são utilizados em contextos de segurança crítica. Essa tese tem por objetivo aprimorar o entendimento e a sistematização do projeto arquitetural de SORS. Para isso, é proposta uma taxonomia de serviços para o domínio de robótica, bem como um processo e uma arquitetura de referência para sistematizar o projeto das arquiteturas de software de SORS. Os resultados obtidos evidenciam que tanto o processo quanto a arquitetura de referência podem impactar positivamente na qualidade das arquiteturas de software de SORS e, consequentemente, contribuir para o desenvolvimento de sistemas robóticos. / Robotics has experienced an increasing evolution and interest from the society in recent years. Robots are no longer produced exclusively to perform repetitive tasks in factories, they have been designed to collaborate with humans in several important application domains. Robotic systems that control these robots are therefore becoming larger, more complex, and difficult to develop. In this scenario, Service-Oriented Architecture (SOA) has been investigated as a promising architectural style for the design of robotic systems in a exible, reusable, and productive manner. Despite the existence of a considerable amount of Service-Oriented Robotic Systems (SORS), most of them have been developed in an ad hoc manner. The little attention and limited support devoted to the design of SORS software architectures may not only hamper the benefits of SOA adoption, but also reduce the overall quality of robotic systems, which are often used in safety-critical contexts. This thesis aims at improving the understanding and systematization of SORS architectural design. It describes a taxonomy of services for the robotics domain, as well as proposes a process and a reference architecture that systematize the design of SORS software architectures. Results achieved in the evaluation studies evidence that both process and reference architecture can positively impact on the quality of SORS software architectures and, as a consequence, contribute to the development of robotic systems.
|
293 |
[en] AN ASPECT-ORIENTED FRAMEWORK FOR SOFTWARE AGENTS MOBILITY / [pt] UM FRAMEWORK ORIENTADO A ASPECTOS PARA MOBILIDADE DE AGENTES DE SOFTWARECIDIANE ARACATY LOBATO 29 March 2006 (has links)
[pt] Engenheiros de sistemas multi-agentes (SMAs) móveis devem
lidar com
o projeto e a implementação de mobilidade de código, além
do projeto e
implementação de funcionalidades básicas e outros
requisitos. À medida que a
complexidade dos SMAs aumenta, questões referentes à
mobilidade não podem
ser modularizadas somente a partir da utilização de
abstrações e mecanismos
orientados a objetos (OO). Além disso, vários
programadores freqüentemente
evidenciam a presença de problemas de entrelaçamento e
espalhamento em suas
linhas de código referentes à mobilidade. Apesar de tais
problemas, os
desenvolvedores de SMAs têm se apoiado vastamente na
utilização de
interfaces de programação de aplicações (APIs) OO das
plataformas de
mobilidade e na linguagem de programação Java. O resultado
é a produção de
SMAs que são difíceis de entender, manter e reutilizar.
Este trabalho apresenta
três contribuições principais. Primeiramente, é realizada
uma análise das
soluções existentes para separação dos interesses de
mobilidade. Além disso,
são propostos a arquitetura de software ArchM e o
framework AspectM, ambos
baseados em aspectos, visando: (i) uma clara separação dos
interesses de
mobilidade em relação às funcionalidades básicas e outros
requisitos, (ii) uma
introdução transparente do código de mobilidade em agentes
estacionários, e
(iii) uma integração flexível dos SMAs com plataformas de
mobilidade
existentes. O desenvolvimento de software orientado a
aspectos é um novo
paradigma com abstrações e mecanismos de composição que
possibilitam o
aumento do grau de reusabilidade e manutenibilidade dos
sistemas. Os
benefícios de ArchM e AspectM são ilustrados através de
dois estudos de caso e
com o uso de duas plataformas de mobilidade. / [en] Software engineers of multi-agent systems (MASs) are
concerned with
the design and implementation of the mobility issues in
addition to the agents`
basic functionalities and other agent-related concerns. As
the agents`
complexity increases, mobility issues cannot be
modularized based only on
object-oriented (OO) abstractions and mechanisms. Besides,
some programmers
frequently evidence the presence of mobility tangling and
scattering problems
on their systems. Despite these problems, MAS developers
have mostly relied
on application programming interfaces (APIs) OO from
mobility platforms and
on the use of the Java programming language. The result is
the production of
MASs that are difficult to understand, maintain, and
reuse. This work presents
three main contributions. Firstly, an analysis of existent
solutions for
modularization of mobility issues. Besides, the proposal
of the ArchM software
architecture and the AspectM framework, both based on
aspects, which support:
(i) improved modularization of the mobility issues, that
is, a clean separation
between the mobility-specific concerns and the other agent
concerns, (ii) a
seamless introduction of code mobility into stationary
agents, and (iii) a flexible
integration with multiple mobility platforms. The aspect-
oriented software
development (AOSD) is a new paradigm with abstractions and
composition
mechanisms that support an improvement of reuse and
maintainability of
systems. The benefits of the AspectM framework are
illustrated through two
case studies and through use of two mobility platforms.
|
294 |
A quality-driven decision-support framework for architecting e-business applicationsAl-Naeem, Tariq Abdullah, Computer Science & Engineering, Faculty of Engineering, UNSW January 2006 (has links)
Architecting e-business applications is a complex design activity. This is mainly due to the numerous architectural decisions to be made, including the selection of alternative technologies, software components, design strategies, patterns, standards, protocols, platforms, etc. Further complexities arise due to the fact that these alternatives often vary considerably in their support for different quality attributes. Moreover, there are often different groups of stakeholders involved, with each having their own quality goals and criteria. Furthermore, different architectural decisions often include interdependent alternatives, where the selection of one alternative for one particular decision impacts the selections to be made for alternatives from other different decisions. There have been several research efforts aiming at providing sufficient mechanisms and tools for facilitating the architectural evaluation and design process. These approaches, however, address architectural decisions in isolation, where they focus on evaluating a limited set of alternatives belonging to one architectural decision. This has been the primary motivation behind the development of the Architectural DEcision-Making Support (ADEMS) framework, which basically aims at supporting stakeholders and architects during the architectural decision-making process by helping them determining a suitable combination of architectural alternatives. ADEMS framework is an iterative process that leverages rigorous quantitative decision-making techniques available in the literature of Management Science, particularly Multiple Attribute Decision-Making (MADM) methods and Integer Programming (IP). Furthermore, due to the number of architectural decisions involved as well as the variety of available alternatives, the architecture design space is expected to be huge. For this purpose, a query language has been developed, known as the Architecture Query Language (AQL), to aid architects in exploring and analyzing the design space in further depth, and also in examining different ???what-if??? architectural scenarios. In addition, in order to support leveraging ADEMS framework, a support tool has been implemented for carrying out the sophisticated set of mathematical computations and comparisons of the large number of architectural combinations, which might otherwise be hard to conduct using manual techniques. The primary contribution of the tool is in its help to identify, evaluate, and rank all potential combinations of alternatives based on their satisfaction to quality preferences provided by the different stakeholders. Finally, to assess the feasibility of ADEMS, three different case studies have been conducted relating to the architectural evaluation of different e-business and enterprise applications. Results obtained for the three case studies were quite positive as they showed an acceptable accuracy level for the decisions recommended by ADEMS, and at a reasonable time and effort costs for the different system stakeholders.
|
295 |
Developing and Testing Pervasive Computing Applications: A Tool-Based MethodologyBruneau, Julien 16 May 2012 (has links) (PDF)
Malgré des progrès récents, développer une application d'informatique ubiquitaire reste un défi à cause d'un manque de canevas conceptuels et d'outils aidant au développement. Ce défi implique de prendre en charge des objets communicants hétérogènes, de surmonter la complexité des technologies de systèmes distribués, de définir l'architecture d'une application, et d'encoder cela dans un programme. De plus, tester des applications d'informatique ubiquitaire est problématique car cela implique d'acquérir, de tester et d'interfacer une variété d'entités logicielles et matérielles. Ce procédé peut rapidement devenir coûteux en argent et en temps lorsque l'environnement ciblé implique de nombreuses entités. Cette thèse propose une méthodologie outillée pour dévelop- per et tester des applications d'informatique ubiquitaire. Notre méthodologie fournit tout d'abord le langage de conception DiaSpec. Ce langage permet de définir une taxonomie d'entités spécifiques à un domaine applicatif, s'abstrayant ainsi de leur hétérogénéité. Ce langage inclut également une couche permettant de définir l'architecture d'une application. Notre suite outillée fournit un compilateur qui, à partir de descriptions DiaSpec, génère un canevas de programmation guidant les phases d'implémentation et de test. Afin d'aider à la phase de test, nous proposons une approche de simulation et un outil intégré dans notre méthodologie outillée : l'outil DiaSim. Notre approche utilise le support de test généré par DiaSpec pour tester les applications de manière transparente dans un environnement physique simulé. La simulation d'une application est rendue graphiquement dans un outil de visualisation 2D. Nous avons combiné DiaSim avec un langage dédié permet- tant de décrire les phénomènes physiques en tant qu'équations différentielles, permettant des simulations réalistes. DiaSim a été utilisé pour simuler des applications dans des domaines applicatifs variés. Notre approche de simulation a également été appliquée à un système avionique, démontrant la généralité de notre approche de simulation.
|
296 |
Designing Sociable TechnologiesBarraquand, Remi 02 February 2012 (has links) (PDF)
This thesis investigates the design of sociable technologies and is divided into three main parts described below. In the first part, we introduce sociable technologies. We review our the definition of technology and propose categories of technologies according to the motivation underlying their design: improvement of control, improvement of communication or improvement of cooperation. Sociable technologies are then presented as an extension of techniques to improve cooperation. The design of sociable technologies are then discussed leading to the observation that acquisition of social common sense is a key challenge for designing sociable technologies. Finally, polite technologies are presented as an approach for acquiring social common sense. In the second part, we focus on the premises for the design of sociable technologies. A key aspect of social common sense is the ability to act appropriately in social situations. Associating appropriate behaviour with social situations is presented as a key method for implementing polite technologies. Reinforcement learning is proposed as a method for learning such associations and variation of this algorithm are experimentally evaluated. Learning the association between situation and behaviour relies on the strong assumption that mutual understanding of social situations can be achieved between technologies and people during interaction. We argue that in order to design sociable technologies, we must change the model of communication used by our technologies. We propose to replace the well-known code model of communication, with the ostensive-inferential model proposed by Sperber and Wilson. Hypotheses raised by this approach are evaluated in an experiment conducted in a smart environment, where, subjects by group of two or three are asked to collaborate with a smart environment in order to teach it how to behave in an automated meeting. A novel experimental methodology is presented: The Sorceress of Oz. The results collected from this experiment validate our hypothesis and provide insightful information for the design. We conclude by presenting, what we believe are, the premises for the design of sociable technologies. The final part of the thesis concerns an infrastructure for the design of sociable technologies. This infrastructure provides the support for three fundamental components. First, it provides the support for an inferential model of context. This inferential model of context is presented; a software architecture is proposed and evaluated in an experiment conducted in a smart-environment. Second, it provides the support for reasoning by analogy and introduces the concept of eigensituations. The advantage of this representation are discussed and evaluated in an experiment. Finally, it provides the support for ostensive-inferential communication and introduces the concept of ostensive interface.
|
297 |
Refactoring-based Requirements Refinement Towards DesignLiu, WenQian 18 February 2010 (has links)
Building systems that satisfy the given requirements is a main goal of software engineering. The success of this process relies largely on the presence of an adequate architectural design. Traditional paradigms deal with requirements separately from design. Our empirical studies show that crossing the boundary between requirements and design is difficult, existing tools and methods for bridging the gap inadequate, and that software architects rely heavily on experience, prior solutions, and creativity.
Current approaches in moving from requirements to design follow two schools. One is architecture-centric, focused on providing assistance to architects in reuse. The other is requirements-centric, and tends to extend established development frameworks and employ mappings to transition from requirements to architecture. Jackson indicates that clear understanding of requirements (the problem) is crucial to building useful systems, and that to evolve successfully, their design must reflect problem structure. Taylor et al. argue that design is the central activity in connecting requirements and architecture. Nonetheless, existing approaches either overlook underlying structure of requirements or design considerations.
This dissertation presents a novel theory enabling requirements structuring and design analysis through requirements refinement and refactoring. The theory introduces a refinement process model operating on four abstraction levels, and a set of refactoring operators and algorithms. The method works in small, well-guided steps with visible progress.
The theory provides a basis for designers to analyze and simplify requirement descriptions, remove redundancy, uncover dependencies, extract lower-level requirements, incorporate design concerns, and produce a system decomposition reflecting the underlying problem structure. A design built on top of this decomposition is better suited for evolution than one created without explicit structural analysis.
The theory is validated on an industrial-sized project, wherein a suitable system decomposition is produced and a comparison made to a conventionally-devised solution. Examples demonstrate that the theory handles changes incrementally. It is explained how the theory addresses the existing challenges in going from requirements to design and supports fundamental software engineering principles. The method is assessed against common validation criteria. The approach is compared with prominent related work.
|
298 |
Refactoring-based Requirements Refinement Towards DesignLiu, WenQian 18 February 2010 (has links)
Building systems that satisfy the given requirements is a main goal of software engineering. The success of this process relies largely on the presence of an adequate architectural design. Traditional paradigms deal with requirements separately from design. Our empirical studies show that crossing the boundary between requirements and design is difficult, existing tools and methods for bridging the gap inadequate, and that software architects rely heavily on experience, prior solutions, and creativity.
Current approaches in moving from requirements to design follow two schools. One is architecture-centric, focused on providing assistance to architects in reuse. The other is requirements-centric, and tends to extend established development frameworks and employ mappings to transition from requirements to architecture. Jackson indicates that clear understanding of requirements (the problem) is crucial to building useful systems, and that to evolve successfully, their design must reflect problem structure. Taylor et al. argue that design is the central activity in connecting requirements and architecture. Nonetheless, existing approaches either overlook underlying structure of requirements or design considerations.
This dissertation presents a novel theory enabling requirements structuring and design analysis through requirements refinement and refactoring. The theory introduces a refinement process model operating on four abstraction levels, and a set of refactoring operators and algorithms. The method works in small, well-guided steps with visible progress.
The theory provides a basis for designers to analyze and simplify requirement descriptions, remove redundancy, uncover dependencies, extract lower-level requirements, incorporate design concerns, and produce a system decomposition reflecting the underlying problem structure. A design built on top of this decomposition is better suited for evolution than one created without explicit structural analysis.
The theory is validated on an industrial-sized project, wherein a suitable system decomposition is produced and a comparison made to a conventionally-devised solution. Examples demonstrate that the theory handles changes incrementally. It is explained how the theory addresses the existing challenges in going from requirements to design and supports fundamental software engineering principles. The method is assessed against common validation criteria. The approach is compared with prominent related work.
|
299 |
Techniques to facilitate symbolic execution of real-world programsAnand, Saswat 11 May 2012 (has links)
The overall goal of this research is to reduce the cost of software development and improve the quality of software. Symbolic execution is a program-analysis technique that is used to address several problems that arise in developing high-quality software. Despite the fact that the symbolic execution technique is well understood, and performing symbolic execution on simple programs is straightforward, it is still not possible to apply the technique to the general class of large, real-world software. A symbolic-execution system can be effectively applied to large, real-world software if it has at least the two features: efficiency and automation. However, efficient and automatic symbolic execution of real-world programs is a lofty goal because of both theoretical and practical reasons. Theoretically, achieving this goal requires solving an intractable problem (i.e., solving constraints). Practically, achieving this goal requires overwhelming effort to implement a symbolic-execution system that can precisely and automatically symbolically execute real-world programs.
This research makes three major contributions.
1. Three new techniques that address three important problems of symbolic execution. Compared to existing techniques, the new techniques
* reduce the manual effort that may be required to symbolically execute those programs that either generate complex constraints or parts of which cannot be symbolically executed due to limitations of a symbolic-execution system.
* improve the usefulness of symbolic execution (e.g., expose more bugs in a program) by enabling discovery of more feasible paths within a given time budget.
2. A novel approach that uses symbolic execution to generate test inputs for Apps that run on modern mobile devices such as smartphones and tablets.
3. Implementations of the above techniques and empirical results obtained from applying those techniques to real-world programs that demonstrate their effectiveness.
|
300 |
iTrak : a social mobile diary and web blogging utility for travelersDao, Tung Thanh, active 2013 18 December 2013 (has links)
iTrak is a combined mobile and web application that takes advantage of the GPS to allow travelers to share their experience while travelling. The application gathers GPS data and broadcasts it via a web interface or social networks such as Facebook to update user’s status during a trip. iTrak is also equipped with other features such as writing notes or recording video journals to offer a rich experience and provide an interactive diary, along with a real-time tracking ability, for travelers. / text
|
Page generated in 0.0364 seconds