Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Системы на основе структурной методологии

Поиск

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

  • Silverrun ModelSphere (компании magma solutions GmbH (http://www.spc.ca/)) - поддерживает методы DATARUN, Гейна-Сарсона, Йордона, Мартина и др.;
  • Oracle Designer (компании Oracle (http://www.oracle.com/)) - поддерживает CASE*Method Баркера;
  • ERwin (компании Computer Associates International, Inc. (http://www.cai.com/)) - поддерживает диаграммы функционального моделирования.

О системах на основе структурной методологии
Обратим внимание, что практически все перечисленные системы в настоящее время поддерживают также и объектно-ориентированную методологию.

Из отечественных систем укажем следующие:

  • ДРАКОН - поддерживающая ДРАКОН-схемы [Паронджанов 1999];
  • CASE-Аналитик (компании Эйтекс) - поддерживающая подход Гейна-Сарсона. Система работает с иерархией диаграмм, последовательно детализирующих модель (рис. 5.1).

 

В состав системы САSЕ.Аналитик входят [Калянов 1996]:

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

Системы на основе объектно-ориентированной методологии

Укажем лучшие и наиболее известные системы для анализа требований и проектирования на основе объектно-ориентированной методологии:

  • Rational Rose (компании Rational Software Corporation (http://www.rational.com/));
  • Together Control Center (компании TogetherSoft Corporation (http://www.togethersoft.com/)).

Перечислим основные достоинства и возможности системы Rational Rose:

  • система прошла достаточно долгий путь развития и совершенствования. Она поддерживает язык UML и ряд ранних языковых нотаций (например, Воосh и ОМТ (Object Modeling Technique));
  • система реализована на обеих наиболее распространенных операционных системах - Unix и Windows;
  • система имеет три основные модификации. Пользователь имеет возможность выбрать одну из них, устраивающую его по финансовым соображениям:
    • Enterprise - с возможностью генерации кода на языках Visual C++, Visual BASIC, Java, CORBA IDL Еще совсем недавно существовала поддержка языка Smalltalk;
    • Professional - возможность генерации кода на одном из перечисленных языков;
    • Modeler - без языковой поддержки;
  • система поддерживает восстановление спецификаций из кода;
  • система поддерживает генерацию проектной документации.

Система обладает удобным рабочим интерфейсом, в который входят:

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

Программирование (реализация)

Трансляторы

Диван был транслятором. Он создавал вокруг себя поле, преобразующее,
говоря просто, реальность действительную в реальность сказочную.
Аркадий и Борис Стругацкие. "Понедельник начинается в субботу"

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

  • компиляторы;
  • декомпиляторы;
  • интерпретаторы.

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

 

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

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

Компиляторы

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

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

 

Далее мы расскажем об основных программах, входящих в состав компилятора. В сети Интернет подробный обзор таких программ можно найти на сайте Compiler Construction Tools (http://catalog.compilertools.net/).

  • Драйвер (диспетчер, монитор) - это программа, последовательно вызывающая все остальные компоненты компилятора.
  • Препроцессор - программа, которая выполняет модификацию данных с целью их подготовки для ввода в другую программу. Модификация может заключаться в простом переформатировании или применении макрорасширений.
  • Анализатор - компонент компилятора, осуществляющий последовательно:
    • лексический анализ, на котором входная программа, представляющая собой поток символов, разбивается на лексемы - конструкции (слова) языка;
    • синтаксический анализ, в процессе которого происходит разбор структуры программы;
    • контекстный анализ, во время которого выявляются зависимости между частями программы, включая анализ типов, областей видимости, соответствие параметров и т. п.
  • Оптимизатор - компонент, выполняющий преобразования программы (как правило, на основе промежуточного представления) с целью улучшения ее характеристик (оптимизации) по одному или ряду параметров. Как правило, оптимизацию проводят по времени исполнения с целью получения более эффективной программы или по пространству - месту, которое файл с откомпилированной программой будет занимать. На рис. 5.4 представлено три основных подхода к оптимизации.
  • Кодогенератор - компонент, завершающий компиляцию и порождающий на основании промежуточного представления программы либо ассемблер, либо объектный код.

 



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 122; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.192.214 (0.005 с.)