СТАНОВЛЕННЯ ТА РОЗВИТОК ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЯК ГАЛУЗІ ЗНАНЬ

Ключові слова: інженерія програмного забезпечення, професійна підготовка, програмне забезпечення, програмна система, програмування, проектування, моделювання

Анотація

У статті представлено аналіз основних етапів розвитку інженерії програмного забезпечення (ІПЗ) як галузі знань, виокремлено фундаментальні складові підготовки майбутніх інженерів-програмістів, визначено тенденції розвитку цієї галузі на найближче десятиліття. Сучасна ІПЗ базується на трьох групах ключових принципів: основні концепції комп’ютерних наук, пов’язані зі структурами даних, алгоритмами, мовами програмування та їх семантикою, аналізом, обчислювальністю, моделями обчислень тощо; основи інженерії, пов’язані з архітектурою, процесами інженерії, компромісами та витратами, стандартизацією, якістю та гарантіями та інші складові, що забезпечують підхід до проектування та вирішення проблем; соціально-економічні основи, що включають процес створення та еволюції артефактів, а також питання, пов’язані з політикою, ринками, зручністю використання та соціально-економічними впливами; це забезпечує основу для формування інженерних артефактів, що будуть відповідати їхньому призначенню.
Сучасна ІПЗ є невід’ємною складовою переважної більшості інновацій у всіх сферах розвитку суспільства, науки та техніки, пропонуючи системні, практичні, економічно вигідні рішення для обчислювальних задач та задач опрацювання інформації. За час розвитку ІПЗ як окремої галузі накопичено значний досвід проектування, впровадження, тестування та документування програмного забезпечення, виокремлено системні наукові, технологічні підходи і методи до проектування та конструювання комп’ютерних програм. У той же час дослідники зазначають, що ІПЗ ще досі не досягла такого рівня сталості, як інші галузі інженерії. Аналіз історичних етапів розвитку ІПЗ показав, що незважаючи на загальне визнання важливості застосування при розробленні програмного забезпечення математичного апарату логіки, теорії автоматів та лінгвістики, вона створювалась емпіричним способом без його використання. Фактором, що змушує програмістів-практиків звернутися до математичних основ ІПЗ, є зростання складності програмного забезпечення і нездатність емпіричних підходів до його розроблення та управління впоратися з нею. У професійній підготовці інженерів-програмістів виділено проблему швидкого застарівання технологічного змісту навчання, розв’язання якої полягає у його фундаменталізації через виокремлення базових основ галузі.

Завантаження

Дані завантаження ще не доступні.

##plugins.generic.paperbuzz.metrics##

##plugins.generic.paperbuzz.loading##

Посилання


