Опубликован: 24.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 13:

Средства программной инженерии

Аннотация: Дан обзор современных языковых средств и спецификации интерфейсов объектов программирования. Изложены средства разработки MSF фирмы Microsoft
Ключевые слова: компонент, Java, IDL, язык моделирования, UML, CORBA, единица, интеграция, развертывание, доступ, интерфейс, точность, надежность, компонентная технология, абстракция, ПО, архитектура, архитектурный паттерн, Паттерн, Типовая, определение, устойчивость, оболочка, контейнер, произвольное, идентификатор, home, interface, function, компонентная среда, Java Beans, migration, JavaBeans, AWT, сервлет, Abstract Window Toolkit, Swing, look-and-feel, appletviewer, Java Development Kit, ORB, компилятор, interoperability, object reference, браузер, файл, программа, stub, методы передачи данных, skeleton, шаблон, portable, Object, adapter, сервер, класс, Web, HTTP, CGI, gateway, инструментарий, servlet, development, kit, html file, семантика, инвариант, операции, конфигурирование, repository, описание заголовка, интерфейсный тип, брокер объектных запросов, логическое моделирование, первичный метод, unified, предметной области, RUP, входные данные, спецификация теста, модель анализа, модель проектирования, диаграммы классов, вариант использования, отношение, метамодель, язык спецификаций, тело метода, отображение, кооперация, графика, работ, технологический маршрут, поток, прецедент, анализ, испытание, итерация, информация, регрессионное тестирование, методология разработки, MSF, база знаний, приложение, архитектор, затраты, перспективная задача, БД, логическое описание, итеративность, связь, контроль, функциональная спецификация, инфраструктура, мониторинг, исполнение, систематический

В данном методическом пособии основным объектом методов проектирования ПС на процессах ЖЦ является компонент. Cредствами их описания являются: ЯП (JAVA, C++), язык описания интерфейсов IDL, язык моделирования систем UML, языки взаимодействия (вызов, протокол, сообщения) в распределенных средах, а также разные виды инструментальной поддержки этих описаний в Rational Rose, а также в системах CORBA, СОМ, JAVA, и др.) [12.1-12.6]. Краткая характеристика инструментов проектирования, тестирования и оценки качества системы Rational Rose приведена в "Малая энциклопедия инструментов ООП"

12.1. Типы компонентов

Компонент - это единица интеграции, специфицированная так, чтобы ее можно было объединять с другими компонентами в ПС. Важнейшее свойство компонента - отделение его интерфейса от реализации, в отличие от объектов объектно-ориентированных ЯП, для которых реализация класса отделена от определения класса [12.1].

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

Более крупные образования компонентов, используемые на практике - паттерны, каркасы и контейнеры [12.3, 12.7].

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

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

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

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

Первый тип интерфейса (Home interface) управляет экземплярами компонента и реализациями методов их поиска, создания и удаления. Второй тип интерфейсов обеспечивают доступ к реализации функциональности компонента. Фактически с каждым экземпляром связан свой функциональный интерфейс (Function interface). Экземпляры внутри контейнера могут взаимодействовать друг с другом с помощью системных сервисов к экземплярам, расположенным в других компонентах. Сами компоненты могут размещаться в компонентной среде, как внутри одного сервера, так и в разных серверах для разных платформ.

Компонентная среда включает следующие типы объектов:

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

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

12.2. Средства ЯП JAVA для описания компонентов

12.2.1. Новый вид компонентов в системе JAVA

В языке JAVA в качестве готовых компонентов используются beans компоненты, которые задают описание функциональности, интерфейса и шаблона развертывания как интеграции компонентов новые ПС. Он может повторно использоваться в разных средах для выполнения функций самостоятельно или в составе с другими компонентами. Класс можно сделать beans компонентом, внеся небольшие изменения специальной утилитой системы BDK (Bean Development Kit) [12.3-12.6].

Компоненты beans подразделяются на три категории:

  1. Компоненты сеансов, которые поддерживают правила бизнеслогики, ориентированы на состояния и могут быть связаны с конкретным клиентским сеансом.
  2. Компоненты сущностей используются для связи с БД непосредственно и предоставляют данные в объектной форме.
  3. Компоненты, которые управляются событиями, функционируют для получения сообщений, поступающих от системы обмена сообщениями JMS (Java Messaging System), и реагируют на них.

При создании beans компонентов используются интерфейсы: home для управления ЖЦ компонента и интерфейс Remote для вызова и реализации компонента в среде виртуальной машины JVM. Каждый компонент beans имеет свой контейнер, который вызывает и регулирует все аспекты ЖЦ, а также интерфейс.

