2023/10/10 11:31:26

Технология программирования

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

Содержание

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

Надежность и качества программ для ЭВМ

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

Основные критерии надежности в технике:

  1. отказоустойчивость,
  2. ремонтопригодность,
  3. живучесть.

Отказоустойчивость - это отсутствие отказов и сбоев в работе машин, приборов и устройств. В том числе - отсутствие сбоев и отказов в работе ЭВМ - электронных вычислительных машин (компьютеров). Наличие сбоев и отказов в работе машин, приборов и устройств говорит о их недостаточной или низкой надежности.Как зародилась масштабная коррупционная схема при внедрении ИТ в ПФР при участии «Техносерва» и «Редсис». Подробности 38.7 т

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

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

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

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

Программная продукция

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

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

Согласно Закону РФ "О защите прав потребителей" любой товар при обнаружении в нем дефектов подлежит замена либо возврату денежных средств за его приобретение и сопутствующие издержки.

Программный продукт в соответствии с международными требованиями ISO не должен содержат ошибок и дефектов, которые приводят к сбоям и отказам при выполнении этих программ на ЭВМ либо в сети ЭВМ.

Программы с дефектами и ошибками - это не продукт.

Основные этапы разработки программ

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

Технологии программирование включают:

  1. Анализ и постановка задач
  2. Проектирование - разработка спецификаций
  3. Проектирование  — разработка алгоритмов
  4. Написание исходных текстов программ
  5. Тестирование и отладка программ
  6. Испытания и сдача программ
  7. Сопровождение программ

Основная часть работы программистов связана с написанием исходных текстов программ на одном из языков программирования, а также тестированием и отладкой программ на ЭВМ .

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

Структурное проектирование программ

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

Данная методология программирования направлена на решение задач на ЭВМ, аналогичной технологии разработки алгоритмов и программ, используемой на олимпиадах по программированию отечественными студентами и программистами с использованием тестирования и структурного псевдокода для документирования программ в корпорации IBM с 70-х годов.

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

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

Обучение технологиям программирования

Обучение технологиям разработки ПО на основе методологии структурного проектирования программ была начата в начале 80-ых годов в МИЭМ при подготовке инженеров-математиков по специальности "Программное обеспечение ЭВМ" и изложена в наших учебниках информатики и программирования.

Наибольший успех - разработка базовых пакетов программ по информатике для отечественных и импортных персональных ЭВМ - БК, Корвет, УКНЦ, Ямаха и IBM PC, которые разошлись по всей стране в виде свободного и открытого ПО в конце 80-ых гг.

Все студенты МИЭМ с начала первого курса осваивали и осваивают псевдокод для описания алгоритмов и документирования всех разрабатываемых программ на языках Паскаль, Бейсик, Си, Фортан, ПЛ/1 и т.д. и т.п., а с третьего или даже второго курса приступают к разработкам ПО.

Наибольший успех достигался при обучении инженеров-математиков в МИЭМ и инженеров-экономистов в МАТИ, которые уже на первом курсе начинали разработки программ с доказательствами правильности составляемых алгоритмов относительно математических постановок решаемых задач.

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

50 тысяч школьников в 2009г. успешно сдали экзамены ЕГЭ по информатике, в спецификациях которых заложены основы алгоритмизации, логика, анализ правильности алгоритмов и элементы технологии программирования - основы современного профессионального программирования.

Хроника

2023

Как новые инструменты программирования меняют рынок разработки - McKinsey

Инструменты программирования нового поколения меняют возможности специалистов и инженеров на каждом этапе жизненного цикла разработки софта — от планирования и тестирования до развертывания и обслуживания. Об этом говорится в исследовании компании McKinsey, результаты которого были обнародованы 20 июля 2023 года.

Речь идет о платформах с низким кодом (low-code) и без кода (no-code), средствах генеративного искусственного интеллекта, концепции «инфраструктура как код», инструментах автоматической интеграции и пр. Применение таких решений позволяет упростить сложные задачи, а также помогает в выявлении ошибок и оптимизации приложений. Вместе с тем генеративный ИИ способен самостоятельно создавать отдельные фрагменты кода, снижая потребность в ручном труде.

Инструменты программирования нового поколения меняют возможности специалистов и инженеров

По оценкам McKinsey, в 2022 году инвестиции на рынке новых инструментов программирования составили приблизительно $2 млрд. Быстро растет количество вакансий в соответствующей сфере: в течение 2022-го оно увеличилось на 29% по сравнению с предыдущим годом. При этом самый высокий рост приходится на должности разработчиков-программистов и инженеров по данным.

