Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / programmirovanie1.docx
Скачиваний:
21
Добавлен:
20.05.2015
Размер:
222.18 Кб
Скачать
  1. Модульное программирование: особенности, преимущества, реализация в различных языках программирования [16 с.143-146].

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

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

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

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

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

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

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

  • размер модуля;

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

  • прочность модуля;

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

  • сцепление с другими модулями;

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

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

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

Реализация – например модули в CMS-системах (например модуль магазин не связан с модулем новости, тем самым обеспечивая модульность системы).

  1. Базовые принципы объектно-ориентированного программирования [16 с.203-248, 16 с.100, 152, 172].

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

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

- определить объект для заданного класса;

- построить новый класс, наследуя его из существующего класса;

- изменить поведение нового класса (изменить существующие и добавить новые функции).

Построение нового класса, наследуя его из существующего, предполагает:

- добавление в новый класс новых компонент-данных;

- добавление в новый класс новых компонент-функций;

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

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

  1. Библиотеки классов (типов) в программировании: назначение, преимущества, возможности [16 с.203-212, 17 с.172-183].

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

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

Ниже перечислены основные преимущества использования библиотек классов:

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

  • код и данные инкапсулируются в классах, и доступ к ним может быть ограничен;

  • обеспечивается наследование кода;

  • размер кода значительно сокращается.

Библиотека классов .NET Framework Class Library содержит классы, обеспечивающие следующие функции:

  • поддержку базовых и определяемых пользователями типов;

  • поддержку обработки исключительных ситуаций;

  • операции ввода/вывода и работу с потоками;

  • обращение к функциям операционной системы;

  • доступ к данным;

  • возможность создания Windows-приложений;

  • возможность создания клиентских и серверных Web-приложений;

  • возможность создания Web-сервисов.

  1. Технологии обеспечения доступа программного приложения к различным источникам данных [17 с.246-270].

Формирование наборов данных с помощью адаптеров данных

Обмен данными между источниками и наборами данных (объекты DataSet в концепции ADO .NET) предполагает считывание данных из источника в набор и запись изменений, произведенных в наборе данных, в источник. Эти процессы осуществляются адаптером данных (объект DataAdapter в концепции ADO .NET). Адаптер данных обеспечивает обмен не только между набором данных и базой данных, но также между набором данных и другими источниками, такими, например, как Microsoft Exchange Server.

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

  • SelectCommand – чтение данных из источника;

  • InsertCommand – добавление данных к источнику;

  • UpdateCommand – перезапись существующих данных;

  • DeleteCommand – удаление данных.

  1. Визуальное программирование: назначение, принципы организации, достижения в развитии направления [16 с. 751-802].

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.

Необходимо различать:

  • графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)

  • визуальные средства разработки — как правило, под ними подразумевают средства проектирования интерфейсов или какую либо CASE-систему для быстрой разработки приложений или SCADA-систему для программирования микроконтроллеров.

Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:

  • языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;

  • языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#

  • языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.

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

Соседние файлы в папке госы