1,217 research outputs found

    Understanding the impact of introducing Lambda expressions in Java Programs

    Get PDF
    Background: The Java programming language version eight introduced several features that encourage the func­ tional style of programming, including the support for lambda expressions and the Stream API. Currently, there is a common wisdom that refactoring legacy code to introduce lambda expressions, besides other potential benefits, simplifies the code and improves program comprehension. Aims: The purpose of this work is to investigate this belief, conducting an in­depth study to evaluate the effect of introducing lambda expressions on program compre­hension. Method: We conducted this research using a mixed­method approach. For the quantitative method, we quantitatively analyzed 158 pairs of code snippets extracted directly either from GitHub or from recommendations from three tools (RJTL, NetBeans, and IntelliJ). We also surveyed practitioners to collect their perceptions about the benefits on program comprehension when introducing lambda expressions. We asked practitioners to evaluate and rate sets of pairs of code snippets. Results: We found contradictory results in our research. Based on the quantitative assessment, we could not find evidence that the introduction of lambda expressions improves software readability— one of the components of program comprehension. Our results suggest that the transformations recommended by the aforementioned tools decrease program comprehension when assessed by two state­of­the­art models to esti­mate readability. Differently, our findings of the qualitative assessment suggest that the introduction of lambda expression improves program comprehension in three scenarios when: we convert anonymous inner classes to a lambda expression, use structural loops with inner conditional to an anyMatch operator, and apply structural loops to filter operator combined with a collect method. Implications: We argue in this paper that one can improve program comprehension when he/she applies particular transformations to introduce lambda expressions (e.g., re­placing anonymous inner classes with lambda expressions). Also, the opinion of the participants highlights which kind of transformation for introducing lambda might be advantageous. This might support the implementation of effective tools for automatic program transformations

    Quality Assurance with Reference to Data Analytics

    Get PDF
    Software quality is explicitvproperty which determines what sort of standards software ought to have. In production of any software quality is a key factor which have to be accomplished. Numerous inquires about have been finished with respect to software quality. These Software Products progressivelysperplexing algorithms tosoperate and then for ensuringstheir quality, one needs further developed strategies forshandling thesevSoftware Products. According to our survey, Data Analytical SoftwarevProducts require more work because of their Productssprogressively perplexing nature. One of the potential reasons can be the volume and assortment of Data. On the other hand, this researchvemphasizesson testifying the Data AnalyticalsSoftware Products which have many problems becausestesting of these SoftwarevProducts requires real time data. however, each time the testing of thesesProduct Items dependsseither on dummysinformation or reproductions and these Product failedswhen theyswork on real data. For making this softwares work good before and after the deployment phaseswe need to apply better software quality standards

    Towards Prioritizing Documentation Effort

    Get PDF
    Programmers need documentation to comprehend software, but they often lack the time to write it. Thus, programmers must prioritize their documentation effort to ensure that sections of code important to program comprehension are thoroughly explained. In this paper, we explore the possibility of automatically prioritizing documentation effort. We performed two user studies to evaluate the effectiveness of static source code attributes and textual analysis of source code towards prioritizing documentation effort. The first study used open-source API Libraries while the second study was conducted using closed-source industrial software from ABB. Our findings suggest that static source code attributes are poor predictors of documentation effort priority, whereas textual analysis of source code consistently performed well as a predictor of documentation effort priority

    Path To Gain Functional Transparency In Artificial Intelligence With Meaningful Explainability

    Full text link
    Artificial Intelligence (AI) is rapidly integrating into various aspects of our daily lives, influencing decision-making processes in areas such as targeted advertising and matchmaking algorithms. As AI systems become increasingly sophisticated, ensuring their transparency and explainability becomes crucial. Functional transparency is a fundamental aspect of algorithmic decision-making systems, allowing stakeholders to comprehend the inner workings of these systems and enabling them to evaluate their fairness and accuracy. However, achieving functional transparency poses significant challenges that need to be addressed. In this paper, we propose a design for user-centered compliant-by-design transparency in transparent systems. We emphasize that the development of transparent and explainable AI systems is a complex and multidisciplinary endeavor, necessitating collaboration among researchers from diverse fields such as computer science, artificial intelligence, ethics, law, and social science. By providing a comprehensive understanding of the challenges associated with transparency in AI systems and proposing a user-centered design framework, we aim to facilitate the development of AI systems that are accountable, trustworthy, and aligned with societal values.Comment: Hosain, M. T. , Anik, M. H. , Rafi, S. , Tabassum, R. , Insia, K. & S{\i}dd{\i}ky, M. M. (). Path To Gain Functional Transparency In Artificial Intelligence With Meaningful Explainability . Journal of Metaverse , 3 (2) , 166-180 . DOI: 10.57019/jmv.130668

    Python-tutor on program comprehension

    Get PDF
    Dissertação de mestrado integrado em Informatics EngineeringThe time spent analysing a software with the goal of comprehending it is huge and expensive. Reduce the time necessary to a professional understand a program is essential for the advance of technology. Therefore, the program comprehension has always been an area of interest as realizing how a programmer thinks can help facilitate many of their daily activities, making the developer a more productive worker. As the world begins to reshape itself thanks to the advances of technology, this area of research gains more and more relevance. This project aim to study the tools developed within the comprehension of programs that usually are associated to software maintenance and analysing the animation web tool Python-Tutor. After this study, it’s required to explore Python-Tutor to understand how it can be improved with the addition of important features to program comprehension as Control Flow Graph (CFG), Data Flow Graph (DFG), Function Call Graph (FCG) and System Control Graph (SCG). The idea behind this is to allow new programmers to view their programs and create a visual image of them in order to understand them and improving their skills to understand someone else’s programs.O tempo despendido a analisar um programa de forma a compreendê-lo é enorme e dispendioso. Reduzir o tempo necessário para um profissional compreender um programa é fulcral para o avanço da tecnologia. Assim, a compreensão de programas sempre foi uma área de interesse pois perceber como um programador pensa pode ajudar a facilitar muitas atividades diárias deste, tornando o programador num trabalhador mais produtivo. À medida que o mundo se vai moldando à informática, esta área de pesquisa tem ganho cada vez mais relevância. Neste projecto iremos estudar as ferramentas desenvolvidas no âmbito da compreensão de programas associadas à manutenção de software e analisar a ferramenta de animaçãoweb Python-Tutor. Iremos explorar esta ferramenta de modo a perceber como a podemos melhorar através da inclusão de novos recursos importantes para a compreensão de programas, tais como: o Grafo de Controlo de Fluxo, Grafo de Fluxo de Dados e o Grafo de Chamadas de Funções. A ideia base passa então, por permitir aos novos programadores visualizar os seus programas e criar uma imagem visual destes de modo a os compreenderem e a melhorarem as suas competências para compreenderem programas de outrem

    Graduate Skills Assessment : Stage One Validity Study

    Get PDF
    The Graduate Skills Assessment (GSA) is a new test with complex aims and is in the first stages of development and application. Principally, the test aims to assess a set of valued and widely applicable generic skills that may be developed by the university experience and which are relevant to university achievement and graduate work. This publication reports on the validity of the first stage of the Graduate Skills Assessment test (GSA Stage One Validity Study), which covers the first two tests, Exit 2000 and Entry 2001. These tests involved the participation of 3663 students drawn from nine broad fields of study across 27 Australian universities. Details of these populations are given in the GSA Summary Reports (Hambur & Glickman, 2001, Hambur & Le, 2001). The study was commissioned by the Commonwealth Department of Education, Training and Youth Affairs

    The effect of open-source software technologies in health-tech startups

    Get PDF
    Abstract. The research investigates how open-source technology improves product efficiency and identifies the challenges encountered by startups when introducing open-source software technologies in the startups. The semi-structured interviews were conducted with healthcare startups based in Oulu. Thematic data analysis was performed to analyse the collected data and identified common themes and sub-themes to the research objective

    Business simulators and lecturer’s perception! The case of University of Algarve

    Get PDF
    The purpose of this paper is to investigate the usage of simulation/serious games in the University of Algarve (Portugal), because these novel learning environments are still on an early stage of adoption. Members of the Faculty of Economics (in a total 60 lecturers and their assistants) participated in this study through a mixed survey (closed and ask for agreement queries). The empirical evidences denote interesting results: (i) a response rate of 43 percent; (ii) these tools increase learning engagement; (iii) the lack of information and not sufficient alignment with the course unit hinders the uptake of these technologies within classrooms; (iv) lecturers have a positive perception and consider them as valuable for students’ better learning. Hence, this survey provides a good platform for future research and approaches how to promote a better exploration of simulation/serious games and their integration into course curriculum. To conclude, this paper will be divided into five sections: (i) research statement; (ii) research design (aims/objectives, research methodology and data collection/analysis); (iii) findings (lecturers’ profile, awareness, experiences and results summary); (iv) limitations and future work (methodological limitations and tools/ analysis upgrade); and, (v) conclusions

    TOWARDS A THEORY ON THE SUSTAINABILITY AND PERFORMANCE OF FLOSS COMMUNITIES

    Get PDF
    With the emergence of Free/Libre and Open Source Software as a significant force that is reshaping the software industry, it becomes more important to reassess conventionally held wisdom about software development. Recent literature on the FLOSS development process suggests that our previously held knowledge about software development might be obsolete. We specifically highlight the tension between the views embodied by the Linus\u27 Law and Brooks\u27 Law. Linus\u27 Law was forwarded by Eric Raymond and suggests that the FLOSS development process benefits greatly from large numbers of developers. Brooks\u27 Law, which is part of currently held wisdom on software development, suggests that adding developers is detrimental to the progress of software projects. Raymond explains that the distributed nature of the FLOSS development process and the capacity of source code to convey rich information between developers are the main causes of the obsolescence Brooks\u27 Law in the FLOSS development context. By performing two separate studies, we show how both views of software development can be complementary. Using the lens of Transaction Cost Theory (TCT) in the first study, we identify the characteristics of the development knowledge as being the main factors constraining new members from contributing source code to FLOSS development projects. We also conceptualize of these knowledge characteristics as being analogous to what Brooks\u27 described as the ramp-up effect. We forward the argument, and offer empirical validation, that managing these characteristics of knowledge would result in an increase the number of contributors to a FLOSS projects. The second study is concerned with the impact if having these new members added to the development team in a FLOSS project. Using the lens of Organizational Information Processing Theory (OIPT), we forward the argument, and offer empirical validation, that more contributors can be detrimental to progress if the committers of a FLOSS project are overwhelmed. Our findings also suggest that large development teams are indeed possible in FLOSS, however, they must be supported by proper source code design and community structures

    ODYSSEY: Software development life cycle ontology

    Get PDF
    With the omnipresence of softwares in our Society from Information Technology (IT) services to autonomous agents, their systematic and efficient development is crucial for software developers. Hence, in this paper, we present an approach to assist intelligent agents (IA), whatever human beings or artificial systems, in theirs task to develop and configure softwares. The proposed method is an ontological, developer-centred approach aiding a software developer in decision making and interoperable information sharing through the use of the ODYSSEY ontology we developed for the software development life cycle (SDLC) domain. This ODYSSEY ontology has been designed following the Enterprise Ontology (EO) methodology and coded in Descriptive Logic (DL). Its implementation in OWL has been evaluated for case studies, showing promising results
    corecore