1. International Organization for Standardization (ISO) (2010). 24765:2010. ISO/IEC/IEEE International Standard. Systems and software engineering -- Vocabulary. DOI : 10.1109/IEEESTD.2010.5733835.
2. International Organization for Standardization (ISO) (1990). 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology. DOI : 10.1109/IEEESTD.1990.101064.
3. Bauer, F. L. (1972). Software Engineering. Information Processing 71: Proceedings of IFIP Congress 71, Ljubljana, Yugoslavia, August 23-28, 1971, Vol. 1, Foundations and Systems, 530 - 538. Amsterdam: North-Holland Publishing Company.
4. Benington, H. D. (1956). Production of Large Computer Programs. Proceedings of Symposium on advanced programming methods for digital computers, Washington, D.C., June 28-29, pp. 15 - 28. US Navy Mathematical Computing Advisory Panel, US Office of Naval Research.
5. Boehm, B. A. (2006). View of 20th and 21st Century Software Engineering. Proceedings of the 28th international conference on Software engineering ICSE'06. Shanghai, China (May 20-28, 2006), 12 29. New York : ACM. DOI : 10.1145/1134285.1134288.
6. Boehm, B. A. (2006). View of 20th and 21st Century Software Engineering : ICSE 2006 Keynote Address. Retrieved from https://isr.uci.edu/icse-06/program/keynotes/Boehm-Keynote.ppt.
7. Boehm, B. W. (1976). Software Engineering. IEEE Transactions on Computers, 25, (12), 1226 - 1241.
8. Brooks, F. P. Jr. (1987). No Silver Bullet – Essence and Accident in Software Engineering. Computer, 20 (4), 10 - 19. DOI : 10.1109/MC.1987.1663532.
9. Buckley, F. J. (1993). Standards: defining software engineering as a profession. Computer, 26 (8), 76 78. DOI : 10.1109/2.223554.
10. Dijkstra, E. W. (1971). On a Methodology of Design. MC-25 Informatica Symposium, 4.1 - 4.10. Amsterdam : Mathematisch Centrum.
11. Brennecke, A. & Keil-Slawik, R. (Eds.) (1996). History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on August 26 - 30, 1996. Retrieved from: https://www.dagstuhl.de/ Reports/96/9635.pdf.
12. Hosier, W. A. (1961). Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on Programming. IRE Transactions on Engineering Management, 8 (2), 99 - 115. DOI:10.1109/iret-em.1961.5007599
13. Mead, N. R., Garlan, D. & Shaw, M. (2018). Half a Century of Software Engineering Education: the CMU Exemplar. IEEE Software. DOI : 10.1109/MS.2018.290110743.
14. Mills, H. D. (1972). Mathematical Foundations for Structured Programming. Gaithersburg : Federal Systems Division, International Business Machines Corporation, IV, 62. Retrieved from http://trace.tennessee.edu/utk_harlan/56.
15. Mills, H. D. (1977). Software Engineering. Science, 195 (4283), 1199 - 2105.
16. Oettinger, A. A. (1966). Letter to the ACM membership. Communications of the ACM, 9 (8), 545 546.
17. Perlis, A. J. (1969). Identifying and developing curricula in software engineering. Proceedings of the May 14-16, 1969, spring joint computer conference on XX - AFIPS '69 (Spring), 540 - 541. Boston, Massachusetts. New York : ACM. DOI: 10.1145/1476793.1476877.
18. Pucinski, R. C. (1969). The Challenge for the 1970s in Information Retrieval. Software Engineering COINS III : Proceedings of the Third Symposium on Computer and Information Sciences held in Miami beach, Florida, December 1969, Vol. 2, XVII-XX. London: Academic Press. DOI: 10.1016/B978-0-12-696202-4.50006-1.
19. Randell, B. (2018). Fifty Years of Software Engineering - or - The View from Garmisch. arXiv:1805.02742 [cs.SE]. Retrieved from https://arxiv.org/abs/1805.02742.
20. Royce, W. W. (1970). Managing the Development of Large Software Systems: Concepts and Techniques. Proceedings of IEEE WESCON, Los Angeles, 25-28 August 1970, 1 - 9.
21. Shaw, M. (2009). Continuing Prospects for an Engineering Discipline of Software. IEEE Software, 26 (6), 64 - 67. DOI : 10.1109/ms.2009.172.
22. Shaw, M. (1990). Prospects for an Engineering Discipline of Software. IEEE Software, 7 (6), 15 - 24.
23. Shaw, M. (1997). Three Patterns that help explain the development of Software Engineering. History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on August 26-30, 1996, III+57. Retrieved from https://www.dagstuhl.de/Reports/96/9635.pdf.
24. Naur, P. & Randell, B. (Eds.) (1968). Software Engineering: Report on a Conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968. Brussels : Scientific Affairs Division, NATO.
25. Buxton, J. N. & Randell, B. (Eds.) (1970). Software Engineering Techniques: Report on a Conference sponsored by the NATO Science Committee, Rome, Italy, 27th to 31st October 1969. Brussels : Scientific Affairs Division, NATO.
26. Tou, J. T. (Ed.) (1970). Software Engineering – A New Profession. Software Engineering COINS III : Proceedings of the Third Symposium on Computer and Information Sciences held in Miami beach, Florida, December, 1969, 1, 1 - 6. London : Academic Press. DOI: 10.1016/B978-0-12-395495-4.50009-X.
27. Williams, A. S. (1976). Software engineering: tools of the profession. Submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. Naval Postgraduate School. Monterey.
28. Брукс, Ф. П. (1979). Как проектируются и создаются программные комплексы. Москва: Наука.
29. Дзержинский, Ф. Я. & Райков, Л. Д. (1990). Что такое программная инженерия. Программирование, 2, 67-79.
30. Лингер, Р., Миллс, Х. & Уитт, Б. (1982). Теория и практика структурного программирования. Москва: Мир.
31. МОН України (2012). Про затвердження Переліку пріоритетних напрямів освіти і науки щодо навчання студентів та аспірантів, стажування наукових і науково-педагогічних працівників у провідних вищих навчальних закладах та наукових установах за кордоном у 2012 році: Наказ № 315. Відновлено з http://zakon2.rada.gov.ua/laws/show/z0500-1.
32. Кабінет Міністрів України (2011). Про затвердження переліку пріоритетних тематичних напрямів наукових досліджень і науково-технічних розробок на період до 2020 року, Постанова № 942. Відновлено з http://zakon5.rada.gov.ua/laws/show/942-2011-%D0%BF.


