849 resultados para Desenvolvimento de Software Orientado a Aspectos
Resumo:
Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos tecnológicos e gerenciais do processo de desenvolvimento de software. Software tornou-se a base de sustentação de inúmeras organizações dos mais diversos ramos de atuação espalhados pelo planeta, consistindo de um elemento estratégico na diferenciação de produtos e serviços atuais. Atualmente, o software está embutido em sistemas relacionados a infindável lista de diferentes ciências e tecnologias. A Tecnologia de Processo de Software surgiu em meados da década de 1980 e representou um importante passo em direção à melhoria da qualidade de software através de mecanismos que proporcionam o gerenciamento automatizado do desenvolvimento de software. Diversas teorias, conceitos, formalismos, metodologias e ferramentas surgiram nesse contexto, enfatizando a descrição formal do modelo de processo de software, para que possa ser automatizado por um ambiente integrado de desenvolvimento de software. Os modelos de processos de software descrevem o conhecimento de uma organização e, portanto, modelos que descrevem experiências bem sucedidas devem ser continuamente disseminados para reutilização em diferentes projetos. Apesar da importância desse tópico, atualmente apenas uma pequena porção do conhecimento produzido durante o desenvolvimento de software é mantido para ser reutilizado em novos projetos. Embora, à primeira vista, o desafio de descrever modelos reutilizáveis para processos de software pareça ser equivalente ao problema tratado pela tradicional área de reutilização de produtos software, isso é apenas parcialmente verdade, visto que os processos envolvem elementos relacionados com aspectos sociais, organizacionais, tecnológicos e ambientais. A crescente complexidade da atual modelagem de processos vem influenciando a investigação de tecnologias de reutilização que sejam viáveis nesse campo específico. A investigação conduzida nesse trabalho culminou na especificação de um meta-modelo que tem como objetivo principal aumentar o nível de automação fornecido na reutilização de processos, apoiando a modelagem de processos abstratos que possam ser reutilizados em diferentes contextos. O meta-modelo proposto por esse trabalho - denominado APSEE-Reuse - fornece uma série de construtores sintáticos que permitem que os diferentes aspectos desse contexto sejam descritos segundo múltiplas perspectivas, complementares entre si, contribuindo para diminuir a complexidade do modelo geral. A solução proposta destaca-se por fornecer um formalismo para modelagem de processos, o qual é integrado à uma infraestrutura de automação de processos de software, permitindo que a reutilização esteja intimamente relacionada com as outras etapas do ciclo de vida de processos. Os diferentes componentes envolvidos na definição do modelo APSEE-Reuse proposto foram especificados algebricamente, constituindo uma base semântica de alto 15 nível de abstração que deu origem a um conjunto de protótipos implementados no ambiente PROSOFT-Java. O texto ainda discute os experimentos realizados com o meta-modelo proposto na especificação de diferentes estudos de casos desenvolvidos a partir de exemplos retirados na literatura especializada, e de processos que fornecem soluções em contextos e necessidades específicas de projetos desenvolvidos no PPGC-UFRGS. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto.
Resumo:
Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos científicos e tecnológicos do desenvolvimento de software. No desenvolvimento de software, a fase de especificação dos requisitos é uma das mais importantes, visto que erros não detectados nesta são propagados para as fases posteriores. Quanto mais avançado estiver o desenvolvimento, mais caro custa reparar um erro introduzido nas fases iniciais, pois isto envolve reconsiderar vários estágios do desenvolvimento. A prototipação permite que os requisitos do software sejam validados logo no início do desenvolvimento, evitando assim a propagação de erros. Paralelamente, a utilização de métodos formais visa revelar inconsistências, ambigüidades e falhas na especificação do software, que podem caso contrário, não serem detectadas. Usar a prototipação de software juntamente com uma notação formal enfatiza a especificação do problema e expõe o usuário a um sistema “operante” o mais rápido possível, de modo que usuários e desenvolvedores possam executar e validar as especificações dos requisitos funcionais. O objetivo principal deste trabalho é instanciar uma técnica da área de Prototipação de Software que capacite o engenheiro de software gerar automaticamente protótipos executáveis a partir de especificações formais de tipos abstratos de dados, na notação PROSOFT-algébrico, visando a validação dos requisitos funcionais logo no início do desenvolvimento do software. Para tanto foi proposto um mapeamento da linguagem PROSOFT-algébrico para OBJ. Como OBJ possui um eficiente sistema de reescrita de termos implementado, a utilização deste propicia a prototipação de tipos abstratos de dados, especificados em PROSOFT-algébrico. Os componentes envolvidos na definição deste trabalho, assim como o mapeamento entre as linguagens, foram especificados algebricamente e implementados no ambiente de desenvolvimento de software PROSOFT. A implementação serviu para validar o mapeamento proposto através de dois estudos de caso. Por fim, são apresentadas as conclusões alcançadas e as atividades adicionais vislumbradas a partir do trabalho proposto.
Resumo:
Atualmente, um dos grandes desafios para qualquer desenvolvedor de software é projetar um sistema que reutilize ao máximo elementos de código e de projeto existentes, visando diminuir o tempo e o esforço exigidos na produção do software. Entre as inúmeras formas de possibilitar reuso no contexto do desenvolvimento segundo o paradigma da orientação a objetos, destaca-se a abordagem de frameworks. A grande importância da documentação de software utilizada no processo de desenvolvimento aliada às características de frameworks serviram como motivação para este trabalho. A documentação dentro do processo de desenvolvimento de software não faz parte de uma fase definida, mas ocorre durante toda sua existência, em paralelo com outras fases do ciclo de vida. A abordagem de frameworks dentro deste contexto enfoca o tratamento de templates e definições das características dos artefatos de software (incluindo não somente código mas também produtos de análise, projeto, frameworks, componentes, diagramas, entre outros), facilitando e acelerando o processo de documentação. Um framework, devido a suas características peculiares que serão examinadas e explicitadas no trabalho, contém uma série de informações que podem, além de apoiar a documentação, ser úteis para produção de outros artefatos (por exemplo, planejamentos de teste, scripts de bancos de dados, padrões de codificação, entre outros) do processo de desenvolvimento. Assim, em um processo de desenvolvimento evolutivo, que utiliza a geração de artefatos como recurso, a manutenção pode ser integralmente realizada somente na especificação e não diluída nos artefatos gerados. O objetivo deste trabalho é investigar, propor e desenvolver uma ferramenta de documentação e geração de artefatos de software, denominado FrameworkDoc. O termo documentação de software aqui utilizado se refere a documentação de desenvolvimento de software, incluindo artefatos, arquiteturas, ferramentas entre outros. Serão abordados dois principais aspectos: primeiramente, a geração automática de documentação dentro do processo de desenvolvimento de software e depois a geração de outros artefatos deste processo, a partir das definições de alto nível disponíveis através do framework. Exemplos de aplicações do FrameworkDoc em projetos reais são apresentados. No entanto, os documentos e artefatos de software considerados foram definidos de forma suficientemente genérica para serem aproveitados em outros contextos.
Resumo:
The work described in this thesis aims to support the distributed design of integrated systems and considers specifically the need for collaborative interaction among designers. Particular emphasis was given to issues which were only marginally considered in previous approaches, such as the abstraction of the distribution of design automation resources over the network, the possibility of both synchronous and asynchronous interaction among designers and the support for extensible design data models. Such issues demand a rather complex software infrastructure, as possible solutions must encompass a wide range of software modules: from user interfaces to middleware to databases. To build such structure, several engineering techniques were employed and some original solutions were devised. The core of the proposed solution is based in the joint application of two homonymic technologies: CAD Frameworks and object-oriented frameworks. The former concept was coined in the late 80's within the electronic design automation community and comprehends a layered software environment which aims to support CAD tool developers, CAD administrators/integrators and designers. The latter, developed during the last decade by the software engineering community, is a software architecture model to build extensible and reusable object-oriented software subsystems. In this work, we proposed to create an object-oriented framework which includes extensible sets of design data primitives and design tool building blocks. Such object-oriented framework is included within a CAD Framework, where it plays important roles on typical CAD Framework services such as design data representation and management, versioning, user interfaces, design management and tool integration. The implemented CAD Framework - named Cave2 - followed the classical layered architecture presented by Barnes, Harrison, Newton and Spickelmier, but the possibilities granted by the use of the object-oriented framework foundations allowed a series of improvements which were not available in previous approaches: - object-oriented frameworks are extensible by design, thus this should be also true regarding the implemented sets of design data primitives and design tool building blocks. This means that both the design representation model and the software modules dealing with it can be upgraded or adapted to a particular design methodology, and that such extensions and adaptations will still inherit the architectural and functional aspects implemented in the object-oriented framework foundation; - the design semantics and the design visualization are both part of the object-oriented framework, but in clearly separated models. This allows for different visualization strategies for a given design data set, which gives collaborating parties the flexibility to choose individual visualization settings; - the control of the consistency between semantics and visualization - a particularly important issue in a design environment with multiple views of a single design - is also included in the foundations of the object-oriented framework. Such mechanism is generic enough to be also used by further extensions of the design data model, as it is based on the inversion of control between view and semantics. The view receives the user input and propagates such event to the semantic model, which evaluates if a state change is possible. If positive, it triggers the change of state of both semantics and view. Our approach took advantage of such inversion of control and included an layer between semantics and view to take into account the possibility of multi-view consistency; - to optimize the consistency control mechanism between views and semantics, we propose an event-based approach that captures each discrete interaction of a designer with his/her respective design views. The information about each interaction is encapsulated inside an event object, which may be propagated to the design semantics - and thus to other possible views - according to the consistency policy which is being used. Furthermore, the use of event pools allows for a late synchronization between view and semantics in case of unavailability of a network connection between them; - the use of proxy objects raised significantly the abstraction of the integration of design automation resources, as either remote or local tools and services are accessed through method calls in a local object. The connection to remote tools and services using a look-up protocol also abstracted completely the network location of such resources, allowing for resource addition and removal during runtime; - the implemented CAD Framework is completely based on Java technology, so it relies on the Java Virtual Machine as the layer which grants the independence between the CAD Framework and the operating system. All such improvements contributed to a higher abstraction on the distribution of design automation resources and also introduced a new paradigm for the remote interaction between designers. The resulting CAD Framework is able to support fine-grained collaboration based on events, so every single design update performed by a designer can be propagated to the rest of the design team regardless of their location in the distributed environment. This can increase the group awareness and allow a richer transfer of experiences among them, improving significantly the collaboration potential when compared to previously proposed file-based or record-based approaches. Three different case studies were conducted to validate the proposed approach, each one focusing one a subset of the contributions of this thesis. The first one uses the proxy-based resource distribution architecture to implement a prototyping platform using reconfigurable hardware modules. The second one extends the foundations of the implemented object-oriented framework to support interface-based design. Such extensions - design representation primitives and tool blocks - are used to implement a design entry tool named IBlaDe, which allows the collaborative creation of functional and structural models of integrated systems. The third case study regards the possibility of integration of multimedia metadata to the design data model. Such possibility is explored in the frame of an online educational and training platform.
Resumo:
Pós-graduação em Educação - FFC
Resumo:
A seleção e a otimização de sistemas mecanizados são os principais objetivos da mecanização racional. Não é suficiente uma compra adequada do maquinário agrícola se sua utilização não for controlada em aspectos operacionais e financeiros. Neste trabalho, é descrito o desenvolvimento de software para estimativa do custo operacional de máquinas agrícolas (MAQCONTROL), utilizando o ambiente de desenvolvimento Borland Delphi e o banco de dados Firebird. Os custos operacionais foram divididos em fixos e variáveis. Nos custos fixos, foram estimadas as despesas com depreciação, juros, alojamento e seguros. Nos custos variáveis, foi dada ênfase aos custos de manutenção como: óleos lubrificantes, filtros, pneus, graxa, combustível, pequenos reparos e troca de peças. Os resultados demonstraram a eficiência do software para os objetivos propostos. Assim, o MAQCONTROL pode ser uma importante ferramenta no processo de administração rural, pois reduz os custos da informação e agiliza a determinação precisa dos custos operacionais de máquinas agrícolas.
Resumo:
Soft skills and teamwork practices were identi ed as the main de ciencies of recent graduates in computer courses. This issue led to a realization of a qualitative research aimed at investigating the challenges faced by professors of those courses in conducting, monitoring and assessing collaborative software development projects. Di erent challenges were reported by teachers, including di culties in the assessment of students both in the collective and individual levels. In this context, a quantitative research was conducted with the aim to map soft skill of students to a set of indicators that can be extracted from software repositories using data mining techniques. These indicators are aimed at measuring soft skills, such as teamwork, leadership, problem solving and the pace of communication. Then, a peer assessment approach was applied in a collaborative software development course of the software engineering major at the Federal University of Rio Grande do Norte (UFRN). This research presents a correlation study between the students' soft skills scores and indicators based on mining software repositories. This study contributes: (i) in the presentation of professors' perception of the di culties and opportunities for improving management and monitoring practices in collaborative software development projects; (ii) in investigating relationships between soft skills and activities performed by students using software repositories; (iii) in encouraging the development of soft skills and the use of software repositories among software engineering students; (iv) in contributing to the state of the art of three important areas of software engineering, namely software engineering education, educational data mining and human aspects of software engineering.
Resumo:
Soft skills and teamwork practices were identi ed as the main de ciencies of recent graduates in computer courses. This issue led to a realization of a qualitative research aimed at investigating the challenges faced by professors of those courses in conducting, monitoring and assessing collaborative software development projects. Di erent challenges were reported by teachers, including di culties in the assessment of students both in the collective and individual levels. In this context, a quantitative research was conducted with the aim to map soft skill of students to a set of indicators that can be extracted from software repositories using data mining techniques. These indicators are aimed at measuring soft skills, such as teamwork, leadership, problem solving and the pace of communication. Then, a peer assessment approach was applied in a collaborative software development course of the software engineering major at the Federal University of Rio Grande do Norte (UFRN). This research presents a correlation study between the students' soft skills scores and indicators based on mining software repositories. This study contributes: (i) in the presentation of professors' perception of the di culties and opportunities for improving management and monitoring practices in collaborative software development projects; (ii) in investigating relationships between soft skills and activities performed by students using software repositories; (iii) in encouraging the development of soft skills and the use of software repositories among software engineering students; (iv) in contributing to the state of the art of three important areas of software engineering, namely software engineering education, educational data mining and human aspects of software engineering.
Resumo:
Requirements specification has long been recognized as critical activity in software development processes because of its impact on project risks when poorly performed. A large amount of studies addresses theoretical aspects, propositions of techniques, and recommended practices for Requirements Engineering (RE). To be successful, RE have to ensure that the specified requirements are complete and correct what means that all intents of the stakeholders in a given business context are covered by the requirements and that no unnecessary requirement was introduced. However, the accurate capture the business intents of the stakeholders remains a challenge and it is a major factor of software project failures. This master’s dissertation presents a novel method referred to as “Problem-Based SRS” aiming at improving the quality of the Software Requirements Specification (SRS) in the sense that the stated requirements provide suitable answers to real customer ́s businesses issues. In this approach, the knowledge about the software requirements is constructed from the knowledge about the customer ́s problems. Problem-Based SRS consists in an organization of activities and outcome objects through a process that contains five main steps. It aims at supporting the software requirements engineering team to systematically analyze the business context and specify the software requirements, taking also into account a first glance and vision of the software. The quality aspects of the specifications are evaluated using traceability techniques and axiomatic design principles. The cases studies conducted and presented in this document point out that the proposed method can contribute significantly to improve the software requirements specification.
Resumo:
168 p.
Resumo:
When developing software for autonomous mobile robots, one has to inevitably tackle some kind of perception. Moreover, when dealing with agents that possess some level of reasoning for executing their actions, there is the need to model the environment and the robot internal state in a way that it represents the scenario in which the robot operates. Inserted in the ATRI group, part of the IEETA research unit at Aveiro University, this work uses two of the projects of the group as test bed, particularly in the scenario of robotic soccer with real robots. With the main objective of developing algorithms for sensor and information fusion that could be used e ectively on these teams, several state of the art approaches were studied, implemented and adapted to each of the robot types. Within the MSL RoboCup team CAMBADA, the main focus was the perception of ball and obstacles, with the creation of models capable of providing extended information so that the reasoning of the robot can be ever more e ective. To achieve it, several methodologies were analyzed, implemented, compared and improved. Concerning the ball, an analysis of ltering methodologies for stabilization of its position and estimation of its velocity was performed. Also, with the goal keeper in mind, work has been done to provide it with information of aerial balls. As for obstacles, a new de nition of the way they are perceived by the vision and the type of information provided was created, as well as a methodology for identifying which of the obstacles are team mates. Also, a tracking algorithm was developed, which ultimately assigned each of the obstacles a unique identi er. Associated with the improvement of the obstacles perception, a new algorithm of estimating reactive obstacle avoidance was created. In the context of the SPL RoboCup team Portuguese Team, besides the inevitable adaptation of many of the algorithms already developed for sensor and information fusion and considering that it was recently created, the objective was to create a sustainable software architecture that could be the base for future modular development. The software architecture created is based on a series of di erent processes and the means of communication among them. All processes were created or adapted for the new architecture and a base set of roles and behaviors was de ned during this work to achieve a base functional framework. In terms of perception, the main focus was to de ne a projection model and camera pose extraction that could provide information in metric coordinates. The second main objective was to adapt the CAMBADA localization algorithm to work on the NAO robots, considering all the limitations it presents when comparing to the MSL team, especially in terms of computational resources. A set of support tools were developed or improved in order to support the test and development in both teams. In general, the work developed during this thesis improved the performance of the teams during play and also the e ectiveness of the developers team when in development and test phases.
Resumo:
Trabalho Final de Mestrado elaborado no Laboratório Nacional de Engenharia Civil (LNEC) para a obtenção do grau de Mestre em Engenharia Civil pelo Instituto Superior de Engenharia de Lisboa no âmbito do protocolo de cooperação entre o ISEL e o LNEC
Resumo:
Atualmente, verifica-se um aumento na necessidade de software feito à medida do cliente, que se consiga adaptar de forma rápida as constantes mudanças da sua área de negócio. Cada cliente tem os seus problemas concretos que precisa de resolver, não lhe sendo muitas vezes possível dispensar uma elevada quantidade de recursos para atingir os fins pretendidos. De forma a dar resposta a estes problemas surgiram várias arquiteturas e metodologias de desenvolvimento de software, que permitem o desenvolvimento ágil de aplicações altamente configuráveis, que podem ser personalizadas por qualquer utilizador das mesmas. Este dinamismo, trazido para as aplicações sobre a forma de modelos que são personalizados pelos utilizadores e interpretados por uma plataforma genérica, cria maiores desafios no momento de realizar testes, visto existir um número de variáveis consideravelmente maior que numa aplicação com uma arquitetura tradicional. É necessário, em todos os momentos, garantir a integridade de todos os modelos, bem como da plataforma responsável pela sua interpretação, sem ser necessário o desenvolvimento constante de aplicações para suportar os testes sobre os diferentes modelos. Esta tese debruça-se sobre uma aplicação, a plataforma myMIS, que permite a interpretação de modelos orientados à gestão, escritos numa linguagem específica de domínio, sendo realizada a avaliação do estado atual e definida uma proposta de práticas de testes a aplicar no desenvolvimento da mesma. A proposta resultante desta tese permitiu verificar que, apesar das dificuldades inerentes à arquitetura da aplicação, o desenvolvimento de testes de uma forma genérica é possível, podendo as mesmas lógicas ser utilizadas para o teste de diversos modelos distintos.
Resumo:
A capacidade de inovação é essencial à sobrevivência de empresas criativas de software. Assim, a criação e disseminação do conhecimento encontram cada vez mais espaço no planejamento e na estratégia de gestão dessas organizações. Este estudo, de natureza exploratória, efetuou entrevistas semi-estruturadas com profissionais gestores e técnicos da indústria criativa de software, tendo por objetivo analisar as técnicas e métodos presentes no processo de geração e disseminação do conhecimento, bem como as ferramentas de tecnologia da informação voltadas a essa finalidade. Os principais resultados mostram que há uma preocupação constante nessas organizações com a geração do conhecimento. As técnicas e métodos mais largamente empregados na criação e disseminação de conhecimento foram: brainstorming, reuniões presenciais, reuniões virtuais, treinamentos oficiais presenciais, treinamentos informais, cursos em universidades, compartilhamento de experiências, discussões e aplicativo de gestão de projetos de desenvolvimento de software. Já em relação às ferramentas utilizadas, somam-se: internet, intranet, aplicativos específicos, redes internas, repositórios de dados, diretórios específicos no banco de dados e sistemas de telefonia baseados na internet.