• Title/Summary/Keyword: Software Source Code

Search Result 323, Processing Time 0.03 seconds

Tool for Supporting Design Pattern-Oriented Software Development (디자인 패턴지향 소프트웨어 개발 지원 도구)

  • Kim, Woon-Yong;Choi, Young-Keun
    • Journal of KIISE:Software and Applications
    • /
    • v.29 no.8
    • /
    • pp.555-564
    • /
    • 2002
  • Design patterns are used to utilize well-defined design information. As using these design patterns, we can get re-use in object-oriented paradigm, decrease the time of development and improvement the quality of software. Although these design patterns are widely used among practice, most of design patterns information is manually used, inconsistent and its utilization could be very low. Because the design patterns information that a designer applies does not appear in software, it is sometimes difficult to track them. In this paper, we propose a tool support for design pattern-oriented software development. This tool supports design pattern management, software design and automatic source code generation. The design pattern management has the function for storing, managing and analyzing the existing design pattern and registering new design pattern. The software design has the function for software design with UML and automatically generate design pattern elements. By using this design information, this system can automatically generate source code. In the result to include the tracking design pattern element that is not Included In the existing CASE tools into design information, we can build the stable and efficient system that provides to analyse software, manage design pattern and automatically generate source code.

A Code Recommendation Method Using RNN Based on Interaction History (RNN을 이용한 동작기록 마이닝 기반의 추천 방법)

  • Cho, Heetae;Lee, Seonah;Kang, Sungwon
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.7 no.12
    • /
    • pp.461-468
    • /
    • 2018
  • Developers spend a significant amount of time exploring and trying to understand source code to find a source location to modify. To reduce such time, existing studies have recommended the source location using statistical language model techniques. However, in these techniques, the recommendation does not occur if input data does not exactly match with learned data. In this paper, we propose a code location recommendation method using Recurrent Neural Networks and interaction histories, which does not have the above problem of the existing techniques. Our method achieved an average precision of 91% and an average recall of 71%, thereby reducing time for searching and exploring code more than the existing recommendation techniques.

Cross-Language Clone Detection based on Common Token (공통 토큰에 기반한 서로 다른 언어의 유사성 검사)

  • Hong, Sung-Moon;Kim, Hyunha;Lee, Jaehyung;Park, Sungwoo;Mo, Ji-Hwan;Doh, Kyung-Goo
    • Journal of Software Assessment and Valuation
    • /
    • v.14 no.2
    • /
    • pp.35-44
    • /
    • 2018
  • Tools for detecting cross-language clones usually compare abstract-syntax-tree representations of source code, which lacks scalability. In order to compare large source code to a practical level, we need a similarity checking technique that works on a token level basis. In this paper, we define common tokens that represent all tokens commonly used in programming languages of different paradigms. Each source code of different language is then transformed into the list of common tokens that are compared. Experimental results using exEyes show that our proposed method using common tokens is effective in detecting cross-language clones.

Automatic Extraction of Abstract Components for supporting Model-driven Development of Components (모델기반 컴포넌트 개발방법론의 지원을 위한 추상컴포넌트 자동 추출기법)

  • Yun, Sang Kwon;Park, Min Gyu;Choi, Yunja
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.2 no.8
    • /
    • pp.543-554
    • /
    • 2013
  • Model-Driven Development(MDD) helps developers verify requirements and design issues of a software system in the early stage of development process by taking advantage of a software model which is the most highly abstracted form of a software system. In practice, however, many software systems have been developed through a code-centric method that builds a software system bottom-up rather than top-down. So, without support of appropriate tools, it is not easy to introduce MDD to real development process. Although there are many researches about extracting a model from code to help developers introduce MDD to code-centrically developed system, most of them only extracted base-level models. However, using concept of abstract component one can continuously extract higher level model from base-level model. In this paper we propose a practical method for automatic extraction of base level abstract component from source code, which is the first stage of continuous extraction process of abstract component, and validate the method by implementing an extraction tool based on the method. Target code chosen is the source code of TinyOS, an operating system for wireless sensor networks. The tool is applied to the source code of TinyOS, written in nesC language.

Validation Test Codes Development of Static Analysis Tool for Secure Software (안전한 소프트웨어 개발을 위한 정적분석 도구 시험코드 개발)

  • Bang, Jiho;Ha, Rhan
    • The Journal of Korean Institute of Communications and Information Sciences
    • /
    • v.38C no.5
    • /
    • pp.420-427
    • /
    • 2013
  • Recently, for secure software development, static analysis tools have been used mostly to analyze the source code of the software and identify software weaknesses caused of vulnerabilities. In order to select the optimal static analysis tool, both weaknesses rules and analysis capabilities of the tool are important factors. Therefore, in this paper we propose the test codes developed for evaluating the rules and analysis capabilities of the tools. The test codes to involve 43 weaknesses such as SQL injection etc. can be used to evaluate the adequacy of the rules and analysis capabilities of the tools.