1. International Organization for Standardization (ISO) (2010). 24765:2010. ISO/IEC/IEEE International Standard. Systems and software engineering -- Vocabulary. DOI : 10.1109/IEEESTD.2010.5733835.
2. International Organization for Standardization (ISO) (1990). 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology. DOI : 10.1109/IEEESTD.1990.101064.
3. Bauer, F. L. (1972). Software Engineering. Information Processing 71: Proceedings of IFIP Congress 71, Ljubljana, Yugoslavia, August 23-28, 1971, Vol. 1, Foundations and Systems, 530 - 538. Amsterdam: North-Holland Publishing Company.
4. Benington, H. D. (1956). Production of Large Computer Programs. Proceedings of Symposium on advanced programming methods for digital computers, Washington, D.C., June 28-29, pp. 15 - 28. US Navy Mathematical Computing Advisory Panel, US Office of Naval Research.
5. Boehm, B. A. (2006). View of 20th and 21st Century Software Engineering. Proceedings of the 28th international conference on Software engineering ICSE'06. Shanghai, China (May 20-28, 2006), 12 29. New York : ACM. DOI : 10.1145/1134285.1134288.
6. Boehm, B. A. (2006). View of 20th and 21st Century Software Engineering : ICSE 2006 Keynote Address. Retrieved from https://isr.uci.edu/icse-06/program/keynotes/Boehm-Keynote.ppt.
7. Boehm, B. W. (1976). Software Engineering. IEEE Transactions on Computers, 25, (12), 1226 - 1241.
8. Brooks, F. P. Jr. (1987). No Silver Bullet – Essence and Accident in Software Engineering. Computer, 20 (4), 10 - 19. DOI : 10.1109/MC.1987.1663532.
9. Buckley, F. J. (1993). Standards: defining software engineering as a profession. Computer, 26 (8), 76 78. DOI : 10.1109/2.223554.
10. Dijkstra, E. W. (1971). On a Methodology of Design. MC-25 Informatica Symposium, 4.1 - 4.10. Amsterdam : Mathematisch Centrum.
11. Brennecke, A. & Keil-Slawik, R. (Eds.) (1996). History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on August 26 - 30, 1996. Retrieved from: https://www.dagstuhl.de/ Reports/96/9635.pdf.
12. Hosier, W. A. (1961). Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on Programming. IRE Transactions on Engineering Management, 8 (2), 99 - 115. DOI:10.1109/iret-em.1961.5007599
13. Mead, N. R., Garlan, D. & Shaw, M. (2018). Half a Century of Software Engineering Education: the CMU Exemplar. IEEE Software. DOI : 10.1109/MS.2018.290110743.
14. Mills, H. D. (1972). Mathematical Foundations for Structured Programming. Gaithersburg : Federal Systems Division, International Business Machines Corporation, IV, 62. Retrieved from http://trace.tennessee.edu/utk_harlan/56.
15. Mills, H. D. (1977). Software Engineering. Science, 195 (4283), 1199-2105.
16. Oettinger, A. A. (1966). Letter to the ACM membership. Communications of the ACM, 9 (8), 545 546.
17. Perlis, A. J. (1969). Identifying and developing curricula in software engineering. Proceedings of the May 14-16, 1969, spring joint computer conference on XX - AFIPS '69 (Spring), 540-541. Boston, Massachusetts. New York : ACM. DOI: 10.1145/1476793.1476877.
18. Pucinski, R. C. (1969). The Challenge for the 1970s in Information Retrieval. Software Engineering COINS III : Proceedings of the Third Symposium on Computer and Information Sciences held in Miami beach, Florida, December 1969, Vol. 2, XVII-XX. London: Academic Press. DOI: 10.1016/B978-0-12-696202-4.50006-1.
19. Randell, B. (2018). Fifty Years of Software Engineering - or - The View from Garmisch. arXiv:1805.02742 [cs.SE]. Retrieved from https://arxiv.org/abs/1805.02742.
20. Royce, W. W. (1970). Managing the Development of Large Software Systems: Concepts and Techniques. Proceedings of IEEE WESCON, Los Angeles, 25-28 August 1970, 1-9.
21. Shaw, M. (2009). Continuing Prospects for an Engineering Discipline of Software. IEEE Software, 26 (6), 64 - 67. DOI : 10.1109/ms.2009.172.
22. Shaw, M. (1990). Prospects for an Engineering Discipline of Software. IEEE Software, 7 (6), 15 - 24.
23. Shaw, M. (1997). Three Patterns that help explain the development of Software Engineering. History of Software Engineering : Position Papers for Dagstuhl Seminar 9635 on August 26-30, 1996, III+57. Retrieved from https://www.dagstuhl.de/Reports/96/9635.pdf.
24. Naur, P. & Randell, B. (Eds.) (1968). Software Engineering: Report on a Conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968. Brussels : Scientific Affairs Division, NATO.
25. Buxton, J. N. & Randell, B. (Eds.) (1970). Software Engineering Techniques: Report on a Conference sponsored by the NATO Science Committee, Rome, Italy, 27th to 31st October 1969. Brussels : Scientific Affairs Division, NATO.
26. Tou, J. T. (Ed.) (1970). Software Engineering – A New Profession. Software Engineering COINS III : Proceedings of the Third Symposium on Computer and Information Sciences held in Miami beach, Florida, December, 1969, 1, 1 - 6. London : Academic Press. DOI: 10.1016/B978-0-12-395495-4.50009-X.
27. Williams, A. S. (1976). Software engineering: tools of the profession. Submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. Naval Postgraduate School. Monterey.
28. Brooks, F. P. (1979). How software systems are designed and created. Moscow: Nauka.
29. Dzerjinskiy, F. Ya. & Raykov, L. D. (1990). What is software engineering. Programmirovanie, 2, 67 79.
30. Linger, R. C., Mills, H.D. & Witt, B.I. (1982). Structured Programming: Theory and Practice. Moscow: Mir.
31. The Cabinet of Ministers of Ukraine (2012). On Approval of the List of Priority Areas of Education and Science for Students and Postgraduate Students, internship of scientific and scientific-pedagogical workers in leading higher educational establishments and scientific institutions abroad in 2012, Order № 315. Retireved from http://zakon2.rada.gov.ua/laws/show/z0500-1.
32. The Cabinet of Ministers of Ukraine (2011). On approval of the list of priority thematic areas of scientific research and scientific and technical developments for the period until 2020, Postanova № 942. Retireved from http://zakon5.rada.gov.ua/laws/show/942-2011-%D0%BF.
Опубліковано
2018-12-28
Як цитувати
СтрюкА. М. (2018). СТАНОВЛЕННЯ ТА РОЗВИТОК ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЯК ГАЛУЗІ ЗНАНЬ. Збірник наукових праць "Information Technologies in Education" (ITE), (37), 103-136. https://doi.org/10.14308/ite000684