• Title/Summary/Keyword: 리팩토링

Search Result 42, Processing Time 0.029 seconds

A Logical Coupling Measurement Method Based on Transaction Time, Size and Expertise of Developer (트랜잭션의 시점, 크기 및 개발자의 숙련도를 고려한 논리적커플링 측정기법)

  • Shim, Bin-Gu;Kim, Jin-Tae;Park, Soo-Yong
    • Journal of KIISE:Software and Applications
    • /
    • v.36 no.11
    • /
    • pp.891-900
    • /
    • 2009
  • The priority of software maintenance researches has been increasing, since the lengths of software lifecycle are more increasing. Measuring couplings among software entities provides a good quantitative source for analyzing source code and point out candidate refactoring positions. Logical-coupling measures how strongly two software entities are related with each other from the evolutionary point of view. The researches on logical-coupling have been focusing on improving the correctness and explaining more aspects that are hiding by measuring logical-coupling among finer-grained entities. However, existing researches on logical-coupling fails to consider characteristics of developers and projects reflected in transactions. The research proposes a logical-coupling measurement method based on transaction time, size and expertise of developer to improve the correctness by considering characteristics of developers and projects reflected in transactions. The method has been validated by applying it to three open-source projects.

A Mechanism to Determine Method Location among Classes using Neural Network (신경망을 이용한 클래스 간 메소드 위치 결정 메커니즘)

  • Jung, Young-A.;Park, Young-B.
    • The KIPS Transactions:PartB
    • /
    • v.13B no.5 s.108
    • /
    • pp.547-552
    • /
    • 2006
  • There have been various cohesion measurements studied considering reference relation among attributes and methods in a class. Generally, these cohesion measurement are camed out in one class. If the range of reference relation considered are extended from one class to two classes, we could find out the reference relation between two classes. Tn this paper, we proposed a neural network to determine the method location. Neural network is effective to predict output value from input data not to be included in training and generalize after training input and output pattern repeatedly. Learning vector is generated with 30-dimensional input vector and one target binary values of method location in a constraint that there are two classes which have less than or equal to 5 attributes and methods The result of the proposed neural network is about 95% in cross-validation and 88% in testing.

An Approach to decide the location of a method using the logistic analysis (로지스틱 분석을 이용한 메소드 위치 결정 방법)

  • Jung Young A.;Park Young B,
    • The KIPS Transactions:PartD
    • /
    • v.12D no.7 s.103
    • /
    • pp.1017-1022
    • /
    • 2005
  • There are many changes in the software requirements during the whole software life cycle. These changes require modification of the software, and it is important to keep software quality and stability while we are modifying the software. Refactoring is one of the technology to keep software quality and stability during the software modification; there are many researches related to automatic refactoring. In this paper, we propose three factors for Move Method which is one of the refactoring technique. We applied binomial logistic analysis to data which were extracted from sample program by each factor. The result of this process was very close to the result of manual analysis by program experts. Furthermore, we found that these factors have major roll to determine Position of a method, and these factors can be used as a basis of finding optimal position of a method.

A Practical Study on Code Static Analysis through Open Source based Tool Chains (Open Source 기반 툴 체인화를 통한 코드 정적 분석 연구)

  • Kang, Geon-Hee;Kim, R. Young Chul;Yi, Geun Sang;Kim, Young Soo;Park, Yong. B.;Son, Hyun Seung
    • KIISE Transactions on Computing Practices
    • /
    • v.21 no.2
    • /
    • pp.148-153
    • /
    • 2015
  • In our domestic software industries, it is focused on such a high quality development/ testing process, maturity measurement, and so on. But the real industrial fields are still working on a code-centric development. Most of the existing legacy systems did not keep the design and highly increased the code complexity with more patching of the original codes. To solve this problem, we adopt a code visualization technique which is important to reduce the code complexity among modules. To do this, we suggest a tool chaining method based on the existing open source software tools, which extends NIPA's Software Visualization techniques applied to procedural languages. In addition, it should be refactored to fix bad couplings of the quality measurement indicators within the code visualization. As a result, we can apply reverse engineering to the legacy code, that is, from programming via model to architecture, and then make high quality software with this approach.

