Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭ_У_Студентам / ТРПС_2010.doc
Скачиваний:
57
Добавлен:
05.06.2015
Размер:
4 Mб
Скачать

9.1 Функциональная и объектно-ориентированные стратегии разработки по

Функционально-ориентированная стратегия (70-е-80-е гг.) базировалась на традиционном программировании со структурным программированием в основе (без классов и без объектов). Разработчики: Дейк, Строхон???, Йордан Йордан (Yourdon) и Гейн-Сарсон (Gane-Sarson). Стратегия и методология была одна.

80-е гг: распространение объектно-ориентированной стратегии. Рубеж 80-90 годов – объектный подход и стратегия. Разработчики: Г.Буч, А.Джекобсон, Д.Рэмбо.

  • Этапы разработки ПО у стратегий те же самые:

  1. технико-экономическое обоснование разработки ПО (требования к системе, ТЗ на разработку),

  2. анализ предметной области (методы решения задач, проектная документация),

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

  4. программирование – разработка алгоритмов на вспомогательном языке,

  5. тестирование и отладка,

  6. сопровождение и эксплуатация.

Отличия: порядок выполнения и число выполнений каждого этапа, содержимое и суть этапов.

Функционально-ориентированная стратегия разработки по (фос)

  • Цель ФОС – разработка ПС в виде совокупности взаимосвязанных модулей, состоящих из подпрограмм.

  • Методологии (методы) ФОС

  1. Нисходящая разработка (каскадный метод)

  2. Восходящая разработка

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

  4. Смешанная (нисходящая разработка + метод расширения ядра)

  1. Каскадный метод

В процессе проектирования по каскадному методу должна быть построена схема иерархии (функциональная схема) - ориентированный граф с вершинами – функциями и ребрами – отношениями функций к подфункциям.

Не учитывает логику выполнения операций, порядок выполнения действий.

Процесс построения схемы иерархии: разбиение функции на подфункции (движение сверху вниз).

Относится к этапам анализа предметной области, проектирования, программирования, отладки и тестирования (???).

  • Требования при построении схемы:

  1. одна подпрограмма – одна задача;

  2. функция должна иметь имя – идентификатор;

  3. одна подпрограмма, реализующая одну функцию должна иметь один вход и один выход;

  4. функция должна передавать данные лишь программе ее вызывающей;

  5. функция может иметь и вызывать другие подфункции;

  6. запрет на повторное использование информации от предыдущих вызовов функции.

  • ПРИМЕР СХЕМЫ ИЕРАРХИИ

  • Минусы схемы иерархии:

  1. на этапе проектирования не учитываются логика работы ПС и данные, необходимые чтобы понять, когда стоит прекратить дробление функции;

  2. может возникнуть рассредоточение функций, т.е. несколько подпрограмм будут делать одно и то же;

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

  • Плюсы схемы иерархии:

  1. разработка сверху вниз;

  2. дробление функций на подфункции;

  3. возможность оценить ПС пока она еще не сделана – программы «заглушки» - фиктивные подпрограммы, принимающие и выдающие данные; для каждой системы может быть несколько правильных схем иерархии.

Проектирование – наиболее критичный этап ФОС. Построение, анализ и схема иерархии – самое главное при проектировании ФОС.

  • Порядок разработки модулей, подпрограмм: иерархический и операционный.

  • Иерархический метод

Основывается на схеме иерархии. Суть – распределение выявленных функций и подфункций по уровням. Есть свобода в рамках разработки одного уровня, так как порядок в нем не определен. Но есть зависимость данных нижних уровней от данных более высоких уровней.

  • Операционный метод (более распространенный)

Подпрограммы разрабатываются в порядке соответственно с их вызовом.

Есть свобода, так как при разных входных данных меняется порядок запросов. Полностью снимается вопрос по поводу зависимости по данным.

Недостатки: диагностические сообщения зависят ото всех подпрограмм;

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

  • Восходящая разработка

Также строится схема иерархии, но программирование осуществляется снизу вверх.

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

Используется редко. Можно использовать, если в системе много общих подпрограмм

  • Метод расширения ядра

Построение схемы иерархии желательно, но не обязательно.

Разработка начинается с основных функций ПС.

На ранних этапах можно показать работу системы, а потом наращивать ее функциональность.

Используется чаще, чем восходящий.

ДОСТОИНСТВА ФОС:

  1. Последовательное выполнение всех этапов разработки>>>

  2. Возможность планирования сроков завершения работ и соответствующих затрат).

НЕДОСТАТКИ ФОС:

  1. Желательно последовательное выполнение этапов разработки, что лишает разработку гибкости;

  2. Взгляд на предметную область как на набор функций часто противоречит ее сущности (в 80% случаев это набор объектов, а не функций);

  3. Слабый учет структуры данных;

  4. Требования к ПС должны быть четко определены в начале разработки;

  5. Работающий прототип - лишь к концу разработки;

  6. Участие заказчиков ограничено;

  7. Желательно наличие опыта подобных разработок у коллектива разработчиков.

  8. Сложность решаемой задачи нарастает к концу разработки.