Файл: Технологии разработки программного обеспечения.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 109

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


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

Легко читаемая программа создает впечатление, что ее автор хорошо знал что делал.

Программа должна передавать логику и структуру алгоритма настолько, насколько это возможно.

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

Правило стандартизации стиля: если существует более одного способа сделать что – либо и выбор произвольный, остановись на одном способе и всегда его придерживайся.

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

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

Комментарии:

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

Когда следует писать комментарий? В процессе написания программы. Бессмысленно вставлять комментарии, после того, как программа завершена.

Делайте комментариев больше, чем это кажется необходимым. Т.к. цель комментариев – облегчить понимание программы. Если вы затрудняетесь в написание комментария – значит “Вы не ведаете, что творите! ”

Три типа комментариев:

1. вводные

2. оглавление

3. пояснительные.

Вводные комментарии:

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


- Назначение программы.

- Указания по вызову программы и ее использованию.

- Список и назначение основных переменных или массивов.

- Указание по вводу – выводу. Список всех файлов.

- Список используемых подпрограмм.

- Назначение применяемых математических методов.

- (иногда) Сведения о времени выполнения программы.

- Требуемый объем памяти.

- Специальные указания оператору.

- Сведения об авторе.

- Дату написания программы.

Пояснительный комментарий:

Пояснениями нужно сопровождать те части программы, которые трудно понять без комментариев. Сопровождайте комментариями те действия, которые, с вашей точки зрения, могут быть не совсем понятны другому. Комментарии не должны объяснять синтаксис языка программирования, а должны раскрывать логику программы или цель конкретного действия. Если логика программы понятна только на основании прочтения комментариев, это качественные комментарии.

Расположение комментариев.

Комментарии легче читаются, если они отделяются пустыми строками (до и после комментариев). Дополнительный метод выделения комментариев – заключение их в прямоугольник из специальных символов (звездочки, слеши, скобки и т.д.). Располагаются комментарии т. о., чтобы это не делало программу менее наглядной. Неправильные комментарии хуже, чем их отсутствие. Делайте пробелы для улучшения читаемости программ.

Выбор имен переменных, файлов.

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

- Имена переменных не должны совпадать со служебными словами.

- Избегайте схожих по виду имен и подобных по написанию символов.

- Различие имен должно быть всегда явно ощутимым.

- Когда имена содержат лишнюю информацию это тоже плохо, т.к. программа расширяется, становится громоздкой.

- При выборе имен переменных старайтесь установить, что обозначает эта переменная на естественном языке, и выбирайте наиболее подходящее слово.

Имена файлов:

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

- Иногда использование префикса, помогает определять, какие поля связаны логически.

- При выборе имен записей используйте имена, ориентированные на содержание записи, а не на конкретное задание.



Отступы:

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

- Для выявления структуры программы – используйте отступы.

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

Выбор и обоснование языка программирования.

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

Трансляция - один из способов преодолеть “языковый” барьер. Если воспользоваться языком, понятным программисту, а потом обеспечить перевод с него в машинный код, проблема будет решена. Может показаться, что для этой цели лучше выбрать естественный язык, например, английский, но на самом деле удобнее сконструировать особый язык. На сегодняшний день создано много таких языков, которые названы - языки программирования высокого уровня.

Хорошо сконструированные языки высокого уровня обладают целым рядом достоинств, основанных на следующих фактах:

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

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

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


Отношение и эффективность.

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

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

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

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

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

Оптимизация программ.

Если программу следует оптимизировать, необходимо тщательно проверить алгоритм.

Программу, подлежащую оптимизации следует разбить на подпрограммы (в соответствии с принципом структурного программирования). Если не возможно учесть время выполнения каждой подпрограммы подсчитайте количество операторов в подпрограмме, особенно выполненных в тело циклов. Ищите операторы, которые можно модифицировать – (do While и CASE) особенно это касается операторов цикла и ввода – вывода. Для каждой подпрограммы можно вычислить коэффициент: процент времени * процент улучшения. Программу с высоким коэффициентом следует оптимизировать в первую очередь. Здесь можно использовать два подхода: «чистка» (использование очевидных неточностей в исходной программе) и перепрограммирование (если подвергается подпрограмма существенным изменениям).

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

Эффективность программы во время выполнения определяйте использованием двух ресурсов. Первый – необходимое для работы время, второй - понять, какая, требуется программа. Хорошей считается программа, которая выполняется при минимальном расходе минимального времени. Вопрос о распределении памяти не представляет интереса до тех пор, пока ее достаточно. Но когда памяти явно не хватает, вопрос об экономии становится очевидным. С широким внедрением ПК в быт, с использованием мультимедийных возможностей появилась еще больше необходимости деления памяти на участки различного размера.


6. Виды ошибок. Основные принципы отладки ПС
Виды ошибок:

1. Ошибки в описании задачи

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

2. Ошибки в выборе алгоритма

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

3. Ошибки анализа

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

a. отсутствие заданий начальных значений

b. неверное условие окончания цикла

c. неверная индексация цикла

d. отсутствие задания обнуления циклов.

4. Ошибки общего характера - ошибки из-за не достаточного знания тонкостей языка или самой системы или машины.

5. Синтаксические ошибки - ошибки, вызванные не правильным написанием операторов.

6. Семантические ошибки – неправильное использование написанных операторов.

7. Ошибки в данных

Виды контроля ПС:

- Визуальный,

- Статический

- динамический

Визуальный контроль - это проверка программ “ за столом “, без использования компьютера.

1. сначала осуществляется чтение программы

2. затем осуществляется сквозной контроль программы (ее ручная прокрутка на нескольких заранее подобранных простых тестах).

Статический контроль - это проверка программы по ее тексту (без выполнения) с помощью инструментальных средств. Формы статического контроля:

1. синтаксический контроль программы с помощью компилятора, при котором проверяется соответствие текста программы синтаксическим правилам языка программирования.

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

- использование в программе неинициализированных переменных (то есть переменных, не получивших начального значения) ;

- наличие в программе описаний переменных, процедур, меток, файлов, в дальнейшем не используемых в ее тексте;

- наличие в тексте программы фрагментов, никогда не выполняющихся;