• Title/Summary/Keyword: 소스코드 생성

Search Result 173, Processing Time 0.028 seconds

A Study on Object-Oriented Programming Education using Visualization Method (시각화방법을 이용한 객체지향프로그래밍 교육에 관한 연구)

  • Shin, Woochang
    • Journal of The Korean Association of Information Education
    • /
    • v.21 no.5
    • /
    • pp.557-565
    • /
    • 2017
  • In the era of the Fourth Industrial Revolution, programming education is becoming more important. However, it takes a lot of time and practice for students to acquire programming skills. In particular, students find it more difficult to learn object-oriented languages such as JAVA and C++, which are widely used in the industrial field. In this paper, we propose a visualization method of object interaction that can help to educate the concept of object-oriented programming, understand functions, and improve source code analysis and understanding. The proposed visualization method automatically changes the existing source code and visualizes the operation of the objects simultaneously with the execution of the program.

Node.js Module Vulnerability Analysis: Based on AST and CFG (AST 와 CFG 에 기반한 Node.js 모듈 취약점 분석)

  • Kim, Hee Yeon;Oh, Ho Kyun;Kim, Ji Hoon;You, Jaewook;Shin, Jeong Hoon;Kim, Kyounggon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2019.10a
    • /
    • pp.475-478
    • /
    • 2019
  • 웹어플리케이션의 발전에 따라 자바스크립트 런타임 플랫폼인 Node.js 의 사용도 증가하고 있다. 개발자들은 Node.js 의 다양한 모듈을 활용하여 프로그래밍을 하게 되는데, Node.js 모듈 보안의 중요성에 비하여 모듈 취약점 분석은 충분히 이루어지지 않고 있다. 본 논문에서는 소스코드의 구조를 트리 형태로 표현하는 Abstract Syntax Tree 와 소스코드의 실행 흐름 및 변수의 흐름을 그래프로 나타내는 Control Flow Graph/Data Flow Graph 가 Node.js 모듈 취약점 분석에 효율적으로 활용될 수 있음을 서술하고자 한다. Node.js 모듈은 여러 스크립트 파일로 나누어져 있다는 점과 사용자의 입력이 분명하다는 특징이 있다. 또한 자바스크립트 언어를 사용하므로 선언된 변수들의 타입에 따라 적용되는 범위인 scope 가 다르게 적용된다는 특징이 있다. 본 논문에서는 이러한 Node.js 모듈의 특징을 고려하여 Abstract Syntax Tree 및 Control Flow Graph/Data Flow Graph 을 어떻게 생성하고 취약점 분석에 활용할 것인지에 대한 방법론을 제안하고, 실제 분석에 활용할 수 있는 코드 구현을 통하여 구체화시키고자 한다.

A Study on Automatic Generation Method of Proxy Client Code to Quality Information Collection (품질 정보 수집을 위한 프록시 클라이언트 코드의 자동 생성 방안에 관한 연구)

  • Seo, young-jun;Han, jung-soo;Song, young-jae
    • Proceedings of the Korea Contents Association Conference
    • /
    • 2007.11a
    • /
    • pp.121-125
    • /
    • 2007
  • This paper proposes automatic generation method of proxy client code to automation of web service selection process through a monitoring agent. The technique of this paper help service consumer to provide source code of proxy client as it bring an attribute value of specific element of WSDL document using template rule. Namely, a XSLT script file provide code frame of dynamic invocation interface model. The automatic code generation technique need to solving starvation status of selection architecture. It is required to creating request HTTP message for every service on the result of search. The created proxy client program code generate dummy message about services. The proposed client code generation method show us a possibility of application in the automatic generation programming domain.

  • PDF

