К.С. Мышенков1, Д.А. Гурьянов2
1,2 Московский государственный технический университет им. Н.Э. Баумана
(национальный исследовательский университет) (Москва, Россия)
1myshenkovks@bmstu.ru, 2guryanovda@student.bmstu.ru
Постановка проблемы. Выбор методологии разработки программного обеспечения может сыграть ключевую роль для достижения успешности проекта. В зависимости от выбранной методологии можно сократить сроки поставки продукта и стоимость разработки, управлять неопределенностью и рисками, улучшить качество и удовлетворенность пользователя, обеспечить более детальный контроль над проектом. Несмотря на важность этой задачи, выбор наиболее подходящей методологии для конкретного проекта затруднен из-за большого числа критериев оценки, отсутствия достаточного числа литературных источников по этой проблеме и низкого уровня формализации процесса, когда выбор методологии осуществляется только на основании предыдущего опыта менеджера проекта.
Цель. Повысить эффективность процессов обоснования и выбора методологий разработки программного обеспечения для конкретных проектов.
Результаты. Рассмотрены основные известные модели жизненного цикла и методологии разработки программного обеспечения. Проведен анализ методов и критериев классификации методологий, выявлены недостатки существующих классификаций. Предложена новая многокритериальная иерархическая классификация, предлагающая более полное и широкое распределение по классам моделей жизненного цикла и методологий разработки программного обеспечения.
Практическая значимость. Сделан обзор существующих методологий, анализ известных методов классификации и их недостатков. Предложенный вариант классификации методологий поможет менеджерам проектов более обоснованно выбирать методологии разработки и уменьшить риски в процессе управления программными проектами.
Мышенков К.С., Гурьянов Д.А. Управление программными проектами: модели жизненного цикла и методологии разработки, анализ и классификация // Динамика сложных систем. 2024. Т. 18. № 2. С. 36−58. DOI: 10.18127/j19997493-202402-04
- ISO/IEC/IEEE 12207:2017. Systems and software engineering – Software life cycle processes. URL: https://www.iso.org/ru/ standard/63712.html (дата обращения: 10.03.2024).
- Review Standish Group – CHAOS 2020: Beyond Infinity. URL: https://hennyportman.wordpress.com/2021/01/06/review-standish-group-chaos-2020-beyond-infinity/ (дата обращения: 10.03.2024).
- Ozturk V. Selection of Appropriate Software Development Life Cycle Using Fuzzy Logic // Intelligent and Fuzzy Systems. 2013. V. 25 (3). P. 797–810. DOI 10.3233/IFS-120686
- Boehm B.W. A Spiral Model of Software Development and Enhancement // Computer. California, Los Alamitos: IEEE Computer Society Press, 1988. V. 21. № 5. Р. 61–72. DOI 10.1109/2.59
- ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств. М.: СТАНДАРТИНФОРМ. 2011. 99 с.
- ГОСТ Р 57193-2016 (ISO/IEC/IEEE 15288:2015, NEQ). Системная и программная инженерия. Процессы жизненного цикла систем. М.: СТАНДАРТИНФОРМ. 2016. 94 с.
- ГОСТ Р ИСО 15704-2008. Промышленные автоматизированные системы. Требования к стандартным архитектурам и методологиям предприятия. М.: СТАНДАРТИНФОРМ. 2010. 48 с.
- ГОСТ Р 54097-2010. Ресурсосбережение. Наилучшие доступные технологии. Методология идентификации. М.: СТАНДАРТИНФОРМ. 2011. 13 с.
- ГОСТ Р ИСО/МЭК ТО 15271-2002. Информационная технология. Руководство по применению ГОСТ Р ИСО/МЭК 12207. Процессы жизненного цикла программных средств. М.: ИПК Издательство стандартов. 2002. 39 с.
- Royce W.W. Managing the Development of Large Software Systems: Concepts and Techniques // Proceedings IEEE WESCON / USA, California, Los Angeles, Aug. 1970. P. 1–9.
- Ларман К., Базили В. Итеративная и инкрементальная разработка: краткая история // Открытые системы. СУБД. 2003.
№ 09. URL: https://www.osp.ru/os/2003/09/183412?ysclid=luijt3ubo269676509 (дата обращения: 10.03.2024). - Фатрелл Р.Т., Шафер Д.Ф., Шафер Л.И. Управление программными проектами: достижение оптимального качества при минимуме затрат. М.: Вильямс. 2004. 1136 с.
- Forsberg K., Mooz H. The Relationship of System Engineering to the Project Cycle // International Symposium of the International Council on Systems Engineering (INCOSE) / USA, Tennessee, Chattanooga, 20–23 Oct. 1991. V. 1. № 1. P. 57–65. DOI 10.1002/j.2334-5837.1991.tb01484.x
- Raccoon L.B.S. The Chaos Model and the Chaos Life Cycle // ACM SIGSOFT Software Engineering Notes. New York: ACM Press, Jan. 1995. V. 20. № 1. P. 55–66. DOI 10.1145/225907.225914
- Mooz H., Forsberg K. The Dual Vee – Illuminating the Management of Complexity // Sixteenth Annual International Symposium of the International Council on Systems Engineering (INCOSE) / USA, Florida, Orlando, 9–13 July 2006. V. 16. № 1. P. 1368–1381. DOI 10.1002/j.2334-5837.2006.tb02819.x
- Yourdon E. Structured Design. New York: Yourdon Press. 1975. 599 p.
- Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика. 1998. 176 с.
- Yourdon E., Constantine L.L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. New York: Yourdon Press. 1978. 464 p.
- Coad P., Yourdon E. Object-Oriented Analysis. New Jersey, Englewood Cliffs: Yourdon Press. 1991. 233 p.
- Gane С., Sarson T. Structured Systems Analysis: Tools & Techniques. New York: Improved System Technologies, 1977. 373 p.
- Warnier J.D. Logical Construction of Programs. New York: Van Nostrand Reinhold. 1976. 230 p.
- Orr K. Structured Systems Development. New York: Yourdon Press. 1977. 170 p.
- Higgins D.A. Designing Structured Programs. New Jersey, Englewood Cliffs: Prentice-Hall. 1983. 258 p.
- Jackson M.A. A Systems Development Method // Tools and notions for program construction: An advanced course / Nice 1981. Cambridge University Press. 1982. P. 1–25.
- Jackson M.A. System Development. New Jersey, Englewood Cliffs: Prentice-Hall. 1983. 418 p.
- Martin J. Information Engineering / In 3 vol. New Jersey, Englewood Cliffs: Prentice-Hall, 1989. V. 1: Introduction. 178 p.; V. 2: Planning and analysis. 497 p.; V. 3: Design and construction. 625 p.
- Finkelstein C. An Introduction to Information Engineering: From Strategic Planning to Information System. Australia, Sydney; Massachusetts, Reading: Addison-Wesley. 1989. 393 p.
- Калянов Г.Н. Консалтинг при автоматизации предприятий. Подходы, методы, средства. М.: СИНТЕГ. 1997. 316 с.
- Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ / Пер. с англ. Изд. 2-е. М.: Бином; СПб.: Невский диалект. 2000. 560 с.
- Shlaer S., Mellor S.J. Object-Oriented Systems Analysis: Modeling the World in Data. New Jersey, Englewood Cliffs: Yourdon Press. 1988. 141 p.
- Shlaer S., Mellor S.J. Object Lifecycles: Modeling the World in States. New Jersey, Englewood Cliffs: Yourdon Press. 1991. 245 p.
- Одинцов И.О. Профессиональное программирование. Системный подход. СПб.: БХВ-Петербург. 2004. 624 с.
- Booch G. Object Oriented Design with Applications. California, Redwood City: Benjamin/Cummings. 1991. 580 p.
- Booch G. Object-Oriented Analysis and Design with Applications. California, Redwood City: Benjamin/Cummings. 1994. 589 p.
- Jacobson I., Christerson M., Jonsson P., Övergaard G. Object-Oriented Software Engineering: A Use Case Driven Approach. New York: ACM Press. Addison-Wesley. 1992. 524 p.
- Goodland M., Riha K. SSADM – an Introduction. 20.01.1999. 24 p.
- ГОСТ Р 59853-2021. Информационные технологии. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения. М.: РСТ. 2021. 16 с.
- ГОСТ 24.104-2023. Единая система стандартов автоматизированных систем управления. Автоматизированные системы управления. Общие требования. М.: РСТ. 2023. 20 с.
- ГОСТ Р 59793-2021. Информационные технологии. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания. М.: РСТ. 2021. 8 с.
- ГОСТ 34.602-2020. Информационные технологии. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы. М.: РСТ. 2022. 11 с.
- ГОСТ 34.201-2020. Информационные технологии. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначение документов при создании автоматизированных систем. М.: РСТ. 2022. 12 с.
- ГОСТ Р 59795-2021. Информационные технологии. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Требования к содержанию документов. М.: РСТ. 2021. 31 с.
- ГОСТ Р 59792-2021. Информационные технологии. Комплекс стандартов на автоматизированные системы. Виды испытаний автоматизированных систем. М.: РСТ. 2021. 8 с.
- DATARUN Concepts. Computer Systems Advisers Research. 1994.
- Oracle CDM Method: Handbook. Oracle. 1996.
- Dorsey P., Koletzke P. Oracle Designer/2000: Handbook. California, Berkeley: Osborne McGraw-Hill. 1997. 644 p.
- Barker R. CASE*Method: Entity-Relationship Modelling. UK, Wokingham: Addison-Wesley. 1990. 250 p.
- Зиндер Е.З. Соотнесение и использование стандартов организации жизненных циклов систем // Системы управления базами данных. № 03. 1997. URL: https://www.osp.ru/dbms/1997/03/13031545?ysclid=luio3ckoyt272453383 (дата обращения: 10.03.2024).
- Oracle Unified Method (OUM). Oracle’s Full Lifecycle Method for Deploying Oracle-Based Business Solutions: Oracle White Paper. Sep. 2016. California, Redwood Shores: Oracle. 2016. 16 p. URL: https://www.academia.edu/31239860/Oracle_Unified_ Method_OUM_Oracles_Full_Lifecycle_Method_for_Deploying_Oracle_Based_Business_Solutions (дата обращения: 10.03.2024).
- McCarthy J. Dynamics of Software Development. Microsoft Press. 1995. 184 p.
- David J.-L., Loton T., Gunvaldson E. et al. Professional Visual Studio 2005 Team System. Indiana, Indianapolis: Wiley. 2006. 746 p.
- Смольянинов А., Ложечкин А. Некоторые секреты командной разработки // Открытые системы. СУБД. 2005. № 07-08. URL: https://www.osp.ru/os/2005/07-08/185764?ysclid=ltdjo3og2z646901703 (дата обращения: 10.03.2024).
- Essama Ze S. Microsoft Solutions Framework (MSF) for Agile Software Development. 2014. 10 p. URL: https://lirenligne.net/oeuvre-a-decouvrir/Li1LLcdCv8cH./Microsoft%20Solutions%20Frameworks.pdf (дата обращения: 10.03.2024).
- Кале В. Внедрение SAP R/3: Руководство для менеджеров и инженеров. М.: АйТи. 2006. 511 с.
- Бабенчук С.П. Методологии внедрения ERP-систем и управления проектами. Подходы к оценке эффективности внедрения ERP // Открытое образование. 2011. № 6. С. 51–59.
- Jacobson I., Booch G., Rumbaugh J. The Unified Software Development Process. Massachusetts, Reading: Addison-Wesley, 1999. 520 p.
- Scott K. The Unified Process Explained. Massachusetts, Boston: Addison-Wesley. 2002. 212 p.
- Martin J. Rapid Application Development. New York: Macmillan. 1991. 824 p.
- Martin J., Odell J.J. Object-Oriented Analysis and Design. New Jersey, Englewood Cliffs: Prentice-Hall. 1992. 527 p.
- Stapleton J. DSDM. Dynamic Systems Development Method: The Method in Practice. Massachusetts, Reading: Addison-Wesley. 1997. 163 p.
- Coad P., Lefebvre E., De Luca J. Java Modeling in Color with UML: Enterprise Components and Process. New Jersey, Upper Saddle River: Prentice Hall PTR. 1999. 218 p.
- Palmer S.R., Felsing J.M. A Practical Guide to Feature-Driven Development. New Jersey, Upper Saddle River: Prentice Hall PTR. 2002. 304 p.
- Beck K., Beedle M., Bennekum A., Cockburn A., Cunningham W., Fowler M. et al. Manifesto for Agile Software Development. URL: https://agilemanifesto.org (дата обращения: 10.03.2024).
- Швабер К., Сазерленд Дж. Руководство по Scrum. Исчерпывающее руководство по Scrum: Правила игры. 2020. URL: https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Russian.pdf (дата обращения: 10.03.2024).
- Krishna V., Basu A. Scrum+:: Is it “ScrumBut” or “ScrumAnd” // 2011 Annual IEEE India Conference / India, Hyderabad, 16-18 Dec. 2011. IEEE, 2012. P. 1–4. DOI 10.1109/INDCON.2011.6139625
- Ashraf S., Aftab S. IScrum: An Improved Scrum Process Model // International Journal of Modern Education and Computer Science (IJMECS). 2017. Vol. 9. № 8. P. 16–24. DOI 10.5815/ijmecs.2017.08.03
- Vriens C. Certifying for CMM Level 2 and ISO 9001 with XP@Scrum // Proceedings of Agile Development Conference, 2003. ADC 2003 / USA, Utah, Salt Lake City, 25-28 June 2003. IEEE, 2003. P. 120–124. DOI 10.1109/ADC.2003.1231461
- Qureshi M.R.J. Empirical Evaluation of the Proposed eXSCRUM Model: Results of a Case Study // International Journal of Computer Science Issues. 2011. V. 8 (3). № 2. P. 150–157.
- Ladas C. Scrumban. And Other Essays on Kanban Systems for Lean Software Development. Washington, Seattle: Modus Cooperandi. 2009. 180 p.
- Bashir M.S., Qureshi M.R.J. Hybrid Software Development Approach for Small to Medium Scale Projects: RUP, XP & SCRUM // Science International (Lahore). 2012. V. 24. № 4. P. 381–384.
- Sharma N., Wadhwa M. eXSRUP: Hybrid Software Development Model Integrating Extreme Programing, Scrum & Rational Unified Process // TELKOMNIKA. Indonesian Journal of Electrical Engineering. 2015. V. 16. № 2. P. 377–388.
- Larman C., Vodde B. Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum. New York: Addison-Wesley. 2008. 368 p.
- Paasivaara M., Durasiewicz S., Lassenius C. Distributed Agile Development: Using Scrum in a Large Project // 2008 IEEE International Conference on Global Software Engineering / India, Bangalore, 17-20 Aug. 2008. IEEE, 2008. P. 87–95. DOI 10.1109/ICGSE.2008.38
- Al Qurashi S., Qureshi M.R.J. Scrum of Scrums Solution for Large Size Teams Using Scrum Methodology // Life Science Journal. 2014. Vol. 11. № 8. P. 443-449.
- Scrum Team Role & Responsibilities. URL: https://www.mountaingoatsoftware.com/agile/scrum/roles/team (дата обращения: 10.03.2024).
- The Nexus™ Guide. URL: https://www.scrum.org/resources/nexus-guide/ (дата обращения: 10.03.2024).
- Knaster R., Leffingwell D. SAFe 4.0 Distilled: Applying the Scaled Agile Framework for Lean Software and Systems Engineering. Massachusetts, Boston: Addison-Wesley Professional. 2017. 416 p.
- Beck K. Extreme Programming Explained: Embrace Change. Massachusetts, Reading: Addison-Wesley. 2000. 224 p.
- Amber S.W. The Agile Unified Process (AUP). Ambysoft, 2001–2005. URL: https://web.archive.org/web/20190808110832/ http:/www.ambysoft.com/unifiedprocess/agileUP.html (дата обращения: 10.03.2024).
- Кролл П. OpenUP – это просто: Технические материалы. IBM. 03.04.2008. URL: https://web.archive.org/web/20120403075046/ http:/www.ibm.com/developerworks/ru/library/kroll/index.html?S_TACT=105AGX99&S_CMP=GR01 (дата обращения: 10.03.2024).
- Poppendieck M., Poppendieck T. Implementing Lean Software Development: From Concept to Cash. Massachusetts, Boston: Addison-Wesley Professional. 2006. 304 p.
- The Kanban Method. URL: https://kanbantool.com/kanban-method (дата обращения: 10.03.2024).
- Kim G. Talk Notes: John Allspaw and Paul Hammond: “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr”: Velocity 2009. 2012. URL: http://realgenekim.squarespace.com/blog/2012/1/4/talk-notes-john-allspaw-and-paul-hammond-10-deploys-per-day.html (дата обращения: 10.03.2024).
- Kim G., Behr K., Spafford G. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win. Oregon, Portland: IT Revolution. 2018. 432 p.
- Rasool G., Aftab S., Hussain S., Streitferdt D. eXRUP: A Hybrid Software Development Model for Small to Medium Scale Projects // Journal of Software Engineering and Applications. 2013. V. 6. № 9. P. 446–457. DOI 10.4236/jsea.2013.69055
- Fowler M. The New Methodology // Wuhan University Journal of Natural Sciences. 2001. V. 6. № 1-2. P. 12–24. DOI 10.1007/BF03160222
- Dillman A.E. Selecting a Software Development Life Cycle (SDLC) Methodology. A Practical Decision Framework to Maximize Business Value (The D3 Cube): Project Management Solutions White Paper Series. Pennsylvania, Havertown: PM Solutions & Park Hill Technologies. 2003. P. 1–12.
- Мышенков К.С., Беляшов А.Н. Методологии, методы и модели для анализа и проектирования систем управления // Вестник МГТУ «Станкин». 2013. № 3 (26). С. 76–82.
- Мышенков К.С. Методика обоснования выбора CASE-средств для анализа и проектирования систем управления предприятиями // Инновации. 2013. № 10. С. 33–43.
- Cockburn A. Selecting a Project's Methodology // IEEE Software. 2000. V. 17. № 4. P. 64–71. DOI 10.1109/52.854070
- Dingsøyr T., Nerur S., Balijepally V., Moe N.B. A Decade of Agile Methodologies: Towards Explaining Agile Software Development // The Journal of Systems and Software. 2012. V. 85. № 6. P. 1213–1221. DOI 10.1016/j.jss.2012.02.033
- Гурьянов Д.А., Мышенков К.С. Классификация методологий разработки программного обеспечения // Интегрированные модели и мягкие вычисления в искусственном интеллекте: Сб. науч. тр. XI Междунар. науч.-практ. конф. / ИММВ-2022, Коломна, 16-19 мая 2022. В 2-х т. М.: РАИИ. 2022. Т. 2. С. 279–292. EDN ITPVGR.
- Gurianov D.A., Myshenkov K.S., Terekhov V.I. Software Development Methodologies: Analysis and Classification // 2023 5th International Youth Conference on Radio Electronics, Electrical and Power Engineering (REEPE) / Russian Federation, Moscow, 16-18 March 2023. M.: IEEE. 2023. V. 5. P. 1–8. DOI 10.1109/REEPE57272.2023.10086852. EDN XKKKPU.
- Мышенков К.С., Симонов М.Ф., Коростелёв В.М. Обоснование выбора программных средств моделирования баз данных // Динамика сложных систем – XXI век. 2020. Т. 14. № 2. С. 77–83. DOI 10.18127/j19997493-202002-09. EDN XCGFXG.
- Горячкин Б.С., Мышенков К.С., Харлашкин А.И. Анализ методов концептуального проектирования автоматизированных информационных систем // Динамика сложных систем – XXI век. 2020. Т. 14. № 3. С. 23–34. DOI 10.18127/j19997493-202003-02. EDN DTECTE.
- Мышенков К.С., Симонов М.Ф., Гузилов А.В. Обоснование выбора программных средств построения функциональных моделей информационных систем // Динамика сложных систем – XXI век. 2020. Т. 14. № 4. С. 38–45. DOI 10.18127/ j19997493-202004-04. EDN UVTKYC.