System Optimization Technique using Crosscutting Concern (크로스커팅 개념을 이용한 시스템 최적화 기법)

  • Lee, Seunghyung;Yoo, Hyun
    • Journal of Digital Convergence
    • /
    • v.15 no.3
    • /
    • pp.181-186
    • /
    • 2017
  • The system optimization is a technique that changes the structure of the program in order to extract the duplicated modules without changing the source code, reuse of the extracted module. Structure-oriented development and object-oriented development are efficient at crosscutting concern modular, however can't be modular of crosscutting concept. To apply the crosscutting concept in an existing system, there is a need to a extracting technique for distributed system optimization module within the system. This paper proposes a method for extracting the redundant modules in the completed system. The proposed method extracts elements that overlap over a source code analysis to analyze the data dependency and control dependency. The extracted redundant element is used to program dependency analysis for the system optimization. Duplicated dependency analysis result is converted into a control flow graph, it is possible to produce a minimum crosscutting module. The element extracted by dependency analysis proposes a system optimization method which minimizes the duplicated code within system by setting the crosscutting concern module.

Aspect Mining Process Design Using Abstract Syntax Tree (추상구문트리를 이용한 어스팩트 마이닝 프로세스 설계)

  • Lee, Seung-Hyung;Song, Young-Jae
    • The Journal of the Korea Contents Association
    • /
    • v.11 no.5
    • /
    • pp.75-83
    • /
    • 2011
  • Aspect-oriented programming is the paradigm which extracts crosscutting concern from a system and solves scattering of a function and confusion of a code through software modularization. Existing aspect developing method has a difficult to extract a target area, so it is not easy to apply aspect mining. In an aspect minning, it is necessary a technique that convert existing program refactoring elements to crosscutting area. In the paper, it is suggested an aspect mining technique for extracting crosscutting concern in a system. Using abstract syntax structure specification, extract functional duplicated relation elements. Through Apriori algorithm, it is possible to create a duplicated syntax tree and automatic creation and optimization of a duplicated source module, target of crosscutting area. As a result of applying module of Berkeley Yacc(berbose.c) to mining process, it is confirmed that the length and volume of program has been decreased of 9.47% compared with original module, and it has been decreased of 4.92% in length and 5.11% in volume compared with CCFinder.

Re-engineering framework for improving reusability of embedded software (임베디드 소프트웨어의 재사용성 향상을 위한 리엔지니어링 프레임워크)

  • Kim, Kang-Tae
    • Journal of the Korea Society of Computer and Information
    • /
    • v.13 no.4
    • /
    • pp.1-9
    • /
    • 2008
  • Most consumer electronics companies hold numerous line-ups to cope with divergent customer's needs. To cope with current situation, most products are derived from the 'base product' which is developed for brand new features with respect to the change requests. That is called derivation. After 'base code' is developed for newly introduced products, some modification will occur corresponding to the derivative product models. So, quality attributes of 'base code' affects quality and productivity of 'derived code'. But in the middle of continuous modification to 'base code', violation of architectural design decision and unauthorized or maybe unsophisticated change to source code willing to happen and thus it cause critical problem. Those code has 'aging symptom' both architectural and code level in nature. In this paper, we introduced reengineering framework which guide the procedure and tactics to find and fix 'aging symptom' for improvement on quality attribute of 'base code'.

  • PDF

