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

Автор работы: Пользователь скрыл имя, 24 Октября 2011 в 11:23, курсовая работа

Краткое описание

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

Содержание работы

Введение 3
«Стихийное» программирование 5
2. Структурный подход к программированию (60-70-е годы ХХ в) 7
3. Объектный подход к программированию (с середины 80-х до конца 90-х годов XX в.) 9
4. Компонентный подход и CASE-технологии (с середины 90-х годов XX в. до нашего времени) 11
Техническое задание 16
Практическая часть 17
Заключение 36
Литература 37

Содержимое работы - 1 файл

Куросовая работа.doc

— 906.50 Кб (Скачать файл)

       Практика  показала, что структурный подход в сочетании с модульным программированием  позволяет получать достаточно надежные программы, размер которых не превышает 100 000 операторов [10]. Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении программы (из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно). При увеличении размера программы обычно возрастает сложность межмодульных интерфейсов, и с некоторого момента предусмотреть взаимовлияние отдельных частей программы становится практически невозможно. Для разработки программного обеспечения большого объема было предложено использовать объектный подход. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3.ОБЪЕКТНЫЙ ПОДХОД К ПРОГРАММИРОВАНИЮ

(С  СЕРЕДИНЫ 80-Х ДО  КОНЦА 90-Х ГОДОВ  ХХ В) 

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

       Объектная структура программы впервые была использована в языке имитационного моделирования сложных систем Simula, появившемся еще в 60-х годах XX в. Естественный для языков моделирования способ представления программы получил развитие в другом специализированном языке моделирования - языке Smalltalk (70-е годы XX в.), а затем был использован в новых версиях универсальных языков программирования, таких, как Pascal, C++, Modula, Java.

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

       Бурное  развитие технологий программирования, основанных на объектном подходе, позволило решить многие проблемы. Так были созданы среды, поддерживающие визуальное программирование, например, Delphi, C++ Builder, Visual C++ и т. д. При использовании визуальной среды у программиста появляется возможность проектировать некоторую часть, например, интерфейсы будущего продукта, с применением визуальных средств добавления и настройки специальных библиотечных компонентов. Результатом визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды.

       Использование объектного подхода имеет много  преимуществ, однако его конкретная реализация в объектно-ориентированных  языках программирования, таких, как Pascal и C++, имеет существенные недостатки:

       • фактически отсутствуют стандарты компоновки двоичных результатов компиляции объектов в единое целое даже в пределах одного языка программирования: компоновка объектов, полученных разными компиляторами C++ в лучшем случае проблематична, что приводит к необходимости разработки программного обеспечения с использованием средств и возможностей одного языка программирования высокого уровня и одного компилятора, а значит, требует одного языка программирования высокого уровня и одного компилятора, а значит, требует наличия исходных кодов используемых библиотек классов;

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

4. КОМПОНЕНТНЫЙ ПОДХОД И CASE – ТЕХНОЛОГИИ

(С СЕРЕДИНЫ 90-Х ГОДОВ ХХ В. ДО НАШЕГО ВРЕМЕНИ) 

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

       Компонентный  подход лежит в основе технологий, разработанных на базе COM (Component Object Model - компонентная модель объектов), и технологии создания распределенных приложений CORBA (Common Object Request Broker Architecture - общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и различаются лишь особенностями их реализации.

       Технология  СОМ фирмы Microsoft является развитием  технологии OLE I (Object Linking and Embedding - связывание и внедрение объектов), которая  использовалась в ранних версиях Windows для создания составных документов. Технология СОМ определяет общую парадигму взаимодействия программ любых типов: библиотек, приложений, операционной системы, т. е. позволяет одной части программного обеспечения использовать функции (службы), предоставляемые другой, независимо от того, функционируют ли эти части в пределах одного процесса, в разных процессах на одном компьютере или на разных компьютерах (рис. 1.7). Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM - распределенная СОМ).

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

       Каждый  интерфейс имеет имя, начинающееся с символа «I» и глобальный уникальный идентификатор IID (Interface IDentifier). Любой объект СОМ обязательно реализует интерфейс ILJnknown (на схемах этот интерфейс всегда располагают сверху). Использование этого интерфейса позволяет получить доступ к остальным интерфейсам объекта.

       Объект  всегда функционирует в составе  сервера - динамической библиотеки или  исполняемого файла, которые обеспечивают функционирование объекта.

       Различают три типа серверов:

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

       • локальный сервер - создается отдельным  процессом (модулем, ехе), который работает на одном компьютере с клиентом;

       • удаленный сервер - создается процессом, который работает на другом компьютере. Например, Microsoft Word является локальным  сервером. Он включает множество объектов, которые могут использоваться другими приложениями.

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

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

       На  базе технологии СОМ и ее распределенной версии DCOM были разработаны компонентные технологии, решающие различные задачи разработки программного обеспечения.

       OLE-automation или просто Automation (автоматизация) - технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) - специального интерфейса, облегчающего вызов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.

       ActiveX - технология, построенная на базе OLE-automation, предназначена для создания  программного обеспечения как  сосредоточенного на одном компьютере, так и распределенного в сети. Предполагает использование визуального программирования для создания компонентов -элементов управления ActiveX. Полученные таким образом элементы управления можно устанавливать на компьютер дистанционно с удаленного сервера, причем устанавливаемый код зависит от используемой операционной системы. Это позволяет применять элементы управления ActiveX в клиентских частях приложений Интернет.

       Основными преимуществами технологии ActiveX, обеспечивающими  ей широкое распространение, являются:

       • быстрое написание программного кода - поскольку все действия, связанные  с организацией взаимодействия сервера  и клиента берет на программное  обеспечение СОМ, программирование сетевых приложений становится похожим  на программирование для отдельного компьютера;

       • открытость и мобильность - спецификации технологии недавно были переданы в Open Group как основа открытого стандарта;

       • возможность написания приложений с использованием знакомых средств  разработки, например, Visual Basic, Visual C++, Borland Delphi, Borland C++ и любых средств разработки на Java;

       • большое количество уже существующих бесплатных программных элементов ActiveX (к тому же, практически любой  программный компонент OLE совместим  с технологиями ActiveX и может применяться без модификаций в сетевых приложениях);

       • стандартность - технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java), с одной стороны, и  стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).

         MTS (Microsoft Transaction Server - сервер управления транзакциями) технология, обеспечивающая безопасность и стабильную работу распределенных приложений при больших объемах передаваемых данных.

         MIDAS (Multitier Distributed Application Server - сервер многозвенных распределенных приложений) - технология, организующая доступ к данным разных компьютеров с учетом балансировки нагрузки сети.

         Все указанные технологии реализуют  компонентный подход, заложенный  в СОМ. Так, с точки зрения  СОМ элемент управления ActiveX - внутренний сервер, поддерживающий технологию OLE-automation. Для программиста же элемент ActiveX - «черный ящик», обладающий свойствами, методами и событиями, который можно использовать как строительный блок при создании приложений.

         Технология CORBA, разработанная группой компаний ОМС (Object Management Group -группа внедрения объектной технологии программирования), реализует подход, аналогичный СОМ, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех основных аппаратных и программных платформ и потому эту технологию можно использовать для создания распределенного программного обеспечения в гетерогенной (разнородной) вычислительной среде. Организация взаимодействия между объектами клиента и сервера в CORBA осуществляется с помощью специального посредника, названного VisiBroker, и другого специализированного программного обеспечения.

Информация о работе Технология программирования и основные этапы ее развития По дисциплине: Технологии разработки программных продуктов