Файл: Технология разработки программного обеспечения.pptx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 163

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

МОДЕЛИ И МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Каскадная модель

V-образная модель, как разновидность каскадной модели

Итеративный инкрементный подход к разработке (эволюционная модель)

Инкрементная модель

Разработка программного обеспечения Изучите основы разработки программного обеспечения

Исследуйте

Планируйте

Сборка и тестирование

Развертывание

Эксплуатация

Наблюдение

Непрерывная обратная связь

Безопасность

Руководство оператора

АННОТАЦИЯ 

В данном программном документе приведено руководство оператора по применению и эксплуатации специального программного обеспечения «Синергет КСБО».

В данном программном документе, в разделе «Назначение программы» указаны сведения о назначении программы и информация, достаточная для понимания функций программы и ее эксплуатации.

В разделе «Условия выполнения программы» указаны условия, необходимые для выполнения программы (минимальный состав аппаратных и программных средств и т.п.).

НАЗНАЧЕНИЕ ПРОГРАММЫ

УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ

Минимальный состав аппаратных средств

IBM-совместимый персональный компьютер (ПЭВМ), включающий в себя:

ВЫПОЛНЕНИЕ ПРОГРАММЫ  

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

     языки и системы программирования;

     инструментальная среда пользователя.

    Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере. Они делятся на классы:

     машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

     машинно-ориентированные языки – языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);

     алгоритмические языки – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, бейсик, Фортран и др.);

     процедурно–ориентированные языки – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм).

     проблемно–ориентированные языки – предназначены для решения задач определенного класса (Lisp);

  • Системы программирования включают:
  •  компилятор (транслятор);
  •  интегрированную среду разработки программ (не всегда);
  •  отладчик;
  •  средства оптимизации кода программ;
  •  набор библиотек;
  •  редактор связей;
  •  сервисные средства (утилиты) (для работы с библиотеками, текстовыми и двоичными файлами);
  •  справочные системы;
  •  систему поддержки и управления продуктами программного комплекса.

ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

  • В соответствии с ГОСТ Р ИСО/МЭК 12207-2010 различные виды деятельности, которые могут выполняться в течение жизненного цикла программных систем в семь групп процессов:
  • 1) процессы соглашения – 2;
  • 2) процессы организационного обеспечения проекта – 5;
  • 3) процессы проекта – 7;
  • 4) технические процессы – 11;
  • 5) процессы реализации программных средств – 7;
  • 6) процессы поддержки программных средств – 8;
  • 7) процессы повторного применения программных средств – 3

МОДЕЛИ И МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

  • Под моделью жизненного цикла ПО понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении ЖЦ. Модель ЖЦ зависит от спецификации, масштаба и сложности проекта и спецификации условий, в которых система создается и функционирует. Модель ЖЦ ПО включает в себя: стадии, результаты выполнения работ на каждой стадии, ключевые события – точки завершения работ и принятия решений. Модель ЖЦ любого конкретного ПО определяет характер процесса его создания, который представляет собой совокупность упорядоченных во времени, взаимосвязанных и объединенных в стадии работ, выполнение которых необходимо и достаточно для создания ПО, соответствующего заданным требованиям. Под стадией понимается часть процесса создания ПО, ограниченная определенными временными рамками и 22 заканчивающаяся выпуском конкретного продукта (моделей, программных компонентов, документации), определяемого заданными для данной стадии требованиями. На каждой стадии могут выполнятся несколько процессов, определённых в стандарте ГОСТ Р ИСО/МЭК 12207-2010, и наоборот один и тот процесс может выполняться на различных стадиях. Соотношение между стадиями и процессами также определяется используемой моделью ЖЦ ПО. Далее рассмотрим модели и их классификации

Каскадная модель

  • Первой моделью, получившей широкую известность и действительно структурирующей процесс разработки, является каскадная (водопадная) модель. Каждая стадия каскадной модели заканчивается получением некоторых результатов, которые служат в качестве исходных данных для следующей стадии. Требования к разрабатываемому ПО, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта.
  • Преимущества применения каскадной модели заключаются в следующем:  на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
  •  выполняемые в логичной последователь стадии работ позволяют планировать сроки завершения всех работ и соответствующие затраты.

V-образная модель, как разновидность каскадной модели

  • Основной принцип V-образной модели заключается в том, что детализация проекта возрастает при движении слева направо, одновременно с течением времени, и ни то, ни другое не может повернуть вспять. Итерации в проекте производятся по горизонтали, между левой и правой сторонами буквы. V-модель – вариация каскадной модели, в которой задачи разработки идут сверху вниз по левой стороне буквы V, а задачи тестирования – вверх по правой стороне буквы V. Внутри V проводятся горизонтальные линии, показывающие, как результаты каждой из стадий разработки влияют на развитие системы тестирования на каждой из стадий тестирования. Модель базируется на том, что приемо-сдаточные испытания основываются, прежде всего, на требованиях, системное тестирование – на требованиях и архитектуре, комплексное тестирование – на требованиях, архитектуре и интерфейсах, а компонентное тестирование – на требованиях, архитектуре, интерфейсах и алгоритмах
  • Особенностью данной модели является разбиение стадий на три логических этапа: проектирование (детализация требований), реализация, тестирование.
  • V-модель дает организациям и проектным группам руководство по выполнению и завершению проектов последовательным и воспроизводимым образом. Применение принципов V-модели гарантирует выявление и фиксацию требований пользователей. Утвержденные требования могут быть переведены в функции готового приложения, (и) приложение отражает требования пользователей

