Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Е.А. Кузьменкова - Формальная спецификация программ

Е.А. Кузьменкова - Формальная спецификация программ (Е.А. Кузьменкова - Формальная спецификация программ.pdf)

PDF-файл Е.А. Кузьменкова - Формальная спецификация программ (Е.А. Кузьменкова - Формальная спецификация программ.pdf) Пакеты прикладных программ (63451): Книга - 9 семестр (1 семестр магистратуры)Е.А. Кузьменкова - Формальная спецификация программ (Е.А. Кузьменкова - Формальная спецификация программ.pdf) - PDF (63451) - СтудИзба2020-08-19СтудИзба

Описание файла

PDF-файл из архива "Е.А. Кузьменкова - Формальная спецификация программ.pdf", который расположен в категории "". Всё это находится в предмете "пакеты прикладных программ" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТимени М.В. ЛОМОНОСОВАФакультет вычислительной математики и кибернетикиЕ.А. Кузьменкова, А.К. ПетренкоФормальная спецификация программна языке RSL(методическое пособие по практикуму)19992ВведениеДанное пособие предназначено для поддержки двухсеместрового курса«Методы формальной спецификации программ». Курс состоит из двух частей.Первая часть рассматривает вопросы разработки программного обеспечения наоснове подходов, предложенных RAISE методологий, и вопросы автоматизациитестирования на основе формальных спецификаций, где в качествеиллюстративного материала также используются RAISE спецификации.

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

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

Эта задача для своего решения требуетсистематического применения разнообразных инженерных методов, часть изкоторых может с успехом использовать и формальные методы.Одной из важнейших целей данного курса была демонстрация современныхдостижений в области использования формальных методов при созданииреального программного обеспечения. Для решения этой задачи, с однойстороны, необходимо было выбрать язык спецификаций, зарекомендовавшийсебя как инструмент практических программистов, и, с другой стороны,показать, как формальные методы могут использоваться в ходе всех фазжизненного цикла программного обеспечения: от проектирования дотестирования.В качестве такого языка был выбран RSL. Этот язык является языкомметодологии разработки программ RAISE - Rigorous Approach to IndustrialSoftware Engineering.

RAISE является результатом работы группы европейских3ученых, которые в конце 80-х годов объединилась для создания методаразработки программного обеспечения, пригодного для использования не тольков исследовательских целях, но и в индустрии.RSL, с одной стороны, вобрал в себя полезные возможности несколькихдругих широко известных языков, таких как VDM/Meta-IV, Z, LOTOS, CSP, сдругой стороны, он оказался достаточно экономным и естественным, чтоупрощает его изучение и использование в программной индустрии. Одним изпривлекательных свойств RSL является его близость к традиционным языкампрограммирования.Данное руководство не заменяет ни описания языка, ни описаниясобственно RAISE методологии.

Наиболее полным описанием языка являетсямонография [1]. Руководство содержит краткие описания тем практическихзанятий и контрольных заданий, которые студенты выполняют при изученииданного курса лекций. По форме это упражнения для закрепления навыковиспользования RSL. Вместе с тем, обратим внимание читателя на то, что заэтими упражнениями стоит целый спектр задач разработки промышленногопрограммного обеспечения. Эти задачи должны не только помочь в овладенииязыком RSL, они должны научить видеть задачи системного анализа проектныхматериалов, реализации, форвард- и реверс-инженерии и научить решать ихсистематическим образом и, если это возможно, при помощи формальныхметодов.4Глава 1.

Основные понятия языка RSL1.1.Основные типы языка RSL. RSL логикаЦель данного раздела - описать основные встроенные типы языка RSL,уделяя особое внимание специфике RSL логики. Раздел содержит упражненияпо выработке навыков вычисления и оформления выражений языка RSL на базевстроенных типов.1.1.1. Встроенные типы языка RSLВ языке RSL предусмотрены следующие встроенные типы:Bool – представляет булевские значения,Int – целые числа,Nat – натуральные числа,Real – вещественные числа,Char – символы,Text – строки символов,Unit – содержит единственное специальное значение ().Тип Bool содержит два значения true и false, над значениямиданного типа определены операции ∧, ∨, ⇒, ∼, =, ≠.Для значений типа Int определены операции +, −, ∗, /, ↑, \, abs, real,где ↑ означает возведение в степень, \ – взятие остатка от деления, abs –префиксная операция для вычисления модуля числа и real – префикснаяоперация для преобразования из типа Int в тип Real.

