982 resultados para SOFTWARE REUSE


Relevância:

60.00% 60.00%

Publicador:

Resumo:

The evolution of communications networks to Next Generation Networks (NGN) has encouraged the development of new services. Nowadays, several technologies are being integrated into telecommunications services in order to provide new functionalities, resulting in what are known as converged services. The objective is to adapt the behavior of the services to the necessities of different users, generating customized services. Some of the main technologies involved in their development are those related to the Web. But due to this type of services implies the combination of different technologies, their development is a very complex process that has to be improved to reduce the time and cost required, with the aim of promoting the success of such services. This paper proposes to apply software reuse through the utilization of a component library and presents one focused on ECharts for SIP Servlets (E4SS). It is a framework, based on the SIP Servlet specification, which uses finite state machines for the definition of converged communications services. Also, to promote the use of the library, a methodology is proposed in order to facilitate the integration between the library operations and the software development cycle.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

La expansión experimentada por la informática, las nuevas tecnologías e internet en los últimos años, no solo viene dada por la evolución del hardware subyacente, sino por la evolución del desarrollo de software y del crecimiento del número de desarrolladores. Este incremento ha hecho evolucionar el software de unos sistemas de gestión basados en ficheros, prácticamente sin interfaz gráfico y de unos pocos miles de líneas a grandes sistemas distribuidos multiplataforma. El desarrollo de estos grandes sistemas, requiere gran cantidad de personas involucradas en el desarrollo, y que las herramientas de desarrollo hayan crecido también para facilitar su análisis, diseño, codificación, pruebas, implantación y mantenimiento. La base de estas herramientas software las proveen las propias plataformas de desarrollo, pero la experiencia de los desarrolladores puede aportar un sinfín de utilidades y de técnicas que agilicen los desarrollos y cumplan los requisitos del software en base a la reutilización de soluciones lo suficientemente probadas y optimizadas. Dichas herramientas se agrupan ordenadamente, creando así frameworks personalizados, con herramientas de todo tipo, clases, controles, interfaces, patrones de diseño, de tal manera que se dan soluciones personalizadas a un amplio número de problemas para emplearlas cuantas veces se quiera, bien marcando directrices de desarrollo mediante el uso de patrones, bien con la encapsulación de complejidades de tal modo que los desarrolladores ya dispongan de componentes que asuman cierta lógica o cierta complejidad aliviando así la fase de construcción. En este trabajo se abordan temas sobre las tecnologías base y plataformas de desarrollo para poder acometer la creación de un framework personalizado, necesidades a evaluar antes de acometerlo, y técnicas a emplear para la consecución del mismo, orientadas a la documentación, mantenimiento y extensión del framework. La exposición teórica consiste en mostrar y evaluar los requisitos para crear un framework, requisitos de la plataforma de desarrollo, y explicar cómo funcionan las grandes plataformas de desarrollo actuales, que elementos los componen y su funcionamiento, así como marcar ciertas pautas de estructuración y nomenclatura que el desarrollo de un framework debe contemplar para su mantenimiento y extensión. En la parte metodológica se ha usado un subconjunto de Métrica V3, ya que para el desarrollo de controles no aplica dicha metodología en su totalidad, pero contempla el catálogo de requisitos, los casos de uso, diagramas de clase, diagramas de secuencia, etc… Aparte de los conceptos teóricos, se presenta un caso práctico con fines didácticos de cómo parametrizar y configurar el desarrollo bajo la plataforma .NET. Dicho caso práctico consiste en la extensión de un control de usuario genérico de la plataforma .NET, de tal modo que se aplican conceptos más allá del hecho de crear funciones como las funcionalidades que puede brindar un API. Conceptos sobre como extender y modificar controles ya existentes, que interactúan por medio de eventos con otros controles, con vistas a que ese nuevo control forme parte de una biblioteca de controles de usuario personalizados ampliamente divulgada. Los controles de usuario son algo que no solo tienen una parte funcional, sino que también tienen una parte visual, y definiciones funcionales distintas de las típicas del software de gestión, puesto que han de controlar eventos, visualizaciones mientras se dan estos eventos y requisitos no funcionales de optimización de rendimiento, etc… Para el caso práctico se toma como herramienta la plataforma de desarrollo .Net Framework, en todas sus versiones, ya que el control a extender es el control ListView y hacerlo editable. Este control está presente en todas las versiones de .NET framework y con un alto grado de reutilización. Esta extensión muestra además como se puede migrar fácilmente este tipo de extensiones sobre todos los frameworks. Los entornos de desarrollo usados son varias versiones de Visual Studio para el mostrar dicha compatibilidad, aunque el desarrollo que acompaña este documento esté realizado sobre Visual Studio 2013. ABSTRACT The expansion in computer science, new technologies and the Internet in recent years, not only is given by the evolution of the underlying hardware, but for the evolution of software development and the growing number of developers. This increase has evolved software from management systems based on files almost without graphical interface and a few thousand of code lines, to large multiplatform distributed systems. The development of these large systems, require lots of people involved in development, and development tools have also grown to facilitate analysis, design, coding, testing, deployment and maintenance. The basis of these software tools are providing by their own development platforms, but the experience of the developers can bring a lot of utilities and techniques to speed up developments and meet the requirements of software reuse based on sufficiently proven solutions and optimized. These tools are grouped neatly, creating in this way custom frameworks, with tools of all types, classes, controls, interfaces, design patterns,… in such a way that they provide customized solutions to a wide range of problems to use them many times as you want to occur, either by dialing development guidelines by using patterns or along with the encapsulation of complexities, so that developers already have components that take some logic or some complexity relieving the construction phase. This paper cover matters based on technologies and development platforms to undertake the creation of a custom framework, needs to evaluate before rush it and techniques to use in order to achieve it, a part from techniques oriented to documentation, maintenance and framework extension. The theoretical explanation consists in to demonstrate and to evaluate the requirements for creating a framework, development platform requirements, and explain how large current development platforms work, which elements compose them and their operation work, as well as mark certain patterns of structure and nomenclature that the development of a framework should include for its maintenance and extension. In the methodological part, a subset of Métrica V3 has been used, because of, for the development of custom controls this methodology does not apply in its entirety, but provides a catalogue of requirements, use cases, class diagrams, sequence diagrams, etc ... Apart from the theoretical concepts, a study case for teaching purposes about how to parameterize and configure the development under the .NET platform is presented. This study case involves the extension of a generic user control of the .NET platform, so that concepts apply beyond the fact of creating functions as the functionalities that can provide an API. Concepts on how to extend and modify existing controls that interact through events with other controls, overlooking that new control as a part of a custom user controls library widely publicized. User controls are something that not only have a functional part, but also have a visual part, and various functional definitions of typical management software, since that they have to control events, visualizations while these events are given and not functional of performance optimization requirements, etc ... For the study case the development platform .Net Framework is taken as tool, in all its versions, considering that control to extend is the ListView control and make it editable. This control is present in all versions of .NET framework and with a high degree of reuse. This extension also shows how you can easily migrate these extensions on all frameworks. The used development environments are several versions of Visual Studio to show that compatibility, although the development that accompanies this document is done on Visual Studio 2013.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Object-orientation supports software reuse via features such as abstraction, information hiding, polymorphism, inheritance and redefinition. However, while libraries of classes do exist, one of the challenges that still remains is to locate suitable classes and adapt them to meet the specific requirements of the software developer. Traditional approaches to library retrieval are text-based; it is therefore difficult for the developer to express their requirements in a precise and unambiguous manner. A more promising approach is specification-based retrieval, where library component interfaces and requirements are expressed using a formal specification language. In this case retrieval is based on matching formal specifications. In this paper we describe how existing approaches to specification matching can be extended to handle object-oriented components.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Jackson System Development (JSD) is an operational software development method which addresses most of the software lifecycle either directly or by providing a framework into which more specialised techniques can fit. The method has two major phases: first an abstract specification is derived that is in principle executable; second the specification is implemented using a variety of transformations. The object oriented paradigm is based on data abstraction and encapsulation coupled to an inheritance architecture that is able to support software reuse. Its claims of improved programmer productivity and easier program maintenance make it an important technology to be considered for building complex software systems. The mapping of JSD specifications into procedural languages typified by Cobol, Ada, etc., involves techniques such as inversion and state vector separation to produce executable systems of acceptable performance. However, at present, no strategy exists to map JSD specifications into object oriented languages. The aim of this research is to investigate the relationship between JSD and the object oriented paradigm, and to identify and implement transformations capable of mapping JSD specifications into an object oriented language typified by Smalltalk-80. The direction which the transformational strategy follows is one whereby the concurrency of a specification is removed. Two approaches implementing inversion - an architectural transformation resulting in a simulated coroutine mechanism being generated - are described in detail. The first approach directly realises inversions by manipulating Smalltalk-80 system contexts. This is possible in Smalltalk-80 because contexts are first class objects and are accessible to the user like any other system object. However, problems associated with this approach are expounded. The second approach realises coroutine-like behaviour in a structure called a `followmap'. A followmap is the results of a transformation on a JSD process in which a collection of followsets is generated. Each followset represents all possible state transitions a process can undergo from the current state of the process. Followsets, together with exploitation of the class/instance mechanism for implementing state vector separation, form the basis for mapping JSD specifications into Smalltalk-80. A tool, which is also built in Smalltalk-80, supports these derived transformations and enables a user to generate Smalltalk-80 prototypes of JSD specifications.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Component-based development (CBD) has become an important emerging topic in the software engineering field. It promises long-sought-after benefits such as increased software reuse, reduced development time to market and, hence, reduced software production cost. Despite the huge potential, the lack of reasoning support and development environment of component modeling and verification may hinder its development. Methods and tools that can support component model analysis are highly appreciated by industry. Such a tool support should be fully automated as well as efficient. At the same time, the reasoning tool should scale up well as it may need to handle hundreds or even thousands of components that a modern software system may have. Furthermore, a distributed environment that can effectively manage and compose components is also desirable. In this paper, we present an approach to the modeling and verification of a newly proposed component model using Semantic Web languages and their reasoning tools. We use the Web Ontology Language and the Semantic Web Rule Language to precisely capture the inter-relationships and constraints among the entities in a component model. Semantic Web reasoning tools are deployed to perform automated analysis support of the component models. Moreover, we also proposed a service-oriented architecture (SOA)-based semantic web environment for CBD. The adoption of Semantic Web services and SOA make our component environment more reusable, scalable, dynamic and adaptive.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Modelling architectural information is particularly important because of the acknowledged crucial role of software architecture in raising the level of abstraction during development. In the MDE area, the level of abstraction of models has frequently been related to low-level design concepts. However, model-driven techniques can be further exploited to model software artefacts that take into account the architecture of the system and its changes according to variations of the environment. In this paper, we propose model-driven techniques and dynamic variability as concepts useful for modelling the dynamic fluctuation of the environment and its impact on the architecture. Using the mappings from the models to implementation, generative techniques allow the (semi) automatic generation of artefacts making the process more efficient and promoting software reuse. The automatic generation of configurations and reconfigurations from models provides the basis for safer execution. The architectural perspective offered by the models shift focus away from implementation details to the whole view of the system and its runtime change promoting high-level analysis. © 2009 Springer Berlin Heidelberg.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Most Java programmers would agree that Java is a language that promotes a philosophy of “create and go forth”. By design, temporary objects are meant to be created on the heap, possibly used and then abandoned to be collected by the garbage collector. Excessive generation of temporary objects is termed “object churn” and is a form of software bloat that often leads to performance and memory problems. To mitigate this problem, many compiler optimizations aim at identifying objects that may be allocated on the stack. However, most such optimizations miss large opportunities for memory reuse when dealing with objects inside loops or when dealing with container objects. In this paper, we describe a novel algorithm that detects bloat caused by the creation of temporary container and String objects within a loop. Our analysis determines which objects created within a loop can be reused. Then we describe a source-to-source transformation that efficiently reuses such objects. Empirical evaluation indicates that our solution can reduce upto 40% of temporary object allocations in large programs, resulting in a performance improvement that can be as high as a 20% reduction in the run time, specifically when a program has a high churn rate or when the program is memory intensive and needs to run the GC often.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Within the next few pages, I will try to give a wide description of the project that I have been doing for IK4-Ikerlan. For the last six months, I have been working in developing a socket-based application for Apple devices. These devices work under the iOS operative system, which is programmed in Objective-C, a language similar to C. Although I did not have the chance to develop this application for Apple TV, I was able to create an application for iPhone and another one for iPad. The only difference between both applications was the screen resolution, but we decided to make them separately, as it would be really hard to combine both resolutions, and wallpapers, everything in the same workspace. Finally, it is necessary to add that the main goal was not to create a new application for iOS, but to translate an Android application into iOS. To achieve this, it is required to translate Java code into Objective- C, which is the language used to develop applications for all kinds of Apple devices. Fortunately, there is a tool created by Google, which helped us with this exercise. This tool is called j2ObjC, and it is still being developed.

Relevância:

40.00% 40.00%

Publicador:

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.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

Proof reuse, or analogical reasoning, involves reusing the proof of a source theorem in the proof of a target conjecture. We have developed a method for proof reuse that is based on the generalisation replay paradigm described in the literature, in which a generalisation of the source proof is replayed to construct the target proof. In this paper, we describe the novel aspects of our method, which include a technique for producing more accurate source proof generalisations (using knowledge of the target goal), as well as a flexible replay strategy that allows the user to set various parameters to control the size and the shape of the search space. Finally, we report on the results of applying this method to a case study from the realm of software verification.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Although the benefits of service orientation are prevalent in literature, a review, analysis, and evaluation of the 30 existing service analysis approaches presented in this paper have shown that a comprehensive approach to the identification and analysis of both business and supporting software services is missing. Based on this evaluation of existing approaches and additional sources, we close this gap by proposing an integrated, consolidated approach to business and software service analysis that combines and extends the strengths of the examined methodologies.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

"This column is distinguished from previous Impact columns in that it concerns the development tightrope between research and commercial take-up and the role of the LGPL in an open source workflow toolkit produced in a University environment. Many ubiquitous systems have followed this route, (Apache, BSD Unix, ...), and the lessons this Service Oriented Architecture produces cast yet more light on how software diffuses out to impact us all." Michiel van Genuchten and Les Hatton Workflow management systems support the design, execution and analysis of business processes. A workflow management system needs to guarantee that work is conducted at the right time, by the right person or software application, through the execution of a workflow process model. Traditionally, there has been a lack of broad support for a workflow modeling standard. Standardization efforts proposed by the Workflow Management Coalition in the late nineties suffered from limited support for routing constructs. In fact, as later demonstrated by the Workflow Patterns Initiative (www.workflowpatterns.com), a much wider range of constructs is required when modeling realistic workflows in practice. YAWL (Yet Another Workflow Language) is a workflow language that was developed to show that comprehensive support for the workflow patterns is achievable. Soon after its inception in 2002, a prototype system was built to demonstrate that it was possible to have a system support such a complex language. From that initial prototype, YAWL has grown into a fully-fledged, open source workflow management system and support environment

Relevância:

30.00% 30.00%

Publicador:

Resumo:

This paper considers the problem of building a software architecture for a human-robot team. The objective of the team is to build a multi-attribute map of the world by performing information fusion. A decentralized approach to information fusion is adopted to achieve the system properties of scalability and survivability. Decentralization imposes constraints on the design of the architecture and its implementation. We show how a Component-Based Software Engineering approach can address these constraints. The architecture is implemented using Orca – a component-based software framework for robotic systems. Experimental results from a deployed system comprised of an unmanned air vehicle, a ground vehicle, and two human operators are presented. A section on the lessons learned is included which may be applicable to other distributed systems with complex algorithms. We also compare Orca to the Player software framework in the context of distributed systems.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Software Engineering Society of Korean; Institute for Information Scientists and Engineers; IEEE Reliability Society; KAIST (Korea Advanced Institute of Science and Technology); Korea Information Promotion Agency; Samsung SDS

Relevância:

30.00% 30.00%

Publicador:

Resumo:

This paper examines different ways of measuring similarity between software design models for Case Based Reasoning (CBR) to facilitate reuse of software design and code. The paper considers structural and behavioural aspects of similarity between software design models. Similarity metrics for comparing static class structures are defined and discussed. A Graph representation of UML class diagrams and corresponding similarity measures for UML class diagrams are defined. A full search graph matching algorithm for measuring structural similarity diagrams based on the identification of the Maximum Common Sub-graph (MCS) is presented. Finally, a simple evaluation of the approach is presented and discussed.