The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. ex. Some numerals are expressed as "XNUMX".
Copyrights notice
The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. Copyrights notice
유지 관리 비용을 줄이려면 소프트웨어 아키텍처 패턴을 활용하는 것이 중요합니다. 그러나 아키텍처 패턴에 정의된 제약 조건에 따라 코드를 유지 관리하는 것은 시간이 많이 걸리는 작업입니다. 여기에 설명된 대로, 우리는 아키텍처에 맞지 않는 코드 조각을 세분화된 아키텍처 위반으로 감지하는 기술을 제안합니다. 이 기법의 경우 소스 코드에서 추출된 코드 조각 간의 종속성 그래프와 아키텍처에 따른 추론 규칙이 입력이 됩니다. 코드 단편이 연관될 수 있는 후보 구성요소 세트는 그래프의 각 노드에 첨부되어 단계별로 업데이트됩니다. 추론 규칙은 구성 요소의 책임과 종속성 제약 조건을 표현합니다. 주변 코드 조각의 현재 추정 상태에서 제약 조건을 충족하지 않는 각 노드의 후보 구성 요소를 제거합니다. 코드 조각의 추론된 역할에 코드 조각이 현재 속한 구성 요소가 포함되어 있지 않으면 위반으로 감지됩니다. 우리는 웹 애플리케이션 아키텍처 패턴을 위한 모델-뷰-컨트롤러 기술을 구현했습니다. Play Framework를 사용하여 구현한 웹 애플리케이션에 이 기법을 적용하여 정확한 탐지 결과를 얻었습니다. 또한 각 추론 규칙이 위반 탐지에 얼마나 기여하는지 조사했습니다.
Shinpei HAYASHI
Tokyo Institute of Technology
Fumiki MINAMI
Tokyo Institute of Technology
Motoshi SAEKI
Tokyo Institute of Technology
The copyright of the original papers published on this site belongs to IEICE. Unauthorized use of the original or translated papers is prohibited. See IEICE Provisions on Copyright for details.
부
Shinpei HAYASHI, Fumiki MINAMI, Motoshi SAEKI, "Detecting Architectural Violations Using Responsibility and Dependency Constraints of Components" in IEICE TRANSACTIONS on Information,
vol. E101-D, no. 7, pp. 1780-1789, July 2018, doi: 10.1587/transinf.2017KBP0023.
Abstract: Utilizing software architecture patterns is important for reducing maintenance costs. However, maintaining code according to the constraints defined by the architecture patterns is time-consuming work. As described herein, we propose a technique to detect code fragments that are incompliant to the architecture as fine-grained architectural violations. For this technique, the dependence graph among code fragments extracted from the source code and the inference rules according to the architecture are the inputs. A set of candidate components to which a code fragment can be affiliated is attached to each node of the graph and is updated step-by-step. The inference rules express the components' responsibilities and dependency constraints. They remove candidate components of each node that do not satisfy the constraints from the current estimated state of the surrounding code fragment. If the inferred role of a code fragment does not include the component that the code fragment currently belongs to, then it is detected as a violation. We have implemented our technique for the Model-View-Controller for Web Application architecture pattern. By applying the technique to web applications implemented using Play Framework, we obtained accurate detection results. We also investigated how much does each inference rule contribute to the detection of violations.
URL: https://global.ieice.org/en_transactions/information/10.1587/transinf.2017KBP0023/_p
부
@ARTICLE{e101-d_7_1780,
author={Shinpei HAYASHI, Fumiki MINAMI, Motoshi SAEKI, },
journal={IEICE TRANSACTIONS on Information},
title={Detecting Architectural Violations Using Responsibility and Dependency Constraints of Components},
year={2018},
volume={E101-D},
number={7},
pages={1780-1789},
abstract={Utilizing software architecture patterns is important for reducing maintenance costs. However, maintaining code according to the constraints defined by the architecture patterns is time-consuming work. As described herein, we propose a technique to detect code fragments that are incompliant to the architecture as fine-grained architectural violations. For this technique, the dependence graph among code fragments extracted from the source code and the inference rules according to the architecture are the inputs. A set of candidate components to which a code fragment can be affiliated is attached to each node of the graph and is updated step-by-step. The inference rules express the components' responsibilities and dependency constraints. They remove candidate components of each node that do not satisfy the constraints from the current estimated state of the surrounding code fragment. If the inferred role of a code fragment does not include the component that the code fragment currently belongs to, then it is detected as a violation. We have implemented our technique for the Model-View-Controller for Web Application architecture pattern. By applying the technique to web applications implemented using Play Framework, we obtained accurate detection results. We also investigated how much does each inference rule contribute to the detection of violations.},
keywords={},
doi={10.1587/transinf.2017KBP0023},
ISSN={1745-1361},
month={July},}
부
TY - JOUR
TI - Detecting Architectural Violations Using Responsibility and Dependency Constraints of Components
T2 - IEICE TRANSACTIONS on Information
SP - 1780
EP - 1789
AU - Shinpei HAYASHI
AU - Fumiki MINAMI
AU - Motoshi SAEKI
PY - 2018
DO - 10.1587/transinf.2017KBP0023
JO - IEICE TRANSACTIONS on Information
SN - 1745-1361
VL - E101-D
IS - 7
JA - IEICE TRANSACTIONS on Information
Y1 - July 2018
AB - Utilizing software architecture patterns is important for reducing maintenance costs. However, maintaining code according to the constraints defined by the architecture patterns is time-consuming work. As described herein, we propose a technique to detect code fragments that are incompliant to the architecture as fine-grained architectural violations. For this technique, the dependence graph among code fragments extracted from the source code and the inference rules according to the architecture are the inputs. A set of candidate components to which a code fragment can be affiliated is attached to each node of the graph and is updated step-by-step. The inference rules express the components' responsibilities and dependency constraints. They remove candidate components of each node that do not satisfy the constraints from the current estimated state of the surrounding code fragment. If the inferred role of a code fragment does not include the component that the code fragment currently belongs to, then it is detected as a violation. We have implemented our technique for the Model-View-Controller for Web Application architecture pattern. By applying the technique to web applications implemented using Play Framework, we obtained accurate detection results. We also investigated how much does each inference rule contribute to the detection of violations.
ER -