• Title/Summary/Keyword: Software Source Code

Search Result 319, Processing Time 0.026 seconds

A Code Clustering Technique for Unifying Method Full Path of Reusable Cloned Code Sets of a Product Family (제품군의 재사용 가능한 클론 코드의 메소드 경로 통일을 위한 코드 클러스터링 방법)

  • Kim, Taeyoung;Lee, Jihyun;Kim, Eunmi
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.12 no.1
    • /
    • pp.1-18
    • /
    • 2023
  • Similar software is often developed with the Clone-And-Own (CAO) approach that copies and modifies existing artifacts. The CAO approach is considered as a bad practice because it makes maintenance difficult as the number of cloned products increases. Software product line engineering is a methodology that can solve the issue of the CAO approach by developing a product family through systematic reuse. Migrating product families that have been developed with the CAO approach to the product line engineering begins with finding, integrating, and building them as reusable assets. However, cloning occurs at various levels from directories to code lines, and their structures can be changed. This makes it difficult to build product line code base simply by finding clones. Successful migration thus requires unifying the source code's file path, class name, and method signature. This paper proposes a clustering method that identifies a set of similar codes scattered across product variants and some of their method full paths are different, so path unification is necessary. In order to show the effectiveness of the proposed method, we conducted an experiment using the Apo Games product line, which has evolved with the CAO approach. As a result, the average precision of clustering performed without preprocessing was 0.91 and the number of identified common clusters was 0, whereas our method showed 0.98 and 15 respectively.

Design of Learning Process with Code Reconstruction Principle for Non-computer Majors

  • Hye-Wuk, Jung
    • International Journal of Advanced Culture Technology
    • /
    • v.10 no.4
    • /
    • pp.175-180
    • /
    • 2022
  • To develop computational thinking skills, university students are learning how to solve problems with algorithms, program commands and grammar, and program writing. Because non-computer majors have difficulty with computer programming-related content, they need a learning method to acquire coding knowledge from the process of understanding, interpreting, changing, and improving source codes by themselves. This study explored clone coding, refactoring coding, and coding methods using reconstruction tools, which are practical and effective learning methods for improving coding skills for students who are accustomed to coding. A coding learning process with the code reconstruction principle was designed to help non-computer majors use it to understand coding technology and develop their problem-solving ability and applied the coding technology learning method used in programmer education.

Case Study of Software Reverse Engineering using McCabe and BP/Win Tools (McCabe 및 BP/Win도구를 이용한 소프트웨어 역공학 사례연구)

  • Jo, Hyeon-Hun;Choe, Yong-Rak;Rhew, Sung-Yul
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.6 no.5
    • /
    • pp.528-535
    • /
    • 2000
  • This paper aims at providing guidelines enabling productive software construction by offering reusable modules which is used not only for effective maintenance for each step, but also for a re-engineering process after analyzing developed source code. There are four processing steps. The first is to analyze source code. The second is module slicing and clustering using McCabe and BP/Win Tools, The third is to transform the outputs extracted from the business model to reusable modules. The final step is to design repository and to construct a system. In this paper, we applied the fourth step to our case study, which was specified from the first step to the fourth. The specified fourth step contains various things for constructing repository. And the fourth step reanalyzes informal and unstructured information by using reverse engineering tools, in order to provide effective guidelines for productive software maintenance and re-engineering.

  • PDF

