• Title/Summary/Keyword: Software Source Code

Search Result 323, Processing Time 0.028 seconds

Kernel-level Software instrumentation via Light-weight Dynamic Binary Translation (경량 동적 코드 변환을 이용한 커널 수준 소프트웨어 계측에 관한 연구)

  • Lee, Dong-Woo;Kim, Jee-Hong;Eom, Young-Ik
    • Journal of Internet Computing and Services
    • /
    • v.12 no.5
    • /
    • pp.63-72
    • /
    • 2011
  • Binary translation is a kind of the emulation method which converts a binary code compiled on the particular instruction set architecture to the new binary code that can be run on another one. It has been mostly used for migrating legacy systems to new architecture. In recent, binary translation is used for instrumenting programs without modifying source code, because it enables inserting additional codes dynamically, For general application, there already exists some instrumentation software using binary translation, such as dynamic binary analyzers and virtual machine monitors. On the other hand, in order to be benefited from binary translation in kernel-level, a few issues, which include system performance, memory management, privileged instructions, and synchronization, should be treated. These matters are derived from the structure of the kernel, and the difference between the kernel and user-level application. In this paper, we present a scheme to apply binary translation and dynamic instrumentation on kernel. We implement it on Linux kernel and demonstrate that kernel-level binary translation adds an insignificant overhead to performance of the system.

Software Similarity Detection Using Highly Credible Dynamic API Sequences (신뢰성 높은 동적 API 시퀀스를 이용한 소프트웨어 유사성 검사)

  • Park, Seongsoo;Han, Hwansoo
    • Journal of KIISE
    • /
    • v.43 no.10
    • /
    • pp.1067-1072
    • /
    • 2016
  • Software birthmarks, which are unique characteristics of the software, are used to detect software plagiarism or software similarity. Generally, software birthmarks are divided into static birthmarks or dynamic birthmarks, which have evident pros and cons depending on the extraction method. In this paper, we propose a method for extracting the API sequence birthmarks using a dynamic analysis and similarity detection between the executable codes. Dynamic birthmarks based on API sequences extract API functions during the execution of programs. The extracted API sequences often include all the API functions called from the start to the end of the program. Meanwhile, our dynamic birthmark scheme extracts the API functions only called directly from the executable code. Then, it uses a sequence alignment algorithm to calculate the similarity metric effectively. We evaluate the birthmark with several open source software programs to verify its reliability and credibility. Our dynamic birthmark scheme based on the extracted API sequence can be utilized in a similarity test of executable codes.

A Cost Estimation Technique using the PRICE S Model for Embedded Software in Weapon Systems (PRICE S 모델을 이용한 무기체계 내장형 소프트웨어 비용 추정 기법)

  • Shin, Eon-Hee;Kang, Sung-Jin
    • The KIPS Transactions:PartD
    • /
    • v.13D no.5 s.108
    • /
    • pp.717-724
    • /
    • 2006
  • The cost estimation of software is getting more important as the portion of software is increasing in acquiring weapon systems. However, the cost estimation of embedded software in a weapon system follows the cost estimation method for general purpose softwares and uses the PRICE S model as a tool. However, any validation result of the estimated cost through an evaluated software size is not well known. Hence, we propose an approach to estimate the cost through evaluating the embedded software site in weapon systems. In order to achieve our research goal, we evaluate the software size of using the line of codes and function points which are produced by the PRICE S model. Finally, we compare the estimated cost data the actual cost data provided by the production company. As a result, we propose an approach to estimate the size and the cost of embedded software in weapon systems which are not easy to estimate objectively. We also expect that the Proposed approach is used for the cost validation and negotiation in the acquisition of weapon systems in the future.

Java API Pattern Extraction and Recommendation using Collocation Analysis (연어 관계 분석을 통한 Java API 패턴 추출 및 추천 방법)

  • Kwon, Chanwoo;Hwang, Sangwon;Nam, Youngkwang
    • Journal of KIISE
    • /
    • v.44 no.11
    • /
    • pp.1165-1177
    • /
    • 2017
  • Many developers utilize specific APIs to develop software, and to identify the use of a particular API, a developer can refer to a website that provides the API or can retrieve the API from the web. However, the site that provides the API does not necessarily provide guidance on how to use it while it can be partially provided in many other cases. In this paper, we propose a novel system JACE (Java AST collocation-pattern extractor) as a method to reuse commonly-used code as a supplement. The JACE extracts the API call nodes, collocation patterns and analyzes the relations between the collocations to extract significant API patterns from the source code. The following experiment was performed to verify the accuracy of a defined pattern: 794 open source projects were analyzed to extract about 15M API call nodes. Then, the Eclipse plug-in test program was utilized to retrieve the pattern using the top 10 classes of API call nodes. Finally, the code search results from reference pages of the API classes and the Searchcode [1] were compared with the test program results.

