Создание блок-схем после разработки ПО (23.02.2018). |
![]() |
2018 - Февраль | |||
23.02.2018 13:29 | |||
В этой статье нечего описывать кроме одного-единственного факта: в процессе написания блок-схем на 20 страниц формата A3 происходит тестирование ПО на уровне чтения кода, потому что код читается в прямом смысле построчно. В результате находятся такие ошибки, которые не видны при фактическом тестировании ПО разработчиком, тестировщиком, оператором и даже электроником: - всплывают абсолютно все косячки, которые были оставлены на потом. Тестирование ПО исправляет косяки, а рисование блок-схем - косячки; - изменяются устаревшие комментарии к коду, которые спустя полгода могли бы ввести в заблуждение. Удаляются остатки устаревшего закоментированного функционала; - изменяются сами алгоритмы работы с железом, потому что в процессе написания блок-схем мозг проворачивает информацию в голове и выдает: "А какого хрена здесь взаимодействие именно такое?". И это уже не косячки порой, а косячищи. Недостатки такого метода "тестирования" - рутинно, кропотливо и долго. Преимущество - абсолютно точная документация для людей, не являющихся разработчиками. (добавлено 27.01.2021) Уточнения по определению, как составляются эти блок-схемы с потерей минимума времени и с максимумом выхлопа. Скорее, стоит назвать блок-схему как "описательную блок-схему алгоритмов". Ее цель: показать взаимодействие ПО с внешним миром: входные данные, выходные данные, взаимодействие с оператором/интернетом/платами и другими реальными объектами. То есть, в алгоритмах не содержится информация о названиях переменных, создании/обнулении/очистке какого-нибудь массива, принятии решения при изменении значения какой-то там переменной и т.д. Что происходит внутри программы, если это не отражается на реальном мире, - не указывается вообще. Взаимодействие с самой ЭВМ тоже не учитывается: плевать, сколько там было выделено памяти или нагружен процессор. Программа, которая не обрабатывает внешнюю информацию, - может содержать сколько угодно массивов, чисел, жрать оперативной памяти, умножать/делить/вычитать - но такая программа будет иметь нулевую практическую значимость. Но если программа работает с внешним миром - это описывается. Загрузка настроек - работа с внешним INI-файлом и влияние на оператора в реальном мире. Получение сигнала 5В и принятие решений на основании номинала этого напряжения - работа с физической величиной. Формулы, преобразующие значения напряжений, - также важны. Открытие платы аналогового ввода - взаимодействие с реальным физическим объектом. И т.д. |
|||
Обновлено ( 27.01.2021 19:35 ) |