A Technique of Deriving Concrete Object Model for C++ Programming (C++ 프로그래밍을 위한 구체적 객체 모델의 작성법)

  • Kim, Tae-Gyun;Im, Chae-Deok;Song, Yeong-Gi;In, So-Ran
    • The Transactions of the Korea Information Processing Society
    • /
    • v.4 no.3
    • /
    • pp.731-746
    • /
    • 1997
  • The usage of object models for the development of software has been frowung due to the prevalence of the ob-ject oriented paradigm.The object moedels produced as results of requirments analysis and design activities are vety veneficial to the implementation phase.It is even possible for source code to be genrated automatically if object models are concrete enough.Therefore system analyzers and desingners should make an dffort to refine theabstrace ogject model defined at.an early stage in order to achieve a more conrete object model.In general,re-fining an abstrace object model into a concrete model depends too much on the desigver's infromal experience.In this paper,we persent the refinement techniques required for concreting an abstract object model bassed on OMT(Object Modeling Technique)'s notation,We will discuss the definition of the abstraction level of an object model and the transformational rules of refinement.These transformational rules are currently applied to the design of a software tool,named Process Modeler,which is a major component of the software development process modeling system for ICS(Information Communication Service). Finally we can achieve a concrete object model which can easily be translated into C++ source code.

  • PDF

A Study on Open Source Transition Strategy of Record System (기록시스템의 오픈소스화 전략 연구)

  • An, Dae-jin;Yim, Jin-hee
    • The Korean Journal of Archival Studies
    • /
    • no.52
    • /
    • pp.119-170
    • /
    • 2017
  • This study aims to analyze the environment for the open-source records system and to identify the risk and requirements for the success of the strategy in Korea. For this, Chapter 2 presented a review of the strategic benefits of open source to public organizations, developers, and users. It also discussed the process of cooperatively developing and releasing the source code and the technology infrastructure supporting open source. In Chapter 3, six representative open-source projects in the field of records management were selected, and case studies were conducted. To derive comprehensive implications, we have divided the main development body of open-source projects into international organizations, international cooperation systems, national archives, and software development companies. We also analyzed the background and purpose of each project, the agents of development and funding, the governance model, the development period and cost, the business model and software architecture, the community composition, and the licensing strategy. Through this, we have derived four critical success factors. In terms of technology, a component-based design was required; therefore, we proposed a microservice architecture and a model-view-controller design pattern. Next, it was necessary to reestablish system requirements of records center and archives. Moreover, we also proposed a dual licensing strategy to allow developers to easily participate in open-source projects. Lastly, we emphasized a strong governance structure and an effective cooperation framework to create a sustainable community. For a record system to be open-source successfully in an organization-centered market, the roles of software developers and end users should be exercised more in the community. To achieve this, it is important to build various collaborative tools and development infrastructure from a planning stage to a centralized one.

Pre/Post processor for structural analysis simulation integration with open source solver (Calculix, Code_Aster) (오픈소스 솔버(Calculix, Code_Aster)를 통합한 구조해석 시뮬레이션 전·후처리기 개발)

  • Seo, Dong-Woo;Kim, Jae-Sung;Kim, Myung-Il
    • Journal of the Korea Academia-Industrial cooperation Society
    • /
    • v.18 no.9
    • /
    • pp.425-435
    • /
    • 2017
  • Structural analysis is used not only for large enterprises, but also for small and medium sized ones, as a necessary procedure for strengthening the certification process for product delivery and shortening the time in the process from concept design to detailed design. Open-source solvers that can be used atlow cost differ from commercial solvers. If there is a problem with the input data, such as with the grid, errors or failures can occur in the calculation step. In this paper, we propose a pre- and post-processor that can be easily applied to the analysis of mechanical structural problems by using the existing structural analysis open source solver (Caculix, Code_Aster). In particular, we propose algorithms for analyzing different types of data using open source solvers in order to extract and generate accurate information,such as 3D models, grids and simulation conditions, and develop and apply information analysis. In addition, to improve the accuracy of open source solvers and to prevent errors, we created a grid that matches the solver characteristics and developed an automatic healing function for the grid model. Finally, to verify the accuracy of the system, the verification and utilization results are compared with the software used.

