10,150 research outputs found

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache

    Automated recognition of design patterns for framework understanding

    Get PDF
    System design is one of the most important tasks in the software development cycles but it is also one of the most complex and time-consuming tasks. Thus, reuse of existing designs becomes very important. Object-oriented frameworks are generic designs for specific application domains that enable the reuse of designs and domain expert experience. In spite of this, frameworks are not simple to reuse because they are difficult to comprehend, mainly due to a lack of good documentation and supporting tools. In this work, an approach to framework comprehension based on the automated recognition and visualization of design patterns is presented. A tool was built to support this approach, by trying to automatically identify and explain the potentia~ patterns existing in a given designo Experimental results and conclusions of tool utilization are also presented

    Design of a communication framework for interpoerable information systems

    Get PDF
    Frameworks are class hierarchies plus models of interactions which can be turned into complete applications through various kinds of specialization. Design patterns often guide the construction and documentation of frameworks. The runtime architecture of a framework is characterized by an inversion of control: event handler objects of the application are invoked via the framework s reactive dispatching mechanism. This paper reports the development process of a software architecture that has been designed for accomplishing the transfer of operation specifications among interoperable information systems within a larger project, such that -the communication framework does not need to know the structure and different types of operation specifications to be transferred and the individual information systems do not need to know the communication platform (in our case CORBA). Some design patterns guided the construction of the resulting object-oriented framework to achieve a flexible software architecture. The emphasis of this paper is the description of the way in which the communication framework has been designed

    Panel 1: Future of Data Science: Library Educators

    Get PDF
    In this panel discussion on the future of data science, current library educators address the needs of librarians today and how to provide new generation librarians with the skills to become data librarians

    A Generative Communication Service for Database Interoperability

    Get PDF
    Parallel and distributed programming is conceptually harder to undertake and to understand than sequential programming, because a programmer often has to manage the coexistence and coordination of multiple concurrent activities. The model of Generative Communication in Linda a paradigm that has been developed for parallel computing emphasizes the decoupling of cooperating parallel processes; thus, relieving the programmer from the burden of having to consider all process interrelations explicitly. In many application areas, data is distributed over a multitude of heterogeneous, autonomous information systems. These systems are often isolated and an exchange of data among them is not easy. On the other hand, support for dynamic exchange of data is required to improve the business processes. Cooperative information systems enable such autonomous systems to interoperate. They are complex systems of systems which require a well designed and flexible software architecture. The Linda model had a great influence on research in parallel programming languages. Stimulated by this success, a Generative Communication Service, which offers a very flexible associative addressing mechanism based on metadata matching, has been developed for supporting interoperability of cooperative information systems. Some design patterns guided the construction of the resulting communication service that has been implemented on top of CORBA for an ODMG canonical data model

    SANTO: Social Aerial NavigaTion in Outdoors

    Get PDF
    In recent years, the advances in remote connectivity, miniaturization of electronic components and computing power has led to the integration of these technologies in daily devices like cars or aerial vehicles. From these, a consumer-grade option that has gained popularity are the drones or unmanned aerial vehicles, namely quadrotors. Although until recently they have not been used for commercial applications, their inherent potential for a number of tasks where small and intelligent devices are needed is huge. However, although the integrated hardware has advanced exponentially, the refinement of software used for these applications has not beet yet exploited enough. Recently, this shift is visible in the improvement of common tasks in the field of robotics, such as object tracking or autonomous navigation. Moreover, these challenges can become bigger when taking into account the dynamic nature of the real world, where the insight about the current environment is constantly changing. These settings are considered in the improvement of robot-human interaction, where the potential use of these devices is clear, and algorithms are being developed to improve this situation. By the use of the latest advances in artificial intelligence, the human brain behavior is simulated by the so-called neural networks, in such a way that computing system performs as similar as possible as the human behavior. To this end, the system does learn by error which, in an akin way to the human learning, requires a set of previous experiences quite considerable, in order for the algorithm to retain the manners. Applying these technologies to robot-human interaction do narrow the gap. Even so, from a bird's eye, a noticeable time slot used for the application of these technologies is required for the curation of a high-quality dataset, in order to ensure that the learning process is optimal and no wrong actions are retained. Therefore, it is essential to have a development platform in place to ensure these principles are enforced throughout the whole process of creation and optimization of the algorithm. In this work, multiple already-existing handicaps found in pipelines of this computational gauge are exposed, approaching each of them in a independent and simple manner, in such a way that the solutions proposed can be leveraged by the maximum number of workflows. On one side, this project concentrates on reducing the number of bugs introduced by flawed data, as to help the researchers to focus on developing more sophisticated models. On the other side, the shortage of integrated development systems for this kind of pipelines is envisaged, and with special care those using simulated or controlled environments, with the goal of easing the continuous iteration of these pipelines.Thanks to the increasing popularity of drones, the research and development of autonomous capibilities has become easier. However, due to the challenge of integrating multiple technologies, the available software stack to engage this task is restricted. In this thesis, we accent the divergencies among unmanned-aerial-vehicle simulators and propose a platform to allow faster and in-depth prototyping of machine learning algorithms for this drones

    WHAT’S IN A SERVICE? SPECIFYING THE BUSINESS SEMANTICS OF SOFTWARE SERVICES

    Get PDF
    The success of the service-oriented computing (SOC) paradigm considerably depends on the ability of service consumers to distinguish between published services and choose the ones best suited for a development project. Current SOC standards primarily give information about technical service properties such as the programming interface and the binding information. This enables designers to analyze the technical compatibility of services with the rest of the system. On the basis of such technical information, it is difficult to assess which business semantics a service actually implements and whether it is suited to satisfy functional requirements, however. In this paper, we therefore propose the WS-Functionality language which allows providers to specify the business semantics of software services in business terms. In a design science approach, we firstly describe how conceptual models, which contain business terms and relationships between them, can be used to specify the business semantics of services. Building upon this solution concept, we present the language constructs of WS-Functionality and show a prototypic implementation as proof-of-concept. In a controlled experiment, we were able to support our claim that the information provided with WS-Functionality enhances the ability of service consumers to analyze the business semantics of services and judge whether it satisfies existing functional requirements
    • …
    corecore