Классификация пакетов программ. Требования к пакетам программ. Типы вариантов разработки. Каскадная модель разработки пакетов программ. Структура и состав команды программистов, страница 2

Комплексная отладка. Система собирается полностью. Все модули начинаю тестироваться на правильность работы друг с другом. Зачастую программные продукты умирают раньше, чем выявлена последняя ошибка.

(Ответ по рисунку)

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

(Ответ по рисунку)

7.  Тестирование и отладка пакетов программ.

Способы тестирования:

1)  Формирование системы тестов

2)  Команда тестировщиков. Задача: найти максимально возможное число ошибок

3)  Beta – тестирование. Практически готовый программный продукт отдаётся потенциальным пользователям (почти бесплатно), которые обязаны посылать результаты тестирования разработчикам. За это они имеют возможность ознакомиться с программой.

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

Способы:

1)  Использование точек останова:

Writeln (‘    э’,A,B,C);

Readln;

2)  Отладчик:

a.  Программа по шагам (в просмотрщике можно задать список переменных значений, которые вы желаете контролировать)

b.  Устанавливать точки останова, на которых останавливается процесс вычисления

3)  Методы отладки, которые пришли и практики:

a.  Настройка программы для «дурака». Нужно найти еще одного человека и  ему рассказать, как работает эта программа (ошибку вы найдете сами);

b.  Использовать вместо «дурака» самого себя.

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

8.  Оптимизация пакетов программ по быстродействию и по использованию памяти.

Критерии:

1)  Оптимизация по объему используемой памяти

2)  По быстродействию

Оптимизация:

1)  Выбор алгоритмов влияет и на быстродействие, и на объем.

Кнут (r Том сортировка и поиск)

Vопер < «Шелла» < Quick сорт. (строится дерево).

2)  Выбор языка реализации

VB, VC, BC, Delphi, Assembler.

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

Рекомендации:  задача определяет язык, на котором она будет решена. Для экономических программ подходит VB и Delphi. Управляющие программы АСУ: VC, BC. Технический процесс с управлением аппаратной частью: ассемблер.

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

3)  Использование операторов (конкретные приёмы программирования)

For i:=1 to 20 do

            Инициализация цикла

                        For j:=1 to 1000 do

Некоторые операторы имеют побочные эффекты (С++)

4)  Использование глобальных и локальных переменных. Глобальные находятся в общих областях и доступны всем

Глобальные

Локальные

  Vозу

↓ Vозу

  быстродействие

быстродействие

Сама переменная + дальний вызов

If (func(m,k)).

5)  Использование типов переменных:

Real, double – 8 байт

Integer – 2, 4 байт

Char – 1 байт

Рекомендация: Если есть возможность без ущерба для решения задачи, то необходимо спускаться до самого нижнего предела хранения данных

6)  Использование overlay-ных структур динамических массивов.

SWP – файл, к который перекачивается информация ОЗУ, в случае ее нехватки

BSOD – гол. Экран.

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

Этот прием экономит ОЗУ, но увеличивает код программы для выделения и освобождения памяти.

Mcb –memory control block, таблица занятой оперативной памяти.

Overlay структуры – механизм такой же, но смысл другой. Практически не используется. Он преобразовался в динамические библиотеки (.dll), т.е. бибилиотеки, которые используются только во время выполнения программы.

7) Использование API – функций

API – applyet program interface – интерфейс, как надо взаимодействовать с программой

Множество API – функций, которое потенциально может потребоваться при решении задач

MFC – Microsoft foundation class, которое реализует концепцию ООП, не требует дополнительных описаний для стандартных классов.

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

9.  Стиль программирования. Комментарии, имена переменных, отладочные операторы, понятные алгоритмы.

Программы пишутся для людей, а не для машин.

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

DECus

1.1.  Общие (пишутся в головном модуле):

-  Название

-  Назначение

-  Автор

-  Описание или ссылка на реализацию алгоритма

-  Дата создания

-  Номер реализованной версии

1.2.  В теле программы, в процедурах и функциях:

-  Описание переменных;

-  Описание входных и выходных параметров;

-  Описание алгоритмов.

Комментарии в теле программы должны нести смысл (что делает данный оператор? Оператор показывает, как это делается?)

c:=0 } задание начальных знаний.

2)  Имена переменных нужно давать осмысленно, т.е. имя переменной должно отражать суть хранимых данных. Такое именование сокращает комментарии в программе. При этом объектный код не увеличивается.

3)  Вставка отладочных операторов. Например, writeln (‘___’,A,profit);

4)  Пиши проще – не нужно придумывать заумные алгоритмы. Чем проще алгоритм, тем выше вероятность правильной реализации программы.

10. Стиль программирования. Явные описания переменных,  использование оверлеев, динамических массивов и API-функций.

5)  Явное описание переменных. Языки Pascal, C – требуют явное описание. VB не требует, а не описанным переменным присваивается тип Variant. Для включения явного описания перед программой нужно записать option explicit

 Использование overlay-ных структур, динамических массивов  и API-функций (Вопрос 9).

11. Стиль программирования. Объектно-ориентированное программирование и неправильные (порочные) приемы программирования.