Основной особенностью beans компонентов в JAVA - это отображение способности анализировать самого себя и реализовывать свои возможности динамически во время выполнения, а не во время компиляции. С этой целью используется пакет Java.lang.reflect, который входит в ядро API, поддерживает отображение разных компонентов и содержит интерфейс - member, определяющий методы получения информации о полях и структуре классов.

Для задания свойств, событий и методов beans компонентов имеется два способа. Первый способ - использование согласованных имен, другой - создание дополнительного класса для предоставления требуемой информации.

Beans компонент можно рассматривать как подмножество состояний, которые определяют его поведение и внешний вид. Эти свойства подразделяются на простые, булевы, индексированные и связанные. Простые свойства имеют одиночные значения, могут быть идентифицированы проектными шаблонами (например, свойства для read/write, read-only, write-only ). Булевы свойства принимают значение true или false и идентифицируются проектными шаблонами. Индексированные свойства состоят из множества индексированных значений, задаваемых проектным шаблоном. Связанные свойства отражают событие без изменения функциональности компонента. Информационные массивы свойств ( PropertyDescriptor ), событий ( EventSetDescriptor ) и методов ( MethodDescriptor ) содержатся непосредственно в стандартном шаблоне BeanInfo. При реализации этих свойств разработчик может удовлетворить требования пользователя. Ограниченное свойство отражает событие, значение свойства которого изменяется, и отсылает событие объектам, которые могут отклонить измененные свойства или поддержать их в зависимости от среды выполнения. С помощью меню (File, Save) инструмента BDK можно сохранять компоненты в JAR архиве следующей последовательностью действий:

  • создать каталог для нового Beans компонента;
  • создать один или несколько исходных JAVA файлов, которые реализуют компонент, и скомпилировать их;
  • создать файл описания свойств компонента;
  • сгенерировать JAR файл;
  • запустить BDK инструментарий для сохранения нового компонента;
  • протестировать компонент.

Для взаимодействия разных компонентов используется механизм вызова удаленного метода RMI, который дополняет язык JAVA стандартной моделью EJB (Enterprise Java Beans) компании Sun. К ней подключены классы языка JAVA, их атрибуты, параметры среды и свойства группирования компонентов в прикладную программу для выполнения на виртуальной машине JVM. Механизм развертывания JAVA-компонентов типа beans на сервере описывается в программах на исходном языке, а сервер создает для них оптимальную среду для выполнения задач EJB.

Для реализации и повторного использования ПИК типа beans имеются следующие шаблоны в Java for Forte:

  • Beans для создания нового компонента, формирования каркаса компонента с простыми свойствами и возможностью автоматического их изменения;
  • BeanInfo для интеграции beans компонентов и обеспечения взаимодействия;
  • Customizer для создания панели, на которой размещаются элементы, используемые для управления конфигурацией beans компонентов;
  • Property Editor для создания класса, который используется во время проектирования и редактирования свойств beans компонентов.

Разработано ряд beans компонентов, которые формируют интегрированную архитектуру приложения в системе Microsoft Active. Контейнеры этих компонентов поддерживаются Internet Explorer, Microsoft Office и Visual Basic. Кроме того, на сайте www.java-sun.com можно загрузить инструментальную систему Bridge for Active в целях применения Java Beans компонентов в контейнерах Active, а также загрузить инструментарий Java Beans Migration Assistant for Active для анализа элементов управления Active и генерации каркаса JavaBean компонентов.Таким образом, язык JAVA поддерживает стандартные механизмы для работы с компонентами как со строительными блоками, имеющими следующие особенности:

  • свойства, события и методы управления;
  • параметры времени разработки основа реинженерии компонента;
  • параметры отладки конфигурации сохраняются и используются в заданное время;
  • beans компоненты регистрируют сообщения о событиях или сами их генерируют;
  • ПИК сохраняется в архиве системы JAVA с помощью шаблона JAR Contents самостоятельно или в виде группы;
  • каждый компонент может описываться разными ЯП.

Для всех классов компонентов компании предлагаются шаблоны их интеграции в программную разработку в Forte for Java [12.5, 12.6].

Александр Медов
Александр Медов

Здравствуйте,при покупке печатной формы сертификата,будут ли выданы обе печатные сторны?

Александр Медов
Александр Медов

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

:

Константин Андреев
Константин Андреев
Россия, Петрозаводск, Петрозаводский государственный университет, 2001
Станислав Кравченко
Станислав Кравченко
Россия, Москва, МЭГУ, 2006