Содержание |
Разработка ПО — это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя технологии, методологию и практики из информатики, управления проектами, математики, инженерии и других областей знания.
Надежность и качества программ для ЭВМ
Надежность программ для ЭВМ - это одно из основных качеств не только программ для ЭВМ, но и любого типа техники, приборов, машин и устройств, используемых в быту, в жизни, транспорте, связи и на производстве.
Основные критерии надежности в технике:
- отказоустойчивость,
- ремонтопригодность,
- живучесть.
Отказоустойчивость - это отсутствие отказов и сбоев в работе машин, приборов и устройств. В том числе - отсутствие сбоев и отказов в работе ЭВМ - электронных вычислительных машин (компьютеров). Наличие сбоев и отказов в работе машин, приборов и устройств говорит о их недостаточной или низкой надежности.Российский рынок CRM-систем: оценки, тренды, крупнейшие поставщики и перспективы. Обзор TAdviser
Ремонтопригодность - возможность внесения исправлений в машины, приборы и устройства при обнаружении в них сбоев, отказов или других дефектов. В том числе - в компьютерах, вычислительных устройствах, машинах, системах и комплексах.
Особенности программ для ЭВМ - программы не ломаются и не подлежат износу в отличии от всей остальной техники, приборов, машин и устройств. В этом смысле программы для ЭВМ обладают исключительной жизнестойкостью.
Наличие сбоев и отказов в работе ЭВМ при выполнении программ являются их конструктивными ошибками и дефектами, закладываемых при разработке или отладке программ на ЭВМ. Количество ошибок и продолжительность отладки программ обычно считается неизвестным.
Ни в одном виде науки и техники нет такого положения с выявлением и исправлением ошибок и дефектов, как в программировании и разработке программного обеспечения для ЭВМ. Одна из крупнейших иностранных фирм объявила о появлении в их программной продукции неисправимых ошибок ???
Программная продукция
Программная продукция - это программы для ЭВМ, поставляемые потребителям для ее установки и использования на ЭВМ или в сетях ЭВМ. Программная продукция должна являться одним из видов промышленной продукции и отвечать требованиям международных стандартов ISO.
Одно из основных требований международных стандартов ISO к промышленной продукции - это ее надежность поставляемых приборов, машин и устройств и в частности и в первую очередь - отказоустойчивость и отсутствие конструктивных ошибок и дефектов в поставляемой промышленной продукции.
Согласно Закону РФ "О защите прав потребителей" любой товар при обнаружении в нем дефектов подлежит замена либо возврату денежных средств за его приобретение и сопутствующие издержки.
Программный продукт в соответствии с международными требованиями ISO не должен содержат ошибок и дефектов, которые приводят к сбоям и отказам при выполнении этих программ на ЭВМ либо в сети ЭВМ.
Программы с дефектами и ошибками - это не продукт.
- ВАК, проф.,док.комп.наук 11:34, 3 августа 2009 (UTC)
Основные этапы разработки программ
разработка ПО имеет дело с проблемами качества, стоимости и надёжности. Некоторые программы содержат миллионы строк исходного кода, которые, как ожидается, должны правильно исполняться в изменяющихся условиях. Сложность ПО сравнима со сложностью наиболее сложных из современных машин и космических проектов.
Технологии программирование включают:
- Анализ и постановка задач
- Проектирование - разработка спецификаций
- Проектирование — разработка алгоритмов
- Написание исходных текстов программ
- Тестирование и отладка программ
- Испытания и сдача программ
- Сопровождение программ
Основная часть работы программистов связана с написанием исходных текстов программ на одном из языков программирования, а также тестированием и отладкой программ на ЭВМ .
Исходные тексты программ, а также исполняемые файлы являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей.
Структурное проектирование программ
Информатика как научная дисциплина предлагает и использует на базе методов структурного программирования технологию надежной разработки программного обеспечения, используя тестирование программ и их верификацию на основе методов доказательного программирования для систематического анализа правильности алгоритмов и разработки программ без алгоритмических ошибок.
Данная методология программирования направлена на решение задач на ЭВМ, аналогичной технологии разработки алгоритмов и программ, используемой на олимпиадах по программированию отечественными студентами и программистами с использованием тестирования и структурного псевдокода для документирования программ в корпорации 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) и системное администрирование.
IDC прогнозирует, что в период с 2022-го по 2027 год востребованность специалистов в сферах DataOps и MLOps будет демонстрировать среднегодовой темп роста в сложных процентах (CAGR) на уровне 17,9% и 20,1% соответственно. Аналитики полагают, что также будет увеличиваться значимость ролей DevOps и DevSecOps, причём в случае DevSecOps в течение рассматриваемого периода ожидается рост на двузначные числа процентов. Данный сегмент ждёт бурное развитие на фоне ухудшения ситуации в сфере информационной безопасности: конкурентоспособность и эффективность работы организаций всё больше зависят от возможностей применяемого ПО. Внедрение средств защиты на раннем этапе в долгосрочной перспективе поможет сократить затраты и повысить качество продуктов и сервисов. Вместе с тем рост в сегменте DevOps будет не столь значительным, поскольку некоторые из функций таких специалистов возьмут на себя сотрудники подразделений по инжинирингу платформ.
В целом, отмечает IDC, к 2027 году на макроуровне произойдёт существенное изменение обязанностей ИТ-специалистов. При этом значимость ролей в областях ITOps и системного администрирования будет сокращаться с показателем CAGR на уровне -8,2% и -7,8% соответственно.
Результаты исследования говорят о том, что ИТ-специалисты, выполняющие традиционные операционные функции, всё чаще сталкиваются с переходом на должности, которые требуют наличия определённых технических навыков. Во многих случаях это означает некоторый опыт разработки программного обеспечения, — говорится в отчёте IDC.[2] |
См. также
- суперкомпьютеры
- Алгоритмизация
- Программирование
- Структурный псевдокод
- Методология программирования
- Управление ИТ-проектами
- открытое программное обеспечение
- доказательное Программирование
Литература
- Наур. Наука программирования. М., Мир, 1982.
- Турский М. Методология программирования. М., Мир, 1981.
- Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — С. 275.
- Роберт В Себеста «Основные концепции языков программирования», 5-е издание : Пер. с англ. — М. : 2001. — 672 стр. с ил., «Вильямс»
- Иан Соммервилл «Инженерия программного обеспечения», 6-е издание : Пер. с англ. — М. : 2002. — 624 стр. с ил., «Вильямс»
- Каймин В. А. Методы разработки программ на языках высокого уровня. М., МИЭМ, 1985.
- Каймин В. А. Основы доказательного программирования. М., МИЭМ, 1987.
- Каймин В. А. Информатика. Учебник для студентов. М., ИНФРА-М, 1998—2009.
- Каймин В. А. Информатика. Учебник для школьников. М., Прогресс, 2007—2009.
Интернет-источники
- Технологии Доказательного Программирования
- Пролог и Логическое программирование
- Информатика в Школах и Вузах
- Олимпиады по информатике и программированию
- Информатика: ЕГЭ и экзамены на ЭВМ
- Программное обеспечение для Linux