Introduction to Yasca
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Analysing Aliasing in Java Applications
IT 20 048 Examensarbete 15 hp Augusti 2020 Analysing Aliasing in Java Applications Björn Berggren Institutionen för informationsteknologi Department of Information Technology Abstract Analysing Aliasing in Java Applications Björn Berggren Teknisk- naturvetenskaplig fakultet UTH-enheten Aliasing refers to the possibility of having multiple references to the same memory location and is a cornerstone concept in the imperative programming paradigm. As Besöksadress: applications grow large, it is hard for programmers to keep track of all places in the Ångströmlaboratoriet Lägerhyddsvägen 1 code where they employ aliasing, possibly resulting in hard-to-predict runtime errors. Hus 4, Plan 0 I present a tool, model and query language to perform dynamic aliasing analysis on Java programs. The tool uses the model to simulate the full execution of a program, Postadress: including how and when objects and references between them are created and Box 536 751 21 Uppsala removed. The query language consists of constructs that can be nested to form logical expressions, operating on the model to check whether a certain object remains in a Telefon: certain condition throughout the execution. The language is designed to monitor 018 – 471 30 03 lifetimes of specific objects and collect information about the execution as a whole. I Telefax: performed an experiment using the tool, examining traces from programs for 018 – 471 30 00 profiling, searching and parsing, showing that applications have different aliasing behaviour. All programs mostly use objects based on built-in Java classes, indicating Hemsida: that programmers could benefit from gaining the ability to control and limit how such http://www.teknat.uu.se/student objects can be aliased. -
Automatic Detection of Bad Smells in Code: an Experimental Assessment
Journal of Object Technology Published by AITO — Association Internationale pour les Technologies Objets, c JOT 2011 Online at http://www.jot.fm. Automatic detection of bad smells in code: An experimental assessment Francesca Arcelli Fontanaa Pietro Braionea Marco Zanonia a. DISCo, University of Milano-Bicocca, Italy Abstract Code smells are structural characteristics of software that may indicate a code or design problem that makes software hard to evolve and maintain, and may trigger refactoring of code. Recent research is active in defining automatic detection tools to help humans in finding smells when code size becomes unmanageable for manual review. Since the definitions of code smells are informal and subjective, assessing how effective code smell detection tools are is both important and hard to achieve. This paper reviews the current panorama of the tools for automatic code smell detection. It defines research questions about the consistency of their responses, their ability to expose the regions of code most affected by structural decay, and the relevance of their responses with respect to future software evolution. It gives answers to them by analyzing the output of four representative code smell detectors applied to six different versions of GanttProject, an open source system written in Java. The results of these experiments cast light on what current code smell detection tools are able to do and what the relevant areas for further improvement are. Keywords code smells; code smell detection tools; refactoring; software quality evaluation. 1 Introduction Nowadays there is an increasing number of software analysis tools available for detecting bad programming practices, highlighting anomalies, and in general increasing the awareness of the software engineer about the structural features of the program under development. -
Preliminary Report on Empirical Study of Repeated Fragments in Internal Documentation
Proceedings of the Federated Conference on Computer Science DOI: 10.15439/2016F524 and Information Systems pp. 1573–1576 ACSIS, Vol. 8. ISSN 2300-5963 Preliminary Report on Empirical Study of Repeated Fragments in Internal Documentation Milan Nosál’, Jaroslav Porubän Department of Computers and Informatics, Faculty of Electrical Engineering and Informatics, Technical University of Košice Letná 9, 042 00, Košice, Slovakia Email: [email protected], [email protected] Abstract—In this paper we present preliminary results of an safe and therefore the programmer has to pay extra caution empirical study, in which we used copy/paste detection (PMD when using it in multithreaded systems (she has to use Event CPD implementation) to search for repeating documentation Dispatch Thread to safely work with the Swing components). fragments. The study was performed on 5 open source projects, including Java 8 SDK sources. The study shows that there are Swing JavaDoc documents it and for each affected class many occurrences of copy-pasting documentation fragments in includes a warning (see JPanel documentation in Figure 1). the internal documentation, e.g., copy-pasted method parameter description. Besides these, many of the copy-pasted fragments express some domain or design concern, e.g., that the method is obsolete and deprecated. Therefore the study indicates that the cross-cutting concerns are present in the internal documentation in form of documentation phrases. I. INTRODUCTION RESERVING and comprehending developer’s concerns P (intents) in the source code is still a current challenge in software development [1], [2], [3], [4]. In this paper we analyze the internal documentation (source code comments, JavaDoc, etc.) to recognize repeating documentation fragments that document those concerns (or features [5]). -
Static Analysis the Workhorse of a End-To-End Securitye Testing Strategy
Static Analysis The Workhorse of a End-to-End Securitye Testing Strategy Achim D. Brucker [email protected] http://www.brucker.uk/ Department of Computer Science, The University of Sheffield, Sheffield, UK Winter School SECENTIS 2016 Security and Trust of Next Generation Enterprise Information Systems February 8–12, 2016, Trento, Italy Static Analysis: The Workhorse of a End-to-End Securitye Testing Strategy Abstract Security testing is an important part of any security development lifecycle (SDL) and, thus, should be a part of any software (development) lifecycle. Still, security testing is often understood as an activity done by security testers in the time between “end of development” and “offering the product to customers.” Learning from traditional testing that the fixing of bugs is the more costly the later it is done in development, security testing should be integrated, as early as possible, into the daily development activities. The fact that static analysis can be deployed as soon as the first line of code is written, makes static analysis the right workhorse to start security testing activities. In this lecture, I will present a risk-based security testing strategy that is used at a large European software vendor. While this security testing strategy combines static and dynamic security testing techniques, I will focus on static analysis. This lecture provides a introduction to the foundations of static analysis as well as insights into the challenges and solutions of rolling out static analysis to more than 20000 developers, distributed across the whole world. A.D. Brucker The University of Sheffield Static Analysis February 8–12., 2016 2 Today: Background and how it works ideally Tomorrow: (Ugly) real world problems and challenges (or why static analysis is “undecideable” in practice) Our Plan A.D. -
List of Requirements for Code Reviews
WP2 DIGIT B1 - EP Pilot Project 645 Deliverable 9: List of Requirements for Code Reviews Specific contract n°226 under Framework Contract n° DI/07172 – ABCIII April 2016 DIGIT Fossa WP2 – Governance and Quality of Software Code – Auditing of Free and Open Source Software. Deliverable 9: List of requirements for code reviews Author: Disclaimer The information and views set out in this publication are those of the author(s) and do not necessarily reflect the official opinion of the Commission. The content, conclusions and recommendations set out in this publication are elaborated in the specific context of the EU – FOSSA project. The Commission does not guarantee the accuracy of the data included in this study. All representations, warranties, undertakings and guarantees relating to the report are excluded, particularly concerning – but not limited to – the qualities of the assessed projects and products. Neither the Commission nor any person acting on the Commission’s behalf may be held responsible for the use that may be made of the information contained herein. © European Union, 2016. Reuse is authorised, without prejudice to the rights of the Commission and of the author(s), provided that the source of the publication is acknowledged. The reuse policy of the European Commission is implemented by a Decision of 12 December 2011. Document elaborated in the specific context of the EU – FOSSA project. Reuse or reproduction authorised without prejudice to the Commission’s or the authors’ rights. Page 2 of 51 DIGIT Fossa WP2 – Governance and Quality of Software Code – Auditing of Free and Open Source Software. Deliverable 9: List of requirements for code reviews Contents CONTENTS............................................................................................................................................ -
Evaluating Dependency Based Package-Level Metrics for Multi-Objective Maintenance Tasks
(IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 8, No. 10, 2017 Evaluating Dependency based Package-level Metrics for Multi-objective Maintenance Tasks Mohsin Shaikh Adil Ansari Kashif Memon Qaid-e-Awam University Qaid-e-Awam University UCET, The Islamia University of Engineering Science of Engineering Science of Bahwalpur and Technology, Nawabshah and Technology, Nawabshah Akhtar Hussain Jalbani Ahmed Ali Qaid-e-Awam University Qaid-e-Awam University of Engineering Science of Engineering Science and Technology, Nawabshah and Technology, Nawabshah Abstract—Role of packages in organization and maintenance determine quality attributes of object oriented source code of software systems has acquired vital importance in recent [3], [4]. Conventionally, software evolution process has been research of software quality. With an advancement in modu- subject to structural and architectural changes in the source larization approaches of object oriented software, packages are code, targeting suitable and organized placement of classes widely considered as re-usable and maintainable entities of object- in particular. However, such re-factoring practices can cause oriented software architectures, specially to avoid complicated de- drift and deterioration in modularization quality of software pendencies and insure software design of well identified services. In this context, recently research study of H. Abdeen on automatic [5]. Consequently, to insure flexible software modularization, optimization of package dependencies -
Pro Netbeans IDE 6 Rich Client Platform Edition.Pdf
CYAN YELLOW MAGENTA BLACK PANTONE 123 C EMPOWERING PRODUCTIVITY FOR THE JAVA™ DEVELOPER THE EXPERT’S VOICE® IN Java™ TECHNOLOGY Companion eBook Available Author of IncIncludesludes newnew Pro NetBeans™ IDE 5.5 ™ NetBeans™ Enterprise Edition Pro NetBeans IDE 6 Pro (J)Ruby/Rails(J)Ruby/Rails IDEIDE Rich Client Platform Edition NetBeans Dear Reader, Today, numerous open source and commercial Java™ Integrated Development Environments (IDEs) are available. It seems that almost every month one of them comes out in a new version, claiming to be the best IDE. Making the decision to Pro migrate to a new IDE can be a big deal for some developers. This is especially true in professional software organizations that have an investment in IDE plugins, code-quality and build tools, and established development processes that can all ™ be affected by changing IDEs. If you or your organization have not yet switched to use NetBeans™ IDE platform, then the recent release of NetBeans IDE 6.0 will make you want to do so. NetBeans IDE 6 NetBeans 6 provides an amazing development environment. The NetBeans 6 Source Editor is arguably one of the most important features of an IDE, since that ™ is where developers spend a great deal of time. Through the newly rewritten core IDE 6 architecture, the NetBeans 6 Source Editor provides extremely intelligent and Rich Client Platform Edition powerful features such as code completion, syntax highlighting, and refactoring. NetBeans 6 has not only an updated code editor, but also many new features, such as Ruby/Rails support, Maven support, JUnit 4 support, and Local History, among others. -
Write Your Own Rules and Enforce Them Continuously
Ultimate Architecture Enforcement Write Your Own Rules and Enforce Them Continuously SATURN May 2017 Paulo Merson Brazilian Federal Court of Accounts Agenda Architecture conformance Custom checks lab Sonarqube Custom checks at TCU Lessons learned 2 Exercise 0 – setup Open www.dontpad.com/saturn17 Follow the steps for “Exercise 0” Pre-requisites for all exercises: • JDK 1.7+ • Java IDE of your choice • maven 3 Consequences of lack of conformance Lower maintainability, mainly because of undesired dependencies • Code becomes brittle, hard to understand and change Possible negative effect • on reliability, portability, performance, interoperability, security, and other qualities • caused by deviation from design decisions that addressed these quality requirements 4 Factors that influence architecture conformance How effective the architecture documentation is Turnover among developers Haste to fix bugs or implement features Size of the system Distributed teams (outsourcing, offshoring) Accountability for violating design constraints 5 How to avoid code and architecture disparity? 1) Communicate the architecture to developers • Create multiple views • Structural diagrams + behavior diagrams • Capture rationale Not the focus of this tutorial 6 How to avoid code and architecture disparity? 2) Automate architecture conformance analysis • Often done with static analysis tools 7 Built-in checks and custom checks Static analysis tools come with many built-in checks • They are useful to spot bugs and improve your overall code quality • But they’re -
Book of Abstracts
|zchhppts||jj fivétqrujznéqjsvkÂîñüìîé Ìåæäóíàðîäíî髯®µ¦±¦®·©© ±¡¨±¡¢¯³¸©«¯£©°¯¬½¨¯£¡³¦¬¦ª ²£¯¢¯¥®¯¤¯ °±¯¤±¡®¯¤¯¯¢¦²°¦¸¦®©À /LQX[9DFDWLRQ(DVWHUQ(XURSH2 ¤±¯¥®¯07Ĕ10èþíÿ2¤ ±¦²³ l¬½³¦±®¡³©£¡| 2 ÏbÇ ÈÈǹ Ì ºąºË®¯ËąÈ}ĆÒË®ikzº°Ċ}È cËąÈ}ĆÒºÓÓÈ«}ºããËĄÒ«ikzº°Ċ}sslȯÎÈÓ ik©Óĉ}ÒÓk|bÈą¯È cËĆËÓÏËÓ© Ñ.Ñ. Äåðå÷åííèê, êàíäèäàò òåõíè÷åñêèõ íàóê, äîöåíò, çàâåäóþùèé êàôåäðîé ýëåêòðîííûõ âû÷èñëèòåëüíûõ ìàøèí è ñèñòåì Áðåñòñêîãî ãîñóäàðñòâåííîãî òåõíè÷åñêîãî óíèâåðñèòåòà À.Â. Îòâàãèí, êàíäèäàò òåõíè÷åñêèõ íàóê, äîöåíò êàôåäðû ýëåêòðîííûõ âû÷èñëèòåëüíûõ ìàøèí Áåëîðóññêîãî óíèâåðñèòåòà èíôîðìàòèêè è ðàäèîýëåêòðîíèêè Ì |}¯©©ËË²ÓºãºĄÒÒñ¢¯±®©«¡³¦±©¡¬¯£Âîñüìîé̦§¥´- ®¡±¯¥®¯ª «¯®µ¦±¦®·©© ±¡¨±¡¢¯³¸©«¯£ ©°¯¬½¨¯£¡³¦¬¦ª²£¯- ¢¯¥®¯¤¯ °±¯¤±¡®¯¤¯ ¯¢¦²°¦¸¦®©À /LQX[ 9DFDWLRQ (DVWHUQ (XURSH2±¯¥®¯0710èþíÿ 2¤ °¯¥ ¯¢º¦ª ±¦¥ ¯²³¿«¡Ĕ±¦²³¬½³¦±®¡³©£¡Ĕ160² ,6%13070 Æxivétqrkv¡squjznéqjs, ïðåäñòàâëåííûå àâòîðàìè íà Âîñüìóþ Ìåæäóíàðîäíóþ êîíôåðåíöèþ ðàçðàáîò÷èêîâ è ïîëüçîâàòåëåé ñâîáîäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ Linux Vacation / Eastern Europe 2012, âêëþ÷àÿ âûåçäíóþ çèìíþþ ñåññèþ êîíôåðåíöèè LVEE Winter 2012. Ìàòåðèàëû äîêëàäîâ ïðåäñòàâëåíû íà ñàéòå êîíôåðåíöèè http://lvee.org è ðàñïðîñòðàíÿþòñÿ ïîä ëèöåíçèåé Creative Commons Attribution-ShareAlike 3.0. Ñòàòüè ïîñâÿùåíû íîâûì òåõíîëîãèÿì è ðàçðàáîòêàì â ñôåðå ñâîáîäíîãî (îòêðûòîãî) ïðîãðàììíîãî îáåñïå÷åíèÿ è çàòðàãèâàþò øèðîêèé ñïåêòð ïëàòôîðì – îò ðàáî÷èõ ñòàíöèé è ñåðâåðîâ, âêëþ÷àÿ ðåøåíèÿ íà áàçå âèðòóàëèçàöèè, äî âñòðàèâàåìûõ ñèñòåì è ìîáèëüíûõ óñòðîéñòâ. Ñáîðíèê ìîæåò áûòü èíòåðåñåí ñïåöèàëèñòàì â îáëàñòè èíôîðìàöè- -
Profile Detection Through Source Code Static Analysis
Profile Detection Through Source Code Static Analysis Daniel Ferreira Novais1, Maria João Varanda Pereira2, and Pedro Rangel Henriques3 1 Departamento de Informática & Centro Algoritmi, Universidade do Minho, Braga, Portugal [email protected] 2 Departamento de Informática e Comunicações & Centro Algoritmi, Instituto Politécnico de Bragança, Bragança, Portugal [email protected] 3 Departamento de Informática & Centro Algoritmi, Universidade do Minho, Braga, Portugal [email protected] Abstract The present article reflects the progress of an ongoing master’s dissertation on language engin- eering. The main goal of the work here described, is to infer a programmer’s profile through the analysis of his source code. After such analysis the programmer shall be placed on a scale that characterizes him on his language abilities. There are several potential applications for such pro- filing, namely, the evaluation of a programmer’s skills and proficiency on a given language or the continuous evaluation of a student’s progress on a programming course. Throughout the course of this project and as a proof of concept, a tool that allows the automatic profiling of a Java programmer is under development. This tool is also introduced in the paper and its preliminary outcomes are discussed. 1998 ACM Subject Classification D.2.8 Metrics, D.3.4 Processors Keywords and phrases Static analysis, metrics, programmer profiling Digital Object Identifier 10.4230/OASIcs.SLATE.2016.9 1 Introduction Proficiency on a programming language can be compared to proficiency on a natural lan- guage [7]. Using, for example, the Common European Framework of Reference for Languages: Learning, Teaching, Assessment (CEFR) method1 it is possible to classify individuals based on their proficiency on a given foreign language. -
Yestercode: Improving Code-Change Support in Visual Dataflow
Yestercode: Improving Code-Change Support in Visual Dataflow Programming Environments Austin Z. Henley, Scott D. Fleming Department of Computer Science University of Memphis Memphis, Tennessee 38152-3240 Email: azhenley, Scott.Fleming @memphis.edu { } Abstract—In this paper, we present the Yestercode tool for sup- and BeneFactor [9]), and code smell detection (e.g., PMD porting code changes in visual dataflow programming environ- and DETEX [15]). Although a few researchers have begun ments. In a formative investigation of LabVIEW programmers, investigating code-change support for visual programming we found that making code changes posed a significant challenge. To address this issue, we designed Yestercode to enable the environments (e.g., SDPA [6]), the work is still in the early efficient recording, retrieval, and juxtaposition of visual dataflow stages, and has yet to see widespread adoption in practice. code while making code changes. To evaluate Yestercode, we im- In our own formative interviews of LabVIEW programmers plemented our design as a prototype extension to the LabVIEW (Section III-A), many confirmed that making code changes programming environment, and ran a user study involving 14 was currently difficult and problematic. professional LabVIEW programmers that compared Yestercode- extended LabVIEW to the standard LabVIEW IDE. Our results In a formative user study of LabVIEW programmers showed that Yestercode users introduced fewer bugs during engaged in refactoring (Section III-B), we found that the tasks, completed tasks in about the same time, and experienced programmers encountered considerable challenges during lower cognitive loads on tasks. Moreover, participants generally rewiring. In visual dataflow languages, rewiring may in- reported that Yestercode was easy to use and that it helped in volve changing existing wires to connect to different box making change tasks easier. -
Code Review Guide
CODE REVIEW GUIDE 2.0 RELEASE Project leaders: Larry Conklin and Gary Robinson Creative Commons (CC) Attribution Free Version at: https://www.owasp.org 1 F I 1 Forward - Eoin Keary Introduction How to use the Code Review Guide 7 8 10 2 Secure Code Review 11 Framework Specific Configuration: Jetty 16 2.1 Why does code have vulnerabilities? 12 Framework Specific Configuration: JBoss AS 17 2.2 What is secure code review? 13 Framework Specific Configuration: Oracle WebLogic 18 2.3 What is the difference between code review and secure code review? 13 Programmatic Configuration: JEE 18 2.4 Determining the scale of a secure source code review? 14 Microsoft IIS 20 2.5 We can’t hack ourselves secure 15 Framework Specific Configuration: Microsoft IIS 40 2.6 Coupling source code review and penetration testing 19 Programmatic Configuration: Microsoft IIS 43 2.7 Implicit advantages of code review to development practices 20 2.8 Technical aspects of secure code review 21 2.9 Code reviews and regulatory compliance 22 5 A1 3 Injection 51 Injection 52 Blind SQL Injection 53 Methodology 25 Parameterized SQL Queries 53 3.1 Factors to Consider when Developing a Code Review Process 25 Safe String Concatenation? 53 3.2 Integrating Code Reviews in the S-SDLC 26 Using Flexible Parameterized Statements 54 3.3 When to Code Review 27 PHP SQL Injection 55 3.4 Security Code Review for Agile and Waterfall Development 28 JAVA SQL Injection 56 3.5 A Risk Based Approach to Code Review 29 .NET Sql Injection 56 3.6 Code Review Preparation 31 Parameter collections 57 3.7 Code Review Discovery and Gathering the Information 32 3.8 Static Code Analysis 35 3.9 Application Threat Modeling 39 4.3.2.