Java Bytecode-to-.NET MSIL IL Translator (자바 바이트코드의 .NET MSIL 중간언어 번역기)

  • Jung, Ji-Hoon;Park, Jin-Ki;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.11b
    • /
    • pp.663-666
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사의 제임스 고슬링(James Gosling)에 의해 고안된 언어로 운영체제 및 하드웨어 플랫폼에 독립적인 차세대 언어로 최근에 가장 널리 사용하는 범용 프로그래밍 언어 중 하나이다. 자바 프로그램은 컴파일러에 의해 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드로 변환된 클래스 파일로 생성되면 JVM(Java Virtual Machine)에 의해 실행된다. 마이크로소프트사의 .NET 플랫폼과 C# 언어는 프로그래머들의 요구를 충족시키고 썬사의 JVM 환경과 자바 언어에 대응하기 위해서 개발된 플랫폼과 언어이다. C#과 같은 .NET 언어는 컴파일러에 의해 MSIL(MicroSoft Intermediate Language) 코드로 번역되며 번역된 MSIL 코드는 .NET 플랫폼 환경에서 런타임 엔진인 CLR(Common Language Runtime)에 의해 실행이 된다. 자바로 작성된 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성된 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 이런 이유로 본 논문에서는 자바소스를 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 생성하고 생성된 Oolong 코드를 .NET의 MSIL 코드로 변환하여 자바로 구현된 프로그램이 .NET 환경에서 실행되도록 하는 Bytecode-to-MSIL 번역기 시스템을 구현하였다. 따라서, 자바 프로그래머는 JVM이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다. 번역기 시스템의 구현을 정형화하기 위해 Oolong 코드의 명령어들을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였으며, 파싱테이블을 가지고 파서를 설계하였다. 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 MSIL 코드를 생성하도록 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다.

  • PDF

A Tool to Support Efficient Development of Node Software for Various Operating System Platforms in Sensor Network Environment (센서 네트워크 환경에서 다양한 운영체제 플랫폼을 위한 노드 소프트웨어의 효율적인 개발을 지원하는 도구)

  • Lee, Woo-Jin;Choi, Il-Woo
    • Journal of the Korea Academia-Industrial cooperation Society
    • /
    • v.15 no.7
    • /
    • pp.4536-4544
    • /
    • 2014
  • This paper proposes a development tool to efficiently develop node software for various operating system platforms in a sensor network. The proposed tool consisted of several modules, such as writing graphical model diagram, PIM and PSM design, code generation, and deployment file generation. Through the proposed tool, the users can graphically draw a sensor network model and design the PIM and PSM of the node software by setting the values of the predefined attributes. The source code of the node software is generated automatically from the PSM using the code templates of the target platform. The deployment files for installing node software on each node are generated automatically. The proposed tool helps the users to develop node software easily for a range of target platforms, even though they do not have details of the low-level information for a sensor network.

A Sequence Similarity Algorithm Irrelevant to Sequence Length (서열의 길이에 무관한 유사도 측정 알고리즘)

  • Kim, Jae-Kwang;Lee, Jee-Hyong
    • Proceedings of the Korean Institute of Intelligent Systems Conference
    • /
    • 2008.04a
    • /
    • pp.13-16
    • /
    • 2008
  • Dynamic Programming (DP)을 이용한 서열 비교 알고리즘은 DNA, RNA, 단백질 서열의 비교와 프로그래밍 소스 코드 유사도를 측정하는 곳 등에 널리 사용되어 왔다. 이 알고리즘은 DP를 이용하여 행렬을 구성한 후, 행렬의 가장 마지막 생성 값을 이용해 두 서열의 유사도를 측정하는 방법이다. 그러나 이 알고리즘에서 사용하는 마지막 생성 값은 비교 서열이 길이에 따라 크게 좌우되기 때문에 다양한 서열들의 유사도를 알아내기에는 부적합하다. 본 논문에서는 서열의 길이에 무관한 유사도 측정 (S2) 알고리즘을 제안한다. 제안된 알고리즘을 이용하면 비교 서열의 길이에 영향을 받지 않고 정당한 서열 비교를 할 수 있다. 제안된 알고리즘의 검증을 위해 본 논문에서는 프로그램 소스 코드의 유사도 측정을 수행한다.

  • PDF

MIDI chord composition through chord generation program and automatic accompaniment program (조화로운 코드생성 프로그램과 자동반주 프로그램을 통한 미디 코드작곡)

  • 조재영;강희조;김윤호
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • 2004.05b
    • /
    • pp.203-207
    • /
    • 2004
  • This treatise presents that a possibility of non-musician's composition. In fart, as a development of music composition program(used by IAVA) helps to compose music easily, but non-musician still feels hard to compose some musics and perform some musics even though the band-in-a-box is already existed(which is an auto accompaniment program). This treatise shows non-musicians' special music composition way. Select a cord and put the cord to special program which ratted ‘the cord composition program’, and then the cord composition program creates the rest cords. After this progress, non-musicians overwrite their own melodies in accordance with created cords. Finally, they can perform their own musics with the sound of master-keyboard and other sound sources using by the band-in-a-box program.

  • PDF