Итеративный инкрементный подход к разработке (эволюционная модель)

  • Итеративная модель предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает «мини-проект», включая все фазы жизненного цикла в применении к созданию меньших фрагментов функциональности, по сравнению с проектом, в целом. Цель каждой итерации – получение работающей версии программной системы, включающей функциональность, определенную интегрированным содержанием всех предыдущих и текущей итерации. Результата финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации, продукт развивается инкрементально. Шансы успешного создания сложной системы будут максимальными, если она реализуется в серии небольших шагов и если каждый шаг заключает в себе четко определенный результат, а также возможность возврата к результатам предыдущей успешной итерации, в случае неудачи. Перед тем, как пустить в дело все ресурсы, предназначенные для создания ПО, разработчик имеет возможность получать обратную связь из реального мира (заказчиков, пользователей) и исправлять возможные ошибки в проекте.

  • Итеративная модель подразумевает возможность не только сборки работающей (с точки зрения результатов тестирования) версии системы - прототипа, но и её развертывания в реальных операционных условиях с анализом откликов пользователей для определения содержания и планирования следующей итерации. Поскольку на каждом шаге мы имеем работающую систему, то можно:  очень рано начать тестирование пользователями;  принять стратегию разработки в соответствии с бюджетом, полностью защищающую от перерасхода времени или средств (в частности, за счет сокращения второстепенной функциональности).

Инкрементная модель

  • Идея, лежащая в основе инкрементной модели, состоит в том, что программную систему следует разрабатывать по принципу приращений, так, чтобы разработчик мог использовать данные, полученные при разработке более ранних версий ПО. Новые данные получаются как в ходе разработки ПО, так и в ходе его использования, где это возможно. Ключевые этапы этого процесса – простая реализация подмножества требований к программе и совершенствование модели в серии последовательных релизов до тех пор, пока не будет реализовано ПО во всей полноте. В ходе каждой итерации организация модели изменяется, и к ней добавляются новые функциональные возможности. Для организации инкрементной разработки обычно выбирается характерный временной интервал, например, неделя. Затем в течение этого интервала происходит обновление проекта: добавляется новая документация как текстовая, так и графическая, расширяется набор тестов, добавляются новые программные коды и т. д. Теоретически шаги разработки могут выполняться и параллельно, но такой процесс очень сложно скоординировать. Инкрементная разработка проходит лучше всего, если следующая итерация начинается после того, как обновление всех артефактов в предыдущей итерации закончено, и существенно хуже, если время, требуемое на обновление артефактов, значительно превышает выбранный интервал
  • В результате каждой итерации получается работающее, но не полнофункциональное ПО, которое еще не является программным продуктом и не подлежит распространению. В результате каждой итерации создается версия некоторой части ПО. Необходимо заметить, но как правило на каждой итерации определяются и реализуются новые требования, некоторые итерации могут быть целиком посвящены усовершенствованию существующей программы, например, с целью повышения ее производительности.

Разработка программного обеспечения Изучите основы разработки программного обеспечения

  • Что такое разработка программного обеспечения?
  • Процесс разработки ПО охватывает проектирование, создание документации, программирование, тестирование и непрерывное техническое обслуживание программного продукта. Эти составляющие образуют конвейер рабочего процесса — последовательность этапов, с помощью которых создаются высококачественные программные продукты. Такой конвейер называется жизненным циклом разработки программного обеспечения.

    Несмотря на множество нюансов, жизненный цикл разработки программного обеспечения обычно складывается из перечисленных ниже типичных этапов.

Исследуйте

  • Разрабатывается концепция проекта, выполняется проектирование и расстановка приоритетов. Управление рабочим процессом ведется по методология типа agile. Разработка и эксплуатация руководится практиками типа DevOps. На этом этапе можно использовать Confluence — отличный инструмент для обмена проектными файлами и разработки документации по исследованию продукта.
  • Agile — это итеративный подход к управлению проектами и разработке программного обеспечения, который помогает командам быстрее и с меньшими проблемами поставлять ценность клиентам. Вместо того чтобы выпускать весь продукт целиком, команда, следующая принципам Agile, выполняет работу в рамках небольших, но удобных инкрементов. Требования, планы и результаты оцениваются непрерывно, благодаря чему команды могут быстро реагировать на изменения.
  • DevOps — это набор методикинструментов и философия культуры, которые позволяют автоматизировать и интегрировать между собой процессы команд разработки ПО и ИТ‑команд. Особое внимание в DevOps уделяется расширению возможностей команд, их взаимодействию и сотрудничеству, а также автоматизации технологий.

Планируйте

  • Определяются заинтересованные стороны, выделяется бюджет, запрашивается необходимая инфраструктура. Проектная документация с этапа разработки концепции разбивается на выполнимые задания. Для управления списками заданий, их отслеживания и упорядочения используются  ряд инструментов таких как Jira Software и Trello (эти инструменты помогают быстрому обмену информации между теми кто создает продукт ).

Сборка и тестирование

  • Команды разработчиков занимаются созданием пригодного к эксплуатации ПО с учетом требований и обратной связи. Эффективность процесса разработки обеспечивается благодаря конвейерам CI/CD. Bitbucket предлагает инструменты для совместной проверки кода и конвейеры CI/CD, которые встраиваются в процесс проверки.
  • Оптимизация кода и CI/CD для команд с помощью Jira
  • Bitbucket Cloud — это органичный Git-инструмент внутри решения Atlassian Open DevOps, обладающий лучшей в своем классе интеграцией с Jira и встроенными возможностями CI/CD. Присоединяйтесь к миллионам разработчиков, выбравших Bitbucket.