Transformation Method for a State Machine to Increase Code Coverage (코드 커버리지를 높이기 위한 상태 머신 변환 방법)

  • Yoon, YoungDong;Choi, HyunJae;Chae, HeungSeok
    • Journal of KIISE
    • /
    • v.43 no.9
    • /
    • pp.953-962
    • /
    • 2016
  • Model-based testing is a technique for performing the test by using a model that represents the behavior of the system as a system specification. Industrial domains such as automotive, military/aerospace, medical, railway and nuclear power generation require model-based testing and code coverage-based testing to improve the quality of software. Despite the fact that both model-based testing and code coverage-based testing are required, difficulty in achieving a high coverage using model-based testing caused by the abstraction level difference between the test model and the source code, results in the need for performing model-based testing separately. In this study, to overcome the limitations of the existing model-based testing, we proposed the state machine transformation method to effectively improve the code coverage using the protocol state machine, one of the typical modeling methods is used as the test model in model-based testing, as the test model. In addition, we performed a case study of both systems and analyzed the effectiveness of the proposed method.

Understanding the Mismatch between ERP and Organizational Information Needs and Its Responses: A Study based on Organizational Memory Theory (조직의 정보 니즈와 ERP 기능과의 불일치 및 그 대응책에 대한 이해: 조직 메모리 이론을 바탕으로)

  • Jeong, Seung-Ryul;Bae, Uk-Ho
    • Asia pacific journal of information systems
    • /
    • v.22 no.2
    • /
    • pp.21-38
    • /
    • 2012
  • Until recently, successful implementation of ERP systems has been a popular topic among ERP researchers, who have attempted to identify its various contributing factors. None of these efforts, however, explicitly recognize the need to identify disparities that can exist between organizational information requirements and ERP systems. Since ERP systems are in fact "packages" -that is, software programs developed by independent software vendors for sale to organizations that use them-they are designed to meet the general needs of numerous organizations, rather than the unique needs of a particular organization, as is the case with custom-developed software. By adopting standard packages, organizations can substantially reduce many of the potential implementation risks commonly associated with custom-developed software. However, it is also true that the nature of the package itself could be a risk factor as the features and functions of the ERP systems may not completely comply with a particular organization's informational requirements. In this study, based on the organizational memory mismatch perspective that was derived from organizational memory theory and cognitive dissonance theory, we define the nature of disparities, which we call "mismatches," and propose that the mismatch between organizational information requirements and ERP systems is one of the primary determinants in the successful implementation of ERP systems. Furthermore, we suggest that customization efforts as a coping strategy for mismatches can play a significant role in increasing the possibilities of success. In order to examine the contention we propose in this study, we employed a survey-based field study of ERP project team members, resulting in a total of 77 responses. The results of this study show that, as anticipated from the organizational memory mismatch perspective, the mismatch between organizational information requirements and ERP systems makes a significantly negative impact on the implementation success of ERP systems. This finding confirms our hypothesis that the more mismatch there is, the more difficult successful ERP implementation is, and thus requires more attention to be drawn to mismatch as a major failure source in ERP implementation. This study also found that as a coping strategy on mismatch, the effects of customization are significant. In other words, utilizing the appropriate customization method could lead to the implementation success of ERP systems. This is somewhat interesting because it runs counter to the argument of some literature and ERP vendors that minimized customization (or even the lack thereof) is required for successful ERP implementation. In many ERP projects, there is a tendency among ERP developers to adopt default ERP functions without any customization, adhering to the slogan of "the introduction of best practices." However, this study asserts that we cannot expect successful implementation if we don't attempt to customize ERP systems when mismatches exist. For a more detailed analysis, we identified three types of mismatches-Non-ERP, Non-Procedure, and Hybrid. Among these, only Non-ERP mismatches (a situation in which ERP systems cannot support the existing information needs that are currently fulfilled) were found to have a direct influence on the implementation of ERP systems. Neither Non-Procedure nor Hybrid mismatches were found to have significant impact in the ERP context. These findings provide meaningful insights since they could serve as the basis for discussing how the ERP implementation process should be defined and what activities should be included in the implementation process. They show that ERP developers may not want to include organizational (or business processes) changes in the implementation process, suggesting that doing so could lead to failed implementation. And in fact, this suggestion eventually turned out to be true when we found that the application of process customization led to higher possibilities of failure. From these discussions, we are convinced that Non-ERP is the only type of mismatch we need to focus on during the implementation process, implying that organizational changes must be made before, rather than during, the implementation process. Finally, this study found that among the various customization approaches, bolt-on development methods in particular seemed to have significantly positive effects. Interestingly again, this finding is not in the same line of thought as that of the vendors in the ERP industry. The vendors' recommendations are to apply as many best practices as possible, thereby resulting in the minimization of customization and utilization of bolt-on development methods. They particularly advise against changing the source code and rather recommend employing, when necessary, the method of programming additional software code using the computer language of the vendor. As previously stated, however, our study found active customization, especially bolt-on development methods, to have positive effects on ERP, and found source code changes in particular to have the most significant effects. Moreover, our study found programming additional software to be ineffective, suggesting there is much difference between ERP developers and vendors in viewpoints and strategies toward ERP customization. In summary, mismatches are inherent in the ERP implementation context and play an important role in determining its success. Considering the significance of mismatches, this study proposes a new model for successful ERP implementation, developed from the organizational memory mismatch perspective, and provides many insights by empirically confirming the model's usefulness.

  • PDF

