Предпосылки возникновения программной инженерии 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Предпосылки возникновения программной инженерии



    В конце 60-х – начале 70-х годов прошлого века произошло событие, которое вошло в историю как первый кризис программирования. Событие состояло в том, что стоимость программного обеспечения стала приближаться к стоимости аппаратуры («железа»), а динамика роста этих стоимостей позволяла прогнозировать, что к середине 90-годов все человечество будет заниматься разработкой программ для компьютеров. Тогда и заговорили о программной инженерии (или технологии программирования, как это называлось в России) как о некоторой дисциплине, целью которой является сокращение стоимости программ. К настоящему времени программная инженерия накопила значительный багаж методологий, методик, стандартов и рекомендаций. Тем не менее, нельзя утверждать, что кризисные явления преодолены. Это выражается в том, что большие проекты выполняются с превышением сметы расходов и/или сроков, отведенных на разработку, а разработанное ПО не обладает требуемыми функциональными возможностями, имеет низкую производительность и качество. Анализом эффективности работы компаний по разработке ПО и эффективности их внедрения занимаются многие консалтинговые и аудиторские фирмы. Одна из них – американская Standish Group[7]. (Список российских консалтинговых фирм можно увидеть в [8] и [9]). По результатам исследований американской индустрии разработки ПО, выполненных в 1995 году этой фирмой, только 16% проектов завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности. 53% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме. 31% проектов были аннулированы до завершения. Бюджеты средних проектов оказались превышенными на 89%, а срок выполнения – на 122%. В последние годы процентное соотношение успешных и неуспешных проектов незначительно изменяется в лучшую сторону.

    Аналитики процессов в индустрии производства программного обеспечения сформулировали основные причины неудач при разработке ПО. Это:

● нечеткая и неполная формулировка требований;

● недостаточное вовлечение пользователей в работу над проектом;

● отсутствие необходимых ресурсов;

● неудовлетворительное планирование и отсутствие грамотного управления проектом;

● частое изменение требований и спецификаций;

● новизна и несовершенство используемой технологии;

● недостаточная поддержка со стороны высшего руководства;

● недостаточно высокая квалификация разработчиков, отсутствие необходимого опыта.

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

Отметим особенности современных проектов ПО:

● сложность – неотъемлемая характеристика создаваемого ПО;

● отсутствие полных аналогов и высокая доля вновь разрабатываемого ПО;

● наличие унаследованного ПО и необходимость его интеграции с разрабатываемым ПО;

● территориально распределенная и неоднородная среда функционирования;

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

Разработка ПО имеет следующие специфические особенности:

неформальный характер требований к ПО и формализованный основной объект разработки – программы;

творческий характер разработки;

дуализм ПО, которое, с одной стороны, является статическим объектом – совокупностью текстов, с другой стороны, – динамическим, поскольку при эксплуатации порождаются процессы обработки данных;

● при своем использовании (эксплуатации) ПО не расходуется и не изнашивается, но морально устаревает;

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

Ответом на кризис в разработке ПО стало создание программной инженерии (software engineering) как специальной дисциплины или области знаний.

Инженерия ПО (software engineering) – совокупность инженерных методов и средств создания ПО.



Поделиться:


Последнее изменение этой страницы: 2020-12-17; просмотров: 319; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.6.114 (0.005 с.)