рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Пошаговая детализация и понятие о псевдокоде.

Пошаговая детализация и понятие о псевдокоде. - Лекция, раздел Программирование, НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ИСТОРИЧЕСКИЙ И СОЦИАЛЬНЫЙ КОНТЕКСТ ПРОГРАММИРОВАНИЯ. ИСТОЧНИКИ ОШИБОК В ПРОГРАММНОМ СРЕДСТВЕ Структурное Программирование Дает Рекомендации О Том, Каким Должен Быть Текст...

Структурное программирование дает рекомендации о том, каким должен быть текст модуля. Возникает вопрос, как должен действовать программист, чтобы построить такой текст. Иногда программирование модуля начинают с построения его блок-схемы, описывающей в общих чертах логику его работы. Однако современная технология программирования не рекомендует этого делать. Хотя блок-схемы позволяют весьма наглядно представить логику работы модуля, при их кодировании на языке программирования возникает весьма специфический источник ошибок: отображение существенно двумерных структур, какими являются блок-схемы, на линейный текст, представляющий модуль, содержит опасность искажения логики работы модуля, тем более, что психологически довольно трудно сохранить высокий уровень внимания при повторном ее рассмотрении. Исключением может быть случай, когда для построения блок-схем используется графический редактор и они формализованы настолько, что по ним автоматически генерируется текст на языке программирования (как например, это может делаться в Р-технологии [8.6]).

В качестве основного метода построения текста модуля современная технология программирования рекомендует пошаговую детализацию [8.1, 8.3, 8.5]. Сущность этого метода заключается в раз-

биении процесса разработки текста модуля на ряд шагов. На первом

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

Пошаговая детализация связана с использованием частично формализованного языка для представления указанных описаний, который получил название псевдокода [8.5, 8.8]. Этот язык позволяет использовать все конструкции структурного программирования, которые оформляются формализованно, вместе с неформальными фрагментами на естественном языке для представления обобщенных операторов и условий. В качестве обобщенных операторов и условий могут задаваться и соответствующие фрагменты на базовом языке программирования.

Головным описанием на псевдокоде можно считать внешнее оформление модуля на базовом языке программирования, которое

должно содержать:

· начало модуля на базовом языке, т.е. первое предложение или заголовок (спецификацию) этого модуля [8.1];

· раздел (совокупность) описаний на базовом языке, причем вместо описаний процедур и функций - только их внешнее оформление;

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

· последнее предложение (конец) модуля на базовом языке [8.1].

Внешнее оформление описания процедуры или функции представляется аналогично. Впрочем, если следовать Дейкстре [8.2], раздел описаний лучше также представить здесь неформальным обозначением, произведя его детализацию в виде отдельного описания.

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

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

Следование: обобщенный_оператор обобщенный_оператор   Разветвление: ЕСЛИ условие ТО обобщенный_оператор ИНАЧЕ обобщенный_оператор ВСЕ ЕСЛИ   Повторение: ПОКА условие ДЕЛАТЬ обобщенный_оператор ВСЕ ПОКА

Рис. 8.2. Основные конструкции структурного программирования на псевдокоде.

Выход из повторения (цикла): ВЫЙТИ   Выход из процедуры (функции): ВЕРНУТЬСЯ   Переход на обработку исключительной ситуации: ВОЗБУДИТЬ имя_исключения

Рис. 8.3. Частные случаи оператора перехода в качестве обобщенного оператора.

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

ИСКЛЮЧЕНИЕ имя_исключения

обобщенный_оператор

ВСЕ ИСКЛЮЧЕНИЕ

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

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

УДАЛЕНИЕ В ФАЙЛЕ ЗАПИСЕЙ ДО ПЕРВОЙ, УДОВЛЕТВОРЯЮЩЕЙ ЗАДАННОМУ ФИЛЬТРУ: УСТАНОВИТЬ НАЧАЛО ФАЙЛА. ПОКА НЕ КОНЕЦ ФАЙЛА ДЕЛАТЬ ПРОЧИТАТЬ ОЧЕРЕДНУЮ ЗАПИСЬ. ЕСЛИ ОЧЕРЕДНАЯ ЗАПИСЬ УДОВЛЕТВОРЯЕТ ФИЛЬТРУ ТО ВЫЙТИ ИНАЧЕ УДАЛИТЬ ОЧЕРЕДНУЮ ЗАПИСЬ ИЗ ФАЙЛА. ВСЕ ЕСЛИ ВСЕ ПОКА ЕСЛИ ЗАПИСИ НЕ УДАЛЕНЫ ТО НАПЕЧАТАТЬ "ЗАПИСИ НЕ УДАЛЕНЫ". ИНАЧЕ НАПЕЧАТАТЬ "УДАЛЕНО н ЗАПИСЕЙ". ВСЕ ЕСЛИ

