Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Характеристики языков PSL и RSL




RSL имеет: 19 типов объектов, 20 отношений и 20 атрибутов.

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

 

Прототипирование, как метод определения требований к ПО

 

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

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

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

 

Лекция 12

 

Технология программирования

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

1) Система жесткого реального времени, в котором не эффективность или возможная ошибка приводит к аварии объекта, который описывает наш прототип. Например – управление ракетой, управление в ядерной отрасли.

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

В этом прототипе проводится полное игнорирование эффективности программ, используются как правило простые методы ( ПО возможности используются выразительные средства).

Метод прототипирования возник только тогда, когда появились некоторые выразительные возможности описания алгоритмов, т.е. в 80-х годах этот метод не применялся из-за средств.

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

Язык NOMAD является языком 4-го поколения и объединяет в себе технологию процедурных и не процедурных языков. Он содержит в себе ряд обычных языков и включает в себя системы управления базами данных. Язык NOMAD высоко интерактивен и позволяет использовать режим команды в любом из указанных режимов, процедур, позволяет расширять систему команд. Пользователь языка NOMAD может, применяя простые команды выполнять разнообразные действия по формированию различной сложности отчетов, таблиц, графиков, определять и изменять структуру базы данных, обновлять ее, генерировать статистические. данные базы данных. Существуют проблемы, которые продиктованы языком NOMAD. Он не дает эффекта в конкретных проблемных областях, т.к. он не имеет выразительных средств, позволяющих кратко и понятно описать определенные (базовые) термины проблемной области. Для этого существуют другие языки. которые адекватно отображают понятия предметной области. Например: язык PROLOG, который подходит для проблемных областей связанных с логическим оформлением результатов. Проблемная область здесь некоторая математико-логическая область. В ряде технологических комплексах RADA, ARGUS в них есть язык прототипирования RРL, который не в большей степени зависит от проблемной области и представляет пользователям средства для проектирования, ориентирования на конкретную область программирования. Язык RРL имеет некоторые свойства – язык сильно расширяющий, очень высокого уровня. Пользователь может включить в язык проблемно - ориентированные типы данных, связать их с системой, подцепить к ним определенные действия и сформировать систему разработки, которая носит название среды RPL. Он может:

1) добавлять новые типы данных

2) вводить операции над объектами новых типов

3) определять взаимодействие объектов

4) определять приоритеты операций

5) вводить новые типы констант.

 

Псевдокоды

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

Эти фразы рассматриваются на содержательном уровне и как правило описывают те элементы проекта, которые в настоящий момент не удается формализовать.

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

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

2)терминальные языки

3) псевдотерминальный язык кант.

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

 

RD - технология (рассредоточенное действие)

В основе RD - технологии лежит основополагающая концепция Фуксмана: сосредоточенное описание , рассредоточенных действий.

Эта концепция реализована в технологии вертикального слоения и развивает технологию вертикального слоения в 2-х направлениях.

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

2) вводится понятие RD - модуля или модуля рассредоточенных действий, который обобщает вертикальный слой Фуксмана и наделяет его главным атрибутом классического модуля - это автономное проектирование, его познаваемость разработки и тестирования, т.е. все те свойства, которые принадлежат обычному программному модулю, также и этап отладки.

Проблема представить реализацию рассредоточенной функции и как следствие препятствует адекватному изображению или адекватному разбиению программы на функционально - прочные модули, приводит к нарушению свойств слабой связанности по данным т.к. использование абстрактных типов данных обслуживающих реализацию рассредоточенной функции также оказывается рассредоточенным по тексту программы (по различным ее модулям). Наиболее приемлемое решение этой проблемы представляет технология вертикального слоения, которая основана на вертикальном слоении Фуксмана. Эта проблема решается на основе RD –модуля, в который вместо громоздкого контекста вертикального слоя используется компактная и познаваемая модель, играющая важную роль как при отладке как и при тестировании модуля. а также позволяет объединять и связать RD - модули в единый программный проект. RD - модули предназначены для адекватного описания рассредоточенных функций, обобщающих традиционные формы модульности и являются развитием и конкретизацией сосредоточенного описания рассредоточенных  действий.

 

RD - модуль представляет собой последовательность разделов:

1) тело

2) интерфейс

3) локлы

4) импорт

5) интеграция.

Тело RD -модуля – объединение моделей с именами действий, реализующих рассредоточенные функции.

В разделе интерфейса, содержится описание интерфейса по данным между вершинами и действиями RD -модуля.

График

 

 

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

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

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

Концепция RD - модуля и RD - системы приводит нас к технологии RD, которая состоит в регулярном прагматическом применении при разработке программного изделия, основополагающего принципа Фуксмана: Сосредоточенное описание, рассредоточенных действий, RD - технология в совокупности с другими технологиями может применятся на всех этапах разработки программного изделия, начиная от проектирования верхнего уровня вплоть до этапа тестирования кода программы, отладки программы.

Лекция 13

Технология программирования                  8.04.08г.

Структурное программирование предложено разработчиком Дейкетрой. Основная идея которого положена в основу метода структурного программирования - понимаемость программы. В основа такого идеологического метода показывает то, что программа включает ряд подходов, нисходящее проектирование, ограниченное число исполнительных программных конструкций, модульность и др. эффекты. Структурность таких методов и носит название структурного подхода, в котором реализуется основная и идеология 3-х видов операторов: последовательный, условный и оператор цикла. Доказано, что этих 3-х операторов для представления программы сверх вниз достаточно. Основным нарушителем данного подхода по Дейкетру является оператор goto, который можно и не исполнять.

Однако существуют операции, когда нужно и лучше его использовать.

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

1) Понимать программу.

2)  тестировать ее

3) программа начинает становиться прозрачной и не зависеть от объема.

 

Метод Джексона

Построение программы от данных

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

Процедура создания программы по методу Джексона состоит из следующих шагов:

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

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

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

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

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

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

Метод Джексона исполняет также 3 вида операторов: последовательный, ….. , альтернация (послед. условный, цикла)

Конфликты, возникающие при структуризации входных и выходных данных в методе Джексона

1) Конфликт порядка

2) Конфликт структур

1) Конфликт порядка - это такой конфликт, когда совмещение структур разных описаний невозможно из-за различия следования или порядка следования некоторых двух компонентов одного и того же описания и соответствующих им компонентов другого описания.

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

 

График

R – технология

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

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

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

3)Разработка программного обеспечения выполняется по безбумажной технологии под управлением и контролем со стороны ЭВМ. Применяемый в R- технологии язык – это язык графов с нагруженными дугами, каждая дуга графа может сопровождаться произвольным текстом сверху вниз. Текст под дугой определяет условия прохода по дуге. а текст над дугой определяет действия, которые производятся в данном направлении….

Вершины графа соответствуют состоянию программы из каждой вершины может выходить и в каждую может входить по несколько дуг. Для улучшения качества создаваемого программного обеспечения в R - технологию вводятся ограничения на способы построения программ. Для чего вводятся структуры (подграфы) с одним входом и одним выходом, подобная идеология уже реализована в UNIX - подобные и в ряде языков, например, FORD.

Граф. представленный в таком виде и представляет собой объединенный граф R - технологии, и который уже можно применять весь математический. аппарат.

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

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

Рабочее поле чертежа содержит формальное описание данного этапа программы (результата шага программы).

 

Язык R – схем

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

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

 

Лекция 14










Последнее изменение этой страницы: 2018-06-01; просмотров: 192.

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