Общие методические указания. Выполнение курсовой работы следует начать с изучения поста­новки задачи

 

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

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

При проектировании системы определяется схема данных, ко­торая отражает путь данных при решении задач к определяет этапы обработки данных. Для каждого данного определяется источник и приемник. Для всех программ определяются алгоритмы их функциони­рования. Для задания алгоритмов можно использовать графическое представление алгоритмов с помощью схем, которые должны выполнять­ся в соответствии со стандартами [14] . Для увеличения наглядности схема не должна содержать более 50 блоков. Вместо схем алгорит­мов можно использовать его текстовое представление с помощью специальных языков проектирования, описанных в литературе, на­пример [ 2, с.60-65; 3, с.92-95] , или язык, разработанный самостоятельно. В последнем случае язык должен быть предварительно описан. Этап проектирования считается выполненным после про­верки всех алгоритмов, разработанных для модулей системы. Для проверки правильности алгоритмов, для реализации которых пред­полагается использовать язык Ассемблер, рекомендуется его предварительная запись и отладка на языке высокого уровня.

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

Одной из основных задач курсового проектирования по курсу "Системное программирование" является получение практи­ческих навыков по составлений эффективных программ. Перед выпол­нением этапа реализации рекомендуется изучение раздела "Эффек­тивность программ" в [ 3, с.117-178, 4] .

Все программы, разработанные студентом, должны быть описаны в соответствии с принятыми стандартами для описания программ.

 

Тестирование программ

 

Тестирование (выполнение программы с целью обнаружения оши­бок [6]) по различным оценкам авторов занимает более 50 % вре­мени, отведенного для разработки системы.

При выполнении курсовой работы необходимо выполнить тестиро­вание с использованием стратегии "черного" и "белого" ящика. В первом случае структура программы считается неизвестной, тесты формируются с учетом функций программы. Если среди спецификаций есть взаимосвязанные и взаимозависимые спецификации, необходимо использовать функциональные диаграммы 16, с. 75-92] . Если диа­грамма получается громоздкой, необходимо составить диаграммы для части спецификации. Для независимых спецификаций и их частей использовать метод эквивалентных разбиений [6, с.63-66]. Для подготовки тестов с использованием логики программы рекомендуется использовать комбинаторное покрытие условий [6, с, 54-63 ].. Этим способом проверяются только те условия, которые не были прове­рены тестами, сформированными предыдущими методами. Система тестов дополняется тестами, получаемыми с учетом граничных значений.

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