Кроме того значенияданного типа можно сравнивать с помощью операций <, ≤, >, ≥, =, ≠.Тип Nat является подтипом типа Int и задается соотношением:Nat = {| i : Int • i ≥ 0 |}. К значениям этого типа применимы все операции,определенные для типа Int.К значениям типа Real применимы операции +, −, ∗, /, ↑, <, ≤, >, ≥, =, ≠,abs, int, где int – префиксная операция для преобразования из типа Real втип Int, возвращающая ближайшее по направлению к 0 целое число.Например:int 4.6 = 4int −4.6 = −4Наличие десятичной точки в записи вещественных констант обязательно (1.0,12.35 и т.д.).Тип Char содержит символы, к значениям этого типа применимыоперации = и ≠, константы типа Char заключаются в апострофы ( например:′f′, ′Z′ и т.д.

).Тип Text предназначен для описания строк символов, причем каждаястрока должна начинаться и заканчиваться символом ″. Например, ″ABC″,″″″″ –пустая строка. К значениям этого типа применимы операции =, ≠.5Тип Unit используется в описаниях сигнатур функций для изображенияотсутствующих входных или выходных параметров.1.1.2. Логика в языке RSLОстановимся более подробно на вычислении логических выражений в языкеRSL, поскольку принятая в языке логика имеет некоторую специфику посравнению с классической логикой. Суть этой специфики связана с наличием вRSL специального выражения chaos, предназначенного для обозначениянепредсказуемого (хаотичного) поведения программы во время выполнения,возникающего в результате какого-либо отказа в программе и приводящего кситуации, когда вычисление значения какого-либо выражения может незавершиться.

chaos не принадлежит ни к одному из типов RSL и ввыражениях может появляться в позициях, предусмотренных для значенийразличных типов. Например, chaos может встречаться как вместо вхождениязначений типа Bool, так и вместо типа Int. В RSL принята сокращеннаясхема вычисления логических выражений, т.е. если значение всего выраженияполностью определяется значением его первого операнда, то вычислениевторого операнда не производится.Ниже приводятся таблицы истинности (с учетом chaos ) для основныхлогических операций. Левая колонка соответствует первому операнду, верхняястрока – второму операнду.∧truefalsechaostruetruefalsechaosfalsefalsefalsechaoschaoschaosfalsechaos∨truefalsechaostruetruetruechaosfalsetruefalsechaoschaostruechaoschaos⇒truefalsechaostruetruetruechaosfalsefalsetruechaoschaoschaostruechaosОпределение операции∼ chaos ≡ chaos∼ необходимо расширить соотношением:6В таблицах истинности для операций = и ≡ символыобозначают выражения, значения которых отличаются друг от друга.≡abchaosatruefalsefalsebfalsetruefalsechaosfalsefalsetrue=abchaosatruefalsechaosbfalsetruechaoschaoschaoschaoschaosa и bНа основании приведенных таблиц можно заметить, например, что вотличие от классической логики в RSL операции ∧ и ∨ не обладаютсвойствомкоммуникативности,т.е.выраженияe1 ∧ e2 ≡ e2 ∧ e1 иe1 ∨ e2 ≡ e2 ∨ e1 уже не являются тавтологиями.Для обеспечения возможности альтернативного выбора при вычислениивыражений в RSL введены условные выражения, имеющие следующий вид:if value_expr then value_expr1 else value_expr2 end,где value_expr является логическим выражением, а выражения value_expr1и value_expr2 имеют один и тот же тип, который является и типом всегоусловного выражения.

При вычислении значений условных выраженийнеобходимо иметь в виду следующие свойства:(1)if true then expr1 else expr2 end ≡ expr1(2)if false then expr1 else expr2 end ≡ expr2if a then expr1 else expr2 end ≡(3)if a then expr1[true/a] else expr2[false/a ] end(4)if chaos then expr1 else expr2 end ≡ chaosЗапись вида expr1[true/a] обозначает подстановку в выражение expr1значения true вместо a.Квантифицированные выражения языка RSL имеют традиционную форму ииспользуются в основном для записи аксиом.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее