• Title/Summary/Keyword: source code change

Search Result 68, Processing Time 0.026 seconds

Applying Practice Patterns to Improve Source Code Quality of Embedded Software (임베디드 소프트웨어의 소스 코드 품질 향상을 위한 Practice Patterns의 적용)

  • Hong Jang-Eui
    • The KIPS Transactions:PartA
    • /
    • v.12A no.7 s.97
    • /
    • pp.589-596
    • /
    • 2005
  • Source code quality is very Important that software embedded into product is difficult to change. In order to improve source code quality, it should be considered the quality of analysis and design models as well as the quality of source code. In this paper, we suggest 'Practice Pattern' as one of practical techniques to improve embedded software source code quality. Practice pattern is a procedural pattern to guide modeling and coding activities in software development phases. We believe that applying our pattern provides the improvement of optimum performance, modularization, and portability for embedded software source code.

A Technique to Detect Change-Coupled Files Using the Similarity of Change Types and Commit Time (변경 유형의 유사도 및 커밋 시간을 이용한 파일 변경 결합도)

  • Kim, Jung Il;Lee, Eun Joo
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.3 no.2
    • /
    • pp.65-72
    • /
    • 2014
  • Change coupling is a measure to show how strongly change-related two entities are. When two source files have been frequently changed together, they are regarded as change-coupled files and they will probably be changed together in the near future. In the previous studies, the change coupling between two files is defined with the number of common changed time, that is, common commit time of the files. However, the frequency-based technique has limitations because of 'tangled changes', which frequently happens in the development environments with version control systems. The tangled change means that several code hunks have been changed at the same time, though they have no relation with each other. In this paper, the change types of the code hunks are also used to define change coupling, in addition to the common commit time of target files. First, the frequency vector based on change types are defined with the extracted change types, and then, the similarity of change patterns are calculated using the cosine similarity measure. We conducted experiments on open source project Eclipse JDT and CDT for case studies. The result shows that the applicability of the proposed method, compared to the previous studies.

A Pragmatic Framework for Predicting Change Prone Files Using Machine Learning Techniques with Java-based Software

  • Loveleen Kaur;Ashutosh Mishra
    • Asia pacific journal of information systems
    • /
    • v.30 no.3
    • /
    • pp.457-496
    • /
    • 2020
  • This study aims to extensively analyze the performance of various Machine Learning (ML) techniques for predicting version to version change-proneness of source code Java files. 17 object-oriented metrics have been utilized in this work for predicting change-prone files using 31 ML techniques and the framework proposed has been implemented on various consecutive releases of two Java-based software projects available as plug-ins. 10-fold and inter-release validation methods have been employed to validate the models and statistical tests provide supplementary information regarding the reliability and significance of the results. The results of experiments conducted in this article indicate that the ML techniques perform differently under the different validation settings. The results also confirm the proficiency of the selected ML techniques in lieu of developing change-proneness prediction models which could aid the software engineers in the initial stages of software development for classifying change-prone Java files of a software, in turn aiding in the trend estimation of change-proneness over future versions.

Predicting Program Code Changes Using a CNN Model (CNN 모델을 이용한 프로그램 코드 변경 예측)

  • Kim, Dong Kwan
    • Journal of the Korea Convergence Society
    • /
    • v.12 no.9
    • /
    • pp.11-19
    • /
    • 2021
  • A software system is required to change during its life cycle due to various requirements such as adding functionalities, fixing bugs, and adjusting to new computing environments. Such program code modification should be considered as carefully as a new system development becase unexpected software errors could be introduced. In addition, when reusing open source programs, we can expect higher quality software if code changes of the open source program are predicted in advance. This paper proposes a Convolutional Neural Network (CNN)-based deep learning model to predict source code changes. In this paper, the prediction of code changes is considered as a kind of a binary classification problem in deep learning and labeled datasets are used for supervised learning. Java projects and code change logs are collected from GitHub for training and testing datasets. Software metrics are computed from the collected Java source code and they are used as input data for the proposed model to detect code changes. The performance of the proposed model has been measured by using evaluation metrics such as precision, recall, F1-score, and accuracy. The experimental results show the proposed CNN model has achieved 95% in terms of F1-Score and outperformed the multilayer percept-based DNN model whose F1-Score is 92%.

Development of Analysis and Visualization Tool for Java Source Code Changes using Reverse Engineering Technique (역공학을 이용한 자바 소스 코드의 변화량 분석 및 시각화 도구 개발)

  • Kwon, Jin-Wook;Choi, Yun-Ja;Lee, Woo-Jin
    • The KIPS Transactions:PartD
    • /
    • v.19D no.1
    • /
    • pp.39-48
    • /
    • 2012
  • In order to quickly understand which changes of source codes have been made and to perform effective maintenance of a system, it is important to visualize the changed parts. Although there are many works for analyzing software changes, there are few works for visualizing both of the change types and change quantifications for Java based systems. In this paper, we propose a change analysis technique based on class diagram and provide a change visualization technique by using change quantification information. In order to check the structural changes in source codes, source codes are transformed to class diagrams by reverse engineering methods. On the class diagrams, the changes are analyzed and quantified by numbers. Based on the change quantification, the changes are visualized on the class diagram by color spectrum. By using visualization techniques, maintainers can easily recognize the code changes to reduce the cost and time of maintenance.

