Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

Принцип генерируемости

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

Принцип функциональной избыточности

Принцип предусматривает возможность проведения одной и той же работы различными средствами (для удобства пользователя).

Принцип "по умолчанию"

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

Системный подход.

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

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

Частотный случай системного подхода - в блочно-иерархический подход. В нем процесс проектирования расчленяется на уровни.

Парадигмы программирования.

Процедурно-ориентированное программирование (алгоритмы)

Объектно-ориентированное программирование (классы и объекты)

Логически ориентированное программирование (цели, выраженные в исчислении предикатов)

Ориентированное на правила программирование (правила "если …, то …")

Ориентированное на соотношения программирование (инвариантные соотношения)

Параллельное программирование (потоки данных)

Стандарты программирования

Группа стандартов ГОСТ "Единая система программоной документации" (ЕСПД)

Стандарты ANSI (Американский Национальный институт стандартов)

Описание жизненного цикла ПО

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

 

Стадии и этапы разработки программ (по ГОСТ 19.102-77).

раммирование визуальное язык макрос

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

Заказчик принимает решение по дальнейшему продолжению проектных работ.

Этапы проекта - части стадии проекта, выделяемые по соображениям единства характера работ.

Программный документ Техническое задание (ТЗ) помимо основных требований к программному изделию содержит проект порядка взаимодействия заказчика и исполнителя по окончании конкретных этапов и требований к их выполнению.

Эскизный проект (ЭП) - несколько альтернативных вариантов будущего изделия и уточнения требований на основе их анализа.

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

Рабочий проект (РП) - необходим для реализации изделия в соответствии с ранее намеченным планом.

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

НИР - научно-исследовательская работа.

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


Тема 2. Выработка требований. ТЗ. Методы и инструменты логического проектирования

1. Первые универсальные языки

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

. Ассемблер

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

Становилось невозможным применение хитроумных приемов. Впервые в истории программирования появилось два представления программы: в исходных текстах и в откомпилированном виде.

Перевод вначале из машинных кодов в ассемблер (дизассемблирование) был возможен, но с появлением меток и макросов, процесс затруднился, а затем и вовсе стал невозможен.

. Фортран

г. Корпорация IBM, группа разработчиков во главе с Джоном Бакусом

Это первый язык программирования высокого уровня. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры.

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

Пр.: Do 10 I = 1, 100 или Do10I=1.100 (отличаются только запятой, первая - цикл, вторая объявление вещественной переменной)

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

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

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

. Cobol.

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

. PL/1

г. IBM, создан для замены Фортрана и Кобола.

Неудачный синтаксис, не распространился.

. Basic.

г. в Дартмуртском колледже был создан BASIC - многоцелевой язык символических инструкций для начинающих. Он легко интерпретируется и компилируется. Распространился как язык для обучения программированию. Современный язык Microsoft Visual Basic поддерживает объектно-ориентированное программирование (ООП).

. Algol.

г. Петер Наур создал язык Алгол. Затем возникла целая серия алгол подобных языков, куда входит и Паскаль.

Не распространился.

. Pascal.

г. Никлаус Вирт.

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

Отрицательная черта - отсутствие в нем средств для разбиения программы на модули.

г. Modula2

г. Modula3

Современные ОО версии этих языков Oberon, Oberon2.

. С и С++

г. Керниган и Ритчи, язык С, как язык для разработки Операционной системы UNIX (поэтому его называют переносимым Ассемблером). Компилятор С очень слабо контролирует типы, поэтому очень легко написать внешне совершенно правильную, но логически-ошибочную программу.

г. Бьярн Страуструп создал первую версию языка С++, добавив объектно-ориентированные черты в С, взятые из языка Simula.

г. последняя версия С++.

Язык стал основой для разработки больших и сложных проектов. Имеются и слабые стороны, вытекающие из требований эффективности.

. Java

г. корпорация Sun Microsystems, Кен Арнольд и Джеймс Гослинг.

Наследовал синтаксис С и С++ и был избавлен от некоторых неприятных черт последнего.

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

. С# -2000 г. Корпорация Microsoft.

Схож с Java, ориентирован, в основном, на разработку многокомпонентных Интернет-приложений.

Языки обработки данных.

г. APL (Aplication Programming Language) - математическая обработка данных - не получил распространения.

г. Snobol и Icon - мощные средства обработки строк и текста. Наследник - Perl.

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

г. SETL - язык для описания операций над множествами.

г. Lisp - язык для обработки списков, получил широкое распространение в системах искусственного интеллекта. Потомки: Planner (1967), Scheme (1975), Common Lisp (1984). Многие черты были унаследованы языками функционального программирования.

Скриптовые языки:

для использования в часто изменяемых программах, очень небольших программах, когда для выполнения операторов языка затрачивается время несопостовимое со временем их разбора.Script - создан в компании Netscape Communications для описания сложного поведения веб-страниц. Интерпретируется браузером во время отображения веб-страницы.Script - создан в компании Microsoft, альтернатива Java Script, схож с Visual Basic.(как Perl, но менее распространен).

г. Simula

г. Smalltalk

г. Eiffel


Тема 3. UML. Описание функциональности разработки. Методы и инструменты

 

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

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

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

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

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

. Статические структуры данных (векторы, массивы, записи и таблицы).

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

к-мерным массивом называется конечное упорядоченное множество (к-1) мерных массивов, все элементы которых принадлежат одному и тому же типу. При к=1 получаем вектор.

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

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

. Полустатические структуры данных (стеки, очереди).