A Study on the Formalization of Maintenance Management Systems and the Cost Predictive Model (유지보수 관리 체계의 정형화 및 비용 예측 모델에 관한 연구)

  • Ryu, Seong-Yeol;Baek, In-Seop;Kim, Ha-Jin
    • The Transactions of the Korea Information Processing Society
    • /
    • v.3 no.4
    • /
    • pp.846-854
    • /
    • 1996
  • In this paper, we propose a solution to the software maintenance problem that is a primary factor of software crisis. We surveyed and analyzed the current software maintenance problems through questionnaires and interviews. As a result, we defined the software maintenance management life cycle and established a fundamental strategies to solve the software maintenance problems efficiently. We also designed a software maintenance management support systems to construct an automated software maintenance management tool. Furthermore, tp improve the formalization and reliability of the software maintenance management procedure, we defined acost predictive model using a fixed-single parameter based on comprehensive program size for the source code and delivered effort(person/month). We elaborated the model by considering an experience level of maintainer, a skill- level defined by the manager, and a reliability level required by the model of maintenance management.

  • PDF

Bayesian Network-based Probabilistic Management of Software Metrics for Refactoring (리팩토링을 위한 소프트웨어 메트릭의 베이지안 네트워크 기반 확률적 관리)

  • Choi, Seunghee;Lee, Goo Yeon
    • Journal of KIISE
    • /
    • v.43 no.12
    • /
    • pp.1334-1341
    • /
    • 2016
  • In recent years, the importance of managing software defects in the implementation stage has emerged because of the rapid development and wide-range usage of intelligent smart devices. Even if not a few studies have been conducted on the prediction models for software defects, their outcomes have not been widely shared. This paper proposes an efficient probabilistic management model of software metrics based on the Bayesian network, to overcome limits such as binary defect prediction models. We expect the proposed model to configure the Bayesian network by taking advantage of various software metrics, which can help in identifying improvements for refactoring. Once the source code has improved through code refactoring, the measured related metric values will also change. The proposed model presents probability values reflecting the effects after defect removal, which can be achieved by improving metrics through refactoring. This model could cope with the conclusive binary predictions, and consequently secure flexibilities on decision making, using indeterminate probability values.

Verification of Machine Codes using an Effect Type System (효과 타입 시스템을 이용한 기계어 코드의 검증)

  • Chung, Jae-Youn;Ryu, Suk-Young;Yi, Kwang-Keun
    • Journal of KIISE:Software and Applications
    • /
    • v.27 no.8
    • /
    • pp.886-901
    • /
    • 2000
  • Verification of the safety of untrusted codes becomes an important issue in the mobile computing environment and the safety-critical software systems. Recently, it is very common to run the codes attached to the electronic mails or downloaded from the web browsers. We propose the verification method of the machine code property. The code producer delivers the machine code and its property, then the code consumer checks whether the delivered code satisfies the delivered property. The safety of source codes is verified by the well-defined compiler systems but the verification mechanism for machine codes is not well defined yet. We design an intermediate language etySECK and propose the verification method of the property of etySECK programs. And then we prove the soundness of our system which is the type system with effect extension.

  • PDF

"3+3 PROCESS" FOR SAFETY CRITICAL SOFTWARE FOR I&C SYSTEM IN NUCLEAR POWER PLANTS

  • Jung, Jae-Cheon;Chang, Hoon-Sun;Kim, Hang-Bae
    • Nuclear Engineering and Technology
    • /
    • v.41 no.1
    • /
    • pp.91-98
    • /
    • 2009
  • The "3+3 Process" for safety critical software for nuclear power plants' I&C (Instrumentation and Control system) has been developed in this work. The main idea of the "3+3 Process" is both to simplify the software development and safety analysis in three steps to fulfill the requirements of a software safety plan [1]. The "3-Step" software development process consists of formal modeling and simulation, automated code generation and coverage analysis between the model and the generated source codes. The "3-Step" safety analysis consists of HAZOP (hazard and operability analysis), FTA (fault tree analysis), and DV (design validation). Put together, these steps are called the "3+3 Process". This scheme of development and safety analysis minimizes the V&V work while increasing the safety and reliability of the software product. For assessment of this process, validation has been done through prototyping of the SDS (safety shut-down system) #1 for PHWR (Pressurized Heavy Water Reactor).