Спецификации и их роль в разработке программ

Технология разработки программных продуктов

Методические указания к выполнению лабораторных работ
для студентов специальности 22.03 - Программное обеспечение
вычислительной техники и автоматизированных систем

Белгород 2005


УДК 681.3.06(075)

ББК 32.973–0.18.2

Т38

Составитель Румбешт В.В., кандидат технических наук, доц.

Рецензент Михилев В.М., кандидат технических наук, доц.

Т38 Технология разработки программных продуктов: Методические указания. – Белгород: Изд-во БИЭИ, 2005. – 42 с.

В методических указаниях изложены современные методы специфицирования программного обеспечения такие, как Р -технология
(ГОСТ 19.005–85) и метод структурного анализа. Содержатся задания к выполнению лабораторных работ, посвященных изучению указанных методов.

Предназначены для студентов специальности 22.03.

УДК 681.3.06(075)

ББК 32.973–0.18.2

Ó Белгородский инженерно-экономический
институт (БИЭИ), 2005


ОГЛАВЛЕНИЕ

1. Спецификации и их роль в разработке программ.......  
2. Основные принципы Р -технологии......................................  
2.1. Графические структуры Р -схем............................................................  
2.2. Операции соединения графических структур.....................................  
2.3. Дополнительные графические элементы Р -схем................................  
2.4. Использование Р -схем в программах...................................................  
2.5. Система инструментальной поддержки Р -технологии......................  
3. Метод структурного анализа...................................................  
3.1 Диаграммы потоков данных...................................................................  
3.2. Словарь данных.......................................................................................  
3.3. Способы задания спецификаций процессов........................................  
3.4. Диаграммы сущность–связь..................................................................  
3.5. Диаграммы переходов–состояний........................................................  
3.6. Структурные карты.................................................................................  
3.7. Система инструментальной поддержки структурного анализа.......  
ЛАБОРАТОРНАЯ РАБОТА № 1. Изучение основных принципов Р -технологии.....................................  
ЛАБОРАТОРНАЯ РАБОТА № 2. Изучение основных управляющих конструкций Р -схем.........................  
ЛАБОРАТОРНАЯ РАБОТА №3. Ознакомление с CASE-средством EasyCASE...........................................  
ЛАБОРАТОРНАЯ РАБОТА №4. Разработка диаграмм потоков данных.................................  
ЛАБОРАТОРНАЯ РАБОТА №5. Разработка диаграмм сущность–связь.................................  
ЛАБОРАТОРНАЯ РАБОТА №6. Разработка диаграмм переходов–состояний......................  
Лабораторная работа №7. Разработка структурных карт...........  
Список Литературы.......................................................................…..  

Спецификации и их роль в разработке программ

Спецификация программы – это описание задачи, которую решает программа. Слово "спецификация" буквально означает "описание" или "получение описания", а "специфицировать" значит "описывать".

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

К основным свойствам спецификации можно отнести следующее.

1. Спецификация не должна содержать деталей реализации. В отличие от программы она "говорит", что надо сделать, а не как это делать.

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

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

4. Спецификация должна обладать полнотой описания задачи: ничто существенное не должно быть упущено.

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

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

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

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

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

1. Разбиение на уровни абстракций.

2. Ограниченное число элементов, приходящихся на уровень абстракции (не более 7).

3. Ограниченный контекст – включается лишь то, что входит в процесс, а все остальное из рассмотрения исключается.

4. В описание включаются как сами данные, так и действия над ними.

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

2. Основные принципы Р- технологии

Р- технология была создана в Институте Кибернетики АН УССР. Для написания спецификаций в Р- технологии используется язык нагруженных по дугам ориентированных графов. Конкретная спецификация, созданная с помощью Р- технологии, представляет собой иерархию таких графов, называемых Р- схемами.

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

* построение Р- схемы или иерархии Р- схем, реализующей поставленную задачу;

* генерацию исходного текста программы по заданной Р- схеме;

* компиляцию и компоновку загрузочного модуля программы;

* отладку и тестирование, полученной программы;

* генерацию Р- схемы по исходному тексту программы;

* документирование.

Язык Р- схем является удобной оболочкой, в которую может быть погружен любой язык программирования от ассемблера до языка высокого уровня, и в настоящее время является составной частью Единой системы программной документации (ГОСТ 19.005–85).

2.1. Графические структуры Р- схем

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

Р- технология предполагает, что спецификации создаются по безбумажной схеме и весь процесс разработки выполняется с помощью средств вычислительной техники. При этом элементы Р- схем вводятся в ЭВМ и выводятся из нее с помощью алфавитно-цифровых (не графических) устройств ввода/вывода, а для изображения этих элементов применяются стандартные алфавитно-цифровые символы: “o”, “-”, “=“, “>“, “<“, “!”.

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

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

Рис. 1. Варианты текстовой нагрузки дуги в Р- схеме

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

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

Рис. 2. Изображение петель на Р–схемах

Построение Р- схемы основывается на комбинации двух структур, называемых базовой и специальной. Структуры Р- схем представлены на
рис. 3.

Рис. 3. Типовые структуры Р- схем:
а – базовая структура; б – специальная структура


На рис. 3 символами: Y1, Y2, …, YN, YN1, YN2, …, YNM обозначены условия прохождения по дуге; символами: D1, D2,…, DN, DN1,
DN2, …, DNM – действия, выполняемые, если соответствующие условия истинны; символом Y – условие повторения вида “i = 1 step 1 until K”, “i = 1 … K” и т.п. Условия Y, Y1, Y2,…, YNM или действия D1, D2, …, DNM могут отсутствовать на дугах, обозначая тем самым безусловный переход, или переход без выполнения действия.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: