русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Принципы структурного программирования


Дата добавления: 2015-08-31; просмотров: 892; Нарушение авторских прав


1. Модульное программирование – процесс разбиения программы на отдельные программные модули (базовые классы, процедуры, функции, ActiveX – элементы, COM/DCOM‑компоненты и др.). Свойства модуля: возникает в результате отдельной компиляции; вызывается по имени; возвращает управление тому, кто его вызывал; может обращаться к другим модулям, непосредственно нижестоящим в схеме иерархии; должен быть небольшого размера; должен иметь один вход и один выход; не должен сохранять историю вызовов для управ­ления своим функционированием; обладает единственной функцией; дол­жен быть независимым от других модулей; должен содержать тесно свя­зан­ные элементы; должен проверять аргументы; при возникновении в модуле ошибок управление должно возвращаться обратно; должен быть замкнутым.

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

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

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

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

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



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

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

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

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

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

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

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

Рекомендации. Вводный комментарий объясняет назна­чение и условия применения. Пояснительные комментарии сопровож­дают те части программы, которые трудно понять. Дополнительные пробелы указываются повсюду, где это приводит к улучшению чита­бель­ности прог­рам­мы. Пе­ре­менные следует явно объявлять и комментировать. Имена должны отображать смысл со­дер­жания. Допускается пре­фик­сная нотация (перед именем объекта), которая отражает тип объекта (cmdVixod – имя командной кнопки «Выход»). Составные имена следует писать через знак под­черкива­ния или на­чи­нать с прописных букв. Используйте общепри­ня­тые име­на, которые описывают действия.

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

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

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

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

 



<== предыдущая лекция | следующая лекция ==>
Спиральная модель | Учет возможностей аппаратных и программных средств разработчика и пользователя.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.689 сек.