Automated Detecting and Tracing for Plagiarized Programs using Gumbel Distribution Model (굼벨 분포 모델을 이용한 표절 프로그램 자동 탐색 및 추적)

  • Ji, Jeong-Hoon;Woo, Gyun;Cho, Hwan-Gue
    • The KIPS Transactions:PartA
    • /
    • v.16A no.6
    • /
    • pp.453-462
    • /
    • 2009
  • Studies on software plagiarism detection, prevention and judgement have become widespread due to the growing of interest and importance for the protection and authentication of software intellectual property. Many previous studies focused on comparing all pairs of submitted codes by using attribute counting, token pattern, program parse tree, and similarity measuring algorithm. It is important to provide a clear-cut model for distinguishing plagiarism and collaboration. This paper proposes a source code clustering algorithm using a probability model on extreme value distribution. First, we propose an asymmetric distance measure pdist($P_a$, $P_b$) to measure the similarity of $P_a$ and $P_b$ Then, we construct the Plagiarism Direction Graph (PDG) for a given program set using pdist($P_a$, $P_b$) as edge weights. And, we transform the PDG into a Gumbel Distance Graph (GDG) model, since we found that the pdist($P_a$, $P_b$) score distribution is similar to a well-known Gumbel distribution. Second, we newly define pseudo-plagiarism which is a sort of virtual plagiarism forced by a very strong functional requirement in the specification. We conducted experiments with 18 groups of programs (more than 700 source codes) collected from the ICPC (International Collegiate Programming Contest) and KOI (Korean Olympiad for Informatics) programming contests. The experiments showed that most plagiarized codes could be detected with high sensitivity and that our algorithm successfully separated real plagiarism from pseudo plagiarism.

Automatic Composition of Layered Architecture using XSLT Scripts (XSLT 스크립트를 이용한 계층 구조 조립 자동화)

  • 정주미;장정아;최승훈
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2004.10b
    • /
    • pp.433-435
    • /
    • 2004
  • 소프트웨어 프로덕트 라인은 핵심 소프트웨어 자산의 개발을 위한 도메인 공학과 실제 소프트웨어 부품을 조립하여 구체적인 소프트웨어 시스템을 개발하는 응용 공학을 포함한다. 소프트웨어 프로덕트 라인 구축 시 가장 중요한 점은 특정 도메인에 존재하는 가변성(variability)을 지원할 수 있어야 한다는 것으로, 재사용자의 목적에 따라 효율적으로 소프트웨어를 맞춤 생산할 수 있는 컴포넌트 재구성성(reconfigurability)이 핵심 요소라 할 수 있다. 본 논문에서는 재사용자가 선택한 특성 구성을 바탕으로 계층 구조 조립 자동화를 통해 컴포넌트 코드를 자동 생성하는 도구를 구현하였다. 이를 위하여, 컴포넌트 패밀리의 특성 모델에서 표현되는 차이점에 따라 계층 구조의 각 컴포넌트들이 조립되도록 XSLT 스크립트를 사용하였다. 특성 모델과 XML/XSLT 기술을 이용하여 컴포넌트 코드 생성 시에 재구성성을 지원하고 재사용자의 요구에 맞는 컴포넌트 소스 코드를 자동 생성함으로써 소프트웨어 프로덕트 라인 개발 생산성을 향상시킨다.

  • PDF

An Automated Test Technique of GUI Based on Source Code (소스코드기반의 GUI 테스트 자동화 기법의 구현)

  • Moon, Joong-Hee;Lee, Nam-Yong
    • Journal of KIISE:Software and Applications
    • /
    • v.36 no.9
    • /
    • pp.697-705
    • /
    • 2009
  • A GUI automated test can be divided into two areas. The first one is a regression test automation and the second one is an automated test. The former includes generating test cases manually and executing them automatically but the latter includes both generating test cases and executing them automatically. Costs of a software test are increasing more and more. Many companies are searching for a test automation method but most used things are limited to regression test automation. So, when testing at first, there should be test cases which are drawn up by a human. This paper explains to make test cases based on a source code and execute them automatically. In this paper, the study proceeds with a digital television set-top box application and explains to test without any effort of human. Of course, this study is far from a realization to industries. But this paper has a contribution at reducing more human efforts than the previous regression test automation and showing that later, fully automated test can be possible.