Главное меню

ПРОБЛЕМЫ СОВРЕМЕННЫХ ПРОГРАММНЫХ И КОМПЬЮТЕРНО - ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И СОВРЕМЕННЫЕ ТЕХНОЛОГИИ СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ PDF Печать E-mail
Автор: М.У.Маматмурадова,И.Ж.Бозорова,Ф.Э.Кодиров   
29.03.2019 11:01

ПРОБЛЕМЫ СОВРЕМЕННЫХ ПРОГРАММНЫХ И КОМПЬЮТЕРНО - ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И СОВРЕМЕННЫЕ ТЕХНОЛОГИИ СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 

 

М.У.Маматмурадова

И.Ж.Бозорова

Ф.Э.Кодиров

Каршинский филиал Ташкентского университета информационных технологий

имени Мухаммада аль-Хорезми

 

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

 

Ключевые слова: программное обеспечение, управление проектами, программная инженерия, проектирование объекта, процесс создания ПО.

 

Проблемы создания ПО следуют из его свойств. Еще в 1975 г. Фредерик Брукс, проанализировав свой уникальный по тем временам опыт руководства крупнейшим проектом разработки операционной системы OS/360, определил перечень неотъемлемых свойств ПО: сложность, согласованность, изменяемость и незримость.  Что же касается современных крупномасштабных проектов ПО, то они характеризуются, как правило, следующими особенностями:

Характеристики объекта внедрения:

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

В числе причин возможных неудач, по мнению разработчиков, фигурируют:

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


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


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


Одна из причин распространенности "хаотического" процесса создания ПО - стремление сэкономить на стадии разработки, не затрачивая времени и средств на обучение разработчиков и внедрение технологического процесса создания ПО. Эти затраты до недавнего времени были довольно значительными и составляли, по различным оценкам (в частности, Gartner Group), около трех лет на внедрение развитой ТС ПО, охватывающей большинство процессов жизненного цикла ПО, в многочисленной команде разработчиков (до 100 чел.). Причина - в "тяжести" технологических процессов. "Тяжелый" процесс обладает следующими особенностями:

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

Альтернативой "тяжелому" процессу является адаптивный (гибкий) процесс, основанный на принципах "быстрой разработки ПО", интенсивно развиваемых в последнее десятилетие.

 

Современные тенденции в программной инженерии

В начале 2001 года века ряд ведущих специалистов в области программной инженерии (Алистер Коберн, Мартин Фаулер, Джим Хайсмит, Кент Бек и другие) сформировали группу под названием Agile Alliance. Слово agile (быстрый, ловкий, стремительный) отражало в целом их подход к разработке ПО, основанный на богатом опыте участия в разнообразных проектах в течение многих лет. Этот подход под названием "Быстрая разработка ПО" (Agile software development)  базируется на четырех идеях, сформулированных ими в документе "Манифест быстрой разработки ПО" (Agile Alliance's Manifesto) и заключающихся в следующем:

  • индивидуумы и взаимодействия между ними ценятся выше процессов и инструментов;
  • работающее ПО ценится выше всеобъемлющей документации;
  • сотрудничество с заказчиками ценится выше формальных договоров;
  • реагирование на изменения ценится выше строгого следования плану.

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

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

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

 

Список литературы:

1. Ф. Брукс -- Мифический человеко-месяц или как создаются программные системы: Пер. с англ. -- СПб.: Символ-Плюс, 1999

2. Г. Буч , Дж. Рамбо , А. Джекобсон -- Язык UML. Руководство пользователя.: Пер. с англ. -- М.: ДМК, 2000 

3. А.М. Вендров -- Проектирование программного обеспечения экономических информационных систем: Учебник. -- М.: Финансы и статистика, 2000 

4. М. Каменнова , А. Громов , М. Ферапонтов , А. Шматалюк -- Моделирование бизнеса. Методология ARIS. -- М.: Весть-МетаТехнология, 2001 


Обновлено 29.03.2019 11:06
 
Яндекс.Метрика