6,849 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

    Overview and Summary of the Third AIAA High Lift Prediction Workshop

    Get PDF
    The third AIAA CFD High-Lift Prediction Workshop was held in Denver, Colorado, in June 2017. The goals of the workshop continued in the tradition of the first and second high-lift workshops: to assess the numerical prediction capability of current-generation computational fluid dynamics (CFD) technology for swept, medium/high-aspect-ratio wings in landing/takeoff (high-lift) configurations. This workshop analyzed the flow over two different configurations, a clean high-lift version of the NASA Common Research Model, and the JAXA Standard Model. The former was a CFD-only study, as experimental data were not available prior to the workshop. The latter was a nacelle/pylon installation study that included comparison with experimental wind tunnel data. The workshop also included a 2-D turbulence model verification exercise. Thirty-five participants submitted a total of 79 data sets of CFD results. A variety of grid systems (both structured and unstructured) as well as different flow simulation methodologies (including Reynolds-averaged Navier-Stokes and Lattice-Boltzmann) were used. This paper analyzes the combined results from all workshop participants. A statistical summary of the CFD results is also included

    Development of limb volume measuring system

    Get PDF
    The mechanisms underlying the reductions in orthostatic tolerance associated with weightlessness are not well established. Contradictory results from measurements of leg volume changes suggest that altered venomotor tone and reduced blood flow may not be the only contributors to orthostatic intolerance. It is felt that a more accurate limb volume system which is insensitive to environmental factors will aid in better quantification of the hemodynamics of the leg. Of the varous limb volume techniques presently available, the ultrasonic limb volume system has proven to be the best choice. The system as described herein is free from environmental effects, safe, simple to operate and causes negligible radio frequency interference problems. The segmental ultrasonic ultrasonic plethysmograph is expected to provide a better measurement of limb volume change since it is based on cross-sectional area measurements

    Alignment Practices Affect Distances in Software Development: A Theory and a Model

    Get PDF
    Coordinating a software project across distances is challenging. Even without geographical and time zone distances, other distances within a project can cause communication gaps. For example, organisational and cognitive distances between product owners and development-near roles such as developers and testers can lead to weak alignment of the software and the business requirements. Applying good software development practices, known to enhance alignment, can alleviate these challenges. We present a theoretical model called the Gap Model of how alignment practices affect different types of distances. This model has been inductively generated from empirical data. We also present an initial version of a theory based on this model that explains, at a general level, how practices affect communication within a project by impacting distances between people, activities and artefacts. The presented results provide a basis for further research and can be used by software organisations to improve on software practice

    Wiki Support for Automated Definition of Software Test Cases

    Get PDF
    The design of tests is a very important step in the software development process since it allows us to match the users’ expectations with the finished product. Considered as a cumbersome activity, efforts have been made to automatize and alleviate the burden of test generation, but it is still a largely neglected step. We propose taking advantage of existing requirement artifacts, like Scenarios that describe the dynamic of the domain in a very early stage of software development, to obtain tests from them. In particular, the approach proposed complement the Scenarios that are textually described with a glossary, the Language Extended Lexicon. Thus, a set of rules to derive tests from Scenarios is also proposed. The tests are then described using the Task/Method model. The main findings of this work consist of an extension of a previously presented set of rules. And a tool based on a media wiki platform that makes possible to record Scenarios and the Language Extended Lexicon and implement the rules to obtain the tests. The main originality of this work is the glossary which complements Scenarios, the semantic support to obtain tests and the tool to automatize the approach.Laboratorio de Investigación y Formación en Informática Avanzad

    Wiki Support for Automated Definition of Software Test Cases

    Get PDF
    The design of tests is a very important step in the software development process since it allows us to match the users’ expectations with the finished product. Considered as a cumbersome activity, efforts have been made to automatize and alleviate the burden of test generation, but it is still a largely neglected step. We propose taking advantage of existing requirement artifacts, like Scenarios that describe the dynamic of the domain in a very early stage of software development, to obtain tests from them. In particular, the approach proposed complement the Scenarios that are textually described with a glossary, the Language Extended Lexicon. Thus, a set of rules to derive tests from Scenarios is also proposed. The tests are then described using the Task/Method model. The main findings of this work consist of an extension of a previously presented set of rules. And a tool based on a media wiki platform that makes possible to record Scenarios and the Language Extended Lexicon and implement the rules to obtain the tests. The main originality of this work is the glossary which complements Scenarios, the semantic support to obtain tests and the tool to automatize the approach.Laboratorio de Investigación y Formación en Informática Avanzad

    The role of distances in requirements communication: a case study

    Get PDF
    Requirements communication plays a vital role in development projects in coordinating the customers, the business roles and the software engineers. Communication gaps represent a significant source of project failures and overruns. For example, misunderstood or uncommunicated requirements can lead to software that does not meet the customers’ requirements, and subsequent low number of sales or additional cost required to redo the implementation. We propose that RE (Requirements Engineering) distance measures are useful for locating gaps in requirements communication and for improving on development practice. In this paper, we present a case study of one software development project to evaluate this proposition. Thirteen RE distances were measured including geographical and cognitive distances between project members, and semantic distances between requirements and testing artefacts. The findings confirm that RE distances impact requirements communication and project coordi- nation. Furthermore, the concept of distances was found to enable constructive group reflection on communication gaps and improvements to development practices. The insights reported in this paper can provide practitioners with an increased awareness of distances and their impact. Furthermore, the results provide a stepping stone for further research into RE distances and methods for improving on software development processes and practices

    Layered evaluation of interactive adaptive systems : framework and formative methods

    Get PDF
    Peer reviewedPostprin

    Erlang programok statikus elemzése és szeletelése

    Get PDF
    A funkcionális programozási nyelvek terjedésének velejárója, hogy felmerül az igény olyan eszközökre, amelyek a fejlesztési folyamatot támogatják. Ezek lehetnek futási idejű eszközök, vagy olyanok, melyek csupán a forráskód elemzésével kı́nálnak hasznos információkat a fejlesztők számára. Az Erlang ipari környezetben is gyakran használt funkcionális programozási nyelv. A RefactorErl egy statikus elemző és refaktoráló eszköz Erlanghoz, mely számos transzformációt biztosı́t a forráskód jelentésmegőrző átalakı́tására, másrészről kiterjedt statikus elemzőkészlettel segı́ti a fejlesztőket a mindennapos tevékenységükben. Kutatásomban olyan elemzési módszerekkel foglalkoztam, amelyek segı́tségével az Erlang programok forráskódjában rejlő összetett összefüggések nyerhetők ki. Ezek az eredmények pedig további magasabb szintű elemzések alapját képzik. Az ismertetett eredményeim a vezérlés és az Erlang folyamatok közötti kapcsolatok elemzéséhez kapcsolódnak. A dolgozatomban Erlang programok vezérlésfolyam-gráfját adtam meg, amely tartalmazza a programok végrehajtása során előálló lehetséges végrehajtási utakat. A gráfot a nyelv szintaktikus kategóriáihoz rendelt formális szabályok segı́tségével definiáltam, amelyek a nyelv szemantikájának megfelelően adják meg a vezérlésfolyam-gráf éleit. A vezérlésfolyam-gráf felhasználásra került további elemzésekhez is, mint például a párhuzamosı́tható komponensek azonosı́tása. A vezérlésfolyam-gráf, illetve a benne foglalt információk felhasználhatóak a forráskódban történő változások hatáselemzéséhez. A vezérlésfüggőségi gráf egy kompaktabb reprezentáció, amely a vezérlési utakban lévő szekvenciák eliminálásával már csak a kifejezések közötti közvetlen függőségeket tartalmazza. Megadtam Erlang programokra a vezérlésfüggőségi gráfot, amelyet adatfüggőségi információkkal egészı́tettem ki. Az ı́gy definiált Erlang függőségi gráf felhasználható gráf alapú statikus programszeleteléshez. A definiált infrastruktúrára épı́tve megadtam egy hatáselemzés alapú teszteset szelekciós módszert. A módszer azon tesztesetek halmazát adja meg, amelyek érintettek lehetnek a változtatás/transzformáció kapcsán. Azaz a változtatás hatása elterjedhet a tesztelt funkcionalitásba. Az elemzés nem csak a transzformációk hatásának elemzésére, hanem tetszőleges változás elemzésére is használható. Dolgozatomban bemutattam Erlang programok egy statikus kommunikációs modelljét. Megadtam azokat az algoritmusokat, melyek segı́tségével felderı́thetőek az elindı́tott Erlang folyamatok és a köztük aszinkron üzenetküldésekkel lebonyolı́tott kommunikáció. A modellbe felvettem olyan rejtett kommunikációs elemeket is, mint a közös osztott memóriának tekinthető Erlang Term Storage (ets) táblák használata. Megadtam azokat a statikus elemzési algoritmusokat, melyek felhasználásával kiegészı́thető a kommunikációs gráf speciális Erlang folyamatokkal (például generikus szerverek) és az interfészeiken keresztül történő rejtett kommunikációval. A kommunikációs gráf kiválóan használható a kódban rejlő összefüggések megjelenı́tésére, kódmegértés, konkurenciából fakadó hibakeresés támogatásához. Ugyanakkor felhasználható konkurens programok változásához köthető hatáselemzés pontosı́tásához is
    corecore