PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Code comprehension as a distributed construction of meanings

Autorzy
Treść / Zawartość
Identyfikatory
Warianty tytułu
PL
Podejście do zrozumienia kodu jako do konstrukcji sensu
Języki publikacji
EN
Abstrakty
EN
Code comprehension, a sub-domain of reverse engineering and software maintenance, does not provide useful explanation of common situations where developers, distributed and isolated from each other in time and space, come to a similar understanding of a code. This limits our ability to develop tools to support this popular aspect of code comprehension. This paper investigates this phenomenon from the perspective of sociology, intentionally distancing itself from the dominating psychological approach. The analysis, conducted mostly from the standpoint of social systems theory, highlights that as the construction of meanings is subjective, in the absence of any significant interactions, the dominant influence on the construction of meanings comes from current states of various social systems to which the developer belongs to. Thus, the similarity of meanings (hence a better comprehension of the code) can be achieved by understanding systems to which the developer belongs to and by coordinating their states.
PL
Rozumienie kodu, istotna część inżynierii oprogramowania, jest obecnie badane głównie z pozycji psychologii, a w znacznie mniejszym stopniu z pozycji socjologii. Przypuszczalnie spowodowane jest to odczuciem, że dostępne teorie socjologiczne nie odnoszą się do problemów związanych z rozumieniem kodu. Ten artykuł argumentuje, że socjologiczna teoria systemów społecznych może znaleźć zastosowanie w badaniach nad rozumieniem kodu. Proponuje on skoncentrowanie się na formach systemów społecznych, które pozwalają na spójną rekonstrukcję znaczenia kodu. Artykuł ilustruje rozważania serią przypadków użycia, demonstrując, że rozumienie kodu jest i powinno być traktowane jako działanie społeczne, opisywalne odpowiednimi teoriami. Następnie skoncentrowano się na proponowanym wykorzystaniu teorii systemów społecznych, aby zakończyć omówieniem potencjalnych implikacji nowego podejścia na różne obszary badań.
Rocznik
Strony
23--41
Opis fizyczny
Bibliogr. 36 poz., rys.
Twórcy
autor
  • UTP University of Science and Technology, Faculty of Telecommunications, Computer Science and Electrical Engineering, 7 S. Kaliskiego Str., 85-796 Bydgoszcz, Poland
