Методы структурного программирования

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

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

Недостатки: слабая автономная отладка модулей, наличие программ‑заглушек.

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

2. Модульное программирование ‑ процесс разбиения программы на отдельные модули. Модуль ‑ это последовательность логически связан­ных фрагментов, оформленных как отдельная часть программы.

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

3. Защитное программирование. Это такой стиль написания прог­рамм, при котором появляющиеся ошибки легко обнаруживаются и идентифицируются программистом. Средства защитного программиро­ва­ния: все входные данные или действия пользователя подлежат обяза­тель­ной проверке; принцип немедленного обнаружения ошибок; изолирование последствий ошибок. Для предотвращения ошибок в программе рекомен­ду­ется не применять непроверенные способы программирования. Не исполь­зуйте принцип умолчания (когда при отсутствии некоторого параметра программа принимает некоторое определенное значение этого параметра). Не допускайте зависимости программ от недостоверности данных. Стремитесь минимизировать число обращений к пользователю.

Тестирование ‑ процесс обнаружения ошибок программы. Тестовые при­меры разрабатываются постановщиком на этапе разработки алгоритма. Обычно вместо одного теста готовится целая серия тестов. С целью выяв­ле­ния ошибок организуется сквозной структурный контроль (прос­мотр). В этом случае собираются 4‑6 специалистов, которые получают не­об­хо­ди­мые материалы за 5-7 дней до начала совещания. Время совещания огра­ни­чи­вает­ся двумя часами. Ведущий совещание обеспечивает сос­тавление пол­ного списка обнаруженных ошибок. В начале совещания экс­пер­ты ха­рактеризуют степень завершенности и качества проекта. Разра­ботчик дела­ет обзор проделанной работы, результаты подвергаются груп­повому ана­ли­зу. По окончании совещания председатель вручает каждому члену совещания список ошибок и проблем, требующих решения. Раз­работчик обя­зан устранить ошибки, донести до сведения эксперта. Реко­мен­дуется тестирование сверху вниз. Первый тест должен быть простым, так как он должен показывать работу этой программы вообще. Следующие тесты, пред­назначенные для проверки общей организации программы, обес­печивают обнаружение грубых ошибок. Повторно тестируйте исправ­лен­ный код. Ведите журнал обнаруженных ошибок и изменений программы.

Этапы тестирования

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

· Проверка в экстремальных условиях, т.е. проверка в пригра­ничных областях допустимых изменений (минимальные, максимальные допус­тимые значения, нулевые данные, пустые циклы, массивы, файлы).

· Проверка в исключительных ситуациях.

4. Наглядность исходных текстов программ. Стиль программиро­ва­ния ‑ это набор приемов программирования, которые позволяют полу­чать правильные, эффективные, удобные для применения и легко чи­тае­мые программы. Стиль связан с удобочитаемостью программы.

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

Рекомендации. Вводный комментарий объясняет назна­чение и условие применения. Пояснительные комментарии сопровож­дают те части программы, которые трудно понять. Пробелы вставляют повсюду, где это приводит к улучшению читабельности прог­рам­мы. Имя переменной формируют на основе хранящейся информации. Пе­ре­менные следует явно объявлять. Имена должны отображать смысл со­дер­жания. Допускается пре­фик­сная или венгерская нотация (предложенная венгром Шарле Симони в начале 80­‑х годов), которая отражает тип пе­ре­мен­ной или объекта (п. 5.1). Составные имена следует писать через знак под­черкива­ния или на­чи­нать с прописных букв. Используйте общепри­ня­тые име­на (Get, Put, Calc и др.), которые описывают действия.

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

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

5. Гибкость и эффективность программ. Выносите часто изме­ня­емые константы, адреса и имена файлов, баз в отдельные файлы настрой­ки, ресурсов или регистрации. Оптимизируйте програм­му пос­ле ее отлад­ки. Используйте именованные константы вместо обыч­ных. Ми­ни­ми­зи­руй­те применение глобальных переменных, вложенных структур и команд перехода Goto. Ограничивайте дей­ствия над параметрами подпрограмм (ByVal, ByRef, Optional) (п. 2.10.2).

Общие рекомендации программисту. Помните: программы чи­тают­ся людьми! Не нужно делать комментариев больше, чем это не­обходимо. Используйте вводные комментарии. Располагайте ком­­мен­тарии в программе таким образом, чтобы это не делало ее менее наглядной. Одного оператора в строке достаточно. Для выделения струк­ту­ры используйте отступы. Фиксируйте соответствие букв кирил­лицы и букв ла­тин­ского алфавита. Стремитесь к простоте и к уни­вер­сальности. Исполь­зуй­те постоян­ные приемы программирования. Унифи­цируй­те форматы ввода и вывода информации. Обеспечивайте макси­маль­но удобный интер­фейс пользователю. Интересуйтесь, как эксплуатируется программа. Уста­нав­ливайте более скромные цели (рабо­тающие программы гораздо полез­нее и важнее незаконченных громадных проектов). Умень­шай­те сложность пу­тем разбиения программы на отдель­ные части (моду­ли, подпрограммы). Слож­ность возрастает квадратично размеру прог­рам­мы. Упрощение дос­ти­га­ется методом структурного прог­раммиро­ва­ния. За­ме­на циклов или вло­жен­ных конструкций на функции упрощает модуль. Общая схема упроще­ния - разбиение прог­рам­мы на модули и оформление каждого модуля в ви­де процедуры, функции, класса., компонента или ActiveX‑элемента.








Дата добавления: 2016-03-22; просмотров: 3276;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.