Промышленная технология разработки программ

В последнее время слово «промышленное приложение» часто встречается в средствах массовой информации, в Интернете, на форумах и в различных документах местных органов власти. Мы также видели несколько малоизвестных городов третьего уровня. Районы и округа продвигают промышленные приложения. Юнь, реализация различных государственных субсидий эти невероятные новости.

Хотя я называю себя старшим инженером-программистом, я все еще чувствую себя невежественным и не понимаю, что такое так называемое «промышленное приложение»? Используя английский «Industry Apps» Google, я не могу найти достойных статей. Подсчитано, что «промышленное приложение» — это не импортный продукт, а новое слово, созданное китайскими экспертами. Я не хочу спорить с экспертами, но хочу рассказать о своем понимании промышленного прикладного программного обеспечения.

Особенности промышленного прикладного программного обеспечения

Так называемые промышленные приложения могут происходить из концепции мобильных приложений. Я не нашел авторитетного описания промышленных приложений, или просто интересно, что такое «промышленное прикладное программное обеспечение»? Этот вопрос. Более подходящее описание «Промышленного приложения» я прочитал в статье «Идеальная платформа для промышленных приложений» компании Qt.

Технология разработки ПО (лекция 1)

  1. Программное обеспечение для установки, настройки, эксплуатации и обслуживания промышленного оборудования
  2. Развертывание на встроенных системах, настольных компьютерах, носимых устройствах, мобильных телефонах / планшетах, шлюзах и устройствах без подключения к Интернету. Так называемое устройство без головы (устройство без головы) относится к устройству без дисплея и периферийных устройств HMI (таких как мышь, клавиатура).
  3. Размещается на периферийных устройствах и устройствах управления периферией Интернета вещей.
  4. Обладает очень высокой надежностью и отказоустойчивостью. Включая соответствие таким стандартам безопасности, как IEC61508, IEC62304 или ISO26262.

С точки зрения концепции «промышленного приложения», промышленные приложения должны иметь определенные характеристики, аналогичные мобильным приложениям. Мы можем сделать некоторые дополнения:

  1. Его легко установить, развернуть удаленно и обслуживать.
  2. В конкретной области промышленности — относительно общее программное обеспечение. Промышленные пользователи могут использовать, настраивать и заново разрабатывать.

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

Технологии разработки ПО Лекция 1

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

Тенденция развития промышленного прикладного программного обеспечения

Приложение

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

Для достижения этой функции очень важны программная платформа и стандартизация API пограничных устройств.Традиционной платформой периферийных устройств может быть Windows или Android. Благодаря широкому применению процессоров Arm Cortex-A в промышленных контроллерах ОС Linux станет общей вычислительной платформой.

Контейнеризация

Использование контейнерных технологий, таких как docker, является эффективным инструментом для развертывания приложений в ОС Linux. Промышленное приложение будет работать в докер-контейнере.

Контейнерная технология реализует изоляцию приложений в песочнице. А в одной системе вы можете запускать приложения в нескольких средах программирования, например, запускать программу цифровых вывесок NodeJS, программное обеспечение датчиков C ++ и программу анализа данных Python на периферийном устройстве одновременно.

Кроссплатформенность

Чтобы понять эффективность промышленной разработки программного обеспечения, очень важно реализовать кроссплатформенную разработку программного обеспечения. Так называемая кроссплатформенность заключается в написании исходного кода, который может работать в нескольких операционных системах, таких как Windows, iOS, Android и Linux.

К кроссплатформенным технологиям относятся:

  1. Технология Java
  2. Технология JavaScript / NodeJS
  3. Платформа Qt C ++
  4. python

Сетевой

Важной особенностью оцифровки промышленного оборудования является возможность подключения, а промышленные приложения обладают мощными сетевыми функциями. Важные промышленные сетевые протоколы включают NQTT, OPC UA, MTConnect, websock, https и так далее.

Читайте также:
Программа которая двигает курсор мыши по таймеру

Безопасность и надежность

Industrial App предъявляет повышенные требования к безопасности и надежности.

Платформа для разработки промышленного программного обеспечения

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

Стандартизация аппаратных и программных платформ

Современное программное обеспечение должно работать на программной и аппаратной платформе. Если нет привлекательной программной и аппаратной платформы, промышленные приложения являются просто традиционным промышленным прикладным программным обеспечением, а экосистема промышленных приложений не может быть построена, и климат не может быть достигнут.

