ABSTRACT
This paper presents a new technique that informs developers of potential architectural-type violations and non-compliance checking in their software system after changes in the source code. The violations identified by our technique not only concern broken calls/dependencies/inheritance or data-dependencies but also concern the dissatisfaction of some constraints which may be defined and imposed by OCL. The technique partitions the software system into small grain nodes and filters out nodes that have no role in dependency-based software architecture adherence and nodes that cannot jeopardize the validity of a function regarding OCL adherence. It thus presents a reduced version of the source code where additional developer-defined links may be established between entities (e.g., method to method) based on the developer's implicit knowledge of the architecture of the system.
A change in, for example, an assignment expression would 1) single out the containing entity of the node(s) (e.g., method or class), and 2) issue an alert to all of the linked entities. To establish the link/call/chain, we suggest using an architecture consistency chain technology (inspired by blockchain).
- B. Moura Araujo, E. Schmitz, A. L. Correa, and A. j. Alencar. A method for validating the compliance of business processes to business rules. In Proceedings of the 2010 ACM Symposium on Applied Computing, 2010. Google ScholarDigital Library
- R. Arcoverde, I. Macia, A. Garcia, and A. von Staa. Automatically detecting architecturally-relevant code anomalies. In 2012 Third International Workshop on Recommendation Systems for Software Engineering, pages 90--91, 2012. Google ScholarDigital Library
- A. Z. Broder. Some applications of rabinâăŹs fingerprinting method. In Sequences II, pages 143--152. Springer, 1993.Google ScholarCross Ref
- J. Cabot and M. Gogolla. Object Constraint Language (OCL): A Definitive Guide, pages 58--90. Springer Berlin Heidelberg, Berlin, Heidelberg, 2012. Google ScholarDigital Library
- T. Clark and J. Warmer. Object modeling with the OCL: the rationale behind the Object Constraint Language, volume 2263. Springer, 2003.Google Scholar
- T. T. Dinh, M. Zhang R. Liu, G. Chen, B. C. Ooi, and J. Wang. Untangling blockchain: A data processing view of blockchain systems. IEEE Transactions on Knowledge and Data Engineering, 30(7):1366--1385, 2018.Google ScholarCross Ref
- S. Flake and W. Mueller. An ocl extension for real-time constraints. In Object Modeling with the OCL, pages 150--171. Springer, 2002. Google ScholarDigital Library
- F. A. Fontana, V. Ferme, and M. Zanoni. Towards assessing software architecture quality by exploiting code smell relations. In Proceedings of the Second International Workshop on Software Architecture and Metrics, pages 1--7, 2015. Google ScholarDigital Library
- JabRef Development Team. http://www.jabref.org/, Accessed: 2019-05-27.Google Scholar
- JavaParser Development Team. https://javaparser.org/, Accessed: 2019-05-31.Google Scholar
- I. Macia, R. Arcoverde, A. Garcia, C. Chavez, and A. von Staa. On the relevance of code anomalies for identifying architecture degradation symptoms. In 2012 16th European Conference on Software Maintenance and Reengineering, pages 277--286, March 2012. Google ScholarDigital Library
- W. Oizumi, A. Garcia, L. d. S. Sousa, B. Cafeo, and Y. Zhao. Code anomalies flock together: Exploring code anomaly agglomerations for locating design problems. In 38th International Conference on Software Engineering, pages 440--451, 2016. Google ScholarDigital Library
- W. Oizumi, A. F. Garcia, T. E. Colanzi, M. Ferreira, and A. V. Staa. On the relationship of code-anomaly agglomerations and architectural problems. Journal of Software Engineering Research and Development, 3(1):11, 2015.Google ScholarCross Ref
- T. Olsson, M. Ericsson, and A. Wingkvist. The relationship of code churn and architectural violations in the open source software jabref. In Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, ECSA '17, pages 152--158, New York, NY, USA, 2017. ACM. Google ScholarDigital Library
- R. T. Tvedt, P. Costa, and M. Lindvall. Does the code match the design? In International Conference on Software Maintenance, pages 393--401, Oct 2002.Google Scholar
- M. Vaziri and D. Jackson. Some shortcomings of ocl, the object constraint language of uml. In TOOLS (34), pages 555--562, 2000. Google ScholarDigital Library
- R. Worzberger, T. Kurpick, and T. Heer. Checking correctness and compliance of integrated process models. In 2008 10th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pages 576--583. IEEE, 2008. Google ScholarDigital Library
Index Terms
- Source-code divergence diagnosis using constraints and cryptography
Recommendations
Detect Related Bugs from Source Code Using Bug Information
COMPSAC '10: Proceedings of the 2010 IEEE 34th Annual Computer Software and Applications ConferenceOpen source projects often maintain open bug repositories during development and maintenance, and the reporters often point out straightly or implicitly the reasons why bugs occur when they submit them. The comments about a bug are very valuable for ...
Detecting bad smells in source code using change history information
ASE '13: Proceedings of the 28th IEEE/ACM International Conference on Automated Software EngineeringCode smells represent symptoms of poor implementation choices. Previous studies found that these smells make source code more difficult to maintain, possibly also increasing its fault-proneness. There are several approaches that identify smells based on ...
Comments