Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики

В настоящее время распределённая разработка программного обеспечения приобретает всё большее значение. Это в первую очередь связано с ростом сложности создаваемых программных систем, повышением требований к функциональности и качеству конечного программного продукта, сложностью предметной области...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2008
Hauptverfasser: Ручкин, К.А., Холодов, Л.В.
Format: Artikel
Sprache:Russian
Veröffentlicht: Інститут проблем штучного інтелекту МОН України та НАН України 2008
Schlagworte:
Online Zugang:https://nasplib.isofts.kiev.ua/handle/123456789/6715
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Zitieren:Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики / К.А. Ручкин, Л.В. Холодов // Штучний інтелект. — 2008. — № 2. — С. 41-43. — Бібліогр.: 10 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-6715
record_format dspace
spelling nasplib_isofts_kiev_ua-123456789-67152025-02-09T16:43:19Z Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики Ручкин, К.А. Холодов, Л.В. Моделирование объектов и процессов В настоящее время распределённая разработка программного обеспечения приобретает всё большее значение. Это в первую очередь связано с ростом сложности создаваемых программных систем, повышением требований к функциональности и качеству конечного программного продукта, сложностью предметной области. Такие характеристики присущи системам компьютерного моделирования задач хаотической динамики. В связи с этим представляется актуальной распределённая разработка системы компьютерного моделирования и анализа решений задач хаотической динамики. В данной статье обосновывается выбор методологии распределённой разработки вышеозначенной системы. 2008 Article Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики / К.А. Ручкин, Л.В. Холодов // Штучний інтелект. — 2008. — № 2. — С. 41-43. — Бібліогр.: 10 назв. — рос. 1561-5359 https://nasplib.isofts.kiev.ua/handle/123456789/6715 004.4:519.85 ru application/pdf Інститут проблем штучного інтелекту МОН України та НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Моделирование объектов и процессов
Моделирование объектов и процессов
spellingShingle Моделирование объектов и процессов
Моделирование объектов и процессов
Ручкин, К.А.
Холодов, Л.В.
Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
description В настоящее время распределённая разработка программного обеспечения приобретает всё большее значение. Это в первую очередь связано с ростом сложности создаваемых программных систем, повышением требований к функциональности и качеству конечного программного продукта, сложностью предметной области. Такие характеристики присущи системам компьютерного моделирования задач хаотической динамики. В связи с этим представляется актуальной распределённая разработка системы компьютерного моделирования и анализа решений задач хаотической динамики. В данной статье обосновывается выбор методологии распределённой разработки вышеозначенной системы.
format Article
author Ручкин, К.А.
Холодов, Л.В.
author_facet Ручкин, К.А.
Холодов, Л.В.
author_sort Ручкин, К.А.
title Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
title_short Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
title_full Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
title_fullStr Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
title_full_unstemmed Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
title_sort распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики
publisher Інститут проблем штучного інтелекту МОН України та НАН України
publishDate 2008
topic_facet Моделирование объектов и процессов
url https://nasplib.isofts.kiev.ua/handle/123456789/6715
citation_txt Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики / К.А. Ручкин, Л.В. Холодов // Штучний інтелект. — 2008. — № 2. — С. 41-43. — Бібліогр.: 10 назв. — рос.
work_keys_str_mv AT ručkinka raspredelënnaârazrabotkaprogrammnogoobespečeniâsistemykompʹûternogomodelirovaniâzadačhaotičeskojdinamiki
AT holodovlv raspredelënnaârazrabotkaprogrammnogoobespečeniâsistemykompʹûternogomodelirovaniâzadačhaotičeskojdinamiki
first_indexed 2025-11-28T03:13:06Z
last_indexed 2025-11-28T03:13:06Z
_version_ 1850002214202900480
fulltext «Штучний інтелект» 2’2008 41 2Р УДК 004.4:519.85 К.А. Ручкин, Л.В. Холодов Государственный университет информатики и искусственного интеллекта, Украина Распределённая разработка программного обеспечения системы компьютерного моделирования задач хаотической динамики В настоящее время распределённая разработка программного обеспечения приобретает всё большее значение. Это в первую очередь связано с ростом сложности создаваемых программных систем, повышением требований к функциональности и качеству конечного программного продукта, сложностью предметной области. Такие характеристики присущи системам компьютерного моделирования задач хаотической динамики. В связи с этим представляется актуальной распределённая разработка системы компьютерного моделирования и анализа решений задач хаотической динамики. В данной статье обосновывается выбор методологии распределённой разработки вышеозначенной системы. Целью статьи является разработка системы визуализации движения твёрдого тела и исследования характера его движения. Кроме того, система должна решать задачи исследования систем дифференциальных уравнений методами, аналогичными методам исследования движения твердого тела, интерактивного и пакетного расчёта решений поставленной задачи и её характеристик, ведения пополняемой базы данных решений задач, расширения системы посредством системы подключаемых модулей – плагинов. Исходя из собранных требований, были определены области изменчивости и расширения приложения. В качестве базовой была выбрана открытая компонентно- ориентированная архитектура, расширяемая посредством динамически подключаемых библиотек. Географическая разрозненность разработчиков определила дополнительное условие распределённости разработки, поставив тем самым задачу выбора методо- логии разработки. Для организации процесса разработки были рассмотрены два класса методо- логий: формальные и гибкие. Учитывая высокую вариативность и расширяемость системы, а также недостаточную определённость требований к отдельным из её подсистем, были выбраны гибкие методологии разработки. Гибкие методологии акцентируют внимание на предпочтении быстрой реакции на изменения требований следованию плану, планированию коротких этапов (1-2 ме- сяца) и итераций (1-2 недели), тесном сотрудничестве заказчиков и разработчиков, предпочтению функционирующего (пусть даже в ограниченном объёме) програм- много обеспечения подробным спецификациям. К таким методологиям в первую очередь относятся SCRUM и экстремальное программирование. Методология SCRUM на сегодняшний день является одной из самых популярных методологий разработки. Она вводит в процесс разработки три роли: scrum master, product owner, team. Scrum master является связующим звеном между менеджментом и командой. Как правило, эту роль в проекте играет менеджер проекта или team-lead. К основным его обязанностям относят: создание атмосферы доверия, устранение препятствий, оповещение команды об открытых вопросах и Ручкин К.А., Холодов Л.В. «Искусственный интеллект» 2’2008 42 2Р проблемах, контроль за соблюдением практик и процесса в команде. Product owner – это человек, отвечающий за разработку продукта. Он является единой точкой при- нятия окончательных решений для команды в проекте, именно поэтому это всегда один человек, а не группа или комитет. В его обязанности входит: формирование видения проекта, формирование product backlog, расстановка приоритетов задач, предоставление требований, понятных команде, взаимодействие с командой и заказ- чиком, приёмка кода в конце каждой итерации. В методологии SCRUM команда является самоорганизующейся и самоуправляемой. Команда берёт на себя обяза- тельства по выполнению работ на спринт перед product owner. Работа команды оценивается как работа единой группы. В SCRUM вклад отдельных членов команды не оценивается, так как это разрушает самоорганизацию команды. Размер команды варьируется от 5 до 9 человек. SCRUM использует следующие виды проектных документов: product backlog, sprint backlog. Product backlog – это список имеющихся на данный момент требований к разрабатываемой системе с расставленными приоритетами. Sprint backlog содержит функциональность, выбранную product owner из product backlog. Все функции разбиваются по задачам, каждая из которых оцени- вается командой и переносится на итерации. Результатом спринта является готовый продукт, который можно передавать заказчику. Длительность спринта – 30 дней, это позволяет обеспечивать быструю обратную связь от заказчика к команде [1]. Помимо методологии SCRUM была рассмотрена методология экстремального программирования. Главный акцент в этой методологии ставится на разработку кода как главное занятие программистов. Экстремальное программирование требует постоянного использования следующих методик: пересмотр кода (программирование парами), автоматическое тестирование кода (тестирование модулей и функциональное тестирование), рефакторинг, простота проектных решений, коллективное владение кодом, автоматическая сборка и интеграционное тестирование, короткие итерации [2]. Полный цикл разработки кода в рамках экстремального программирования состоит из: парного решения задачи, разработки кода на основе предварительно разработанных тестов, достижения работы тестовых случаев, интеграции только что написанного кода в систему и интеграционное тестирование. К сожалению, отдельные из вышепе- речисленных методик не могут быть применены в условиях удалённой разработки, поэтому полноценное использование методологии экстремального программиро- вания для данного проекта было невозможно. Следование принципам, пропагандируемым этими методиками, позволяет создать баланс между формальными методами и свободой разработки. Однако наиболее эффективно они работают при использовании соответствующих инстру- ментов разработки: системы контроля версий, системы отслеживания изменений в проекте, системы управления заданиями и регистрации ошибок, базы знаний проекта, системы сборки. Использование таких инструментов упрощает процесс разработки и позволяет автоматизировать рутинные операции. Следует отметить, что использова- ние большинства из вышеперечисленных инструментов требует наличия сервера проекта, на котором они бы могли быть установлены. Если проект предполагает открытую разработку, можно воспользоваться услугами Source Forge, который бесп- латно предоставляет системы Wiki, Subversion и Trac. Однако если открытая разработка невозможна либо требуется использование каких-либо дополнительных сервисов, единственным решением является установка сервера, находящегося в режиме on-line и доступного из сети Internet, что и было сделано для данного проекта. Распределенная разработка программного обеспечения… «Штучний інтелект» 2’2008 43 2Р Распределённая разработка программных проектов предполагает коллективное владение кодом. Это означает следующее: любой разработчик может вносить изменения в любой участок кода. Это требует разработки и использования единых стандартов кодирования. В зависимости от квалификации команды и выбранной культуры разработки стандарты могут включать следующие разделы: архитектурные требования, требования к физической организации проекта, требования к проектиро- ванию, требования к написанию кода на определённом языке (например, C++), требования к форматированию кода (как правило, должны быть очень лояльными), конвенции именования. Для контроля соответствия кода стандартам следует прибегать к ревизиям кода. Более продуктивными являются формальные инспекции кода, при которых код анализируется группой разработчиков, каждый из которых выполняет свою определённую роль [3]. Для снижения рисков и уточнения требований к проекту эффективным является применение на ранних этапах разработки построения прототипов решений. Проблемы принятия решений по поводу работы системы в целом, как правило, связаны с нехваткой информации о тех или иных её аспектах. Однако сбор такой информации невозможен без разработки системы, что приводит к появлению замк- нутого круга. Выходом из такой ситуации является прототипирование отдельных компонентов и реализация частей системы «на выброс» [4], [5]. Кроме того, прототи- пы помогают новым разработчикам понять причины принятия решений, поскольку моделируют лишь часть функциональности разрабатываемой системы и позволяют рассмотреть её отдельные аспекты. Для разрабатываемой системы в качестве базовой была выбрана методика SCRUM. Для автоматизации процесса использованы следующие инструменты: система контроля версий – Subversion [6], интегрированная web-система поддержки разработки – Edgewall Trac [7], система сборки проекта – GNU Make [8]. В качестве основного языка программирования был выбран язык C++, для которого были разработаны требования по написанию кода (стандарты кодирования) [9]. Для под- систем с высокой вариативностью начата разработка прототипов. Литература 1. Ручкин К.А. Методы компьютерного моделирования и анализа решений задач хаотической динамики // Искусственный интеллект. – 2004. – № 4. – C. 175-181. 2. Уразбаев Асхат. Обзор методологии SCRUM. – Режим доступа: http://citforum.ru/SE/project/scrum. 3. Бек Кент. Экстремальное программирование. – СПб.: Питер, 2002. – 224 с. 4. Макконнелл С. Совершенный код. Мастер-класс: Пер. с англ. – М.: Издательско-торговый дом «Русская редакция». – СПб.: Питер, 2005. – 896 с. 5. Брукс Фредерик. Мифический человекомесяц, или Как создаются программные системы: Пер. с англ. – СПб.: Символ-Плюс, 2001. – 304 с. 6. Хант Эндрю, Томас Дэвид. Программист-прагматик. Путь от подмастерья к мастеру. – М.: Издательство «Лори», 2004. – 270 с. 7. Система контроля версий Subversion. – Режим доступа: http://subversion.tigris.org. 8. Web-cистема поддержки разработки Edgewall Trac. – Режим доступа: http://trac.edgewall.org. 9. Система сборки проектов GNU Make. – Режим доступа: http://www.gnu.org/software/make. 10. Стандарты написания кода на C++ для разрабатываемой системы. – Режим доступа: https://unt.game-host.org/twiki/bin/view.cgi/Main/CppCodingStandarts. Статья поступила в редакцию 30.03.2008.