~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3B81DAE4979295CEAAA794355EEADE62__1699199160 ✰
Заголовок документа оригинал.:
✰ Round-trip engineering - Wikipedia ✰
Заголовок документа перевод.:
✰ Техника туда и обратно — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Round-trip_engineering ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3b/62/3b81dae4979295ceaaa794355eeade62.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3b/62/3b81dae4979295ceaaa794355eeade62__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 09:03:52 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 5 November 2023, at 18:46 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Техника туда и обратно — Википедия Jump to content

Круглосуточный инжиниринг

Из Википедии, бесплатной энциклопедии

Комплексное проектирование ( RTE ) в контексте архитектуры, управляемой моделями, — это функциональность инструментов разработки программного обеспечения , которая синхронизирует два или более связанных артефактов программного обеспечения, таких как исходный код, модели , файлы конфигурации, документация и т. д. между собой. [1] Необходимость в двустороннем проектировании возникает, когда одна и та же информация присутствует в нескольких артефактах и ​​когда может возникнуть несогласованность в случае обновления некоторых артефактов. Например, некоторая информация была добавлена/изменена только в одном артефакте (исходном коде) и в результате она стала отсутствовать/несовместимой с другими артефактами (в моделях).

Обзор [ править ]

Комплексное проектирование тесно связано с традиционными дисциплинами разработки программного обеспечения : прямое проектирование (создание программного обеспечения на основе спецификаций), обратное проектирование (создание спецификаций на основе существующего программного обеспечения) и реинжиниринг (понимание существующего программного обеспечения и его модификация). Комплексное проектирование часто ошибочно определяют как просто поддержку как прямого, так и обратного проектирования. Фактически, ключевой характеристикой комплексного проектирования, которая отличает его от прямого и обратного проектирования, является способность синхронизировать существующие артефакты, которые развивались одновременно, путем постепенного обновления каждого артефакта для отражения изменений, внесенных в другие артефакты. Более того, прямое проектирование можно рассматривать как особый случай RTE, в котором присутствует только спецификация, а обратное проектирование можно рассматривать как особый случай RTE, в котором присутствует только программное обеспечение. Многие действия по реинжинирингу также можно понимать как RTE, когда программное обеспечение обновляется с учетом изменений, внесенных в ранее разработанную спецификацию.

Типы [ править ]

В различных книгах описываются два типа RTE: [2] : 459 

  • частичный или однонаправленный RTE: изменения, внесенные в представление кода и модели более высокого уровня, отражаются на более низком уровне, но не иначе; последнее может быть разрешено, но с ограничениями, которые могут не влиять на абстракции более высокого уровня.
  • полный или двунаправленный RTE: независимо от изменений, представления кода и модели как верхнего, так и нижнего уровня синхронизируются, если какое-либо из них изменено.

Автоматическая синхронизация [ править ]

Еще одной особенностью комплексного проектирования является автоматическое обновление артефактов в ответ на автоматически обнаруженные несоответствия. В этом смысле он отличается от прямого и обратного проектирования, которое может быть как ручным (традиционно), так и автоматическим (посредством автоматического создания или анализа артефактов). Автоматическое обновление может быть мгновенным или по требованию . При мгновенном RTE все связанные артефакты немедленно обновляются после каждого изменения, внесенного в один из них. В RTE по требованию авторы артефактов могут одновременно обновлять артефакты (даже в распределенной среде) и в какой-то момент решить выполнить сопоставление для выявления несоответствий, а также выбрать распространение некоторых из них и разрешить потенциальные конфликты.

Итеративный подход

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

Программное обеспечение [ править ]

Многие коммерческие инструменты и исследовательские прототипы поддерживают эту форму RTE; В книге 2007 года Rational Rose , Micro Focus Together , ESS-Model , BlueJ и Fujaba перечислены среди тех, кто способен на это, причем Fujaba, как утверждается, способна также идентифицировать шаблоны проектирования . [3]

Ограничения [ править ]

В книге 2005 года по Visual Studio отмечается, например, что распространенной проблемой в инструментах RTE является то, что перевернутая модель не совпадает с исходной, если только инструменты не поддерживаются путем оставления трудоемких аннотаций в исходном коде. [4] Поведенческие части UML создают еще больше проблем для RTE.

Обычно диаграммы классов UML в той или иной степени поддерживаются; однако некоторые концепции UML, такие как ассоциации и включение, не имеют прямого представления во многих языках программирования, что ограничивает удобство использования созданного кода и точность анализа/обратного проектирования кода (например, вложение трудно распознать в коде).