A Method of Object Identification from Procedural Programs (절차적 프로그램으로부터의 객체 추출 방법론)

  • Jin, Yun-Suk;Ma, Pyeong-Su;Sin, Gyu-Sang
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.10
    • /
    • pp.2693-2706
    • /
    • 1999
  • Reengineering to object-oriented system is needed to maintain the system and satisfy requirements of structure change. Target systems which should be reengineered to object-oriented system are difficult to change because these systems have no design document or their design document is inconsistent of source code. Using design document to identifying objects for these systems is improper. There are several researches which identify objects through procedural source code analysis. In this paper, we propose automatic object identification method based on clustering of VTFG(Variable-Type-Function Graph) which represents relations among variables, types, and functions. VTFG includes relations among variables, types, and functions that may be basis of objects, and weights of these relations. By clustering related variables, types, and functions using their weights, our method overcomes limit of existing researches which identify too big objects or objects excluding many functions. The method proposed in this paper minimizes user's interaction through automatic object identification and make it easy to reenginner procedural system to object-oriented system.

  • PDF

Multipath Error Mitigation using Differenced Autocorrelation Function (자기 상관 차분 함수를 이용한 다중 경로 오차 감쇄 기법)

  • 최일흥;이상정
    • Journal of the Korea Institute of Military Science and Technology
    • /
    • v.6 no.1
    • /
    • pp.59-67
    • /
    • 2003
  • Multipath is an inevitable error source in radio navigation system such as GPS, it causes signal tracking errors such as carrier tracking errors, code tracking errors. Since code tracking error is a dominant error in absolute positioning, this paper focuses on the improvement of code tracking performance. This paper proposes a method that detects the change of autocorrelation function's slope and mitigates the multipath error. Also, this paper shows the performance evaluation results by post-processing the digitized RF samples.

A Case Study on Combustion Instability of a Model Lean Premixed Gas Turbine Combustor with Open Source Code OSCILOS (온라인 개방코드 OSCILOS를 이용한 모델 희박 예혼합 가스터빈 연소기의 연소불안정 해석 사례)

  • Cha, Dong Jin;Song, Jin Kwan;Lee, Jong Geun
    • Journal of the Korean Society of Combustion
    • /
    • v.20 no.4
    • /
    • pp.10-18
    • /
    • 2015
  • Combustion instability is a major issue in design and maintenance of gas turbine combustors for efficient operation with low emissions. With the thermoacoustic view point the instability is induced by the interaction of the unsteady heat release of the combustion process and the change in the acoustic pressure in the combustion chamber. In an effort to study the combustion dynamics of gas turbine combustors, Morgans et al (2014) have developed OSCILOS (open source combustion instability low order simulator) code and it is currently available online. In this study the code has been utilized to predict the combustion instability of a reported case for lean premixed gas turbine combustion, and then its prediction results have been compared with the corresponding experimental data. It turned out that both the predicted and the experimental combustion instability results agree well. Further the effects of some typical inlet acoustic boundary conditions on the prediction have been investigated briefly. It is believed that the validity and effectiveness of the open source code is reconfirmed through this benchmark test.

Extension of Code Refactoring Technique to Support Energy Efficiency and Language Conversion of Embedded Software (임베디드 소프트웨어의 에너지 효율성과 언어 변환 지원을 위한 코드 리팩토링 기법 확장)

  • Nam, Seungwoo;Hong, Jang-Eui
    • Journal of Convergence for Information Technology
    • /
    • v.8 no.2
    • /
    • pp.91-103
    • /
    • 2018
  • Refactoring is an engineering technique for securing the quality of existing legacy code, improving the internal structure without changing the functionality of the software. Along with the reuse of open source software, reuse of source code through programming language conversion is increasingly required due to technical or market requirements. In this situation, the refactoring technique including language conversion as well as energy efficiency is considered to be an important means for improving the productivity and the quality of embedded software development. This paper proposes a code refactoring technique that converts the grammar and structure of a programming language into those of a different language through comparison and mapping, in addition to the existing energy efficient refactoring technique. The use of the proposed refactoring technique can expect to improve the competitiveness of the product through rapid software development and quality improvement by coping with the environment change of the software development language and enhancing the reuse of the existing code.

OpenFOAM : Open source CFD in research and industry

  • Jasak, Hrvoje
    • International Journal of Naval Architecture and Ocean Engineering
    • /
    • v.1 no.2
    • /
    • pp.89-94
    • /
    • 2009
  • The current focus of development in industrial Computational Fluid Dynamics (CFD) is integration of CFD into Computer-Aided product development, geometrical optimisation, robust design and similar. On the other hand, in CFD research aims to extend the boundaries of practical engineering use in "non-traditional" areas. Requirements of computational flexibility and code integration are contradictory: a change of coding paradigm, with object orientation, library components, equation mimicking is proposed as a way forward. This paper describes OpenFOAM, a C++ object oriented library for Computational Continuum Mechanics (CCM) developed by the author. Efficient and flexible implementation of complex physical models is achieved by mimicking the form of partial differential equation in software, with code functionality provided in library form. Open Source deployment and development model allows the user to achieve desired versatility in physical modeling without the sacrifice of complex geometry support and execution efficiency.