Bibliografia
  • [1] Baker B., Gupta O., Naik N., Raskar R., Designing Neural Network Architectures using Reinforcement Learning, Published as a conference paper at ICLR 2017, https://openreview.net/pdf?id=S1c2cvqee, [accessed 11 December 2017].
  • [2] Boehm B.W., Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NH, 1981.
  • [3] Brooks R., Towards a theory of the comprehension of computer programs, International Journal of Human-Computer Studies, 18, 6, June 1983, 543-554.
  • [4] Carneiro G., Mendonca M.G., SourceMiner - A Multi-perspective Software Visualization Environment, Enterprise Information Systems: 15h International Conference, ICEIS 2013, Angers, France, July 4-7, 2013, Revised Selected Papers.
  • [5] Cofta P., The Foundations of a Trustworthy Web, Now Publishers Inc. Foundations and Trends in Web Science: vol. 3, no. 3-4, 2013, pp. 137-385. http://dx.doi.org/10.1561/1800000020.
  • [6] Damasevicius R., Analysis of Software Design Artifacts for Socio-Technical Aspects, INFOCOMP, v. 6, n. 4, Dec. 2007, p. 7-16, http://www.dcc.ufla.br/infocomp/index.php/INFOCOMP/article/view/190, [accessed: 3 February 2018].
  • [7] Deimel L., Naveda J., Reading Computer Programs: Instructor’s Guide and Exercises, Technical Report CMU/SEI-90-EM-3, Software Engineering Institute, Carnegie Mellon University, 1990, https://www.sei.cmu.edu/reports/90em003.pdf., [accessed: 15 December 2017].
  • [8] Ducasse S., Girba T., Lanza M., Demeyer S., Moose: a Collaborative and Extensible Reengineering Environment, 2005, http://scg.unibe.ch/archive/papers/Duca05aMooseBookChapter.pdf, [accessed: 3 February 2018].
  • [9] Fjeldstad R.K., Hamlen W.T., Application Program Maintenance Study: Report to Our Respondents, Proceedings GUIDE 48, Philadelphia, PA, April 1983, https://doi.org/10.1145/336512.336534.
  • [10] Flor N.V., Hutchins E., Analyzing Distributed Cognition in Software Teams: a Case Study of Collaborative Programming During Adaptive Software Maintenance, [in:] Empirical Studies of Programmers: Fourth Workshop, 1992, (eds.) J. Koenemann-Belliveau, T. Moher and S. Robertson, Norwood, NJ: Ablex.
  • [11] Gadamer H.G., Truth and Method, Continuum, London, New York, 2004.
  • [12] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston, 1994.
  • [13] Habermas J., The Theory of Communicative Action: Reason and the Rationalization of Society, Polity Press, 1986.
  • [14] Hamilton J., Danicic S., Dependence communities in source code. Software Maintenance (ICSM), 2012, 28th IEEE International Conference on, https://doi.org/10.1109/ICSM.2012.6405325.
  • [15] Jin D., Cordy J.R., Dean T.R., Transparent Reverse Engineering Tool Integration Using a Conceptual Transaction Adapter, Proceedings of the 7th European Conference on Software Maintenance and Reengineering (CSMR 2003), Benevento, Italy, March 2003, pp. 399-408.
  • [16] LaToza T.D., Garlan D., Herbsleb J.D., Myers B.A., Program Comprehension as Fact Finding, Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE2007), Dubrovnik, Croatia, September 3-7, 2007.
  • [17] Letovsky S., Cognitive processes in program comprehension, Proc. First Workshop Empirical Studies of Programmers, Ablex Publishing, Norwood, N.J., 1986, pp. 58-79.
  • [18] Luhmann N., Social Systems, Stanford University Press, 1996.
  • [19] Lungu M., Lanza M., Nierstrasz O., Evolutionary and collaborative software architecture recovery with Softwarenaut, Science of Computer Programming, 79, 2014, 204-223, https://doi.org/10.1016/j.scico.2012.04.007.
  • [20] Mayrhauser A., Vans A.M., Program Comprehension During Software Maintenance and Evolution, Computer, vol. 28, issue: 8, Aug. 1995, https://doi.org/10.1109/2.402076.
  • [21] Meng W., Rilling J., Zhang Y., Witte R., Charl P., An Ontological Software Comprehension Process, Model. Proc. of the 3rd International Workshop on Metamodels, Schemas, Grammars, and Ontologies for Reverse Engineering, 2006.
  • [22] Moeller H.-G., Luhmann Explained: From Souls to Systems, Open Court., 2006.
  • [23] Muller H.A., Wong K., Tilley S.R., Understanding Software Systems Using Reverse Engineering Technology, 1994, https://www.researchgate.net/profile/Hausi_Mueller/publication/221233487_Understanding_Software_Systems_Using_Reverse_Engineering_Technology/links/00b7d515b635cbf536000000/Understanding-Software-Systems-Using-Reverse-Engineering-Technology.pdf., [accessed 02 February 2018].
  • [24] Nelson M.L., A Survey of Reverse Engineering and Program Comprehension, April 19, 1996, ODU CS 551 - Software Engineering Survey, https://arxiv.org/ftp/cs/papers/0503/0503068.pdf., [accessed 18 January 2018].
  • [25] O’Brien M.P., Software Comprehension – A Review & Research Direction, Technical Report UL-CSIS-03-3, 2003, http://xyuan.myweb.cs.uwindsor.ca/480/P2_Review03.pdf., [accessed 03 February 2018].
  • [26] OMG - Object Management Group (2016) Architecture-Driven Modernization: Knowledge Discovery Meta-Model (KDM). http://www.omg.org/spec/KDM/1.4. [accessed 11 December 2017].
  • [27] Pereira dos Santos R., Esteves M.G.P., S. Freitas G., Moreira de Souza J., Using Social Networks to Support Software Ecosystems Comprehension and Evolution, Social Networking, 2014, 3, 108-118. http://dx.doi.org/10.4236/sn.2014.32014.
  • [28] Rugaber S., Program Comprehension, 1995, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.1404, [accessed 28 January 2018].
  • [29] Saussure F., Course in General Linguistics, Bloomsbury Academic, 2013.
  • [30] Shannon C.E., Weaver W., The Mathematical Theory of Communication, University of Illinois Press, 1949.
  • [31] Sim S.E., Supporting Multiple Program Comprehension Strategies During Software Maintenance, Master’s Thesis, Department of Computer Science, University of Toronto, 1998.
  • [32] Skinner B.F., Beyond Freedom and Dignity, Hackett Publishing Company, Inc., 2002.
  • [33] Storey M.A., Theories, methods and tools in program comprehension: past, present and future, Program Comprehension, IWPC 2005. Proceedings. 13th International Workshop on. https://doi.org/10.1109/WPC.2005.38.
  • [34] Taherkhani A., Malmi L., 2014, Beacon- and Schema-Based Method for Recognizing Algorithms from Students’ Source Code, Journal of Educational Data Mining, vol. 5, no 2, 2013.
  • [35] Tiemens T., Cognitive Models of Program Comprehension, 1989, https://pdfs.semanticscholar.org/052e/4a854a35c5e92b9c91fddfdfe07da119f83b.pdf, [accessed: 2 February 2018].
  • [36] Tonella P., Potrich A., Reverse Engineering of Object Oriented Code, Springer, 2005.
Uwagi
1. Opracowanie rekordu w ramach umowy 509/P-DUN/2018 ze środków MNiSW przeznaczonych na działalność upowszechniającą naukę (2019).
2. The work has been funded as a part of the statutory research of the UTP University of Science and Technology, Bydgoszcz.
3. The article was prepared on the basis of a paper presented at the International Conference of Software Engineering KKIO’18. Pułtusk, September 27-28, 2018.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-4bab437a-090a-4967-a949-14ff90d4f541
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.