Типичные черты исследовательского проекта




Скачать 381.19 Kb.
НазваниеТипичные черты исследовательского проекта
страница1/7
Дата публикации14.05.2014
Размер381.19 Kb.
ТипЛитература
literature-edu.ru > Лекции > Литература
  1   2   3   4   5   6   7
Использование ОО методологии в исследовательских проектах

Введение 1

Что было до ОО? Структурная методология 8

ОО методология. 9

Приложения 28

Литература 29


Введение

Что такое исследовательский проект и зачем нужна методология.


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

Сложные концепции для проверки требуют большого объема кода. Замечено в течение длительного времени, что при увеличении объема кода программы время разработки и количество ошибок в ней растут существенно быстрее, чем линейно. Это верно даже для программ, разрабатываемых одним человеком. Для коллективной разработки дела обстоят еще хуже.

Таким образом, возникает необходимость применения методов, помогающих уменьшить скорость роста времени разработки при увеличении объема кода.

Типичные черты исследовательского проекта.


  • Время разработки: до 1 года

  • Размер: от 10 Кб до 1 Мб исходного кода.

  • Коллектив разработчиков: 1-2 человека

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

Почему именно так?

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

~ 1Мб Объем отлаженного кода, который один квалифицированный программист может написать за год. Либо разработчик удовлетворяет свое любопытство, либо программа переходит в другой класс (коммерческая разработка, открытый проект).

Сложные алгоритмы. Как правило, цель исследовательского проекта – добиться новых неизвестных (как минимум разработчику) результатов. Все простые вещи уже придумали до нас.

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

Отсутствие дополнительного тестирования. Тестирование выполняется силами разработчиков. Отсутствуют требования к тестированию со стороны заказчика. Разработчики стараются минимизировать тестирование по причине скучности написания тестов, пытаясь обойтись минимумом интерактивных тестов. Далее будут показаны недостатки такого подхода и влияние тестов на качество, и время разработки системы.

За кадром


Заведомо сужая область рассмотрения, мы исключаем многие важные в других типах проектов элементы, такие как:

  • формальный анализ требований и построение спецификаций

  • формальные процессы анализа и проектирования

  • распределение работы между группами и сетевое планирование

  • межгрупповая коммуникация

  • документирование

  • формальные требования к пользовательскому интерфейсу

  • формальные стратегии тестирования

  • управление ошибками

  • поддержка

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

Структурная сложность


Скорость роста затрат при увеличении объема кода зависит от структурной сложности системы.

Что такое структурная сложность системы?


Программирование в широком смысле – это один из видов познания и изменения мира (бытия). Раздел философии гносеология – учение о познании - разрабатывается со времен античности, и методы, применяемые в программировании, ведут свои корни именно оттуда. Одним из основных методов познания мира является метод анализа-синтеза. Этот метод был формально описан Георгом Гегелем («Логика»,1817). Вторым основным методом является метод абстракции (обобщения-уточнения) разработанный еще греческими философами (Евклид, Фалес, Платон и др.). Отличие программирования от философии в том, что вместо объяснения свойств существующих систем те же методы используются для создания новых.

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

Система рассматривается как граф взаимосвязанных подсистем. Связи между подсистемами также имеют различную сложность.

Структурная сложность системы – это суммарная сложность всех взаимосвязей между ее подсистемами. Как видно из определения, только за счет увеличения количества подсистем структурная сложность может расти как квадрат от объема кода (максимальное количество связей равно размеру матрицы смежности) даже без учета роста сложности самих связей. Следует также учитывать неявные связи между подсистемами (наведенные ошибки).

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

Способы борьбы со структурной сложностью.


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

Для уменьшения структурной сложности есть несколько точек возможного приложения силы:

  1. Уменьшение количества подсистем.

  2. Уменьшение сложности связей.

  3. Уменьшение количества связей.

Есть два простых механических способа уменьшения количества подсистем за счет уменьшения объема кода:

  1. Использование более выразительного языка.

  2. Использование внешних библиотек подсистем.

К сожалению, эти способы не всегда позволяют радикально уменьшить структурную сложность системы, поскольку не влияют на количество и сложность оставшихся связей. Поэтому основным фактором структурной сложности является структура системы, лежащая полностью на совести разработчика. Методологии программирования позволяют облегчить нахождение наиболее простой структуры системы.
  1   2   3   4   5   6   7

Добавить документ в свой блог или на сайт

Похожие:

Типичные черты исследовательского проекта iconКонспект внеклассного мероприятия «Подготовка к созданию учебного...
Конспект внеклассного мероприятия Подготовка к созданию учебного исследовательского проекта

Типичные черты исследовательского проекта iconСценарий проекта Полное название проекта «Солнце Русской поэзии»
Участники проекта – воспитанники, воспитатель, музыкальный родители

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconВладимир Исаевич Круковер 300 практических советов владельцам собак. Типичные ошибки

Типичные черты исследовательского проекта iconТемы вашего учебного проекта
Краткий обзор вашего учебного проекта включает тему проекта в рамках вашего предмета, описание основных учебных практик и краткое...

Типичные черты исследовательского проекта iconЧерты развития русской литературы XVIII века. Классицизм в русском и мировом искусстве
Цель – общий обзор «Черты развития русской литературы XVIII века», введение понятия «классицизм»

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

Типичные черты исследовательского проекта iconПлан мероприятий в рамках проекта «Этот загадочный Шерлок Холмс»
Составление учителями визитки проекта, методических и дидактических материалов к проекту и размещение их на школьном сайте

Типичные черты исследовательского проекта iconОтдела образования Администрации Макушинского района о реализации...
Од, о реализации проекта «Интеллектуал Зауралья» в образовательных учреждениях района. Был заслушан отчёт директора Макушинской сош...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции