Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Эффективность и технологичность программы

КОНСПЕКТ ЛЕКЦИЙ

По дисциплине «Прикладное программирование»

 

Лекция №5 (2 часа).

Тема: « Стиль оформления программы. Эффективность и технологичность программы »

Тип урока: изучение нового материала.

Цели урока:

Образовательная: ознакомление со стилями оформления, эффективностью и технологичностью программы.

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

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

 

Вопросы по пройденному материалу: самостоятельная работа по вариантам (приложение 1 к РПД «Прикладное программирование»)

 

Вопросы лекции:

1. Стиль оформления программы

2. Эффективность и технологичность программы

 

Показ презентации

 

Стиль оформления программы

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

Именно исходя из того, что любую программу неоднократно придется просматривать, следует придерживаться хорошего стиля написания программ.

Стиль оформления программы включает:

•правила именования объектов программы (переменных, функций, типов, данных и т. п.);

•правила оформления модулей;

•стиль оформления текстов модулей.

Правила именования объектов программы. При выборе имен программных объектов следует придерживаться следующих правил:

• имя объекта должно соответствовать его содержанию, например:

MaxItem - максимальный элемент;

NextItem - следующий элемент;

• если позволяет язык программирования, можно использовать символ «_» для визуального разделения имен, состоящих из нескольких слов, например:

Max_Item, Next_Itetm;

необходимо избегать близких по написанию имен, например: Index и InDec.

Правила оформления модулей.

Каждый модуль должен предваряться заголовком, который, как минимум, содержит:

•название модуля;

•краткое описание его назначения;

•краткое описание входных и выходных параметров с указанием единиц измерения;

•список используемых (вызываемых) модулей;

•краткое описание алгоритма (метода) и/или ограничений;

•ФИО автора программы;

•идентифицирующую информацию (номер версии и/или дату последней корректировки).

 

 

Например:

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

{проверка количества отрезков и выход, если отрезки не заданы} ifn<0 then

begin

WrileLn (' Количество отрезков отрицательно'); exit;

end;

{цикл суммирования длин отрезков} S: = 0;

for i: = 0 to n-l do S: = S + Len [i];

Для таких языков, как Pascal, C++ и Java, использование отступов позволяет прояснить структуру программы: обычно дополнительный отступ обозначает вложение операторов языка, например:

аmах: = а[1,1]; for i: = l to n do

for j: = l to т do

if a[i,j]>amax then amax: = a [i,j];

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

{проверка условия и выход, если условие не выполняется} if n<0 then

begin

WriteLn('Количество отрезков отрицательно'); exit;

end;

Эффективность и технологичность программы

 

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

2.1 Технологичность программного обеспечения определяется проработанностью его моделей, уровнем независимости модулей, стилем программирования и степенью повторного использования кодов.

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

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

Стиль программирования, под которым понимают стиль оформления программ и их «структурность», также существенно влияет на читаемость программного кода и количество ошибок программирования. Кризис 60-х годов XX в. был вызван, в том числе, и стилем программирования, при котором программа напоминала клубок спутанных ниток или блюдо спагетти, и отсутствием языковых конструкций поддержки «структурного» стиля.

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

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

Традиционно эффективными считают программы, требующие минимального времени выполнения и/или минимального объема оперативной памяти. Особые требования к эффективности программного обеспечения предъявляют при наличии ограничений (на время реакции системы, на объем оперативной памяти и т.п.). В случаях, когда обеспечение эффективности не требует серьезных временных и трудовых затрат, а также не приводит к существенному ухудшению технологических свойств, необходимо это требование иметь в виду.

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

Не следует забывать, что многие способы снижения временных затрат приводят к увеличению емкостных и, наоборот, уменьшение объема памяти может потребовать дополнительного времени на обработку.

Не следует увеличивать эффективность за счет снижения технологичности разрабатываемого программного обеспечения.

Частично проблему эффективности программ решают за программиста компиляторы. Средства оптимизации, используемые компиляторами, делят на две группы:

- машинно-зависимые (выполняют оптимизацию кодов на уровне машинных команд: исключение лишних пересылок, использование более эффективных команд, и т.п.);

- машинно-независимые (выполняют оптимизацию на уровне входного языка: вынесение вычислений константных (независящих от индекса цикла) выражений из циклов и т.п.).

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

2.2 Способы экономии памяти. Следует обращать особое внимание на выделение памяти под данные структурных типов (массивов, записей, объектов и т.п.).

При ограничениях на использование памяти следует выбирать алгоритмы обработки, не требующие дублирования исходных данных структурных типов в процессе обработки. (пример: алгоритмы сортировки массивов (сортировка методом «пузырька»)).

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

Следует помнить, что при передаче структурных данных в программу «по значению» копии этих данных размещаются в стеке. Избежать копирования удается, если передавать данные «по ссылке», но как неизменяемые (описанные const). Тогда размещается в стеке только адрес данных.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...