Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
10.02.2015
Размер:
289.79 Кб
Скачать

Специальный курс «Технологии программирования»

Лекция 3. Классические технологические процессы

I. Возникновение и исследование идеи

Этот классический процесс имеет следующие действия:

  • собственно возникновение и первичное исследование идеи, носящее максимально творческий и неформальный характер;

  • детальное исследование идеи. Выработка концепции. Постановка задачи. Создание "одностраничного описания проекта" и разработка его расширенной версии;

  • экспертиза идеи специалистами. Принятие решения о начале процесса планирования.

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

Возникновение идеи решения проблемы

Данный процесс обычно начинается с того, что у человека или небольшой группы людей возникает идея решения проблемы, которая:

  • препятствует созданию или развитию программного продукта;

  • приводит к ошибкам в программном продукте.

Наиболее интересными являются инновационные решения. Инновация — нововведение, изменяющее уже существующую результативную систему, какправило, с положительным эффектом или предлагающее новое решение некоторой проблемы в обозначенные время и месте [Косовский, Хитров 1997].Инновация включает в себя и изобретения, и открытия, и просто новшества. Результативная инновация — это инновация, изменяющая уже существующее решение с улучшением некоторых его характеристик, либо предлагающая к ранее не решенной проблеме решение, приносящее положительный эффект. Примеры результативных инноваций в программировании —создание глобальной сети Интернет и разработка интегрированной среды программирования.

Поиск решения может включать эвристические правила. Предложим несколько советов по организации поиска решения задачи" [Косовский, Хитров 1997].

  • Ждать, пока решение не придет в голову. Лишь при затянувшемся ожидании следует переходить к другим советам.

  • Следует понять — в чем смысл вопроса. Зачем вообще решать эту задачу? Здесь уместен принцип "выковыривания изюминки" — чтобы начать выковыривать изюминку, надо сначала найти булку с изюмом.

  • Найти язык чертежей, формул, программ, на котором удается переформулировать задачу. Возможно, при переформулировке что-то станет яснее.

  • Фиксировать внимание к произвольным мыслям и ощущениям.

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

Эдвард де Боно выделяет два типа мышления с соответствующими подходами решения задач:

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

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

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

Постановка задачи

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

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

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

Принятие решения о начале работы над проектом

Практически всегда перед принятием решения проводится экспертиза идеи и проекта, который на ней основан. Специалисты должны в течение нескольких дней изучить и проанализировать идею. В их задачу входят два основных момента [Баранов 1998].

  • Подтвердить или поправить все предположения, на которых базируется проект. На основании этих предположений будут делаться все дальнейшие построения.

  • Выявить и охарактеризовать все критические моменты в проекте. Специалисты должны указать — что не предусмотрено и к каким последствиям это может привести.

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

Соседние файлы в папке Лекции разработка ПО