В этом посте вы познакомитесь как с процессом Parallel Agile (PA), так и с надстройкой Parallel Agile для Enterprise Architect, которая обеспечивает процесс PA для клиентов Sparx.

Мы обсудим:

· Что такое Parallel Agile?

· Сжатие графиков с параллельной разработкой

· Что такое исполняемая архитектура?

· Что такое Parallel Agile CodeBot?

· Использование CodeBot для создания кода для вашей модели предметной области

· Почему мы создали надстройку Enterprise Architect?

· Другие возможности надстройки Parallel Agile

Надстройка Parallel Agile создает код доступа к базе данных и REST API из моделей предметной области и работает в сочетании с надстройкой ICONIX Agile DDT, которая создает приемочные тестовые примеры на основе требований и вариантов использования. Обе надстройки бесплатны. Parallel Agile берет свое начало в процессе ICONIX (что не должно быть сюрпризом, учитывая автора) и опирается на некоторые другие проверенные временем идеи, такие как проектирование, управляемое предметной областью, и модель спирали поэтапных обязательств (ICSM).

Мы работали над разработкой, пилотированием и усовершенствованием процесса Parallel Agile в течение последних четырех лет, тестируя различные методы крупномасштабной параллельной разработки программного обеспечения с более чем 200 аспирантами профессора Боэма из Университета Южной Калифорнии (USC). ) Центр программного обеспечения и системной инженерии (CSSE). Мы пишем книгу: Parallel Agile, более быстрая доставка, меньше дефектов, более низкая стоимость, которая будет выпущена через несколько месяцев.

После четырех лет успешного тестирования в нескольких проектах мы рады сделать его доступным для сообщества Sparx. Итак, поехали…

Что такое Parallel Agile?

Parallel Agile — это процесс разработки, основанный на идее крупномасштабной параллельной разработки с целью одновременного сокращения сроков и повышения качества. Есть поговорка «Качество — главное, а расписание — бог». Разве не было бы неплохо иметь более высокое качество и более короткие сроки? Ну, конечно, было бы, но вопрос в том, как мы можем это сделать? Мы добились действительно хороших успехов, разбивая проекты на их варианты использования и назначая разработчика для каждого варианта использования, а затем позволяя им работать параллельно — и мы масштабировали это до довольно приличного числа разработчиков. Это звучит проще, чем есть на самом деле, потому что исторически интеграция работы большого количества параллельных разработчиков была проблематичной. Мы обошли эту проблему интеграции, создав то, что мы называем исполняемой архитектурой, путем генерации кода базы данных NoSQL и REST API из модели предметной области прямо в начале проекта — и вот тут-то и появляется CodeBot. вскоре поговорим подробнее об исполняемых архитектурах и CodeBots.

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

Сжатие графиков с параллельной разработкой

Все хотели бы закончить свои программные проекты быстрее. И есть много стратегий, которые пытаются решить эту проблему с разных сторон. Parallel Agile атакует его с двух сторон:

· Во-первых, мы используем автоматизацию в виде генерации кода и генерации тестовых случаев.

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

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

Вы можете думать о Parallel Agile как о попытке найти лазейку в законе Брукса. Обычно это считается абсолютной истиной, что приводит к гибким методам разработки с небольшими группами разработчиков, которые постепенно продвигаются в бесконечной серии коротких спринтов, часто оставляя за собой горы технического долга.

Закон Брукса стоит на пути крупномасштабной параллельной разработки программного обеспечения, как ограничение скорости света Эйнштейна сдерживало межгалактические путешествия до изобретения варп-двигателя Зефрамом Кокраном в 2063 году. Но закон Брукса постулировался в прошлом тысячелетии. , до появления REST API, баз данных NoSQL, проектирования на основе домена, исполняемого UML и, что наиболее важно, — CodeBots.

Что такое исполняемая архитектура?

Исполняемые архитектуры — ключевой фактор массовой параллельной разработки и гибкого подбора персонала. Исполняемые архитектуры упрощают совместную работу большой группы разработчиков, поскольку код каждого встраивается в архитектуру. PA создает архитектуру, управляемую доменом, превращая вашу модель домена UML в исполняемый код доступа к базе данных Mongo DB и код Node JS. Ручное кодирование общих функций доступа к базе данных является утомительным, медленным, подверженным ошибкам и дорогостоящим, поэтому это экономит ваше время на вашем проекте.

Domain Driven Design (DDD) — это популярный подход к проектированию, успешно зарекомендовавший себя на протяжении многих лет. Общее понимание проблемной области является решающим фактором успеха в большинстве программных проектов. Без общего понимания проблемы решения всегда хаотичны. Архитектуры, управляемые предметной областью, наиболее устойчивы к изменениям, потому что проблемная область обычно меняется намного медленнее, чем требования к программному обеспечению. Архитектуры, управляемые исполняемым доменом, позволяют многим разработчикам работать параллельно и интегрировать свою работу, вызывая API для любых объектов предметной области, которые им нужны.

Доступность REST API для общих функций доступа к базе данных упрощает разработку для нескольких клиентских платформ, а в сочетании с гибкой схемой баз данных NoSQL позволяет широко разрабатывать прототипы для действующей базы данных. Создание прототипа на базе действующей базы данных на ранних стадиях проекта позволяет проектировать базу данных на основе отзывов.

Что такое Parallel Agile CodeBot?

CodeBot от Parallel Agile — это облачный генератор кода, который превращает ваши диаграммы UML в исполняемый код. В частности, он преобразует модель предметной области (диаграмму классов) в набор коллекций NoSQL (Mongo DB), генерирует базовый набор функций доступа к базе данных и заключает эти функции доступа в REST API (Node JS).

Использование CodeBot для создания кода для вашей модели домена

Вы получаете доступ к CodeBot через надстройку Parallel Agile, щелкнув правой кнопкой мыши пакет модели домена, и (после настройки учетной записи) CodeBot возвращает вам код Mongo DB, код Node JS и документы Swagger API в zip-файле. . CodeBot также создает клиентский код на JavaScript, Java и Swift.

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

Mongo и Node — наши первоначальные цели для CodeBot, поэтому, если вы занимаетесь разработкой MEAN Stack, эта функциональность сразу же пригодится. Мы будем добавлять дополнительные целевые базы данных и API на постоянной основе.