Analysis of Detection Ability Impact of Clang Static Analysis Tool by Source Code Obfuscation Technique (소스 코드 난독화 기법에 의한 Clang 정적 분석 도구의 성능 영향 분석)

  • Jin, Hongjoo;Park, Moon Chan;Lee, Dong Hoon
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.28 no.3
    • /
    • pp.605-615
    • /
    • 2018
  • Due to the rapid growth of the Internet of Things market, the use of the C/C++ language, which is the most widely used language in embedded systems, is also increasing. To improve the quality of code in the C/C++ language and reduce development costs, it is better to use static analysis, a software verification technique that can be performed in the first half of the software development life cycle. Many programs use static analysis to verify software safety and many static analysis tools are being used and studied. In this paper, we use Clang static analysis tool to check security weakness detection performance of verified test code. In addition, we compared the static analysis results of the test codes applied with the source obfuscation techniques, layout obfuscation, data obfuscation, and control flow obfuscation techniques, and the static analysis results of the original test codes, Analyze the detection ability impact of the Clang static analysis tool.

Error Recovery Script of Immunity Debugger for C# .NET Applications

  • Shinde, Rupali;Choi, Min;Lee, Su-Hyun
    • Journal of Information Processing Systems
    • /
    • v.15 no.6
    • /
    • pp.1438-1448
    • /
    • 2019
  • We present a new technique, called VED (very effective debugging), for detecting and correcting division by zero errors for all types of .NET application. We use applications written in C# because C# applications are distributed through the internet and its executable format is used extensively. A tool called Immunity Debugger is used to reverse engineer executable code to get binaries of source code. With this technique, we demonstrate integer division by zero errors, the location of the error causing assembly language code, as well as error recovery done according to user preference. This technique can be extended to work for other programming languages in addition to C#. VED can work on different platforms such as Linux. This technique is simple to implement and economical because all the software used here are open source. Our aims are to simplify the maintenance process and to reduce the cost of the software development life cycle.

A Study on the Source Module Implementation using Smalltalk (Smalltalk를 이용한 원시 모듈 구현에 관한 연구)

  • O, Sang-Yeop;Kim, Hong-Jin;Jang, Deok-Cheol
    • Asia pacific journal of information systems
    • /
    • v.2 no.1
    • /
    • pp.77-92
    • /
    • 1992
  • We presents a source module implementation system using building blocks as one of the software reusing approach. Based on module text retrieval system, system is composed of library management program and new module making program for module management. We build a software module by virtue of the reuser's customization and by applying a practical module to this model and then proved that program development through reusing approach is better than that of writing out a source code directly.

  • PDF

Software Formal Verification Methodology using Aspect DEVS Verification Framework (Aspect DEVS 검증 틀을 이용한 소프트웨어 정형 검증 방법론)

  • Choi, Chang-Beom;Kim, Tag-Gon
    • Journal of the Korea Society for Simulation
    • /
    • v.18 no.3
    • /
    • pp.113-122
    • /
    • 2009
  • Software is getting more complex due to a variety of requirements that include desired functions and properties. Therefore, verifying and testing the software are complicated problems. Moreover, if the software is already implemented, inserting and deleting tracing/logging code into the source code may cause several problems, such as the code tangling and the code scattering problems. This paper proposes the Aspect DEVS Verification Framework which supports the verification and testing process. The Aspect DEVS Verification Framework utilizes Aspect Oriented Programming features to handle the code tangling and the code scattering problems. By applying aspect oriented features, a user can find and fix the inconsistency between requirement and implementation of a software without suffering the problems. The first step of the verification process is the building aspect code to make a software act as a generator. The second step is developing a requirement specification using DEVS diagrams and implementing it using the DEVSIM++. The final step is comparing the event traces from the software with the possible execution sequences from DEVS model.

A Design and Implementation of the Source Code Plagiarism Detection System

  • Ahn, Byung-Ryul;Choi, Bae-Young;Kim, Moon-Hyun
    • Proceedings of the Korea Society of Information Technology Applications Conference
    • /
    • 2005.11a
    • /
    • pp.319-323
    • /
    • 2005
  • As the software industry develops at a rate speed, anyone can copy or plagiarize without difficulty contents that are becoming digitalized. To make it worse, the development of various contents that be illegally copied and plagiarized are resulting in the increasing infringement on and the plagiarism of the intellectual property. This dissertation tries to put forth the method and the theory to effectively detect any plagiarism of the source code of programs realized in various languages. This dissertation analyzes the advantage and disadvantage of the plagiarism test software, and especially, presents a method to detect possible plagiarism by using the Pattern Matching to overcome its disadvantage. And it also intends to introduce more developed automatic detection system by overcoming the problems with the method of Pattern Matching.

  • PDF