Более удобная форма комплексного проектирования реализуется в контексте интерфейсов прикладного программирования (API) платформы, при этом модель, описывающая использование API платформы приложением, синхронизируется с кодом этого приложения. В этом случае API предписывает все правильные способы использования платформы в приложениях, что позволяет точно и полностью определять использование API в коде, а также создавать полезный код, реализующий правильное использование API. Двумя известными реализациями RTE в этой категории являются языки моделирования, специфичные для платформы, и Spring Roo (Java).

Комплексное проектирование имеет решающее значение для поддержания согласованности между несколькими моделями, а также между моделями и кодом в Object Management Group (OMG) управляемой моделями архитектуре . OMG предложила стандарт QVT (запрос/просмотр/преобразование) для обработки преобразований модели, необходимых для MDA. На сегодняшний день [ когда? ] было создано несколько реализаций стандарта. (Необходимо представить практический опыт применения MDA применительно к RTE).

Споры [ править ]

Споры о генерации кода [ править ]

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

Спецификация диаграмм UML (если она использовалась для MDA) подверглась критике за отсутствие детализации, необходимой для содержания той же информации, которая содержится в исходном коде программы. Некоторые разработчики даже утверждают, что «Код — это дизайн». [5] [6]

Недостатки [ править ]

Существует серьезный риск того, что сгенерированный код будет быстро отличаться от модели или что реконструированная модель потеряет свое отражение в коде, или сочетание этих двух проблем в результате циклических усилий по реинжинирингу. [7]

Что касается поведенческой/динамической части UML, то для таких функций, как диаграмма состояний, нет эквивалентов в языках программирования. Их перевод во время генерации кода приведет к общему оператору программирования (например, if,switch,enum) либо отсутствуют, либо неверно истолкованы. Если отредактировать и импортировать обратно, модель может оказаться другой или неполной. [8] [9] То же самое относится и к фрагментам кода, используемым на этапе генерации кода для реализации шаблонов и логики, специфичной для пользователя: смешанные, их может быть нелегко перепроектировать обратно. [8] [9]

Также наблюдается общая нехватка продвинутых инструментов для моделирования, сравнимых с инструментами современных IDE (для тестирования, отладки, навигации и т. д.) для языков программирования общего назначения и языков предметной области . [9]

Примеры в разработке программного обеспечения [ править ]

Возможно, наиболее распространенной формой комплексного проектирования является синхронизация между моделями UML ( унифицированным языком моделирования ) и соответствующим исходным кодом и диаграммами «сущность-связь» при моделировании данных и моделировании баз данных .

Комплексное проектирование на основе унифицированного языка моделирования (UML) требует трех основных инструментов для разработки программного обеспечения: [ нужна цитата ]

  • Редактор исходного кода;
  • Редактор UML для атрибутов и методов;
  • Визуализация структуры UML

Ссылки [ править ]

  1. ^ Нежный, Энн (2012). Разговор и сообщество: Социальная сеть для документации (2-е изд.). XML Пресс. ISBN  978-1937434106 .
  2. ^ Собх, Тарек М. (2008). Достижения в области компьютерных и информационных наук и техники . Международная конференция по системам, вычислительным наукам и программной инженерии. Нью-Йорк?: Спрингер. ISBN  978-1-4020-8741-7 .
  3. ^ Стефан Диль (2007). Визуализация программного обеспечения: визуализация структуры, поведения и эволюции программного обеспечения . Springer Science & Business Media. п. 63. ИСБН  978-3-540-46505-8 .
  4. ^ Андрей Филев; Тони Лотон; Кевин Макниш; Бен Шёлльманн; Джон Слейтер; Чаур Г. Ву (2005). Профессиональный UML с использованием Visual Studio .Net . Джон Уайли и сыновья. п. 181. ИСБН  978-0-7645-5875-7 .
  5. ^ http://www.developerdotstar.com/mag/articles/reeves_design_main.html Джека В. Ривза
  6. ^ Ривз, Джек В. (1992). «Что такое программная инженерия» . www.bleading-edge.com . Журнал С++ . Проверено 25 июля 2023 г.
  7. ^ "Помощь -" . www.modeliosoft.com . Проверено 25 июля 2023 г.
  8. ^ Перейти обратно: а б Сигл, Дэниел. «Почему двустороннее проектирование не работает | LieberLieber Modeling Expert» . Проверено 25 июля 2023 г.
  9. ^ Перейти обратно: а б с «8 причин, почему подходы, основанные на моделях, терпят неудачу» . ИнфоQ . Проверено 29 июля 2023 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3B81DAE4979295CEAAA794355EEADE62__1699199160
URL1:https://en.wikipedia.org/wiki/Round-trip_engineering
Заголовок, (Title) документа по адресу, URL1:
Round-trip engineering - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)