Определения этих структур данных основаны на понятии списка или списковой структуры. Списком называется линейно-упорядоченная последовательность элементов данных E (1),E (2) …E (n), где n>0, причем каждый элемент E (i) характеризуется одним и тем же набором полей. Такой список называют линейным списком из-за линейной упорядоченности элементов. При n=const и соответствующем выборе элемента данных, последовательный линейный список сводится к вектору, к массиву, записи или таблице. Так, вектор может быть определен как последовательный линейный список, в котором каждый элемент-скаляр одного и того же типа. При n = Var последовательный линейный список представляет собой структуру, не обладающую свойством постоянства. Однако, хотя n = Var, максимальное значение n задается явно и ограничивает длину списка. Такие структуры называют полустатические. Полустатические структуры данных - это последовательные линейные списки с переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом. К таким структурам относятся стеки и очереди.

. Динамические структуры данных (односвязные, двусвязные списки).

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

. Непостоянство и непредсказуемость размера (числа элементов) структуры в процессе ее обработки.

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

Списком называется линейно-упорядоченная последовательность элементов данных E (1), E (2) …E (n), где n>0, причем каждый элемент E (i) характеризуется одним и тем же набором полей. Такой список называют линейным списком из-за линейной упорядоченности элементов. Связный список - такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка. В односвязном линейном списке каждый элемент состоит из двух различных по назначению полей: содержательного и поля указателя. Линейный двусвязный список отличается от односвязного тем, что каждый его элемент содержит два указателя, один из которых (прямой указатель) адресует следующий элемент в списке, а другой (обратный указатель) - адресует предыдущий элемент списка. Примером двусвязного списка является дерево.

Бинарное дерево поиска - в бинарном дереве поиска каждая вершина имеет два указателя left и right, которые указывают на дочерние вершины. Эти указатели могут быть равны null, если у дерева меньше двух вершин. Структуру бинарного дерева поиска определют значения в его вершинах: все дочерние узлы, расположенные левее данной, имеют меньшие значения, а все дочерние вершины правее - большие.

Двоичный поиск занимает меньшее время, чем обычный (O (log n)). Дерево бинарного поиска достраивается рекурсивным спуском по дереву: на каждом шаге спуска выбирается соответстующая левая или правая ветка, пока не найдется место для вставки новой вершины. Новая вершина добавляется как лист дерева, т.е. у него пока отсутствуют дочерние вершины.

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

Хэш-таблицы - сочетание массивов и списков с использованием специального механизма, называемого "хэшированием".

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

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

Для выполнение основных операции: вставка, удаление, поиска в хэш таблицах затрачивается константное время O (1). Хэш-таблицы применяются для символьных таблиц.

Тема 4. Построение диаграммы классов. Методы, технологии, инструменты

 

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

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

. В программах рекомендуется применять 4 типа конструкций: а) последовательность (модулей, операторов) б) разветвление (условный оператор); в) цикл 1) с предусловием 2) с постусловием 3) выбор из нескольких альтернатив

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

 

 

 

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

Модуль - это программа, обладающая тремя основными атрибутами:

. он выполняет одну или несколько функций;

2. модуль реализует некоторую логику (алгоритм).

. используется в одном или нескольких контекстах.

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

Принципы модульного программирование следующие:

а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).

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

Функциональный стиль программирования основан на аргументной постановке задачи абстракции математической функции и аналитическом методе построения программ подобно математическим преобразованиям. Функциональное программирование широко используется в языке Лисп. Можно привести пример на языке Паскаль: Begin {Функциональный стиль) Writeln (Ln (Abs (Sin (5.5)); End., а если бы использовали процедурный стиль программирования то: Var x,y,z,t: Real; {Процедурный стиль} Begin х: =5.5; y: =Sin (x); z: =Abs (y); t: = Ln (z); Writeln (t); End.

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

 

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

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

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

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

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

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

Мобильность - это способность ПП быть перенесенным из одной вычислительной среды (окружения) в другую, в частности, с одной ЭВМ на другую (применяют термин "перенос с одной платформы на другую”.

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

Предварительное внешнее проектирование.

Следует отметить, что наиболее общей рекомендацией для этого этапа является структурирование (декомпозиция) целей программного продукта по схеме: основные цели - > подцели 1-го уровня. - >. подцели i-го уровня - >.. - > подцели n-го уровня - > функции для пользователя ПО.

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

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

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

схемы данных;

схемы программ;

схемы работы системы;

схемы взаимодействия программ;

схемы ресурсов системы.

Схемы данных отображают путь данных при решении задач и определяют этапы обработки и применяемые носители данных.

Схемы программ отображают последовательность операций в программе.

Схемы работы системы отображают управление операциями и поток данных в системе.

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

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

Детальное внешнее проектирование

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

текстовое описание,

структурированный естественный язык,

таблица решений,

дерево решений,

визуальный язык,

блок-схема,

алгоритмический язык программирования.

Восходящий и нисходящий методы проектирования.

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

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

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

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

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

б) если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки; в) если очередной символ не находится в заданном диапазоне, (положим, от ‘а’ до ‘я’), то подать звуковой сигнал и вернуть код ошибки;

г) иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика. Таблица решений для данного примера приведена ниже (таблица 1.1). Здесь ‘Д’ означает ‘да’, ‘Н’ - ‘нет’, 1,2 - помеченные действия выполняются в указанном порядке.

 




Поделиться с друзьями:


Дата добавления: 2014-11-18; Просмотров: 579; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.082 сек.