Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по ТРПО.doc
Скачиваний:
13
Добавлен:
23.04.2019
Размер:
469.5 Кб
Скачать
  1. Генетические технологические подходы.

Разработка нового программного продукта осуществляется на основе элементов уже имеющегося ПО.

    1. Синтезирующее программирование.

Синтез программы по ее спецификации, т.е. программа строится на основе документа, написанного на языке спецификаций и является базисом для последующей реализации. При реализации доопределяют детали, которые нельзя выразить на языке спецификаций; выбирают язык и аппаратную платформу и фиксируют отображение понятий языка спецификации на язык реализации и аппаратно-программную платформу. Возможна автоматическая генерация ПО по спецификации (CDL, LOTOS, UML).

    1. Сборочное (расширяемое).

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

Виды:

  • Модульное сборочное программирование;

  • ОО-сборочное программирование;

  • Компонентное сборочное программирование;

  • Аспектно-ориентированное сборочное программирование.

    1. Конкретизирующее программирование.

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

Паттерн – это описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.

Паттерн состоит из четырех основных элементов:

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

  • задачи (описание, когда следует применять паттерн для конкретизации);

  • решения (абстрактное описание элементов дизайна и отношения между ними);

  • результатов (следствий применения паттернов).

+ упрощают повторное использование удачных проектных и архитектурных решений.

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

  1. Подходы на основе формальных преобразований.

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

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

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

  • ящика с состояниями в котором выделяются внутренние состояния, показывающие элементы истории стимулов.

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

Три принципа использования ящиков:

    1. Все определенные при проектировании данные скрыты (инкапсуляция);

    2. Все процессы определены как использующие ящики последовательно или параллельно;

    3. Каждый ящик занимает определенное место в системной иерархии.

Отладка заменяется формальной верификацией (проверка корректности).

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

Формальные синтезирующие подходы (логические и трансформационные).

  • Формальное сборочное программирование (рассматривает спецификацию как набор существующих компонент);

  • Формальное конкретизирующее программирование.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]