Рис. 8.4. Пример одного шага детализации на псевдокоде.

Идею пошаговой детализации приписывают иногда Дейкстре [8.1]. Однако Дейкстра предлагал принципиально отличающийся метод построения текста модуля [8.2], который нам представляется более глубоким и перспективным. Во-первых, вместе с уточнением операторов он предлагал постепенно (по шагам) уточнять (детализировать) и используемые структуры данных. Во-вторых, на каждом шаге он предлагал создавать некоторую виртуальную машину для детализации и в ее терминах производить детализацию всех уточняемых понятий, для которых эта машина позволяет это сделать. Таким образом, Дейкстра предлагал, по-существу, детализировать по горизонтальным слоям, что является перенесением его идеи о слоистых системах (см. лекцию 6) на уровень разработки модуля. Такой метод разработки модуля поддерживается в настоящее время пакетами языка АДА [8.7] и средствами объектно -ориентированного программирования [8.9].

– Конец работы –

Эта тема принадлежит разделу:

НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ИСТОРИЧЕСКИЙ И СОЦИАЛЬНЫЙ КОНТЕКСТ ПРОГРАММИРОВАНИЯ. ИСТОЧНИКИ ОШИБОК В ПРОГРАММНОМ СРЕДСТВЕ

ВВЕДЕНИЕ... Лекция НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ... Программа как формализованное описание процесса обработки данных Программное средство...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Программа как формализованное описание процесса обработки данных. Программное средство.
Целью программирования является описание процессов обработки данных (в дальнейшем - просто процессов). Согласно ИФИПа [1.1]: данные - это представление фактов и идей в формализованном

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

Надежность программного средства.
Альтернативой правильного ПС является надежное ПС. Надежность ПС - это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода врем

Технология программирования как технология разработки надежных программных средств.
В соответствии с обычным значением слова "технология" [1.6] под технологией программирования будем понимать совокупность производственных процессов, приводящую к созданию требуемог

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

Интеллектуальные возможности человека.
Дейкстра [2.1] выделяет три интеллектуальные возможности человека, используемые при разработке ПС: · способность к перебору, · способность к абстракции, · способность к м

Неправильный перевод как причина ошибок в программных средствах.
При разработке и использовании ПС мы многократно имеем дело [2.3] с преобразованием (переводом) информации из одной формы в другую (см.рис.2.1). Заказчик формулирует свои потребности в ПС в виде не

Модель перевода.
Чтобы понять природу ошибок при переводе рассмотрим модель [2.3], изображенную на рис.2.2. На ней человек осуществляет перевод информации из представления A в представление B. При этом он совершает