Некоторые компании и организации заявляют, что они разработали десятки тысяч промышленных приложений в аэрокосмической и крупной авиастроительной областях. Я не знаю, на какой платформе они разрабатываются и насколько это важно для других компаний? Приложение — это приложение на системной платформе. ОС Android, разработанная Google, превратилась в мобильное приложение.

Приложение WeChat можно установить на платформе WeChat. Поэтому очень важно создать привлекательную промышленную платформу для приложений. Стать такой широко распространенной платформой непросто. Это не означает, что вы представитель Китайской академии наук, Академии космических исследований, Alibaba или Huawei, и программисты купят ваш аккаунт.

Пропаганда «большого скачка вперед» через местные органы власти не поможет. Код не взорван, он действительно набран. Взгляните на программную платформу Siemens, GE. Функция очень полная, тысячи API и программных модулей. Документация полная, код с открытым исходным кодом, и прилагаются все усилия для его продвижения.

Можно себе представить вложенные человеческие и материальные ресурсы.

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

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

Уже есть много технологий платформы с открытым исходным кодом, из которых можно выбирать, и нам нужно выбирать, улучшать и продвигать.

Богатые программные модули и библиотеки API

Для нужд промышленных приложений необходимо разрабатывать богатые программные модули и библиотеки API. Такие как чтение и запись RFID, распознавание QR-кода, протокол OPC UA, мониторинг состояния оборудования и так далее. Без богатой библиотеки программного обеспечения программисты не предпочитают грубую и простую платформу.

Для различных отраслей потребуется больше программных модулей, таких как алгоритмы управления процессами, отраслевые модели OPC UA и т. Д.

Очень важно очень тщательно планировать модули и интерфейсы API, а также это огромная рабочая нагрузка.

Хороший клиентский опыт и документация

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

Я действительно не могу дополнить пользовательскую документацию, написанную с учетом культуры инженера. Иногда ее труднее читать, чем исходный код. Для разработки качественной программной системы не следует недооценивать объем документации.

Экспериментальная промышленная рабочая платформа для приложений

Чтобы изучить детали реализации промышленных приложений, мы попытались создать экспериментальную платформу промышленных приложений.

Аппаратная платформа

Raspberry Pi 3 или ASUS Tinker Board

Операционная система Ubuntu Linux / Mbed Linux OS

Докер контейнерных технологий

-Платформа разработки программного обеспечения и язык программирования

Программное обеспечение на основе HMI: такое как Kanban, система SCADA и другие примеры приложений HTML5 / javas / NodeJS.

Читайте также:
Как пользоваться программой lucky

-Контроль и протокол приложений: выборка инструментов разработки Qt QML / C ++. Qt — это кроссплатформенная среда разработки программного обеспечения, которая может разрабатывать гибкие встроенные интерфейсы HMI и приложения на чистом C ++. В автомобильных панелях, контроллерах станков и медицинском оборудовании Qt широко используется для разработки интерфейсов HMI и управляющего программного обеспечения.

Основные сетевые протоколы: MQTT, OPC UA, HTTP, websock и другие промышленные протоколы IoT будут поддерживаться в будущем.

Наконец, я по-прежнему подчеркиваю фразу: «Многие вещи хороши, детали — ключ к успеху или неудаче». В настоящее время эта экспериментальная система находится в стадии разработки, надеясь изучить детали реализации промышленных приложений, и те, кому это интересно, могут общаться вместе. .

Источник: russianblogs.com

Модели процесса разработки программного продукта

Технологии промышленной разработки программного продукта

В настоящее время широкое применение получают так называемые промышленные технологии создания программного продукта. Эти технологии были разработаны фирмами, накопившими большой опыт создания ПО. Технологии представлены описаниями принципов, методов, применяемых процессов и операций. Такие технологии, как правило, поддерживаются набором CASE -средств (Computer Aided System Engineering), охватывают все этапы жизненного цикла продукта и успешно применяются для решения практических задач. Но развитие технологии разработки программного обеспечения, методов моделирования, появление CASE-технологий не решило проблему определения и формализации требований к информационным системам, но способствовало возникновению нескольких основных подходов.

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

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

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

Процесс — частный случай более общего понятия методологии разработки ПО. Примерами методологий являются структурное программирование или объектно-ориентированный анализ и дизайн.

Таким образом, на современном этапе выявлена острая необходимость в эффективных методологиях управления программными проектами. Они позволяют максимизировать успешность и эффективность IT-проектов на протяжении всего жизненного цикла информационных технологий.

