
- •Качественные характеристики программ
- •Процедурная абстракция, абстракция данных и классы ее операций.
- •Модель памяти Win32.Выделение памяти в стеке.
- •Выделение динамической памяти. Указатели.
- •Тестирование по
- •Алгоритм внутренней сортировки. Алгоритм пирамиды(Метод Уильямса-Флойда)
- •I индекс для прохода по массиву
- •Алгоритм внутренней сортировки. Сортировка Шелла.
- •Алгоритм внутренней сортировки. Обменная поразрядная сортировка
Процедурная абстракция, абстракция данных и классы ее операций.
Процедурная абстракция наделяет прогу двумя особенностями1.локальность, т.е возможность разработки одной абстракции независимо от другой.2.модифицируемость-если спецификация функции не меняется то возможно изменение тела функции без изменения программы в целом.
Абстракция данных Существует 4 класса операций в абстракции данных.1.примитивные конструкторы -создают объекты соответствующего им типа, не использовавшие параметры.2.Конструкторы-эти методы используют данные соответствующего им типа и выдают новые данные того же типа.3.Модификаторы-модифицируют объекты соответствующего им типа.4.Наблюдатели-используют в качестве параметров объекты соответствующего им типа и выделяют данные другого типа.
Модель памяти Win32.Выделение памяти в стеке.
Используется с Windows95(32-разрядная адресация=232 =4Гб
под
нужды ОС
4Мб(бласть поддержки 16-разрядных приложений.Только в W.95)
Редкий комп может представить каждому приложению 4Гб оперативной памяти.По этому используется механизм виртуальной памяти.т.е логические адреса преобразуются в физические адреса ЗУ только по мере необходимости. К ЗУ относятся оперативная память и свободное место на жестком дисках.
Не использованные блоки данных на оперативной памяти записываются в swapfile и считываются от туда по мере необходимости. С оперативной памятью работать быстрее, но появляется возможность выделения 4Гб.для каждого процесса.
Выделение динамической памяти. Указатели.
int *n=new int; выделение 4б памяти под один элемент памяти.
int *m=new int(10);выделение памяти для хранения одного целочисленного значения.
int *p=new int[10];в указатель памяти будет помещено 10символов.
*m=125;доступ к памяти, хранящей ее значение
*m=адрес;доступ к памяти ,хранящей адрес
int *u=(int*)malloc(sizeof(int));
int
адрес начало области, где храниться целочисленное значение.
Для оператора new:
delete n;
delete m;
delete[]p; Опреаторы delete и функция free(u);Получают как свободную область памяти, в которой были данные(целочисленные значения, так и сам указатель остается функционирующим.
P.S:Для массивов в операторе delete необходимо ставить [], если их нет, то свободной будет помечена область памяти, занимаемая нулевым элементом массива.Остальные элементы не освобождаются.
Тестирование по
Тестирование- это процесс выполнения программы с целью обнаружения ошибок.Если нет возможности осуществить полное тестирование ПО,(т.е запуск проги при всех допустимых значениях исходных данных), то останется вероятность того, что в проге останется часть не выявленных ошибок. Используя основные правила тестирования можно значительно уменьшить эту вероятность.Тестирование осуществляется на всех этапах ж.ц.ПО. Чем раньше выявлена ошибка, тем больше вероятность ее правильного исправления и меньше стоимость работ по ее устранению.
Процесс разработки ПО предполагает 3этапа тестирования:1.Тестирование отдельных модулей проги.2.Комплексное тестирование ПО в целом.3.Оценочное тестирование на соответствие ПО основным критериям качества.
Для повышения качества тестирования рекомендуется использовать следующие правила
1.Результаты работы системы д/б известны до начала тестирования.2.Нужно избегать тестирование программы автором.3.Нужно тщательно изучать результат тестирования. Нужно производить тестирование и на неправильных данных. Вероятность того, что в программе остались не выявленные ошибки пропорциональна количеству найденных ошибок.