Fascinating Observation Monitor-based Clamant Code Smell Detection Using Python
|
|
- Morgan McCoy
- 5 years ago
- Views:
Transcription
1 Fascinating Observation Monitor-based Clamant Code Smell Detection Using Python M.Sangeetha 1, Dr. P.Sengottuvelan 2 M. Sangeetha, Ph.D Research scholar, Department of computer science, Periyar University PG Extension Centre, Dharmapuri, INDIA Dr. P. Sengottuvelan, Associate Professor, Department of computer science, Periyar University PG Extension Centre, Dharmapuri INDIA Abstract Code Smell or Bad Smell, at the very most, is an pointer of badly for source code and is often analytical of deeper problems in software design. Code smells are symptoms of subconscious problems in design, which, in most common cases, condense the understandability of the system for present and future programmers, therefore representation the program unmaintainable. Identification of these code smells has been thought of as an unprompted art rather than an exact science, as there are very few empirical measures or methodologies for doing so. This paper implements Python which will follow a scientific approach to detect five of these 30 code smells. Python will give suggestions to refactor the code for all five of these smells. Further, the tool will provide an interactive process to refactor two of these cases; while for the rest, it will suggest an ideal refactoring technique that would need to be applied manually. Index Terms Code smell, tools support, Python, detection techniques, refactor. I. INTRODUCTION SOFTWARE bad smells are patterns of poor design and flaws that make software code more drifts and weaken. Bad smells does not prevent source code to show any input. There are no effects of output but code becomes too hard to modify and adapted new requirements [1]. Software Refactoring is to restructure the code in a series of small internal structure of objected oriented software that is to improve the software quality based on the terms of maintainability, extensibility and reusability without changing the external behavior of the software. The term Refactoring was first proposed by Opdyke after it became popular by the book written by fowler et.al that published in the year 1999.Refactoring was tracked by the re-structuring which was the extended history in the literature. [2]Kim et.al assessed the value of software refactoring within Microsoft and suggested that refactoring is visible. Software refactoring tools are significant to support. For this, researchers have proposed tools to provide software refactoring. Most predictable Integrated Development Environment (IDE) such as Eclipse, Microsoft Visual Studio and IntelliJ IDEA provide tools support to conduct refactoring. Developers have to identify the refactoring opportunities if not they can t apply refactoring tools. Researchers have précised a number of typical situations which may need refactoring which Fowler calls bad smells. Experts proposed various smells detection algorithms that to identify different kinds of code smells that may be automatic or semi automatic. Extant refactoring tools and smell detection tools are inactive and human driven. Murphy Hill et.al[3] programmers fail to invoke refactoring tools and smell detection tools which may result in delay of refactoring and results in higher cost of refactoring. The reason for that is that unaware of extant tools, don t know where to invoke the tools and when to detect and how to resolve code smells.. II. PROBLEM STATEMENT During the changes in the source code there might be an incidence of smell. Fowler calls as a Bad Smell which is the symbols of possible problem in the code that may require a refactoring. Inexperienced software felt difficult to resolve the bad smells even with the help of refactoring tools. The reason is that the developers don t know where to invoke the refactoring tools and how to choose 128 M.Sangeetha, Dr. P.Sengottuvelan
2 the refactoring tools for identifying various code smells. For this we proposed a framework to perform refactoring instantaneously. By this the developer may refactor the bad smells and resolves them promptly. III. SYSTEM ARCHITECTURE The framework is made up of a monitor, a set of smell detectors, set of refactoring tools, a smell view, and a feedback controller. In the following paragraphs, these components will be separately introduced. Fig 1 Instant Refactoring Framework using Python The monitor survey changes made on source code. Once the monitor realizes that such changes might introduce code smells, it invokes corresponding smell detection tools. Accordingly, the main task of the monitor is to evaluate changes directly, and then to decide when and which detection tools should be invoked. A prospective challenge that the framework might come across is that the framework might fatally affect IDE s performance. Smell detection tools are usually resource consuming. Therefore, IDE s might become indifferent if smell detection tools run repeatedly so as to account smells instantly. To minimize this impact, the monitor takes several measures to minimize the frequency of invocation of smell detection tools under the premise of timeliness. Consequently, the monitor unambiguously specifies the most recent changes, and invoked smell detection tools minimize their search scope according to such changes. A narrowed-down search scope significantly improves the efficiency of detection algorithms because the complexity of these algorithms is usually in direct proportion to the search scope. For some kinds of code smells, e.g., public field and data class, the search scopes of their detection algorithms are confined to newly modified files. However, this condition is not necessarily true for other smells. For example, to detect duplicate code caused by the most recent changes, detection tools have to search the entire source code. However, even in this case, incremental detection tools could be faster than traditional non incremental detectors. in C# language for Java. It detects seven of the code smells: Data Class, Message Chain, Primitive Obsession, Speculative Generality, Parallel Inheritance Hierarchy, Duplicate Code, and Comments. Bad smells detected by Python. Automated smell detection process involves the use of data structures, metric count and information generated from the parser. Python detects the following code smells. i. Data class ii. Message chain iii. Primitive obsession iv. Speculative generality v. Parallel inheritance hierarchy vi. Duplicated code vii. Comment There is a separate algorithm to detect each code smell. The notation of algorithm is used static analysis technique for code analysis. Considered any one of the following code smells the refactoring can be done by the programmer with the help of various refactoring tools. But the programmer needs to identify the refactoring methods to refactor the bad smells, the bad smell can be visualized by using the Python and it can be resolved with the help of refactoring methods. Python makes the programmer convenient for refactoring with the instant code smell detection. By Python the programmer can detect the twentykinds of bad smells which are Data Class, Large Class, Long Method, Switch Statements, Public Field, and Common Methods in Sibling Classes, Duplicate Code, and Long Parameter List, Feature Envy, God Class, Type Checking. These kinds of bad smells are detected and tools get evaluated and compared with the human driven refactoring. Python has implemented detection algorithms for Data Class, Large Class, Long Method, Switch 129 M.Sangeetha, Dr. P.Sengottuvelan
3 Statements, Public Field, and Common Methods in Sibling Classes, Duplicate Code, and Long Parameter List. Developers can locate corresponding source code by double clicking on items (smells) in the view. A double click also brings forward details on smells and corresponding refactoring suggestions. Fig 2. kinds of Smells and its Explanation Fig 3. Screen shots for code smell detection using Python 3. Time taken to add functionality in the code before and after refactoring. A. Recognize Smells Present in Each During this test, the Python was run across each of the project and the output was recorded (whether the project contains the unambiguous smell or not). later they were cross- checked by the graduate students to verify accuracy of the smell identified by the tool. Even other classes of the projects were skimmed through to identify other cases which the tool might have missed. B. Time Taken to realize Code Logic Before and After Refactoring For this test, four Python developers were chosen ranging from two to seven years of experience. The experience of the users ensured that they had sufficient background knowledge of Python to understand the logic. Three projects (named 1, 2, and 3) from the 28 of the above projects were selected having different difficulty level. The details of each of the three projects are shown in Table. Each of the projects was run across Python and individual smells were detected. The detected Data Class smell and Long Method smell were refactored by the tool and given to the developers in random order. For Example, if the 1 original (non-refactored) code was given first; next time any of the refactored projects or original projects was given. The users were asked to understand the logic of the code for which they were timed. The time taken by each of the users was noted and is enlisted in below Table I. IV. RESULT Python was tested against 28 projects taken from the graduate students. These selected students have experience of Python developers, so the difficulty of their code is considerable. Each project has an average of 15 classes. These test codes are their class assignments, hence have a good level of intricacy.. The feedbacks were used to manage the GUI. To test the usability, recital and the code optimization feature of Python, three different tests were conducted. 1. Identify smells present in each project. 2. Time taken to understand code logic before and after refactoring. Student1 Student2 Student3 1 Half Adder Circuit (Observer Observable Pattern) 2 A console application determine if entered number is Prime or Square or Sum of square or Biggest Prime number (Master Slave Pattern) 3 A GUI application, represents a rectangular shape which changes its size on user input Table M.Sangeetha, Dr. P.Sengottuvelan
4 The graphical representation of time taken to understand the logic of original and the refactored code by each user is shown below. Each graph represents the time taken for individual projects. he statistics above supports the fact that after refactoring; the logic of the code becomes easy to understand. However the user test results cannot be statistically used to validate the consequence of results due to small number of users. Student1 Origin al Refacto red TABLE. II Time taken in seconds Student 2 Origin al Refacto red Student 3 Origina Refacto l red User User User User Fig 4. 2 C. Taken to Understand Code Logic Before and After Refactoring This test was performed on two separate users, one of them the original writer (originator) of the code and the other an experienced Java developer. For this test, the users were asked to add functionality to the half-adder circuit project. The users were first given the original code and than refactored code one after another. The original code had Long Method smell which made it harder for the user to understand the code. In the refactored code, Long Method smell was removed by the tool. After each step, the users were asked to understand the code and add the functionality of full-adder circuit. The time taken by each of them was recorded, enlisted in below Table. Fig USER Fig Time taken in seconds Half-adder to Full-adder Original Refactored Originator Developer TABLE III A. Time Taken to add Functionality The graphical representation of time difference to add the functionality to the code in original and the refactored code taken by each user is shown in Graph. The statistics from this test supports that time taken to add functionality in the half- adder project is approximately half for the refactored code than the time taken for the original code. This even holds true for the originator of the code (who wrote the code) as well as for other developer. This shows that the refactored code is easy to preserve and modify than the code with smells and has nothing to do with who developed the code. However, the 131 M.Sangeetha, Dr. P.Sengottuvelan
5 consequence of the results cannot be trusted as the number of users is less. The research needs to be performed on a bigger set of users to trust the results. VI. FUTURE WORK Python detects code smells in Java systems only. Similar technique can also be deployed to detect the code smells in other object-oriented languages like C++, Ruby, Python, and C#. Furthermore, Python currently detects only five of the code smells, more research can be done to distinguish other code smells. Among these five smells the Long Method smell can be improved by having a better logical perceptive of the method. Moreover, if Python provides an interactive refactor advance for other code smells, it will become a powerful tool. Fig. 6. Time taken. V. CONCLUSION We propose a Clamant refactoring with Monitor framework which makes the developer to identify the changes of the source code that results in the bad smells and to resolve bad smells. We also evaluate the proposed framework, and the results suggest that this framework could drive inexperienced engineers to resolve more code smells (an increase of 140 percent) promptly (smell lifespan reduction of 92 percent). Python is a mostly challenging language to write code in and maintain. accordingly, Python programs contain code smells which indicate potential conception and maintenance problems. With the aim of supporting refactoring strategies to enhance maintainability, this paper describes how to detect code smells in Python programs using monitorbased framework. Pysmell can detect 285 code smell instances in total with the average precision of 97.7%. It reveals that Large Class and Large Method are most prevalent. Our experiment also implies Python programs may be suffering code smells further. REFERENCES [1] M.Flower with contributions by kent beck,john brant, William Opdyke and Don Roberts, Refactorings improving the design of existing code Indiana : Addison Wesley, [2] Roperia, N. JSmell : A Bad Smell detection tool for Java systems, Long Beach, CA, USA: ProQuest Dissertation & Theses, December, [3] E. Murphy-Hill, C. Parnin, and A.P. Black, How We Refactor, and How We Know It, IEEE Trans. Software Eng., vol. 38, no. 1, pp. 5-18, Jan./Feb [4] Peter Weibgerber and Stephan Diehl, Identifying refactorings from Source-Code changes in Proceedings of 21 st IEEE/ACM International Conference on Automated Software Engineering ASE 2006, Tokyo,Japan. [5] Carsten Gorgand Peter Weibgerber, Detecting and Visualizing refactorings from Software Archives, Proceedings of the 13 th International Workshop on program Comprehension (IWPC 05) /05 $20.00 IEEE. [6] Hui Liu, Xue Guo, and Weizhong Shao, Monitor- Based Instant Software Refactoring, IEEE Transactions on Software Engineering, vol.39,no.8,august M.Sangeetha, Dr. P.Sengottuvelan
Refactoring Framework for Instance Code Smell Detection
International Journal of Advanced Research in Computer Engineering & Technology (IJARCET) Refactoring Framework for Instance Code Smell Detection D. Raj Kumar, G.M. Chanakya Abstract Code and design smells
More informationMcCa!"s Triangle of Quality
McCa!"s Triangle of Quality Maintainability Portability Flexibility Reusability Testability Interoperability PRODUCT REVISION PRODUCT TRANSITION PRODUCT OPERATION Correctness Usability Reliability Efficiency
More informationA Study of Bad Smells in Code
International Journal for Science and Emerging ISSN No. (Online):2250-3641 Technologies with Latest Trends 7(1): 16-20 (2013) ISSN No. (Print): 2277-8136 A Study of Bad Smells in Code Gurpreet Singh* and
More informationDAT159 Refactoring (Introduction)
DAT159 Refactoring (Introduction) Volker Stolz 1, with contributions by: Larissa Braz 2, Anna M. Eilertsen 3, Fernando Macías 1, Rohit Gheyi 2 Western Norway University of Applied Sciences, Universidade
More informationCredit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture
Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken
More informationClassification and Summarization of Software Refactoring Researches: A Literature Review Approach
, pp.279-284 http://dx.doi.org/10.14257/astl.2014.46.59 Classification and Summarization of Software Refactoring Researches: A Literature Review Approach Mesfin Abebe and Cheol-Jung Yoo Chonbuk National
More informationRestructuring. What is restructuring? Tudor Gîrba Reengineering life cycle. What? forward engineering. reverse engineering
Restructuring Tudor Gîrba www.tudorgirba.com Reengineering life cycle Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation
More informationAbstract: Refactorings are used to improve the internal structure of software without changing its external behavior.
Refactoring: Risks and its Effects on Software Quality Attribute Ramesh Kumar, Dr.Rajesh Verma Research Scholar, Department of Computer Science, Singhania University, Rajasthan. Asst. Professor, Department
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationEr. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma
International Journal Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 8 ISSN : 2456-3307 DOI : https://doi.org/10.32628/cseit183833 Impact
More informationInternational Journal of Computer Science Trends and Technology (IJCST) Volume 5 Issue 2, Mar Apr 2017
RESEARCH ARTICLE OPEN ACCESS Handling Anomalies in the System Design: A Unique Methodology and Solution Pratik Rajan Bhore [1], Dr. Shashank D. Joshi [2], Dr. Naveenkumar Jayakumar [3] Department of Computer
More informationAnalysis of Various Software Metrics Used To Detect Bad Smells
The International Journal Of Engineering And Science (IJES) Volume 5 Issue 6 Pages PP -14-20 2016 ISSN (e): 2319 1813 ISSN (p): 2319 1805 Analysis of Various Software Metrics Used To Detect Bad Smells
More informationImagine you ve written a piece of code but then accidentally deleted and lost it.
Why Refactor? Imagine you ve written a piece of code but then accidentally deleted and lost it. Questions: How much time would it take you to reconstruct from scratch what you had the same amount, or more,
More informationWhat Kinds of Refactorings are Co-occurred? An Analysis of Eclipse Usage Datasets
2014 6th International Workshop on Empirical Software Engineering in Practice What Kinds of Refactorings are Co-occurred? An Analysis of Eclipse Usage Datasets Tsubasa Saika 1, Eunjong Choi 1, Norihiro
More informationSAFEREFACTOR Tool for Checking Refactoring Safety
SAFEREFACTOR Tool for Checking Refactoring Safety Gustavo Soares 1, Diego Cavalcanti 1, Rohit Gheyi 1, Tiago Massoni 1, Dalton Serey 1,Márcio Cornélio 2 1 Department of Systems and Computing UFCG 2 Department
More informationSpecification and Automated Detection of Code Smells using OCL
Specification and Automated Detection of Code Smells using OCL Tae-Woong Kim 1, Tae-Gong Kim 2 and Jai-Hyun Seu 3 School of Computer Engineering, Inje University, Obang-dong 607, Gimhae, Gyeong-Nam, Korea
More informationPatterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 10 Refactoring Patterns Part 1 1 Refactoring: Definition Refactoring: A change made to the internal structure of software to make it easier
More informationAnalysis of operations and parameters involved in interface for CBSE
Analysis of operations and parameters involved in interface for CBSE P.L. Powar 1, Dr. R.K. Pandey 2, M.P. Singh 3, Bharat Solanki 4 1 Department of Mathematics and Computer Science, R. D. University,
More informationRefactoring. Chen Tang March 3, 2004
Refactoring Chen Tang March 3, 2004 What Is Refactoring (Definition) Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet
More informationJava. Murphy-Hill[1] Eclipse 90% 90% Fowler. Eclipse *2 Visual Studio *3 [2] Eclipse. Eclipse 26. Java. Eclipse
Java 1,a) 2 1 IDE( ) Eclipse 1. Fowler *1 93 Eclipse *2 Visual Studio *3 IDE( ) Eclipse 26. 1 Graduate School of Informatics and Engineering The University of Electro-Communications 2 School of Information
More informationRefactoring, 2nd Ed. A love story. Michael Hunger
Refactoring, 2nd Ed. A love story Michael Hunger Michael Hunger Open Sourcerer Neo4j @mesirii It crashed at 940! I know what you're here for! Covers By: dev.to/rly Which Refactoring do you like most? Extract
More informationRefactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion
Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand
More informationAnalysis of the Test Driven Development by Example
Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /
More informationModel refactoring within a Sequencer TOMAŽ KOS 1, TOMAŽ KOSAR 2, JURE KNEZ 1, MARJAN MERNIK 2
Model refactoring within a Sequencer TOMAŽ KOS 1, TOMAŽ KOSAR 2, JURE KNEZ 1, MARJAN MERNIK 2 1 DEWESoft d.o.o. Gabersko 11a, 1420 Trbovlje SLOVENIA {tomaz.kos, jure.knez}@dewesoft.si http://www.dewesoft.si
More informationPROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development
INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an
More informationPrototype Environment for Refactoring Clean Programs
Prototype Environment for Refactoring Clean Programs Extended abstract Rozália Szabó-Nacsa, Péter Diviánszky, Zoltán Horváth Department of Software Technology and Methodology, Eötvös Loránd University,
More informationStatic rules of variable scoping in Erlang
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 137 145. Static rules of variable scoping in Erlang László Lövei, Zoltán Horváth,
More informationYahoo! Digits: A Design Driven to Provide Instant Data Driven Insights and its Use in User Experience Design
Yahoo! Digits: A Design Driven to Provide Instant Data Driven Insights and its Use in User Experience Design Abhishek Yahoo! R & D Torrey Pines, EGL, Ring Road, Bangalore abhik@yahoo-inc.com Yahoo! Digits
More informationImplementing evolution: Refactoring
2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment
More informationHow We Refactor, and How We Know it. Emerson Murphy-Hill, Chris Parnin, Andrew P. Black ICSE 2009
How We Refactor, and How We Know it Emerson Murphy-Hill, Chris Parnin, Andrew P. Black ICSE 2009 Introduction Refactoring is the process of changing the structure of a program without changing the way
More informationAutomated Approach for Anti-Pattern Detection
Automated Approach for Anti-Pattern Detection Neha Nanda Computer Science and Engineering Lovely Professional University, Phagwara, Punjab, India nehananda50@gmail.com Rohitt Sharma Computer Science and
More informationRefactoring Practice: How it is and How it Should be Supported
Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case
More informationThe goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.
Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which
More informationBeyond the Refactoring Browser: Advanced Tool Support for Software Refactoring
Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Tom Mens Tom Tourwé Francisca Muñoz Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel, Belgium
More informationImproving Usability of Refactoring Tools
Improving Usability of Refactoring Tools Emerson Murphy Hill, Portland State University, emerson@cs.pdx.edu Abstract Refactoring is the process of changing the structure of code without changing its behavior.
More informationContinuous auditing certification
State of the Art in cloud service certification Cloud computing has emerged as the de-facto-standard when it comes to IT delivery. It comes with many benefits, such as flexibility, cost-efficiency and
More informationPreface. This Book and Simulation Software Bundle Project
Preface This Book and Simulation Software Bundle Project Dear Reader, this book project brings to you a unique study tool for ESD protection solutions used in analog-integrated circuit (IC) design. Quick-start
More informationEvaluation of Business Rules Maintenance in Enterprise Information Systems
POSTER 2015, PRAGUE MAY 14 1 Evaluation of Business Rules Maintenance in Enterprise Information Systems Karel CEMUS Dept. of Computer Science, Czech Technical University, Technická 2, 166 27 Praha, Czech
More informationGA-driven Automatic Refactoring based on Design Patterns
Software Engineering 2012, 2(2): 29-35 DOI: 10.5923/j.se.20120202.03 GA-driven Automatic Refactoring based on Design Patterns Takao Shimomura Dept. of Information Science and Intelligent Systems, University
More informationsecurity model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene
Patterns For Developing Successful Object-Oriented Frameworks Joseph W. Yoder August 27, 1997 1 Overview The work described here extends last years OOPSLA framework workshop paper [Yoder 1996] describing
More informationRefactoring via Database Representation
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Refactoring via Database Representation Péter Diviánszky 1, Rozália Szabó-Nacsa 2, Zoltán Horváth 1 1 Department
More informationHow We Refactor, and How We Know It
Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition
More informationWhy is Inheritance Important?
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 A Controlled Experiment on Inheritance Depth as a Cost Factor in Maintenance Walter F. Tichy University of Karlsruhe Why is Inheritance Important?
More informationSoftware Evolution. Dr. James A. Bednar. With material from
Software Evolution Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar With material from Massimo Felici, Conrad Hughes, and Perdita Stevens SAPM Spring 2012: Evolution 1 Software
More informationInternational Journal of Software and Web Sciences (IJSWS) EVALUATING TESTABILITY OF OBJECT ORIENTED SYSTEM
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International
More informationAn Approach to Software Component Specification
Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software
More informationINSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043 INFORMATION TECHNOLOGY COURSE DESCRIPTION FORM Course Title Course Code Regulation Course Structure Course Coordinator SOFTWARE
More informationRefactoring. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 27 11/29/11. University of Colorado, 2011
Refactoring Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 27 11/29/11 University of Colorado, 2011 Credit where Credit is Due Some of the material for this lecture is taken
More informationGenerating and Using Results
Background Generating and Using Results from Usability Evaluations Kasper Hornbæk University of Copenhagen www.kasperhornbaek.dk Associate professor in the Human computer Interaction group at Copenhagen
More informationTowards End-User Adaptable Model Versioning: The By-Example Operation Recorder
Towards End-User Adaptable Model Versioning: The By-Example Operation Recorder Petra Brosch, Philip Langer, Martina Seidl, and Manuel Wimmer Institute of Software Technology and Interactive Systems Vienna
More informationAsst. Professor, Dept. of MCA, Siddaganga Institute of Technology, Tumakuru, Karnataka
Automated Testing for the Graphical User Interface of Android Applications Using an Open Source Mobile Testing Tool Appium Vinay. S. Pattanshetti 1, Mr. Ramesh C N 2 1 Dept. of MCA, Siddaganga Institute
More informationModeling Systems Using Design Patterns
Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk
More informationDimensional Optimization for the Crank-Rocker Mechanism using TK Solver
Int. J. Engng Ed. Vol. 13, No. 6, p. 417±425, 1997 0949-149X/91 $3.00+0.00 Printed in Great Britain. # 1997 TEMPUS Publications. Dimensional Optimization for the Crank-Rocker Mechanism using TK Solver
More informationExtended Dataflow Model For Automated Parallel Execution Of Algorithms
Extended Dataflow Model For Automated Parallel Execution Of Algorithms Maik Schumann, Jörg Bargenda, Edgar Reetz and Gerhard Linß Department of Quality Assurance and Industrial Image Processing Ilmenau
More informationA Retrieval Mechanism for Multi-versioned Digital Collection Using TAG
A Retrieval Mechanism for Multi-versioned Digital Collection Using Dr M Thangaraj #1, V Gayathri *2 # Associate Professor, Department of Computer Science, Madurai Kamaraj University, Madurai, TN, India
More informationKeywords Code clean up, code standard, maintainability, extendibility, software refactoring, bad smell code.
Volume 7, Issue 5, May 2017 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review on Bad
More informationSoftware design simulation for quick and qualitative application development
IJCSNS International Journal of Computer Science and Network Security, Vol.9, No.8, August 2009 89 Software design simulation for quick and qualitative application development P.K. Suri 1 Gurdev Singh
More informationOn the Impact of Refactoring Operations on Code Quality Metrics
On the Impact of Refactoring Operations on Code Quality Metrics Oscar Chaparro 1, Gabriele Bavota 2, Andrian Marcus 1, Massimiliano Di Penta 2 1 University of Texas at Dallas, Richardson, TX 75080, USA
More informationAn Environment for Training Computer Science Students on Software Testing
An Environment for Training Computer Science Students on Software Testing Jim Collofello and Kalpana Vehathiri Department of Computer Science and Engineering, Arizona State University Tempe, Arizona 85287
More informationAutomatized Generating of GUIs for Domain-Specific Languages
Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,
More informationLOGICAL OPERATOR USAGE IN STRUCTURAL MODELLING
LOGICAL OPERATOR USAGE IN STRUCTURAL MODELLING Ieva Zeltmate (a) (a) Riga Technical University, Faculty of Computer Science and Information Technology Department of System Theory and Design ieva.zeltmate@gmail.com
More informationThe Comparative Study of Machine Learning Algorithms in Text Data Classification*
The Comparative Study of Machine Learning Algorithms in Text Data Classification* Wang Xin School of Science, Beijing Information Science and Technology University Beijing, China Abstract Classification
More informationImplementation of Efficient Modified Booth Recoder for Fused Sum-Product Operator
Implementation of Efficient Modified Booth Recoder for Fused Sum-Product Operator A.Sindhu 1, K.PriyaMeenakshi 2 PG Student [VLSI], Dept. of ECE, Muthayammal Engineering College, Rasipuram, Tamil Nadu,
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 9 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week Software Development Process Version Control Contents Project planning
More informationObjectives: On completion of this project the student should be able to:
ENGI-0655/5232 Software Construction and Evolution Project 1 Reverse Engineering Refactoring & Object Oriented Design Due date November 10, 2009-4:00 pm 1. Aims The aim of this project is to give you more
More informationFinding Extract Method Refactoring Opportunities by Analyzing Development History
2017 IEEE 41st Annual Computer Software and Applications Conference Finding Extract Refactoring Opportunities by Analyzing Development History Ayaka Imazato, Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto
More informationSilvia Preston Ph. D. Candidate Dissertation Proposal
Silvia Preston Ph. D. Candidate Dissertation Proposal Presentation Outline Problem Statement Background of the Problem Importance of the Problem Research Objective Objective of the Study Related Work Research
More informationADAPTIVE TILE CODING METHODS FOR THE GENERALIZATION OF VALUE FUNCTIONS IN THE RL STATE SPACE A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL
ADAPTIVE TILE CODING METHODS FOR THE GENERALIZATION OF VALUE FUNCTIONS IN THE RL STATE SPACE A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL OF THE UNIVERSITY OF MINNESOTA BY BHARAT SIGINAM IN
More informationLecture Notes on Garbage Collection
Lecture Notes on Garbage Collection 15-411: Compiler Design Frank Pfenning Lecture 21 November 4, 2014 These brief notes only contain a short overview, a few pointers to the literature with detailed descriptions,
More informationA Generic Visual Language Technique for DSVL Model Refactoring to Patterns
ECEASST A Generic Visual Language Technique for DSVL Model Refactoring to Patterns Karen Li 1, John Hosking 1, and John Grundy 2 1 {k.li, j.hosking}@auckland.ac.nz Departments of Computer Science, University
More informationApplying Experiences with Declarative Codifications of Software Architectures on COD
Applying Experiences with Declarative Codifications of Software Architectures on COD Position Paper Roel Wuyts Stéphane Ducasse Gabriela Arévalo roel.wuyts@iam.unibe.ch ducasse@iam.unibe.ch arevalo@iam.unibe.ch
More informationPattern-Oriented Reengineering of a Network System
Pattern-Oriented Reengineering of a Network System Chung-Horng LUNG Department of Systems and Computer Engineering, Carleton University Ottawa, Ontario K1S 5B6, Canada and Qiang ZHAO Department of Systems
More informationRefactoring Myths FOCUS: REFACTORING
Refactoring Myths Munawar Hafiz and Jeffrey Overbey, Auburn University // Refactoring myths are popular misconceptions about tool- based refactoring about the tools intent, the principles they follow,
More informationPresentation 1 Test Automation What YOU need to know! By Michalis Kostikoglou and Phong Tran
Presentation 1 Test Automation What YOU need to know! By Michalis Kostikoglou and Phong Tran Copyright ANZTB Story: Returns go to stock As a store owner In order to keep track of stock I want to add items
More informationTutorial on VHDL and Verilog Applications
Second LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2004) Challenges and Opportunities for Engineering Education, Research and Development 2-4 June
More informationEvaluation of Power Consumption of Modified Bubble, Quick and Radix Sort, Algorithm on the Dual Processor
Evaluation of Power Consumption of Modified Bubble, Quick and, Algorithm on the Dual Processor Ahmed M. Aliyu *1 Dr. P. B. Zirra *2 1 Post Graduate Student *1,2, Computer Science Department, Adamawa State
More informationFPGA IMPLEMENTATION OF FLOATING POINT ADDER AND MULTIPLIER UNDER ROUND TO NEAREST
FPGA IMPLEMENTATION OF FLOATING POINT ADDER AND MULTIPLIER UNDER ROUND TO NEAREST SAKTHIVEL Assistant Professor, Department of ECE, Coimbatore Institute of Engineering and Technology Abstract- FPGA is
More informationInternational Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 5, May 213 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Code Reusability
More informationCode Smells & Refactoring
Material and some slide content from: - Mehdi Amoui Kalareh - Fowler Refactoring book Code Smells & Refactoring Reid Holmes Lecture 18 - Tuesday November 22 2011. Program restructuring Software systems
More informationOpen Closed Principle (OCP)
Open Closed Principle (OCP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles
More informationInheritance Metrics: What do they Measure?
Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in
More informationBringing Usability to Industrial Control Systems by Marcus Reul, RWTH Aachen University, Aachen, Germany, aachen.
Bringing Usability to Industrial Control Systems by Marcus Reul, RWTH Aachen University, 52056 Aachen, Germany, marcus.reul@rwth aachen.de Abstract I want to examine how domain specific HCI design patterns
More informationRefactoring Support Based on Code Clone Analysis
Refactoring Support Based on Code Clone Analysis Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1 and Katsuro Inoue 1 1 Graduate School of Information Science and Technology, Osaka University, Toyonaka,
More informationEye Tracking Experiments in Business Process Modeling: Agenda Setting and Proof of Concept
Eye Tracking Experiments in Business Process Modeling: Agenda Setting and Proof of Concept Frank Hogrebe 1, NickGehrke 2, Markus Nüttgens 3 1 Hessische Hochschule für Polizei und Verwaltung, Fachbereich
More informationThe Convergence of Security and Compliance
ebook The Convergence of Security and Compliance How Next Generation Endpoint Security Manages 5 Core Compliance Controls Table of Contents Introduction....3 Positive versus Negative Application Security....3
More informationLiving and Working with Aging Software. Ralph Johnson. University of Illinois at Urbana-Champaign
Living and Working with Aging Software Ralph Johnson University of Illinois at Urbana-Champaign rjohnson@illinois.edu Old software gets brittle n n Hard to change Hard to understand Software should be
More informationA Comparative study of On-Demand Data Delivery with Tables Driven and On-Demand Protocols for Mobile Ad-Hoc Network
A Comparative study of On-Demand Data Delivery with Tables Driven and On-Demand Protocols for Mobile Ad-Hoc Network Humayun Bakht Research Fellow, London School of Commerce, United Kingdom humayunbakht@yahoo.co.uk
More informationExploring Dynamic Compilation Facility in Java
Exploring Dynamic Compilation Facility in Java Dingwei He and Kasi Periyasamy Computer Science Department University of Wisconsin-La Crosse La Crosse, WI 54601 kasi@cs.uwlax.edu Abstract Traditional programming
More informationTool Support for Complex Refactoring to Design Patterns
Tool Support for Complex Refactoring to Design Patterns Carmen Zannier 1, Frank Maurer 1 1 University of Calgary, Department of Computer Science, Calgary, Alberta, Canada T2N 1N4 {zannierc, maurer}@cpsc.ucalgary.ca
More informationA Case Study of Unanticipated Incremental Change
A Case Study of Unanticipated Incremental Change Václav Rajlich, Prashant Gosavi Department of Computer Science, Wayne State University, Detroit, MI 48202 rajlich@cs.wayne.edu Abstract Incremental changes
More informationRefactoring. Paul Jackson. School of Informatics University of Edinburgh
Refactoring Paul Jackson School of Informatics University of Edinburgh Refactoring definition Refactoring (noun) is a change made to the internal structure of software to make it easier to understand,
More informationPerformance Evaluation of A Role Based Access Control Constraints in Role Mining Using Cardinality
Performance Evaluation of A Role Based Access Control Constraints in Role Mining Using Cardinality Yogita R. More 1, Dr. S. V. Gumaste 2 PG Scholar, Dept.Of Computer Engineering, GES's R. H. Sapat COE,
More informationEfficient Regression Test Model for Object Oriented Software
Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration
More informationSubstitution Based Rules for Efficient Code Duplication on Object Oriented Systems
I J C T A, 9(7), 2016, pp. 3109-3115 International Science Press ISSN: 0974-5572 Substitution Based Rules for Efficient Code Duplication on Object Oriented Systems Anoop Sreekumar R.S.* and R.V. Sivabalan**
More informationQuality-oriented Move Method Refactoring
Quality-oriented Move Method Refactoring Christian Marlon Souza Couto Department of Computer Science Federal University of Lavras Lavras, Brazil Email: christiancouto@posgrad.ufla.br Henrique Rocha Inria
More informationCOST ESTIMATION FOR DISTRIBUTED SYSTEMS USING USE CASE DIAGRAM
S. V. Pingale et al. : Cost Estimation for Distributed Systems using Use Case Diagram Journal of Advances in Engineering Science 41 Section C (3), July - December 2010, PP 41-48 COST ESTIMATION FOR DISTRIBUTED
More informationMaking Program Refactoring Safer
Making Program Refactoring Safer Gustavo Soares 1, Rohit Gheyi 1, Dalton Serey 1 1 Department of Computing and Systems UFCG 58429-900 Campina Grande PB Brazil {gsoares,rohit,dalton}@dsc.ufcg.edu.br Abstract.
More informationEnhancing E-Journal Access In A Digital Work Environment
Enhancing e-journal access in a digital work environment Foo, S. (2006). Singapore Journal of Library & Information Management, 34, 31-40. Enhancing E-Journal Access In A Digital Work Environment Schubert
More informationCOMP 354 TDD and Refactoring
COMP 354 TDD and Refactoring Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course Web Site: http://users.encs.concordia.ca/
More informationHard ware implementation of area and power efficient Carry Select Adder using reconfigurable adder structures
International Journal of Scientific and Research Publications, Volume 4, Issue 6, June 014 1 Hard ware implementation of area and power efficient Carry Select Adder using reconfigurable adder structures
More information