Специфика разработки программных средств.
Разработке программных средств присущ ряд специфических особенностей [3.1]. · Прежде всего, следует отметить некоторое противостояние: неформальный характер требований к ПС (постано

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

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

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

Методы борьбы со сложностью.
Мы уже обсуждали в лекции 2 сущность вопроса борьбы со сложностью при разработке ПС. Известны два общих метода борьбы со сложностью систем: · обеспечения независимости компонент системы;

Обеспечение точности перевода.
Обеспечение точности перевода направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС. Это требует придерживаться при переводе определен

Контроль принимаемых решений.
Обязательным шагом в каждом процессе (этапе) разработки ПС должна быть проверка правильности принятых решений. Это позволит обнаруживать и исправлять ошибки на самой ранней стадии после ее возникно

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

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

Спецификация качества программного средства.
Разработка спецификации качества сводится, по-существу, к построению своеобразной модели качества разрабатываемой ПС [4.2, 4.3]. В этой модели должен быть перечень всех тех достаточно элементарных

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

Методы контроля внешнего описания программного средства.
Разработка внешнего описания обязательно должна завершаться проведением тщательного и разнообразного контроля правильности внешнего описания. Целью этого процесса является найти как можно больше ош

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

Метод таблиц решений.
0

Операционная семантика.
В операционной семантике алгебраического подхода к описанию семантики функций рассматривается следующий частный случай системы равенств (5.1): f1(x1, x2, ... , xk)= E1, f2(x1, x2,

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

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

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

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

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

Контроль архитектуры программных средств.
Для контроля архитектуры ПС используется смежный контроль иручная имитация. Смежный контроль архитектуры ПС сверху - это ее контроль разработчиками внешнего описания: разработчиками специф

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

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

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

Контроль структуры программы.
Для контроля структуры программы можно использовать три метода [7.5]: · статический контроль, · смежный контроль, · сквозной контроль. Статический контроль состо

Порядок разработки программного модуля.
При разработке программного модуля целесообразно придерживаться следующего порядка [8.1]: · изучение и проверка спецификации модуля, выбор языка программирования; · выбор

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

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

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

Свойства основных конструкций структурного программирования.
Рассмотрим теперь свойства основных конструкций структурного программирования: следования, разветвления и повторения. Свойства следования выражает следующая Теорема 9.3. Пусть

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

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

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

Автономная отладка модуля.
При автономной отладке каждый модуль на самом деле тестируется в некотором программном окружении, кроме случая, когда отлаживаемая программа состоит только из одного модуля. Это окружение состоит [

Комплексная отладка программного средства.
Как уже было сказано выше, при комплексной отладке тестируется ПС в целом, причем тесты готовятся по каждому из документов ПС [10.8]. Тестирование этих документов производится, как правило, в поряд

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

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

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

Обеспечение автономности программного средства.
Этот примитив качества обеспечивается на этапе спецификации качества принятием решения об использовании в разрабатываемом ПС какого-либо подходящего базового программного обеспечения или не использ

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

Обеспечение защищенности программных средств.
Различают следующие виды защиты ПС от искажения информации: · защита от сбоев аппаратуры; · защита от влияния "чужой" программы; · защита от отказов "своей

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

Обеспечение легкости применения программного средства.
П-документированость ПС определяет состав пользовательской документации В предыдущей лекции было уже рассмотрено обеспечение двух из пяти примитивов качества (устойчивость и защищен

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

Обеспечение сопровождаемости.
С-документированность, информативность и понятность определяют состав и качество документации по сопровождению (см. следующую лекцию). Кроме того, относительно текстов программ (модулей) можно сдел

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

Пользовательская документация программных средств.
Пользовательская документация ПС (user documentation) объясняет пользователям, как они должны действовать, чтобы применить данное ПС. Она необходима, если ПС предполагает какое-либо взаимоде

Документация по сопровождению программных средств.
Документация по сопровождению ПС (system documentation) описывает ПС с точки зрения ее разработки. Эта документация необходима, если ПС предполагает изучение того, как оно устроена (сконстру

Назначение аттестации программного средства.
Аттестация ПС - это авторитетное подтверждение качества ПС [14.1]. Обычно для аттестации ПС создается представительная (аттестационная) комиссия из экспертов, представителей заказчика и пред

Виды испытаний программного средства.
Известны следующие виды испытаний ПС [14.2,14.3], проводимых с целью аттестации ПС: · испытания компонент ПС; · системные испытания; · приемо-сдаточные испытания;

Методы оценки качества программного средства.
Оценка качества ПС по каждому из критериев сводится к оценке каждого из примитивов, связанных с этим критерием качества ПС, в соответствии с их конкретизацией, произведенной в спецификации качества

Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств.
Окружающий нас мир состоит из объектов и отношений между ними [15.1]. Согласно В. Далю [15.2] объект (предмет)  это все, что представляется чувствам (объект вещественный) или уму (объект ум

Особенности объектного подхода к разработке внешнего описания программного средства.
При объектном подходе этап внешнего описания ПС оказывается существенно более емким и содержательным по сравнению с реляционным подходом [15.3, 15.4, 15.5, 15.6]. Определение требований за

Особенности объектного подхода на этапе конструирования программного средства.
На этапе конструирования при объектном подходе продолжается процесс объектного моделирования: уточняются модели, построенные на этапе внешнего описания, в терминах описания программных систем и про

Особенности объектного подхода на этапе кодирования программного средства.
На этапе кодирования при объектном подходе используются языки программирования уже другого типа – объектно-ориентированные [15.7, 15.8]. Считается, что язык программирования поддерживает объ

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

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

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

Понятие компьютерной технологии разработки программных средств и ее рабочие места.
Имеются некоторые трудности в выработке строгого определения CASE-технологии (компьютерной технологии разработки ПС). CASE - это абревиатура от английского Computer-Aided Software Engineering (Комп

Инструментальные системы технологии программирования.
Для компьютерной поддержки разработки и сопровождения больших ПС с продолжительным жизненным циклом используются инструментальные системы технологии программирования. Инструментальная система те

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги