Люди как внутри, так и за пределами ИТ часто спрашивают, что такое разработка программного обеспечения. Это процесс создания компьютерного программного обеспечения с использованием одного или нескольких конкретных языков программирования, который обеспечивает функциональность для решения конкретных деловых или личных целей. Разработка программного обеспечения обычно представляет собой спланированную инициативу, состоящую из ряда шагов и стадий, результатом которых является создание действующего программного обеспечения. Отсюда хорошее определение: “процесс с набором действий, направленных на создание компьютерных программных продуктов, включая их проектирование, разработку, тестирование и развертывание”. Программное обеспечение само по себе представляет собой набор инструкций или программ, которые сообщают компьютеру, что делать. Оно не зависит от аппаратного обеспечения и делает компьютеры программируемыми.
С момента появления разработки программных https://telegraf.news/press-relizi/26/razrabotka-it-reshenij/ продуктов в 1960-х годах для разработки программного обеспечения использовалось множество различных подходов; наиболее распространенный сегодня использует гибкий подход к разработке. Определение гибкой разработки программного обеспечения включает подход, при котором требования к разработке и решения предоставляются совместными усилиями самоорганизующихся и межфункциональных команд и их заказчиков. В отличие от более традиционных и часто негибких примеров разработки программного обеспечения, agile поощряет гибкое реагирование на изменения, выступая за адаптивное планирование, эволюционное развитие, своевременную доставку и постоянное совершенствование.
Программное обеспечение разрабатывается с использованием компьютерного программирования, выполняемого разработчиком программного обеспечения. Определение разработчика программного обеспечения — это “человек, который создает программное обеспечение самостоятельно или совместно с другими”. Чем разработчики программного обеспечения занимаются изо дня в день? Они используют процессы и методы для создания работающего программного обеспечения, включая определение требований, проектирование потоков данных, разработку кода, проектирование технологических потоков, блок-схему, создание кода, тестирование и отладку разработки программного обеспечения. Сквозной процесс иногда называют жизненным циклом разработки программного обеспечения (SDLC). Термин ‘разработчик программного обеспечения с полным стеком» означает того, кто разрабатывает как программное обеспечение, ориентированное на пользователя, так и серверное программное обеспечение, включая разработку баз данных и интерфейсов приложений.
Каковы различные типы разработки программного обеспечения?
Существует несколько различных типов. Их можно сгруппировать в четыре основные категории:
Разработка приложений, которые предоставляют пользователям функциональность для выполнения задач. Примеры включают офисные пакеты для повышения производительности, медиаплееры, инструменты социальных сетей и системы бронирования. Приложения могут запускаться на собственном персональном вычислительном оборудовании пользователя или на серверах, размещенных в облаке, или внутренним ИТ-отделом. Разработка потокового мультимедиа — один из примеров разработки приложений для облака.
Разработка системного программного обеспечения для обеспечения основных функций, таких как операционные системы, системы хранения данных, базы данных, сети и управление оборудованием.
Инструменты разработки, которые предоставляют разработчикам программного обеспечения инструменты для выполнения их работы, включая редакторы кода, компиляторы, компоновщики, отладчики и средства тестирования.
Разработка встроенного программного обеспечения, которое создает программное обеспечение, используемое для управления машинами и устройствами, включая автомобили, телефоны и роботов.
Каждая из категорий различных типов разработки обычно привлекает разных типов разработчиков программного обеспечения с разными личностями, характеристиками и специализациями. Например, для разработки программного обеспечения для медицинского оборудования требуются разработчики программного обеспечения, которые полностью разбираются в разработке критически важных для безопасности систем. Это специализация, которой вряд ли обладает типичный разработчик прикладного программного обеспечения, но которая имеет решающее значение для всех аспектов разработки программного обеспечения для здравоохранения. Разработчик музыкального программного обеспечения должен обладать музыкальными способностями, а также знаниями в области формальной теории музыки, чтобы добиться успеха в разработке программного обеспечения для записи и исполнения музыки. Разработчик программного обеспечения для обеспечения безопасности должен обладать не только навыками разработки, он также должен обладать опытом во всех аспектах ИТ-безопасности. Mobile development специализируется на разработке прикладного программного обеспечения для мобильных устройств, таких как телефоны и КПК. Разработка корпоративного программного обеспечения используется для разработки набора приложений, которые используются во всей организации.
Разработанное программное обеспечение может оставаться собственностью организации или продаваться другим лицам. Оно также может быть свободно и широко доступно любому, кто захочет его использовать; это называется разработкой с открытым исходным кодом.
История и будущее
История разработки программного обеспечения и история разработчиков программного обеспечения интересна и переплетена с историей компьютеров. Ранние компьютеры были механическими машинами, известными как аналоговые компьютеры. Некоторые считают, что первый пример в истории разработки программного обеспечения был в 1810 году, когда Джозеф Мари Жаккард изобрел систему отверстий, пробиваемых в карточках, чтобы направлять узоры, используемые на его ткацких станках для изготовления ткани. Техника использования отверстий, пробитых в карточках или бумажных лентах, позже была применена для программирования первых компьютеров, в том числе производства IBM, Elliott и GEC.
Другие говорят, что Аду Лавлейс часто считают первым разработчиком программного обеспечения, когда в 1843 году она создала элементарную программу для ‘Difference Engine’ Чарльза Бэббиджа. Это позволило разработать последовательности, позволяющие давать инструкции по выбору конкретных шестерен и валов.
Большой прорыв совершил Джордж Буль, который в 1947 году доказал связь между логикой и математикой. Без этого у нас не было бы компьютеров, которыми мы все пользуемся каждый день, включая наши смартфоны и цифровые часы, но только в 1948 году Клод Шеннон написал диссертацию о том, как двоичная логика может быть использована в вычислениях.
Это проложило путь к тому, что при первой разработке цифровых компьютеров их можно было проинструктировать о том, что делать, используя двоичную логику в качестве метода. В 1949 году Джон Мочли разработал ShortCode. Это был первый язык программирования для электронных вычислительных устройств, но он требовал от разработчика программного обеспечения вручную менять операторы с 0 на 1. В 1951 году Грейс Хоппер написала первый компилятор, который преобразовывал операторы языка программирования в требуемые 0 и 1. Это привело к ускорению разработки, поскольку разработчику программного обеспечения больше не приходилось делать это вручную.
В 1957 году был разработан первый крупный язык программирования FORTRAN. FORTRAN превосходно справлялся с числами, но не так хорошо справлялся с вводом и выводом данных, необходимых для бизнес-вычислений. Для решения этой проблемы в 1959 году был разработан COBOL специально для бизнес-вычислений. COBOL по-прежнему лежит в основе многих основных систем, используемых в банковской отрасли сегодня.
Со временем разрабатывалось все больше и больше языков программирования, направленных на ускорение процесса разработки и повышение качества программного обеспечения для конкретных задач. Например, в 1958 году язык программирования LISP был разработан специально для содействия исследованиям в области искусственного интеллекта. LISP не был похож на другие языки программирования того времени, но он все еще используется сегодня из-за своей высокоспециализированной и абстрактной природы.
Популярные языки алгол (1958) и БЕЙСИК (1964) привели к быстрому росту компьютерного программирования и разработки программного обеспечения, поскольку они были дешевыми в развертывании, простыми в освоении и очень гибкими в том, что они могли делать. Многие современные языки программирования, включая C, C +, C ++, VB и Java, уходят своими корнями в ALGOL и BASIC.
История бережливой разработки, которая является наиболее используемым сегодня подходом, началась в 2003 году. Мэри и Том Поппендик были активно вовлечены в сообщество разработчиков гибкого программного обеспечения. Они написали книгу под названием ‘Бережливая разработка программного обеспечения’, в которой переформулировали принципы бережливого производства применительно к разработке программного обеспечения, и набор из 22 инструментов. Будущее гибкой разработки было обеспечено по мере того, как все больше организаций осознавали ценность, которую она может принести.
Поскольку спрос на все больше и больше приложений продолжает расти по всему миру, будущее разработки программного обеспечения и будущее рабочих мест разработчиков не вызывает сомнений. Даже самый лучший искусственный интеллект вряд ли заменит потребность в квалифицированных, инновационных и мотивированных разработчиках программного обеспечения.