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




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

Методологии программирования


Методология - это набор методов, которые при совместном применении позволяют добиться заданной цели. Методология не является обязательной. Ее применение зависит только от воли разработчика системы.

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

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

В состав методологии всегда входят правила построения иерархической модели системы и описание процесса разработки системы.

Примеры: структурная методология, объектно-ориентированная методология.

Модель системы


Модель системы – иерархическое разбиение системы на подсистемы и описание их взаимодействия в соответствии с определенными правилами. Например, структурная модель, ОО модель.

Модель может быть описана различными средствами, такими, как диаграммы или код на языке программирования.

Реализация системы – выполнимый код на языке программирования реализующий требования к системе. Является одновременно ее моделью.

Программно-аппаратная платформа – контекст реализации системы. В него входят: аппаратная платформа, операционная система, стандартные внешние библиотеки, сетевые протоколы, системы баз данных, другие внешние для системы сущности, не определенные требованиями к системе, но взаимодействующие с ней.

Процесс разработки системы.


Процесс разработки обычно состоит из нескольких чередуемых видов деятельности, таких как:

Анализ (Analysis) – анализ требований к системе. Система на этапе анализа представляется в виде черного ящика, и строится модель взаимодействия системы с внешним миром удовлетворяющая требованиям. Анализ производится вне контекста программно-аппаратной платформы реализации.

Проектирование (Design) – иерархическая детализация аналитической модели системы до уровня, пригодного для последующей реализации в виде кода. Проектирование производится в контексте программно-аппаратной платформы реализации.

Программирование (Programming) – кодирование проектной модели системы на языке программирования.

Тестирование (Testing) – разработка набора тестов и проверка системы с их помощью на наличие ошибок.

Отладка (Debugging) – локализация и устранения ошибок.

Переработка кода (Refactoring) – изменение модели и кода работающей системы для облегчения ее расширения.

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

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

  1. Интегрированная среда разработки – система редактирования исходных текстов и сборки проекта, может включать в себя и другие инструментальные средства.

  2. Система управления исходными текстами – служит для хранения истории изменений исходных текстов системы.

  3. Отладчик – система пошаговой отладки на уровне исходных текстов.

  4. Система управления тестами – база тестов с возможностью протоколирования и анализа результатов.

Простейший процесс


Модель системы строится по ходу кодирования.



Недостатки: ошибки проектирования накапливаются. Система быстро ветшает и разваливается под собственным весом.

Итерационный процесс


Модель системы строится по ходу кодирования и улучшается при необходимости.



Недостатки:

  1. Один и тот же работающий код переписывается по множеству раз.

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

Улучшенный итерационный процесс


Модель системы строится поэтапно с явным разделением на анализ, проектирование и кодирование и улучшается при необходимости.



Недостатки: те же, что и у предыдущего, но в меньшей степени. За счет лучшего качества модели переработка кода происходит реже и в меньшем объеме.
Чередование деятельности. Метод волны.

Не стоит пытаться сразу выполнить анализ всей системы, затем проектирование всей системы, а только потом приступать к программированию. Это может привести к отрыву проекта от реальности. В результате при переходе к программированию может выясниться, что проектная модель нереализуема на данной программно-аппаратной платформе. Более правильно – выполнить анализ для некоторой группы внешних взаимодействий. Затем спроектировать часть проанализированной подсистемы. Затем закодировать эту часть. Провести тестирование. Затем опять вернуться к проектированию. Когда вся подсистема будет закодирована можно, опять вернуться к анализу. Возникающие нестыковки будут устраняться на этапе переработки кода. Таким образом, система будет расширяться от центра к краю. Разработка всегда будет вестись на периферии системы.

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

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

Какие бывают тесты:

По отношению к системе (подсистеме):

  1. Внешние – система рассматривается как черный ящик.

  2. Внутренние – тесты являются частью системы и тестируют отдельные внутренние подсистемы.

По типам тестовых случаев:

  1. Простые (Assertion) – проверяют характерные случаи использования системы.

  2. Граничные (Boundary) – проверяют граничные значения параметров, например, 0, 1, -1, null, INT_MAX и т.д.

  3. Покрывающие (Coverage) – проверяют отдельный путь в графе управления программы.

Для осуществления методического тестирования тесты должны быть:

1. Автоматическими. То есть выполняться без участия разработчика. Результат работы теста - либо отсутствие ошибки, либо ошибка и диагностика причины ее возникновения.

2. Выполняться достаточно быстро, чтобы их можно было выполнять часто, например, после каждой успешной сборки системы.

Другие применения тестов:

  1. Простые тесты могут использоваться для формализации требований к функциональности системы (функциональные тесты).

  2. Простые тесты могут использоваться в качестве рабочей документации.

  3. Простые и граничные тесты – для спецификации внешних интерфейсов.

  4. Простые тесты могут использоваться как тесты производительности.

Когда какие тесты писать:

  1. После успешной компиляции системы стоит написать простой тест на новый код.

  2. Перед переработкой кода стоит написать несколько граничных тестов для фиксации текущего поведения.

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

Тестовое покрытие – процент строк исходного кода системы выполненных хотя бы один раз во время прогона всех тестов.

Вероятность ошибки в коде непокрытом тестами существенно выше, этот код может быть вообще мертвым (никогда не выполняться) или там может быть написана какая-то глупость. Идеалом является 100% тестовое покрытие.

Для измерения тестового покрытия служит инструментальное средство Покрытие (Coverage).

Языки программирования.


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

Дополнительные ограничения.


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

Если это не так, то ценность данного вида деятельности в исследовательском проекте сомнительна, поскольку его результат не влияет на качество кода.
1   2   3   4   5   6   7

Похожие:

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

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

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

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

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

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

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

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

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

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

Литература


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

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