Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Предпосылки возникновения программной инженерии
В конце 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 с.) |