DOI QR코드

DOI QR Code

Creation of High-Quality Abstractions in Software Engineering

  • Alexey Razumowsky (Trapeznikov Institute of Control Sciences of Russian Academy of Sciences)
  • Received : 2023.07.05
  • Published : 2023.07.30

Abstract

Abstraction is the cornerstone of ideal software engineering (SWE). This paper discusses a problem of forming reasonable generalizations, representations and descriptions in various software development processes through the prism of poor-quality (rash, unconsidered, uncertain and harmful) abstractions. To do this, emphasis is made on an induced strategic connection between the required abstraction and its compact specific formulation based on existing research and the author's introspective experience. A software aim point and characteristic preservation of the solution integrity is the subject of the best formulation and a program module or code associated with it. Moreover, a personal attitude expressed by personal interest, motivation and creativity, is proclaimed to be a fundamental factor in successful software development.

Keywords

References

  1. Abbot, R. J. (1987). Knowledge abstraction. Communications of the ACM, 30(8), 664-672.  https://doi.org/10.1145/27651.27652
  2. Abelson, H., Sussman, G. J., & Sussman, J. (1996). Structure and interpretation of computer programs. Justin Kelly. 
  3. Aho, A., & Ullman, J. (2022). Abstractions, their algorithms, and their compilers. Communications of the ACM, 65(2), 76-91.  https://doi.org/10.1145/3490685
  4. Aldalur, I., Winckler, M., Diaz, O., & Palanque, P. (2017). Web augmentation as a promising technology for end user development. In New Perspectives in End-User Development (pp. 433-459). Springer, Cham. 
  5. Amahan, P., & Sanqui, R. (2021). Syntax to Syntax: Assessment of Orthogonality in the Design of Object-oriented Programming Languages using Code Listing Method. In 2021 The 4th International Conference on Software Engineering and Information Management (pp. 52-55). DOI:10.1145/3451471.3451480. 
  6. Babichev A.V., Butkovskiy A.G., Pohjolainen Seppo, (2001), Towards Unified Geometrical Theory of Control. Nauka, Moscow. 
  7. Bass, L., Clements, P., & Kazman, R. (2003). Software architecture in practice. Addison-Wesley Professional. 
  8. Berzins, V., Gray, M., & Naumann, D. (1986). Abstraction-based software development. 
  9. Birkhoff, G. (1969). Mathematics and psychology. SIAM Review, 11(4), 429-469.  https://doi.org/10.1137/1011085
  10. Booch, Grady (1997). Object-Oriented Analysis and Design with Applications. Addison-Wesley. ISBN 978-0-8053-5340-2. 
  11. Boroditsky, L. (2001). Does language shape thought?: Mandarin and English speakers' conceptions of time. Cognitive psychology,43(1), 1-22.  https://doi.org/10.1006/cogp.2001.0748
  12. Cabrera, D., Sancho, F., Li, C., Cerrada, M., Sanchez, R. V., Pacheco, F., & de Oliveira, J. V. (2017). Automatic feature extraction of time-series applied to fault severity assessment of helical gearbox in stationary and non-stationary speed operation. Applied Soft Computing, 58, 53-64.  https://doi.org/10.1016/j.asoc.2017.04.016
  13. Carbajal, G. V., & Malmierca, M. S. (2018). The neuronal basis of predictive coding along the auditory pathway: from the subcortical roots to cortical deviance detection. Trends in Hearing, 22. DOI:10.1177/2331216518784822 
  14. Carden, T., Goode, N., & Salmon, P. M. (2019). Accounting for memes in sociotechnical systems: extending the abstraction hierarchy to consider cognitive objects. Ergonomics, 62(7), 849-863. DOI:10.1080/00140139.2019.1603403 
  15. Cardone, F. (2020). From Curry to Haskell: Paths to Abstraction in Programming Languages. Philosophy and Technology. 34(1), 57 - 74. DOI:10.1007/s13347-019-00385-4. 
  16. Clancey, W. J. (1983). The Advantages of Abstract Control Knowledge in Expert System Design (No. STAN-CS-83-995). STANFORD UNIV CA DEPT OF COMPUTER SCIENCE. 
  17. Clark, A. (2013). Whatever next? Predictive brains, situated agents, and the future of cognitive science. Behavioral and brain sciences,36(3), 181-204.  https://doi.org/10.1017/S0140525X12000477
  18. Dahl, O. J., Dijkstra, E. W., & Hoare, C. A. R. (1972). Structured programming. Academic Press Ltd.. 
  19. Demetriou, A. (2020). Abstracting abstraction in development and cognitive ability. Behavioral and Brain Sciences, 43. DOI:10.1017/S0140525X19002930 
  20. Gilead, M., Trope, Y., & Liberman, N. (2020). Above and beyond the concrete: The diverse representational substrates of the predictive brain. Behavioral and Brain Sciences, 43.
  21. Goldman, A. I. (2006). Simulating minds: The philosophy, psychology, and neuroscience of mindreading. New York, NY, US: Oxford University Press. 
  22. Han, L., Song, M., & Pedrycz, W. (2021). An Approach to Determine Best Cutting-points in Group Decision Making Problems with Information Granules. In 2021 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE) (pp. 1-6).
  23. Hayes-Roth, F., & McDermott, J. (1978). An interference matching technique for inducing abstractions. Communications of the ACM, 21(5), 401-411.  https://doi.org/10.1145/359488.359503
  24. Jackson, M. (2012). Aspects of abstraction in software development. Software & Systems Modeling, 11(4), 495-511.  https://doi.org/10.1007/s10270-012-0259-7
  25. Kim, Y., Kim, J., Jeon, H., Kim, Y. H., Song, H., Kim, B., & Seo, J. (2020). Githru: Visual analytics for understanding software development history through git metadata analysis. IEEE Transactions on Visualization and Computer Graphics, 27(2), 656-666.  https://doi.org/10.1109/TVCG.2020.3030414
  26. King, T. C., De Vos, M., Dignum, V., Jonker, C. M., Li, T., Padget, J., & van Riemsdijk, M. B. (2017). Automated multi-level governance compliance checking. Autonomous Agents and Multi-Agent Systems, 31(6), 1283-1343. DOI:10.1007/s10458-017-9363-y 
  27. Lammers, J. (2012). Abstraction increases hypocrisy. Journal of Experimental Social Psychology, 48(2), 475-480.  https://doi.org/10.1016/j.jesp.2011.07.006
  28. LeDoux, J. E. (2020). How does the non-conscious become conscious?. Current Biology, 30(5), R196-R199. DOI:10.1016/j.cub.2020.01.033 
  29. Lennon, B. (2021). Foo, Bar, Baz...: The Metasyntactic Variable and the Programming Language Hierarchy. Philosophy & Technology, 34(1), 13-32. DOI:10.1007/s13347-019-00387-2 
  30. Liskov, B. H. (1972, December). A design methodology for reliable software systems. In Proceedings of the December 5-7, 1972, fall joint computer conference, part I (pp. 191-199). ACM. 
  31. Liskov, B., & Guttag, J. (1986). Abstraction and specification in program development (Vol. 180). Cambridge: MIT press. 
  32. Liskov, B., & Zilles, S. (1977). An introduction to formal specifications of data abstractions. Current trends in programming methodology, 1, 1-32. 
  33. Lupyan, G. (2017). The paradox of the universal triangle: concepts, language, and prototypes. The Quarterly Journal of Experimental Psychology, 70(3), 389-412.  https://doi.org/10.1080/17470218.2015.1130730
  34. Miller, G. A. (1956). The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological review, 63(2), 81. 
  35. Park, S. A., Miller, D. S., Nili, H., Ranganath, C., & Boorman, E. D. (2020). Map making: constructing, combining, and inferring on abstract cognitive maps. Neuron, 107(6), 1226-1238.  https://doi.org/10.1016/j.neuron.2020.06.030
  36. Poincare, H. (1905). Science and hypothesis. Science Press. 
  37. Pollo-Cattaneo, M. F., Pesado, P., Britos, P., & Garcia-Martinez, R. (2017). Process Model Proposal for Requirements Engineering in Information Mining Projects. In Colombian Conference on Computing (pp. 130-145). Springer, Cham. 
  38. Polya, G. (2004). How to solve it: A new aspect of mathematical method (Vol. 85). Princeton university press. 
  39. Randelli, G., & Nardi, D. (2010). Introducing ontology best practices and design patterns into robotics: USAREnv. In Proceedings of the 2010 conference on Modular Ontologies: Proceedings of the Fourth International Workshop (WoMO 2010) (pp. 67-80). IOS Press. 
  40. Razumowsky, A. I. (2019). Creativity-oriented software development. Amazonia Investiga, 8(22), 629-639. 
  41. Rind, A., Wagner, M., & Aigner, W. (2019, October). Towards a structural framework for explicit domain knowledge in visual analytics. In 2019 IEEE Workshop on Visual Analytics in Healthcare (VAHC) (pp. 33-40). IEEE. DOI:10.1109/VAHC47919.2019.8945032 
  42. Sacerdoti, E. D. (1974). Planning in a hierarchy of abstraction spaces. Artificial intelligence, 5(2), 115-135.  https://doi.org/10.1016/0004-3702(74)90026-5
  43. Sacha, D., Al.Masoudi, F., Stein, M., Schreck, T., Keim, D. A., Andrienko, G., & Janetzko, H. (2017, June). Dynamic visual abstraction of soccer movement. In Computer Graphics Forum (Vol. 36, No. 3, pp. 305-315).  https://doi.org/10.1111/cgf.13189
  44. Sakr, S., Bonifati, A., Voigt, H., Iosup, A., Ammar, K., Angles, R., ... & Yoneki, E. (2021). The future is big graphs: a community view on graph processing systems. Communications of the ACM, 64(9), 62-71.  https://doi.org/10.1145/3434642
  45. Shankar, K. (1984). Data Design: Types, Structures, and Abstractions. C. Vick and C. Ramamoorthy New York: Van Nostrand Reinhold. 
  46. Shaw, M. (1984). Abstraction techniques in modern programming languages. IEEE software, (4), 10-26. 
  47. Shillcock, R. (2020). A modern materialist approach to abstraction, concreteness, and explanation in cognition. Behavioral and Brain Sciences, 43. DOI:10.1017/S0140525X19003066 
  48. Shurkhovetskyy, G., Andrienko, N., Andrienko, G., & Fuchs, G. (2018, February). Data abstraction for visualizing large time series. In Computer Graphics Forum (Vol. 37, No. 1, pp. 125-144).  https://doi.org/10.1111/cgf.13237
  49. Stern, C. R., & Luger, G. F. (1997). Abduction and abstraction in diagnosis: a schema-based account. J. Expertise in context, 363-381. 
  50. Takano, W., & Nakamura, Y. (2015). Symbolically structured database for human whole body motions based on association between motion symbols and motion words. Robotics and Autonomous Systems, 66, 75-85.  https://doi.org/10.1016/j.robot.2014.12.008
  51. Viola, I., & Isenberg, T. (2017). Pondering the concept of abstraction in (illustrative) visualization. IEEE transactions on visualization and computer graphics, 24(9), 2573-2588.  https://doi.org/10.1109/TVCG.2017.2747545
  52. Vreeswijk, G. A. (1997). Abstract argumentation systems. Artificial intelligence, 90(1-2), 225-279  https://doi.org/10.1016/S0004-3702(96)00041-0
  53. Xia, L., & Collins, A. G. (2021). Temporal and state abstractions for efficient learning, transfer, and composition in humans. Psychological review. 128(4), 643 - 666. DOI:10.1037/rev0000295. 
  54. Yang, Q. (2012). Intelligent planning: a decomposition and abstraction based approach. Springer Science & Business Media. 
  55. Yin, H., Liu, P., Liu, K., Cao, L., Zhang, L., Gao, Y., & Hei, X. (2020). NS3-AI: Fostering artificial intelligence algorithms for networking research. In Proceedings of the 2020 Workshop on ns-3 (pp. 57-64).. 
  56. Ziegler, D., & Peissner, M. (2018, July). Modelling of Polymorphic User Interfaces at the Appropriate Level of Abstraction. In International Conference on Applied Human Factors and Ergonomics (pp. 45-56). Springer, Cham. 
  57. van Houwelingen, G., van Dijke, M., van Hiel, A., & De Cremer, D. (2021). Cognitive foundations of impartial punitive decision making in organizations: Attribution and abstraction. Journal of Organizational Behavior, 42(6), 726-740. DOI:10.1002/job.2480