A New Register Allocation Technique for Performance Enhancement of Embedded Software (내장형 소프트웨어의 성능 향상을 위한 새로운 레지스터 할당 기법)

  • Jong-Yeol, Lee
    • Journal of the Institute of Electronics Engineers of Korea SD
    • /
    • v.41 no.10
    • /
    • pp.85-94
    • /
    • 2004
  • In this paper, a register allocation techlique that translates memory accesses to register accesses Is presented to enhance embedded software performance. In the proposed method, a source code is profiled to generate a memory trace. From the profiling results, target functions with high dynamic call counts are selected, and the proposed register allocation technique is applied only to the target functions to save the compilation time. The memory trace of the target functions is searched for the memory accesses that result in cycle count reduction when replaced by register accesses, and they are translated to register accesses by modifying the intermediate code and allocating Promotion registers. The experiments where the performance is measured in terms of the cycle count on MediaBench and DSPstone benchmark programs show that the proposed method increases the performance by 14% and 18% on the average for ARM and MCORE, respectively.

Performance Enhancement of Embedded Software Using Register Promotion (레지스터 프로모션을 이용한 내장형 소프트웨어의 성능 향상)

  • Lee Jong-Yeol
    • The KIPS Transactions:PartA
    • /
    • v.11A no.5
    • /
    • pp.373-382
    • /
    • 2004
  • In this paper, a register promotion technique that translates memory accesses to register accesses is presented to enhance embedded software performance. In the proposed method, a source code is profiled to generate a memory trace. From the profiling results, target functions with high dynamic call counts are selected, and the proposed register promotion technique is applied only to the target functions to save the compilation time. The memory trace of the target functions is searched for the memory accesses that result in cycle count reduction when replaced by register accesses, and they are translated to register accesses by modifying the intermediate code and allocating promotion registers. The experiments on MediaBench and DSPstone benchmark programs show that the proposed method increases the performance by 14% and 18% on the average for ARM and MCORE, respectively.

A Study on Recovery of Design Information Using A Reverse Engineering (역공학 기법을 적용한 설계정보의 회복에 관한 연구)

  • 서민호
    • Journal of the Korea Society of Computer and Information
    • /
    • v.1 no.1
    • /
    • pp.105-128
    • /
    • 1996
  • The maintenance cost accounts for over a half of all software costs. Maintenance tools can be used to reduce It. All other maintenance techniques. reverse engineering Is a process of analyzing source code to extract design information and to create representation of it In another form or at the higher level of abstraction. In this thesis. we propose a method to extract the call relationships among programs. the logic structure In program and the data flow of programs iron COBOL source Programs using reverse engineering. We also present a method to generate the structure chart of programs and modules. The structure chart generated from source code provides very important information to understand programs In details. The structure chart modified will be more helpful the maintainer to understand programs when he analyzes them later or others analyze them.

  • PDF

Selection and implementation of Standard Functional Blocks for Radio Library in multi-mode mobile device (멀티모드 단말기의 라디오 라이브러리를 위한 표준 기능 블록의 선정 및 구현)

  • Jung, Ildo;Choi, Sengwon
    • Journal of Korea Society of Digital Industry and Information Management
    • /
    • v.12 no.3
    • /
    • pp.125-132
    • /
    • 2016
  • The European Telecommunication Standards Institute (ETSI) Technical Committee (TC) Reconfigurable Radio Systems (RRS) is standardizing the multi-mode Mobile Device (MD). The configuration of multi-mode MD is determined by the downloaded mobile communication standard software. In this paper, we introduce the Radio Library concept for multi-mode MD which is one of the key components of RRS standard. This paper also introduces the Standard Functional Block which is a part of Radio Library. A method for selecting efficiency SFBs for multi-mode MD is presented and a Radio Library is generated based on the selected SFBs. This paper also shows sample Standard Functional Block Set which included in Radio Library. In order to verify the compatibility of the generated Radio Library which was made by C language, we implement the LTE Rel-10 and Wi-Fi(802.11b) to show the efficiency of generating a mobile communication standard software based on the Radio Library. Then using the Prograph Visual Programming MartenTM 1.6.4, we compiled our LTE Rel-10 and Wi-Fi(802.11b) source code.