рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

А. Шопенгауэр

А. Шопенгауэр - Конспект Лекций, раздел Философия, Конспект лекций по Технологии разработке программных продуктов   Важнейшая Технологическая Задача, Возникающая В Процессе Прог...

 

Важнейшая технологическая задача, возникающая в процессе программирования, — соответствие единому стилю программирования. Под стилем программирования обычно понимают [Тассел 1985] набор приемов или методов программирования, которые используют опытные программисты, чтобы получить правильные, эффективные, удобные для применения и легко читаемые программы. Правила хорошего стиля — результат соглашения между опытными программистами. Обычно принципы хорошего стиля программирования являются результатом здравого смысла, исходящего из опыта. Это не набор обязательных правил, установленный раз и навсегда. Брайан Керниган (Вгiап Кernighan) и Роб Пайк (Rob Pike) [Керниган, Пайк 2001] уточняют, что код должен быть прост и понятен, т. е. обладать следующими свойствами:

* очевидная логика;

* естественные выражения;

* использование соглашений, принятых в языке разработки;

* осмысленные имена;

* аккуратное форматирование;

* развернутые комментарии;

* отсутствие хитрых трюков и необычных конструкций.

Правило стандартизации стиля заключается в том, что если существует более одного способа сделать что-либо и выбор произвольный, то следует остановиться на одном способе и всегда его придерживаться. Особое значение имеет единый стиль программирования в процессе работы над программным текстом в коллективных разработках. В большинстве крупных проектов существуют внутренние документы, определяющие стиль программирования команды разработчиков. Известным примером является документ по стилю программирования разработок GNU (http://www.gnu.org/prep/standards_toc.html). Применение таких документов приводит к использованию единого стиля, а следовательно, к повышению читабельности и сопровождаемости программ, а во многих случаях и предотвращению большого класса ошибок. Обратим внимание на то, что есть универсальные рекомендации, а есть рекомендации, связанные с конкретными языками.

Приведем некоторые рекомендации по стилю написания программ на язы ках С и С++, сгруппировав их в тематические классы. Многие рекомендации имеют обоснование — в некоторых случаях строгое, в других — слабое.

 

Структура файлов

Приведем рекомендации по именованию файлов.

* Заголовочные файлы должны иметь расширение h Файлы с программой на языке С должны иметь расширение с, а с программой на языке С++ — сс (в операционной системе Unix) или срр (в операционной системе Windows).

* Имена файлов ДОЛЖНЫ отличаться уже первыми восемью символа Обоснование: Некоторые устаревшие, но, тем не менее, широко используемые операционные системы накладывают ограничения на длину имени файлов.

* Все файлы должны иметь различные имена, даже если они находятся в разных каталогах.

Опишем рекомендации по длине строк.

* Строки не должны быть длиннее 80 символов. Обоснование: Многие текстовые редакторы и системы печати текстов программ ориентирована именно на это максимальное количество символов в строке. Исторически это объясняется текстовым режимом отображения символов на экране 25 строк по 80 символов.

* Лучше всего, если длина строк программы значительно короче 80 символов.

далее представлены рекомендации по организации файлов.

* Следует соблюдать следующий порядок в заголовочных файлах программы на языке С++:

* комментарий к файлу, который оформляется как блочный комментарий. Комментарий может начинаться указанием на лицензию, которая определяет права собственности на данный файл. Комментарий обычно продолжается идентификационной строкой системы управления версиями файлов. Например, для утилиты SССS строка может выглядеть так: %Z %M% %I% %E% и включать символ идентификации SССS, имя файла, номер версии и дату последней идентификации. Комментарий должен содержать краткое описание файла

• защитная проверка, гарантирующая компиляцию данного файла о единственный раз, вне зависимости от числа его включений в мод компиляции. Она должна выглядеть так:

#if !defined(FILENAME_H)

#define FILENAME_H

• импортируемые интерфейсы. Как правило, они определяются с помощью #iпсlude – директив;

• объявления;

• завершающая защитную проверку директива условной компиляции

#endif

** Для файлов кода на языке С++ рекомендуется такая последовательность

• комментарий к файлу;

* импортируемые интерфейсы,

• локальные объявления;

• экспортируемые определения.

Лексические соглашения

Приведем рекомендации по написанию идентификаторов.

* Не начинайте и не заканчивайте идентификаторы символом подчеркивания.

* Не используйте идентификаторы, состоящие только из прописных букв. Исключения составляют имена констант и макроопределений.

* Не следует в одной и той же программе использовать имена, различающиеся лишь написанием букв — строчной или прописной.

* Разделяйте части идентификаторов символом подчеркивания, а не написанием с большой буквы очередной части идентификатора.

* Идентификаторы должны начинаться со строчной буквы.

Опишем соглашения об именовании.

*Смысл всех имен должен быть понятен при чтении программы.

* Имена, используемые в ограниченном контексте, могут быть очень короткими. Традиционно имена i и j используются для обозначения счетчиков, р и q для указателей, s s для строковых, а сh для литерных переменных. В данном случае ясность достигается краткостью.

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

* Имена функций должны быть активными, т. е. базироваться на активном глаголе, за которым следует существительное.

* Имена перечислимых типов могут иметь единый префикс.

Приведем рекомендации по употреблению комментариев.

* Блочные комментарии следует применять для описания дополнительной информации о файле, классе, функции или переменной.

* Строковые комментарии следует использовать для коротких заметок в одну-две строки.

Языковые детали

Рекомендации по выравниванию.

* Стандартная величина отступа равна четырем пробелам.

* Табуляционный отступ равен восьми пробелам.

Об отступах

Величина отступа сильно зависит от языка программирования/ Существуют языки программирования в которых вложенность блоков определяется отступом (например, Occam или Руthon). Со стандартным отступом такие программы становятся просто неправильными

Рекомендации по написанию выражений.

* Бинарные операторы должны быть Отделены от операндов одним белом.

* Унарные операторы не следует отделять от операнда пробелом, ТОЛЬКО ЭТОГО не требуют правила языка.

* Используйте скобки, чтобы улучшить читаемость. Не следует добавлять пробелы к введенным скобкам.

* Старайтесь размещать выражение на одной строке.

* Если выражение переносится на следующую строку, то знак бинарной операции следует оставить на первой строке.

Рекомендации по объявлению переменных.

* В каждом объявлении должна объявляться только одна переменная.

* Объявление переменной ДОЛЖНО занимать одну строку.

* За типом переменной должны следовать пробел, имя переменной и комментарий с кратким описанием переменной.

* Если переменная является указателем, то символ * следует присоединять к типу.

Рекомендации по написанию Определения функций.

* Определение должно начинаться заголовком функции, за которым комментарий, описывающий назначение функции, и собственно функции.

* Открывающая и закрывающая фигурные скобки, определяющие функции, располагаются в первом столбце строк.

* Заголовок состоит из типа возвращаемого функцией значения, пробе имени функции, за которым без пробела следует открывающая круга скобка для списка параметров.

* Если функция статическая, то ключевое слово static должно быть вынесено в строку, предшествующую заголовку функции.

* Определение функции всегда начинается в самом левом столбце файла,

* Различные части функции следует отделять пустой строкой.

Рекомендации по написанию условного оператора.

* По одному пробелу следует оставлять перед и после круглых скобок условия.

* Открывающая фигурная скобка должна находиться на той же строке, что н закрывающая круглая.

* Закрывающая фигурная скобка находится на том же уровне отступа, что и начало условного оператора.

* Если условие не помещается на одной строке, то его продолжение на следующей строке должно начинаться в том же столбце, что и первый символ выражения первой строки.

* Если часть then или е1se состоит из простого оператора, то открывающая и закрывающая фигурные скобки могут быть опущены.

Пример форматирования условного оператора приведен в листинге 3.1.

Листинг 3.1. Пример форматирования условного оператора

if (********) {

=========;

}

else if (+++++++) {

---------------;

}

else {

_________ ;

}

Рекомендации по написанию оператора выбора: основные соглашения в этом случае выглядят так же, как и для условного оператора. Пример выравнивания оператора выбора приведен в листинге 3.2.

Листинг 3 2 Пример форматирования оператора выбора

switch ( i) {

case 1;

**********;

break;

сазе 2: {

+++++++++;

break;

}

__________;

break;

}

Рекомендации по написанию операторов цикла: в основных соглашениях следует опять ориентироваться на условный оператор.

Типичные примеры форматирования оператора цикла

Листинг З З Пример форматирования оператора цикла

for ( i = ************;

i> = --------------;

i = 0000000000) {

99999999999999999;

88888888888888888;

}

do {

99999999999999999;

88888888888888888;

} while (????????????) ;

 

– Конец работы –

Эта тема принадлежит разделу:

Конспект лекций по Технологии разработке программных продуктов

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: А. Шопенгауэр

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

История и эволюция
  История учит нас тому, что из истории мы ничему не учимся Б. Шоу   В истории технологии программирования можно выделить три этапа.

Конфуций
  В настоящее время развитие и совершенствование технологических подходов ведется по двум направлениям, которые достаточно сильно отличаются друг от друга своими задачами. Ма

Рекомендации по литературе
Книги банальны. Гениальна только жизнь Томас Карлейль   По технологии программирования издано очень большое количество книг особого внимания заслужива

Возникновение идеи решения проблемы
Данный процесс обычно начинается с того, что у человека или небольшой группы людей возникает идея решения проблемы, которая: - препятствует созданию или развитию программного продукта;

Постановка задачи
Теперь из идеи должно вырасти описание проекта. Все, что было предложено в первом действии, следует начинать формализовать и документировать. Вклад в детальное исследование идеи могут делать любые

Принятие решения о начале работы над проектом
  Выясните сначала факты, а потом можете извращать их по своему усмотрению. М. Твен   Практически всегда перед принятием решения проводит

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

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

Лао Цзы
  Основы менеджмента были заложены в начале ХХ века в европейской и американской науке. История менеджмента связана с древним Египтом философами античности. В настоящее время можно го

Методы управления проектами
В основе методов управления проектами лежат методики сетевого планирования, разработанные в конце 50-х годов ХХ века [Филипс, Гарсиа-Диас]. С помощью этих методик руководитель проекта может:

Планирование проекта
Подчеркнем в виде неформальных требований необходимость наличия плана [Баранов 1998]. * План помогает создать ясное и четкое понимание — как будущие работы будут выполняться * Пла

Методики оценок времени и затрат
Существует несколько методик оценок времени и затрат для составления планов и расчетов [Баранов1998]. * Сверху вниз по крупным блокам аналогичного проекта. Поскольку аналогичный проект про

Современные подходы к управлению проектом
Став бригадиром, я упростил этот процесс до мыслимого предела В. Ерофеев. «Москва — Петушки»   Продолжающиеся непрерывные неудачи в крупны

Методы анализа и построения спецификаций
Превосходно, Ватсон, Вы делаете успехи. Правда, Вы упустили все существенные детали, зато хорошо усвоили метод Артур Конан Дойль. “Приключения Шерлока Холмса” &nb

Подходы к ведению анализа и проектирования.
Структурная методология Итак, комбинации структурных методов образуют структурные подход. Можно выделить три группы структурных подходов на основе порядка строения модели [Калянов 1996]

Защитное программирование
Защитное программирование (defensive ргоgramming — это такой стиль написания программ, при котором появляющиеся ошибки легко обнаруживаются и идентифицируются программистом [Тасел 1985]. С

Выбор языка программирования
На выбор языка программирования влияют четыре основных фактора. · Сравнительная пригодность языка программирования для данной задачи. · Избранная методология. Часто говорят, что я

Тестирование программных продуктов
Существуют две основные стратегии тестирования: -тестирование программы как черного ящика, при котором программа рассматривается как объект, внутренняя структура которого неизвестна.

Отладка программных продуктов
Отладка программы — процесс творческий и плохо формализуемый. Тем не менее, основной идее отладки (базирующейся на анализе данных) можно придать вид следующего алгоритма: 1. Следует начать

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

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

Контрольные точки
Важность контрольных точек заключается в том, что именно в них мы должны четко оценить — в какой мере достигнуты намеченные цели и критерии, не следует ли внести в процесс изменения прежде, чем дви

Ранние технологические подходы
Ранние технологические подходы не используют явных технологий. Обычно их применяют только для очень маленьких проектов, как правило, завершающихся созданием демонстрационного прототипа. В качестве

Спиральная модель
Спиральная модель (sрiгаl model) была предложена Барри Боэмом (Ваггу Воеm) в середине 80-х годов ХХ века с целью сократить возможный риск разработки. Фактически, это была первая реакция на устарева

Каркасные технологические подходы
Каркасные подходы представляют собой каркас для процессов и насчитывается их огромное количество. Рациональный унифицированный процесс Рациональный процесс (rational unifie

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

Сборочное (расширяемое) программирование
Сборочное программирование предполагает, что программа собирается путем переиспользования уже известных фрагментов (рис. 12).  

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

Технология стерильного цеха
Основные идеи технологии стерильного цеха (cleanroom process model) были предложены Харланом Миллзом в середине 80-х годов ХХ века. Технология складывается из следующих частей (рис. 13) [1994]:

Формальные генетические подходы
Сложились методы программирования обладающие свойством доказательности и не теряющие это точное, накопленное знание [Поттосин 1997]. Три. таких метода соответствуют уже исследованным генетическим п

Эволюционное прототипирование
Первый прототип при эволюционном прототипировании (evolutionari prototyping) обычно включает создание развитого пользовательского интерфейса. Он может быть сразу же продемонстрирован заказчику для

Экстремальное программирование
Наиболее концентрированно идеи быстрой разработки программ оказались выражены в подходе экстремального программирования (ехtreme programming) (http//www.extremprogramming.org). Две основные черты,

Адаптивная разработка
В основу подхода адаптивной разработки (Adapnive Software Development – ASD) положены три нелинейные перекрывающие друг друга фазы — обдумывание, сотрудничество и обучение. Автор данного подхода Дж

Подходы исследовательского программирования.
Исследовательское программирование имеет следующие особенности: - разработчик ясно представляет направление поиска, но не знает заранее, как далеко он сможет продвинутся к цели; -

Психологические командные роли
Роб Томсет (Rob Thomsett) [Thomsett 1990] предложил восемь ключевых ролей в проекте (рис. 23).   Председатель. Выбирает путь, по которому команда движется вперед к общ

Типы совместной деятельности
Коллективная разработка предполагает большое количество различных действий, причем степень совместной деятельности может существенно изменяться от одного действия к другому. Можно выделить четыре т

Общинная модель разработки
Совершенство в проекте достигается не тогда, когда нечего добавить, а тогда, когда нечего убавить. Антуан де Сент-Экзюпери.   Идеология общинной (“база

Подходы к качеству программного обеспечения
Проведем классификацию различных подходов к качеству программного обеспечения, используя два измерения [2000]. Первое измерение ориентировано либо на продукт, либо на процесс. Для повышени

Характеристики качества программного обеспечения.
В настоящее время не существует общепринятых критериев качества программного обеспечения. Стандарт ISO 9000-3, п. 6.4.1   Классическое определение к

Модель зрелости процесса разработки программного обеспечения
В модели определено пять уровней зрелости организации Начальный уровень. На этом уровне процесс разработки характеризуется практическим отсутствием процессов управления. Успех проек

Определение возможностей и улучшение процесса создания программного обеспечения
Данная модель очень близка к модели зрелости, но уровни возможностей могут быть применены не только к организации в целом, но и к отдельно взятым процессам. Модели такого типа часто называют непрер

Достаточно хорошее программное обеспечение
Вчера в Сиэтле после упоминания Биллом Гейтсом о выходе бета-версии новой программы компании Мicrosoft произошло землетрясение. Пользователи с ужасом ждут объявления о выходе финальной версии

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги