- •Технология программирования
- •Содержание
- •1. Курсовой проект по технологии программирования
- •1.1. Цели и задачи дисциплины
- •1.2. Тематика курсовых проектов
- •1.3. Сроки выполнения отдельных этапов
- •1.4. Порядок защиты курсового проекта
- •2. Содержание пояснительной записки
- •3. Разработка технического задания
- •3.1. Соглашение между заказчиком и исполнителем
- •3.2. Правила оформления технического задания
- •4. Анализ и методы решения задачи
- •5. Анализ потоков данных. Организация структур данных программы
- •5.1. Диаграммы потоков данных
- •5.2. Представление потоков данных
- •5.3. Структуры данных
- •5.4. Диаграмма Джексона
- •6. Разработка структуры программы
- •6.1. Декомпозиция программной системы
- •6.2. Методы проектирования
- •6.3. Модульное программирование
- •6.4. Драйвера и заглушки
- •Разработка алгоритмов решения задачи
- •7.1. Описание алгоритмов
- •7.2. Методы разработки алгоритмов
- •8. Разработка пользовательского интерфейса
- •9. Текст программы
- •9.1. Структура листинга
- •9.2. Количество операторов в строке
- •9.3. Отступы
- •9.4. Операторные скобки
- •9.5. Пробелы
- •9.6. Пустые строки
- •9.7. Имена
- •9.8. Комментарии
- •10. Тестирование и отладка программы
- •11. Разработка программных документов
- •11.1. Единая система программной документации
- •11.2. Руководство пользователя
- •11.3. Руководство системного администратора
- •12. Требования по оформлению пояснительной записки
- •Библиографический список
- •Приложения
- •4. Требования к программной документации
- •Федеральное агентство по образованию рф Омский государственный технический университет Кафедра «Автоматизированные системы обработки информации и управления»
- •Пояснительная записка к курсовому проекту на тему: Система учета текущей успеваемости студентов
9.7. Имена
Типичной ошибкой начинающих является стремление давать всем переменным неосмысленные однобуквенные имена, например, m, n, a, s, p и т.п. Это глубоко порочная практика, поскольку при этом теряется сам смысл понятия имя. Однобуквенные имена принято давать только индексам. Исключением являются случаи, когда количество переменных в процедуре очень мало (порядка 1-3 переменных), и смысл их хорошо понятен из контекста или комментариев. Пример — описанная в подразделе функция factorial.
Все переменные, имеющие сколько-нибудь важное значение в программе, необходимо снабжать именами, в той или иной мере характеризующими их назначение, например, filename (имя файла), int_vector (целочисленный вектор), size (размер), sum (сумма), maximum (максимум) и т.п. При плохом знании английского языка можно использовать звуковые аналогии русским буквам, например nazv_faila, razmer, summa и т.п. Это не в полной мере соответствует представлению о «хорошем стиле», но, несомненно, гораздо нагляднее использования совсем бессмысленных имен.
Еще в большей мере сказанное относится к именам функций и классов. Такие имена часто делают довольно длинными для улучшения понимаемости их смысла, а отдельные компоненты имен начинают с большой буквы, например ObjectList, ArcSet и т.п. Имена функций при этом рекомендуется начинать с глагола, например GetPersonName, SetNewDate и т.п. Альтернативным способом выделения компонент в сложных названиях является использование символа подчеркивания, например add_record, copy_object и т.п.
Все сказанное вполне относится и к именам файлов с программами. Имена файлов должны нести обязательную смысловую нагрузку, поясняя свое «содержимое». Например, заголовочный файл, содержащий описание класса vector логичнее всего назвать vector.h или vector_description.h, а файл, содержащий реализацию методов этого класса — vector.cpp или vector_implementation.cpp. Все современные операционные системы (UNIX, Windows 95/98/NT и т.д.) поддерживают длинные имена файлов, вследствие чего искусственно упрощать и укорачивать их нет необходимости. Более того, при разработке крупного продукта количество исходных файлов измеряется сотнями. В этой ситуации невозможно «помнить», в каком файле что находится, а значит длинные и понятные имена жизненно необходимы. Появляется также необходимость организации хранения файлов в виде дерева. В этом случае, указанные в примере файлы могут храниться в отдельном подкаталоге vector и именоваться vector\vector.h и vector\vector.cpp.
9.8. Комментарии
Время, потраченное на написание комментариев, многократно окупится при любых модификациях программы. Однако комментировать все подряд, включая самоочевидные действия, как в следующем примере, тоже не стоит:
size = 10; //Присвоить size значение 10
for( i=0; i<size; i++) //Цикл по i от 0 до size
{ . . .
}
Такого рода комментарии только загромождают программу.
Комментировать следует:
заголовок файла, описывая содержимое данного файла;
заголовок функции, поясняя назначение ее аргументов и смысл самой функции;
вводимые переменные и структуры данных;
основные этапы и особенности реализуемых алгоритмов;
использование различных программных «трюков» и нестандартных приемов;
любые места, которые трудны для быстрого понимания.