Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / ВычТех.doc
Скачиваний:
69
Добавлен:
15.02.2014
Размер:
485.38 Кб
Скачать

16. Жизненный цикл программы.

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

В свою очередь фаза разработки делится на 4 под фазы:

1.Анализ задачи

2.Проектирование

3.Кодирование

4.Тестирование

Каждый период заканчивается своей документацией.1-техническое задание; 2- эскизный, технический проекты, пояснительная записка; 3- распечатка программы и статическое тестирование; 4- сборка программы, программа тестирования, результаты тестирования.

Тестирование: 1.автономное (тестирование модулей в среде); 2.совместное; 3.комплексное (с точки зрения пользователя).

Разработка ПО может вестись с использованием лавинообразной (рис.1.а) или итеративной(рис.1.б) моделей разработки. Лавинообразная модель (модель "водопада") может быть использована для разработки ПО небольшого размера (до 10000 операторов исходного языка) с хорошо определенной алгоритмической базой.

Этапы жизненного цикла ПО

а - традиционная лавинообразная модель, б -итеративная модель с использованием объектно-ориентированного подхода

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

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

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

Сетевая структура

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

АэропортНомерТипДни Время

Назначения рейса самолета отправления

Адлер 302 Ту-154 1,4,6 14-30

Киев 320 Ту-154 2,3 20-45

Новосибирск 280 АН-24 1,4,7 13-00

Табличная структура

Шаг Вход Буфер Выход

A 5-3-4-8-6-7

B 5-3-4-8 6-7

C 5-3-4 8-7 6

D 5-3 8-4 7-6

E 5 3-4 8-7-6

F 5-4 3 | 8-7-6

G 5 4-3 | 8-7-6

H 5-4-3 | 8-7-6

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

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

Находим (выбираем) в массиве элемент с минимальным значени­ем на интервале от 1-го элемента до n-го (последнего) элемента и меня­ем его местами с первым элементом. На втором шаге находим элемент с минимальным значением на интервале от 2-го до n-го элемента и меня­ем его местами со вторым элементом.

Сортировка обменом ("пузырьковая" сортировка)

Принцип метода:

Слева направо поочередно сравниваются два соседних элемента, и если их взаиморасположение не соответствует заданному условию упоря­доченности, то они меняются местами. Далее берутся два следующих со­седних элемента и так далее до конца массива.

После одного такого прохода на последней n-ой позиции массива будет стоять максимальный элемент ("всплыл" первый "пузырек"). По­скольку максимальный элемент уже стоит на своей последней позиции, то второй проход обменов выполняется до п-1-го элемента. И так далее. Всего требуется п-1 проход.

Сравнение прямых методов сортировки

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

Если сравнить рассмотренные прямые методы между собой, то в среднем методы вставки и выбора оказываются приблизительно эквива­лентными и в несколько раз (в зависимости от длины массива) лучше, чем метод обмена ("пузырька").

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

В обычном процессе выбора с замещением наименьший элемент каждого блока в некотором отрезке всегда не меньше, чем наибольший элемент в предыдущем блоке этого отрезка: это соответствует «1 степени свободы». Условие: наименьший элемент каждого блока был не меньше, чем наибольший элемент предыдущего блока, но он не должен быть меньше, чем наибольшие элементы каких-то m предыдущих блоков того же отрезка.

Сортировка многофазным слиянием с использованием «горизонтального распределения»: Данный алгоритм берет начальные отрезки и распределяет их один за другим по файлам, пока запас начальных отрезков не исчерпается. Затем он определяет, как надо сливать файлы, используя Р-путевое слияние, в предположении, что имеются Т=Р+1>=3 файлопротяжных устройств. Файл Т можно использовать для хранения ввода, т.к. в него не записывается ни одного начального отрезка. В памяти хранятся следующие таблицы: -A[j] точное фибоначивое распределение, к которому мы стремимся(<=T);-D[j]число фиктивных отрезков, которые считаются присутствующими в начале файла на логическом устройстве с номером j (1<=j<=T);-TAPE[j] номер физического файлопротяжного устройства, соответствующего логическому устройству с номером j.

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

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

2. планирование отладки;

3. разработка драйверов тестов; 4. испытание ПО.

Результатом работы должно являться оттестированное и отлаженное ПО.

Соседние файлы в папке шпоргалка