Рассмотрим особенности моделей жизненного цикла двух наиболее известных промышленных технологий.

  • 1. Microsoft Solution Framework (MSF) — методология разработки программного обеспечения фирмы Microsoft, предназначенная для решения широкого круга задач. Технология масштабируема, т. е. настраивается на решение задач любой сложности коллективом любой численности.
  • 2. Rational Unified Process (RUP — разработка фирмы Rational), долгое время успешно занимавшейся созданием CASE-средств, применяемых на различных этапах жизненного цикла продукта: от анализа до тестирования и документирования. Так же как MSF технология RUP универсальна, масштабируема и настраиваема на применение в конкретных условиях.

Источник: ozlib.com

Технологии разработки программ

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

Метод структурного программирования — это метод разработки и записи программ, ориентированные на максимальное удобство для ясного понимания программ человеком. При этом фрагменты программ должны следовать друг за другом, должна четко прослеживаться логика программы, должны быть исключены «скачки» на дальние фрагменты программы. Это программирование без оператора «go to».

Этот метод существенно помогает в формализации создания программ. Он предполагает: 1) Использование небольшого числа алгоритмических конструкций, реализуемых соответствующими операторами языка. 2) Нисходящее проектирование программы, когда первоначально программа рассматривается как совокупность действий, каждое из которых затем детализируется и представляется как последовательность более простых и конкретных действий и т.д. вплоть до отдельных операторов языка. 3) Использование принципа сосредоточения функций, когда та или иная подпрограмма реализует какую-то одну функцию. 4) Соответствующее представление данных с использованием большого числа разнообразных типов и т.д.

Читайте также:
Структура жизненного цикла программы

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

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

· Не создавать большие программные модули.

· Логически завершенные последовательности операторов оформлять в виде подпрограмм (отлаживая их отдельно, легче локализовать и исправить ошибки).

· Подпрограммы лучше компоновать отдельными модулями и размещать их в отдельные файлы (при изменении одного такого модуля не нужно будет перекомпилировать все остальные).

· Не объединять в одной строке несколько операторов, за исключением простейших (это может затруднить поиск ошибок).

· Идентификаторам программы давать имена, отражающие их суть.

· Использовать при написании программы возможность расцвечивания разными цветами различных элементов программы (так проще контролировать правильность использования зарезервированных слов языка, комментариев, вставок и т.д.).

· Использовать комментарии. Особенно для связанных групп операторов или даже для отдельных операторов, если нужно подчеркнуть их особенности и т.д.

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

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

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

Например, в Турбо Паскале подпрограммы реализованы посредством процедур и функций. Смысл и структура у них одна, а отличаются назначением и способом их использования. Процедура — это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Ее структура повторяет структуру программы. Функция аналогична процедуре, но имеет два отличия — передает в точку вызова скалярное значение, ее имя может входить в выражение как операнд.

Методология быстрой разработки приложений RAD (Rapid Application Development) в последнее время стала одним из возможных подходов к разработке ПО в рамках спиральной модели жизненного цикла ПО и получила широкое распространение.

Под этим термином обычно понимается процесс разработки ПО, содержащий 3 элемента: 1) небольшую команду программистов (2-10 человек); 2) короткий, но тщательно проработанный производственный график (от 2 до 6 мес.); 3) повторяющийся цикл, при котором разработчики, по мере того, как приложение начинает обретать форму, запрашивают и реализуют в продукте требования, полученные через взаимодействие с заказчиком.

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

Основные принципы методологии RAD — это:

· разработка приложений итерациями;

· необязательность полного завершения работ на каждом из этапов жизненного цикла ПО;

· обязательное вовлечение пользователей в процесс разработки ИВС;

· применение средств управления конфигурацией, облегчающих внесение изменений в проект и сопровождение готовой системы;

· использование прототипов, позволяющее полнее выяснить и удовлетворить потребности конечного пользователя;

· тестирование и развитие проекта, осуществляемые одновременно с разработкой;

· ведение разработки немногочисленной хорошо управляемой командой профессионалов;

· грамотное руководство разработкой системы, четкое планирование и контроль выполнения работ.

«Быстрая разработка ПО» появилась в США в 2001г. и базируется на следующих идеях: 1) Работающее ПО ценится выше всеобъемлющей документации. 2) Сотрудничество с заказчиками ценится выше формальных договоров. 3) Реагирование на изменения ценится выше строгого следования плану.

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru