Разработка ПО

Разработка ПО

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

Как и другие, традиционные инженерные дисциплины, разработка программного обеспечения имеет дело с проблемами качества, стоимости и надёжности. Некоторые программы содержат миллионы строк исходного кода, которые, как ожидается, должны правильно исполняться в изменяющихся условиях. Сложность ПО сравнима со сложностью наиболее сложных из современных машин. (Боинг 777-200 насчитывает примерно 132,5 тыс. уникальных деталей. Если учесть каждую заклёпку и каждый винт, можно говорить о более чем 3 млн деталей.)

Содержание

Участники процесса разработки ПО

Проблемы разработки ПО

Наиболее распространёнными проблемами, возникающим в процессе разработки ПО, считают:

  • Недостаток прозрачности. В любой момент времени сложно сказать, в каком состоянии находится проект и каков процент его завершения.
    Данная проблема возникает при недостаточном планировании структуры (или архитектуры) будущего программного продукта, что чаще всего является следствием отсутствия достаточного финансирования проекта: программа нужна, сколько времени займёт разработка, каковы этапы, можно ли какие-то этапы исключить или сэкономить - следствием этого процесса является то, что этап проектирования сокращается.
  • Недостаток контроля. Без точной оценки процесса разработки срываются графики выполнения работ и превышаются установленные бюджеты. Сложно оценить объем выполненной и оставшейся работы.
    Данная проблема возникает на этапе, когда проект, завершённый более, чем на половину, продолжает разрабатываться после дополнительного финансирования без оценки степени завершённости проекта.
  • Недостаток трассировки.
  • Недостаток мониторинга. Невозможность наблюдать ход развития проекта не позволяет контролировать ход разработки в реальном времени. С помощью инструментальных средств менеджеры проектов принимают решения на основе данных, поступающих в реальном времени.
    Данная проблема возникает в условиях, когда стоимость обучения менеджмента владению инструментальными средствами, сравнима со стоимостью разработки самой программы.
  • Неконтролируемые изменения. У потребителей постоянно возникают новые идеи относительно разрабатываемого программного обеспечения. Влияние изменений может быть существенным для успеха проекта, поэтому важно оценивать предлагаемые изменения и реализовывать только одобренные, контролируя этот процесс с помощью программных средств.
    Данная проблема возникает вследствие нежелания конечного потребителя использовать те или иные программные среды. Например, когда при создании клиент-серверной системы потребитель предъявляет требования не только к операционной системе на компьютерах-клиентах, но и на компьютере-сервере.
  • Недостаточная надежность. Самый сложный процесс — поиск и исправление ошибок в программах на ЭВМ. Поскольку число ошибок в программах заранее неизвестно, то заранее неизвестна и продолжительность отладки программ и отсутствие гарантий отсутствия ошибок в программах. Следует отметить, что привлечение доказательного подхода к проектированию ПО позволяет обнаружить ошибки в программе до её выполнения. В этом направлении много работали Кнут, Дейкстра и Вирт. Профессор Вирт при разработке Паскаля и Оберона за счет строгости их синтаксиса добился математической доказуемости завершаемости и правильности программ, написанной на этих языках. Особенно крупный вклад в дисциплину программирования внёс Дональд Кнут. Его четырёхтомник «Искусство программирования» является необходимой для каждого серьезного программиста книгой.
    Данная проблема возникает при неправильном выборе средств разработки. Например, при попытке создать программу, требующую средств высокого уровня, с помощью средств низкого уровня. Например, при попытке создать средства автоматизации с СУБД на ассемблере. В результате исходный код программы получается слишком сложным и плохо поддающимся структурированию.
  • Отсутствие гарантий качества и надежности программ из-за отсутствия гарантий отсутствия ошибок в программах вплоть до формальной сдачи программ заказчикам.
    Данная проблема не является проблемой, относящейся исключительно к разработке ПО. Гарантия качества - это проблема выбора поставщика товара (не продукта).

Процесс и методология

Основная статья: Процесс разработки программного обеспечения

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

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

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

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

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

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

См. также

Ссылки

Литература

  • Иан Соммервилл Инженерия программного обеспечения = Software Engineering. — 6-е изд. — М.: «Вильямс», 2002. — С. 642. — ISBN 5-8459-0330-0
  • Джек Гринфилд, Кит Шорт, Стив Кук, Стюарт Кент, Джон Крупи Фабрики разработки программ (Software Factories): потоковая сборка типовых приложений, моделирование, структуры и инструменты = Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. — М.: «Диалектика», 2006. — С. 592. — ISBN 978-5-8459-1181-0

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Разработка ПО" в других словарях:

  • Разработка — может означать: Процесс проектирования и конструирования изделия (см. Разработка нового продукта и Разработка с общедоступными наработками) Итеративная разработка Разработка алгоритмов Разработка программного обеспечения Разработка приложений для …   Википедия

  • РАЗРАБОТКА — РАЗРАБОТКА, разработки, жен. 1. только ед. Действие по гл. разработать во всех знач., кроме 6 разрабатывать. Проект в процессе разработки. Разработка плана. Разработка новых методов преподавания. || Степень разработанности, состояние того, что… …   Толковый словарь Ушакова

  • разработка — построение, создание; работа, процесс, эксплуатация; исследование, производство, разрабатывание, подготовка, исполнение, разрез, проходка Словарь русских синонимов. разработка сущ., кол во синонимов: 18 • гидроразработка …   Словарь синонимов

  • РАЗРАБОТКА — в музыке см. Сонатная форма …   Большой Энциклопедический словарь

  • РАЗРАБОТКА — РАЗРАБОТКА, и, жен. 1. см. разработать. 2. Способ добычи ископаемых, а также место такой добычи (спец.). Подземная р. Открытая р. | прил. разработочный, ая, ое (спец.). Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 …   Толковый словарь Ожегова

  • РАЗРАБОТКА — ПЛАНА, проекта, программ выработка стратегического замысла, формулировка целей, анализ ресурсных возможностей, путей и способов достижения целей, обоснование избранного варианта действий, составление, обсуждение, принятие плановых, Проектных,… …   Экономический словарь

  • разработка — развитие усовершенствование развертывание рост расширение — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы… …   Справочник технического переводчика

  • разработка — 3.6.6. разработка : Стадия конструкторской ПП, выполняемая при помощи CAD системы, в ходе которой разрабатывается подробная 3D мoдeль изделия, а также 3D мoдeли узлов, агрегатов и основных (базовых) деталей, на базе которых формируются 2D… …   Словарь-справочник терминов нормативно-технической документации

  • разработка — сущ., ж., употр. сравн. часто Морфология: (нет) чего? разработки, чему? разработке, (вижу) что? разработку, чем? разработкой, о чём? о разработке; мн. что? разработки, (нет) чего? разработок, чему? разработкам, (вижу) что? разработки, чем?… …   Толковый словарь Дмитриева

  • разработка — ведётся разработка • действие, пассив на ся включать разработку • существование / создание, локализация занимался разработкой • действие, непрямой объект заняться разработкой • действие, непрямой объект, начало идёт разработка • действие, субъект …   Глагольной сочетаемости непредметных имён


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»