A Feature-Oriented Method for Extracting a Product Line Asset from a Family of Legacy Applications (레거시 어플리케이션 제품군으로부터 제품라인 자산을 추출하는 휘처 기반의 방법)

  • Lee, Hyesun;Lee, Kang Bok
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.6 no.7
    • /
    • pp.337-352
    • /
    • 2017
  • Clone-and-own reuse is an approach to creating new software variants by copying and modifying existing software products. A family of legacy software products developed by clone-and-own reuse often requires high maintenance cost and tends to be error-prone due to patch-ups without refactoring and structural degradation. To overcome these problems, many organizations that have used clone-and-own reuse now want to migrate their legacy products to software product line (SPL) for more systematic reuse and management of software asset. However, with most of existing methods, variation points are embedded directly into design and code rather than modeled and managed separately; variation points are not created ("engineered") systematically based on a variability model. This approach causes the following problems: it is difficult to understand the relationships between variation points, thus it is hard to maintain such code and the asset tends to become error-prone as it evolves. Also, when SPL evolves, design/code assets tend to be modified directly in an ad-hoc manner rather than engineered systematically with appropriate refactoring. To address these problems, we propose a feature-oriented method for extracting a SPL asset from a family of legacy applications. With the approach, we identify and model variation points and their relationships in a feature model separate from implementation, and then extract and manage a SPL asset from legacy applications based on the feature model. We have applied the method to a family of legacy Notepad++ products and demonstrated the feasibility of the method.

Guidelines for Implementing Configuration Management in Extreme Programming based on CMMI (CMMI 기반의 XP를 위한 형상 관리 프로세스 구축 지침)

  • Han, Dong-Joon;Han, Hyuk-Soo
    • Journal of Internet Computing and Services
    • /
    • v.9 no.2
    • /
    • pp.107-118
    • /
    • 2008
  • The XP, the representative methodology of Agile software development, maximizes the effectiveness of the development by focusing on development itself and using primitive and basic process definition that can be easily implemented in the fields. However, the most of XP's practices came from those of engineering and the manogement practices of work product tend to be overlooked. The research on the implementation of those manogement practices has not been performed enough. Because of deficiency of processes that guide the change control over major baselines of work product and that describe proper continuous integration and refactoring in XP, the integrity of those work products is difficult to be guaranteed. To fulfill this work product integrity, CM(configuration manogement) should be hired and CMMI(Capability Maturity Model Integration) is considered to be the best references for that purpose, CMMI defines the required practices of CM and leave implementation details to the organization so that it could customize those practices based on the characteristics of its development methods. The CM process implementation guidelines based on CMMI could provides work product integrity with a way of keeping XP's agility that includes continuous integration, refactoring and small release. In this research, we selected CM process factors applicable to XP among CMMI's CM practices and based on them we developed the CM implementation guidelines.

  • PDF

Test-Driven Development Adoption influence to User Satisfaction on OpenSource Project development (오픈소스 프로젝트의 테스트 주도 개발 채택여부가 사용자만족도에 미치는 영향에 관한 연구)

  • Sohn, Hyo-jung;Lee, Min-gyu;Seong, Baek-min;Kim, Jong-bae
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • 2015.10a
    • /
    • pp.1075-1078
    • /
    • 2015
  • Three kinds of typical practices to reflect the values of Agile Development Methodology were selected from a previous study. Those were Communicate using Web 2.0 collaboration tools, test-driven development (TDD, Test-Driven Development) method is adopted, and refactoring. In this study, we set up a hypothesis that the adoption of TDD project will make user satisfaction is higher. Select 100 sample projects from SourceForge(sourceforge.net), the most popular open source hosting site, the criteria is we can be determined whether operate in the project (developer least 7 people, bugs can occur more than 100, created the project since 2000). To determine whether the use of automated development tools xUnit of TDD through the CVS and SVN log analysis. Using data from the FLOSSmole and to evaluate the user experience of the project. User satisfaction of each project Rating, bug fix cycle, downloads and pageviews. Through this study, correlates of whether TDD adoption and user satisfaction, we will suggest a reflected the Agile practices new open source development methodology. As a result, it contributes to increase the maturity of the open source community.

  • PDF