Basics of programming in the context of software engineering

М.О. Sydorov

Abstract


The article discusses the use of a constructive approach to building a program that is systematically cultivated in software engineering and made possible by a number of fundamental results obtained in programming theory. On the first, based on the structural theorem, reasonably was refused to use the go to operator and proposed a structured programming method, which provided a real way to create understandable programs. On the second, the concept of a subroutine, although it was used only to reduce routine work in the programming process, was the first means of modular presentation of programs. Later, the block and the subroutine formed the basis of block-oriented (procedural, subroutine) languages and the procedural (subroutine) programming method. In the third, to answer questions related to the definition of boundaries, sizes, and building module, the concept of connecting parts that make up a module and connections to indicate the connection between modules; specific modularization criteria; proposed a device module based on the concept of information hiding were introduced. The module is implemented in the programming language Modula, and later Modula-2. The concept of a module based on the modular (compositional) programming method. In the Simula 67 language, the foundations of object-oriented languages were introduced. They developed through the work on the concepts of inheritance, late binding and links, and were completed by the development of object-oriented languages and object-oriented (classification) programming. Thus, a framework for reuse, systematic reuse and component software development was created. Now these works are developing in the direction of research and creation of software as system of systems, using the link between system analysis and software engineering, and developing software system engineering. In the article, for learning the basics of programming, as a tool that allows clarifying the concept of program design, classification is used. As a classification feature - the level of encapsulation, which is based on the principles of software engineering – encapsulation and multi-level presentation -, is used. Applying the principle of encapsulation at different levels of representation program structure corresponding to different degrees of software abstraction, the concept of encapsulation level was obtained. Using this concept, you can find out the types of software constructions and the corresponding methods of programming (construction) programs. Using introduced the concepts and the constructive approach to building the program, the author created the didactics of the basics of programming, which was deployment through lectures for students of the specialty “Software Engineering” (121) and a textbook of the author for students and post-graduate students of the specialty.

Problems in programming 2019; 3: 45-57


Keywords


learning; basics of programming; programming languages; software engineering

References


Boehm B., 2006, A View of 20th and 21st Century Software engineering[Text]. ICSE’06.- May 20–28 China. 2006. P. 12–29.

Report on a conference sponsored by the NATO science committee, Garmisch,

Germany, 7-th to 11-th October 1968, Editors: Peter Naur and Brian Randell.

Segmentation and Design Strategies for Modular Programming." In T. O. Barnett and L. L. Constantine (eds.), Modular Programming: Proceedings of a National Symposium. Cambridge, Mass.: Information & Systems Press, 1968.

Wirth N. Programming in Modula-2. Springer-Verlag, Heidelberg, New York, 1982.

Jean Ichbiah (October 1984). «Ada: Past, Present, Future — An Interview with Jean Ichbiah, the Principal Designer of Ada». Communications of the ACM 27 (10): 990–997. DOI:10.1145/358274.358278

Dahl O.-J., Myhrhaug B., Nygaard K. SIMULA67, Common base language/-Oslo, 1968, 96 p.

Hoare C.A.R. An axiomatic basis for com-puter programming, Comm. Of ACM, 12 (1969). P. 576–580.

Goldberg A., Robson D. SmallTalk 80 The language and its implementation, Addison-Wesley, New-York, 1983.

M.W.Maier Architecting principels for sys-tems-of-systems, Systems engineering, 1, 4(1998). P. 267–284.

Engelmeyer. P. C. Philosophy of technolo-gy. М., 1912.

Redtenbacher F., Der Maschinbau, Mannheim, 1862.

Boehm B.W. Improving Software Produc-tivity. Computer. 1987. Vol. 20, N 9. P. 43–57.

Sydorov M. Using the software engineering principals in basics programming education, USIM. 1998. N 4. P. 50–59.

Dijkstra E.W. Structured Program-ming. 1975. 247 p.

Widerhold G., Wegner P., Ceri S. Toward megaprogramming. Communication of the ACM. 1992. Vol. 35, N 11. P. 89–99.

System of systems engineering, ed.by Jam-shidi M., John Wiley&Sons, 2009, 591 p.

Sydorov M. Is the software engineering education subject or postgraduate, USIM. 2006. N 2. P. 25–34.

It Ukraine from a to z, http://www.uadn.net/files/ua_hightech.pdf

Sydorov M., Basics of programming, Kiev 2018, 435 p.

Bennedsen J. Teaching and Learning Intro-ductory Programming, – A Model-Based Approach. 327 p.

Lindsey C., van der Meulen S., Informal introduction to ALGOL 68, London, 1971.

Barron D.W. An introduction to the study of programming languages, Cambridge uni-versity press, London, 1977.


Refbacks

  • There are currently no refbacks.