Отмечается, что софт нового поколения может использовать ИИ для автоматизации тестирования, что помогает сократить время, которое разработчики тратят на эту задачу. С другой стороны, отказ от традиционных проверок людьми может привести к увеличению количества ошибок в ПО. Еще одной проблемой при внедрении новых методов программирования является то, что комплексный мониторинг и контроль версий могут усложниться из-за нескоординированных изменений и обновлений, вносимых разными командами разработчиков. Внедрение новых инструментов может требовать много времени из-за технических сложностей, необходимости масштабной переподготовки разработчиков и инженеров, а также других организационных препятствий.[1]

Облачные и другие технологии влияют на составы ИТ-команд - IDC

Широкое распространение облачных вычислений и современных технологий разработки окажет существенное влияние на состав ИТ-команд в самых разных сферах глобального рынка. Об этом говорится в отчёте IDC, опубликованном 5 июня 2023 года.

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

Многие из разработчиков исполняют не только свои непосредственные обязанности, но и отвечают за другие операционные функции

IDC выделяет ряд ключевых направлений в области ИТ-разработки. Это, в частности, DevOps — методология активного взаимодействия разработчиков со специалистами по информационно-технологическому обслуживанию и взаимная интеграция их рабочих процессов друг в друга для повышения качества продукта. Большое значение также имеет DataOps — концепция управления корпоративными данными в эпоху ИИ: она позволяет перенести опыт DevOps на управление данными и аналитику. Кроме того, растёт влияние DevSecOps — расширенная практика DevOps, включающая технологии информационной безопасности.

Называются также ITOps и MLOps. Первое из двух направлений охватывают множество различных областей ИТ, включая администрирование серверов и ПК, управление сетями, предоставление поддержки конечным пользователям и пр. MLOps — набор практик, нацеленных на надёжное и эффективное развёртывание и поддержание моделей машинного обучения. Среди других важных ролей аналитики IDC выделяют инжиниринг платформ (нацелен на самообслуживание бизнес-подразделений, партнёров и клиентов), обеспечение бесперебойной работы высоконагруженных сервисов (SRE, одна из форм реализации DevOps) и системное администрирование.

В период с 2022-го по 2027 год востребованность специалистов в сферах DataOps и MLOps будет демонстрировать среднегодовой темп роста в сложных процентах (CAGR) на уровне 17,9% и 20,1% соответственно

IDC прогнозирует, что в период с 2022-го по 2027 год востребованность специалистов в сферах DataOps и MLOps будет демонстрировать среднегодовой темп роста в сложных процентах (CAGR) на уровне 17,9% и 20,1% соответственно. Аналитики полагают, что также будет увеличиваться значимость ролей DevOps и DevSecOps, причём в случае DevSecOps в течение рассматриваемого периода ожидается рост на двузначные числа процентов. Данный сегмент ждёт бурное развитие на фоне ухудшения ситуации в сфере информационной безопасности: конкурентоспособность и эффективность работы организаций всё больше зависят от возможностей применяемого ПО. Внедрение средств защиты на раннем этапе в долгосрочной перспективе поможет сократить затраты и повысить качество продуктов и сервисов. Вместе с тем рост в сегменте DevOps будет не столь значительным, поскольку некоторые из функций таких специалистов возьмут на себя сотрудники подразделений по инжинирингу платформ.

В целом, отмечает IDC, к 2027 году на макроуровне произойдёт существенное изменение обязанностей ИТ-специалистов. При этом значимость ролей в областях ITOps и системного администрирования будет сокращаться с показателем CAGR на уровне -8,2% и -7,8% соответственно.

«
Результаты исследования говорят о том, что ИТ-специалисты, выполняющие традиционные операционные функции, всё чаще сталкиваются с переходом на должности, которые требуют наличия определённых технических навыков. Во многих случаях это означает некоторый опыт разработки программного обеспечения, — говорится в отчёте IDC.[2]
»

См. также

Литература

  1. Наур. Наука программирования. М., Мир, 1982.
  2. Турский М. Методология программирования. М., Мир, 1981.
  3. Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — С. 275.
  4. Роберт В Себеста «Основные концепции языков программирования», 5-е издание : Пер. с англ. — М. : 2001. — 672 стр. с ил., «Вильямс»
  5. Иан Соммервилл «Инженерия программного обеспечения», 6-е издание : Пер. с англ. — М. : 2002. — 624 стр. с ил., «Вильямс»
  6. Каймин В. А. Методы разработки программ на языках высокого уровня. М., МИЭМ, 1985.
  7. Каймин В. А. Основы доказательного программирования. М., МИЭМ, 1987.
  8. Каймин В. А. Информатика. Учебник для студентов. М., ИНФРА-М, 1998—2009.
  9. Каймин В. А. Информатика. Учебник для школьников. М., Прогресс, 2007—2009.

Интернет-источники

Примечания