Abstract:
The article analyzes the main stages of software engineering (SE) development. Based on the analysis of materials from the first SE conferences (1968-1969), it was determined how the software crisis prompted scientists and practitioners to join forces to form an engineering approach to programming. Differences in professional training for SE are identified. The fundamental components of the training of future software engineers are highlighted. The evolution of approaches to the design, implementation, testing and documentation of software is considered. The system scientific, technological approaches and methods for the design and construction of computer programs are highlighted. Analysis of the historical stages of the development of SE showed that despite the universal recognition of the importance of using the mathematical apparatus of logic, automata theory and linguistics when developing software, it was created empirically without its use. The factor that led practitioners to turn to the mathematical foundations of an SE is the increasing complexity of software and the inability of empirical approaches to its development and management to cope with it. The training of software engineers highlighted the problem of the rapid obsolescence of the technological content of education, the solution of which lies in its fundamentalization through the identification of the basic foundations of the industry. It is determined that mastering the basics of computer science is the foundation of vocational training in SE. У статті проаналізовано основні етапи розвитку інженерії програмного забезпечення (ІПЗ). На основі аналізу матеріалів перших конференцій з ІПЗ (1968-1969 рр.) визначено, як криза програмного забезпечення спонукала науковців та практиків об’єднати зусилля для формування інженерного підходу до програмування. Окреслено відмінності професійної підготовки фахівців з ІПЗ. Виокремлено фундаментальні складові підготовки майбутніх інженерів-програмістів. Розглянуто еволюцію підходів до проектування, впровадження, тестування та документування програмного забезпечення. Виокремлено системні наукові, технологічні підходи і методи до проектування та конструювання комп’ютерних програм. Аналіз історичних етапів розвитку ІПЗ показав, що незважаючи на загальне визнання важливості застосування при розробці програмного забезпечення математичного апарату логіки, теорії автоматів та лінгвістики, воно створювалась емпіричним способом без його використання. Фактором, що змусив програмістів-практиків звернутися до математичних основ ІПЗ, є зростання складності програмного забезпечення та нездатність емпіричних підходів до його розробки та управління впоратися з нею. У професійній підготовці інженерів-програмістів виділено проблему швидкого застарівання технологічного змісту навчання, розв’язання якої полягає у його фундаменталізації через виокремлення базових основ галузі. Визначено, що опанування основ комп’ютерних наук (інформатики) є фундаментом професійної підготовки з ІПЗ.
Description:
1. 24765-2010 - ISO/IEC/IEEE International Standard - Systems and software engineering --
Vocabulary. – New York : IEEE, 2010. – VI, 410, [2] p. – DOI :
10.1109/IEEESTD.2010.5733835.
2. 610.12-1990 - IEEE Standard Glossary of Software Engineering Terminology. – New York
: IEEE, 1990. – 83 p. – DOI : 10.1109/IEEESTD.1990.101064.
3. Bauer F. L. Software Engineering / Bauer F. L. // Information Processing 71: Proceedings
of IFIP Congress 71, Ljubljana, Yugoslavia, August 23-28, 1971 / Editors : C. V. Freiman,
J. E. Griffith, J. L. Rosenfeld. – Amsterdam : North-Holland Publishing Company, 1972. –
Vol. 1 – Foundations and Systems. – P. 530-538.
4. Benington H. D. Production of Large Computer Programs / H. D. Benington // Proceedings
of Symposium on advanced programming methods for digital computers : Washington,
D.C., June 28, 29, 1956 / US Navy Mathematical Computing Advisory Panel, US Office of
Naval Research. – [Washington] : Office of Naval Research, Dept. of the Navy, [1956?]. –
P. 15-28. – (ONR symposium report, ACR-15)
5. Boehm B. A View of 20th and 21st Century Software Engineering / Barry Boehm //
Proceedings of the 28th international conference on Software engineering ICSE'06.
Shanghai, China – May 20-28, 2006. – New York : ACM, 2006. – P. 12-29. – DOI :
10.1145/1134285.1134288.
6. Boehm B. A View of 20th and 21st Century Software Engineering : ICSE 2006 Keynote
Address [Electronic resource] / Barry Boehm. – May 25, 2006. – 54 p. – Access mode :
https://isr.uci.edu/icse-06/program/keynotes/Boehm-Keynote.ppt.
7. Boehm B. W. Software Engineering / Boehm B. W. // IEEE Transactions on Computers. –
1976. – Vol. 25. – Iss. 12. – P. 1226-1241.
8. Brooks F. P. Jr. No Silver Bullet – Essence and Accident in Software Engineering /
Frederick. P. Brooks, Jr. // Computer. – 1987. – Vol. 20. – Iss. 4. – P. 10-19. – DOI :
10.1109/MC.1987.1663532.
9. Buckley F. J. Standards: defining software engineering as a profession / Fletcher J. Buckley
// Computer. – 1993. – Vol. 26. – Issue 8. – P. 76-78. – DOI : 10.1109/2.223554.
10. Dijkstra E. W. On a Methodology of Design / Dijkstra E. W. // MC-25 Informatica
Symposium / Ed. Jacobus Willem Bakker. – Amsterdam : Mathematisch Centrum, 1971. –
P. 4.1-4.10. – (Mathematical Centre tracts, 37)
11. History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on August 26
– 30, 1996 organized by William Aspray, Reinhard Keil-Slawik and David L. Parnas
[Electronic resource] / Editors : Andreas Brennecke, Reinhard Keil-Slawik. – Paderborn,
July 1997. – III+57 p. – Access mode : https://www.dagstuhl.de/Reports/96/9635.pdf.
12. Hosier W. A. Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on
Programming / W. A. Hosier // IRE Transactions on Engineering Management. – 1961. –
Vol. Em-8. – Iss. 2. – P. 99-115. – DOI:10.1109/iret-em.1961.5007599.
13. Mead N. R. Half a Century of Software Engineering Education: the CMU Exemplar / Nancy
R. Mead, David Garlan, Mary Shaw // IEEE Software. – 2018. – DOI :
10.1109/MS.2018.290110743.
14. Mills H. D. Mathematical Foundations for Structured Programming [Electronic resource] /
Harlan D. Mills. – Gaithersburg : Federal Systems Division, International Business
Machines Corporation, 1972. – IV, 62 p. – (The Harlan D. Mills Collection). – Access mode
: http://trace.tennessee.edu/utk_harlan/56.
15. Mills H. D. Software Engineering / Harlan D. Mills // Science. – Vol. 195. – Iss. 4283. –
18 March 1977. – P. 1199-2105.
16. Oettinger A. A. Letter to the ACM membership / Anthony A. Oettinger // Communications
of the ACM. – 1966. – Vol. 9. – No. 8. – P. 545-546.
17. Perlis A. J. Identifying and developing curricula in software engineering / Alan J. Perlis //
Proceedings of the May 14-16, 1969, spring joint computer conference on XX - AFIPS '69
(Spring). Boston, Massachusetts. – New York : ACM, 1969. – P. 540-541. – DOI:
10.1145/1476793.1476877.
18. Pucinski R. C. The Challenge for the 1970s in Information Retrieval / Roman C. Pucinski //
Software Engineering COINS III : Proceedings of the Third Symposium on Computer and
Information Sciences held in Miami beach, Florida, December, 1969 / Edited by Julius T.
Tou. – Volume 2. – New York ; London : Academic Press, 1971. – P. XVII-XX. – DOI :
10.1016/B978-0-12-696202-4.50006-1.
19. Randell B. Fifty Years of Software Engineering - or - The View from Garmisch [Electronic
resource] / Brian Randell // arXiv:1805.02742 [cs.SE]. – 2018. – 9 p. – Access mode :
https://arxiv.org/abs/1805.02742.
20. Royce W. W. Managing the Development of Large Software Systems: Concepts and
Techniques / Dr. Winston W. Royce // Proceedings of IEEE WESCON, Los Angeles, 25-28
August 1970. – P. 1-9.
21. Shaw M. Continuing Prospects for an Engineering Discipline of Software / Mary Shaw //
IEEE Software. – 2009. – Vol. 26. – Issue 6. – P. 64-67. – DOI : 10.1109/ms.2009.172.
22. Shaw M. Prospects for an Engineering Discipline of Software / Mary Shaw // IEEE
Software. – 1990. – Vol. 7. – No. 6. – P. 15-24.
23. Shaw M. Three Patterns that help explain the development of Software Engineering / Mary
Shaw // History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on
August 26 – 30, 1996 organized by William Aspray, Reinhard Keil-Slawik and David L.
Parnas [Electronic resource] / Editors : Andreas Brennecke, Reinhard Keil-Slawik. –
Paderborn, July 1997. – P. 52-56. – Access mode :
https://www.dagstuhl.de/Reports/96/9635.pdf.
24. Software Engineering : Report on a Conference sponsored by the NATO Science
Committee, Garmisch, Germany, 7th to 11th October 1968 / Editors : Peter Naur and Brian
Randell. – Brussels : Scientific Affairs Division, NATO, January 1969. – 231 p.
25. Software Engineering Techniques : Report on a Conference sponsored by the NATO
Science Committee, Rome, Italy, 27th to 31st October 1969 / Editors : J. N. Buxton and
B. Randell. – Brussels : Scientific Affairs Division, NATO, April 1970. – 164 p.
26. Tou J. T. Software Engineering – A New Profession / Julius T. Tou // Software Engineering
COINS III : Proceedings of the Third Symposium on Computer and Information Sciences
held in Miami beach, Florida, December, 1969 / Edited by Julius T. Tou. – Volume 1. –
New York ; London : Academic Press, 1970. – P. 1-6. – DOI : 10.1016/B978-0-12-395495-
4.50009-X.
27. Williams A. S. Software engineering: tools of the profession : Submitted in partial
fulfillment of the requirements for the degree of Master of Science in Computer Science /
Arrena Sue Williams ; Naval Postgraduate School. – Monterey, 1976. – 92 p.
28. Брукс Ф. П. мл. Как проектируются и создаются программные комплексы /
Ф. П. Брукс мл. – М. : Наука, 1979. – 152 с. – (Библиотечка программиста)
29. Дзержинский Ф. Я. Что такое программная инженерия / Дзержинский Ф. Я.,
Райков Л. Д. // Программирование. – 1990. – № 2. – С. 67-79.
30. Лингер Р. Теория и практика структурного программирования / Р. Лингер, Х. Миллс,
Б. Уитт. – М. : Мир, 1982. – 406 с.
31. Про затвердження Переліку пріоритетних напрямів освіти і науки щодо навчання
студентів та аспірантів, стажування наукових і науково-педагогічних працівників у
провідних вищих навчальних закладах та наукових установах за кордоном у 2012 році
[Електронний ресурс] : Наказ № 315, Перелік / МОНмолодьспорт України. –
20.03.2012. – Режим доступу : http://zakon2.rada.gov.ua/laws/show/z0500-1.
32. Про затвердження переліку пріоритетних тематичних напрямів наукових досліджень
і науково-технічних розробок на період до 2020 року [Електронний ресурс] :
Постанова № 942, Перелік / Кабінет Міністрів України. – 07.09.2011. – Режим доступу
: http://zakon5.rada.gov.ua/laws/show/942-2011-%D0%BF.