Содержание


 

ЧАСТЬ А: СОВРЕМЕННОЕ СОСТОЯНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ СИСТЕМ

 

1. ЗНАЧЕНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ СИСТЕМ

1.1. Модное слово или "серебряная пуля"?

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

Объектно-ориентированная технология - это не новейшее открытие. Такие системы существуют уже около двадцати лет. В конце 80-х появилась новая мощная аппаратура и объектно-ориентированные версии языков программирования, и вместе они составили очень привлекательную перспективу для разработчиков ПС. В данном обзоре показано, что "объекты" встречаются повсюду - от экспертных до издательских систем, от микропроцессоров до оконных оболочек. Производители варьируются от начинающих фирм до гигантов типа фирмы AT&T, являющейся одной из активных сторонников этой технологии, а также разработчиком быстро набирающего популярность языка C++. Тот факт, что многие современные производители начинают как пользователи, дает дополнительный импульс к переходу на объектно-ориентированные системы.

Эта технология представляет не только тайный интерес для профессиональных программистов или научных исследователей. В мире персональных компьютеров энтузиазм всегда означает многое. Bill Gates описал технологию как "выдающуюся штуку". Для демонстрации ее значения он привел пример процессора обработки слов, позволяющего пользователю вводить в документы "объекты" типа данных с голоса, рисунков или таблиц. При выборе голоса его программа обрабатывается соответствующим устройством и пользователь может послушать объект.

Объектно-ориентированными системами занялась фирма Microsoft; некоторое время она использовала их для внутренних работ. В феврале 1989 она впервые заявила об участии в разработках в этой области: это был договор с компанией Glockenspiel (Дублин) на разработку версии языка C++. В этом одинаково заинтересованы и другие предприниматели. Steve Jobs, соучредитель фирмы Apple, в октябре 1988 снабдил NeXT объектно- ориентированным интерфейсом и инструментарием. Основатель фирмы Lotus Mitch Kapor использовал объектно-ориентированный подход в своей новой компании - ON Technology.

1.2. Что такое объектно-ориентированные системы?

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

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

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

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

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

В данном обзоре объектно-ориентированная система содержит каждое из нижеперечисленных свойств:

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

 

2. ЧТО ДАЮТ ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СИСТЕМЫ

2.1. ООС повышают производительность

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

Наряду с этими явными преимуществами, использование объектно-ориентированных языков и сред программирования способствует пошаговой разработке ПО. Быстрое прототипирование интерфейсов позволяет тестировать ответы пользователя независимо от основного тела прикладной задачи. Значение такого подхода наиболее проявляется в проектах, прикладные задачи которых заданы нечетко или трудны для понимания.

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

2.2. ООС позволяют справляться со сложностью

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

Например, в измерительной системе, разработанной в Combuston Engineering (Columbus, Ohio), группа датчиков отображается классом Sensor, задающим общие свойства всех датчиков. Подклассы задаются для каждого типа датчика системы, например, для оптических или инфракрасных. Они наследуют общие процедуры, применимые ко всем датчикам, и содержат дополнительные процедуры, применимые только к оптическим или инфракрасным датчикам.

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

2.3. ООС предназначены для изменений

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

Гибкость объектно-ориентированных систем является неоспоримым преимуществом для пользователей в быстро меняющихся средах, например, в технологии программирования. Например, Computer Science Corporation использовал объектно-ориентированный язык Smalltalk для разработки продукта Design Generator. Компания отмечает, что благодаря использованию объектно-ориентированной технологии, разработчики программ имеют возможность быстро реагировать на новые течения рынка в условиях возрастающей конкуренции.

2.4. Объекты могут использоваться несколько раз

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

В прошлом библиотеками подпрограмм пользовались разработчики ПО для решения стандартных задач типа математических вычислений. Объектно-ориентированные системы дают более широкий спектр многократного использования текстов программ. Один из первых пользователей, Cadre Technologies, подсчитал, что объем текстов программ для новой прикладной задачи уменьшается в отношении 5:1 в случае использования объектно-ориентированных программ.

Библиотеки объектов также можно приобретать от независимых поставщиков. В настоящее время наиболее активно покупают такие библиотеки классов для создания пользовательских интерфейсов с пиктограммами. Разработка и написание таких интерфейсов с нуля - задача нелегкая. Компании типа Apple и Whitewater Group поставляют инструментарии для быстрого построения таких интерфейсов на основе нескольких базовых классов типа Window, Menu, ScrollBar и Icon. Пользователи могут использовать как эти классы, так и их подклассы, добавляющие в интерфейс, например, специальные пиктограммы.

2.5. ООС легко поддерживаются

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

Известно, что затраты на сопровождение составляют до 80% стоимости жизненного цикла системы программирования. Разработчики больших сложных систем, часто сталкивающиеся с необходимостью их модификации, склоняются к использованию ООС как одному из способов снижения затрат на сопровождение и повышения надежности их продуктов. Например, Wild Leitz (Торонто, Канада) использовал объектно-ориентированных язык Objective-C для разработки географической информационной системы. Компания посчитала исходные тексты на этом языке более легкими в сопровождении, поскольку они короче, являются изолированными "вещами в себе", что снижает влияние изменения одного модуля на оставшуюся часть системы.

 

3. ПРОБЛЕМЫ И ПУТИ ИХ РЕШЕНИЯ

3.1. Несовершенство

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

Основное препятствие для объектно-ориентированных систем в настоящее время - это сопротивление технического и управленческого персонала. Такое сопротивление естественно с точки зрения несовершенства многих объектно-ориентированных продуктов на сегодняшнем рынке. Несовершенство проявляется на примере ряда проблем, свойственных большинству новых технологий:

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

ДОСТУПНОСТЬ

Текущие требования пользователей на переносимость, открытые системы и стандарты уже приняты во внимание большинством поставщиков объектно- ориентированных систем. Для того, чтобы быть доступными пользователям, основные объектно-ориентированные языки и среды программирования должны быть реализованы для всех основных аппаратных платформ. Это уже можно сказать о языке С++ и Smalltalk-80.

Расхождение со стандартами становится проблемой для поставщиков, от которых ждут совместимости и переносимости с различными системами. Например, программный продукт, доступный для всех аппаратных платформ, должен работать с различными пользовательскими интерфейсами, включая MS Windows, Presentation Manager, Open Look и OSF Motif.

ИНТЕГРАЦИЯ

Как и все новые системы, объектно-ориентированные системы должны подходить под существующие среды программирования и реляционные базы данных. Они должны иметь доступ к программам, написанным на других языках. Существует множество прикладных задач, написанных на языках Си, Паскаль, Фортран и Кобол, и пользователи не собираются их переписывать. Новые прикладные задачи, написанные на объектно-ориентированных языках, должны быть совместимыми с уже существующими задачами.

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

РАЗРАБОТКА ШИРОКОМАСШТАБНОГО ПО

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

3.2. Роль сервиса

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

Чтобы убедить потенциальных покупателей в значении объектно- ориентированных систем, требуется проведение эффективного маркетинга наряду с рассказами о преимуществах объектно-ориентированных систем от тех, кто уже поработал в них. Требуется обучение работе в объектно- ориентированных средах наряду с разработкой методологий обучения и передачей технологии. Пользователей также следует обучать понятиям объектно-ориентированного программирования. Многие программисты, знакомые с традиционными языками типа Си и Фортрана, сталкиваются с проблемами в понимании нового подхода. Хотя объектно-ориентированная модель интуитивно понятна разработчикам и инженерам, знакомым с моделируемой задачей, у программистов, привыкших мыслить в терминах процедур, могут возникать трудности. Разрыв в понятиях сдвинулся от интерфейса между реальным миром и моделью к интерфейсу между моделью и программой. На начальном этапе (первые 6 месяцев) пользователи жалуются на трудности, а потом они привыкают мыслить в терминах объектов, сообщений и классов.

Для больших компаний относительно просто развернуть консультации необходимого масштаба, что нельзя сказать о небольших начинающих фирмах, составляющих значительную часть рынка объектно-ориентированных систем. Некоторые поставщики ООС начинают предлагать свои услуги, чтобы восполнить пробел. Сюда относятся компании Arthur Andersen and Coopers & Lybrand, уже имеющие опыт в области экспертных систем и считающие объектно-ориентированную технологию естественным расширением своей деятельности. Кроме того, появились центры консультаций именно в области объектно-ориентированного программирования.

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

3.3. Постоянство объектов

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

Коммерческое ПО должно быть доступным большому числу программистов, работающих над одним проектом. Пользователи коммерческих пакетов прикладных задач должны иметь доступ к общим данным. Чтобы реализовать это, надо найти способ, при котором объекты, содержащие данные и процедуры, продолжают существовать после завершения программы. Такие объекты называются "постоянными" и хранятся в объектно-ориентированной базе данных. Развитию таких баз данных сейчас уделяется огромное внимание. Несколько продуктов являются коммерчески доступными: это продукты таких компаний, как Graphael, Servio Logic и Ontologic, но и они сильно страдают от проблем несовершенства, упомянутых выше.

Кроме составления объектно-ориентированных баз данных, прикладные задачи также должны иметь доступ к данным существующих баз данных. Некоторые разработчики занимаются этими вопросами. Например, Intellicorp, поставляет продукт KeeConnection, позволяющий разновидности набора инструментов AI, Kee, свободно работать с Oracle или Ingres. ParcPlace Systems, поставщик Smalltalk-80, разработала доступ к базам данных Oracle, Informix и др. К 1991 году, когда основные разработчики реляционных баз данных управления появились на рынке со своими объектно- ориентированными продуктами, связки с базами данных были полностью завершены. С этого момента широкий спектр коммерческих задач стал доступным в объектно-ориентированных системах.

3.4. Производительность

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

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

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

 

4. РЫНОК

4.1. Обзор рынка

На рис. А4.1 приводятся проектные расчеты фирмы Ovum (Великобритания) о годовых доходах от объектно-ориентированных систем в США и в Европе за период 1988-1995 гг. На нем показано, что рынок сбыта растет от 140 млн. долларов в 1988 г. до 2 млрд. долларов в 1995 г. В этой главе описаны способы достижения такого роста.

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

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

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

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

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

4.2. Продукты

4.2.1. Объектно-ориентированные языки

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

Кроме того, в коммерческой области применяются и другие объектно- ориентированные языки:

Simula
- первый объектно-ориентированный язык, поставляемый некоторыми фирмами, преимущественно скандинавскими;
Objective-C
- запатентованный фирмой Stepstone Corporation язык, основанный на языках Cи и Smalltalk;
Eiffel
- запатентованный фирмой Interactive Software Engineering язык, основанный на языках Simula и Ada;
Object Pascal
- объектно-ориентированное расширение Паскаля, разработанное и используемой фирмой Apple, в настоящее время свободно распространяется;
Actor
рабочей группы Whitewater Group - запатентованный объектно-ориентированный язык на основе Паскаля, в основном предназначенный для разработки прикладных задач в среде Microsoft Windows.

Другие языки обладают некоторыми основными чертами объектно- ориентированных языков. Например, Ada поддерживает основные понятия объекта и класса, но в нем нет механизма наследования. Его можно использовать для разработки систем, проектирование которых основывается на объектно-ориентированном подходе. На самом деле возможно разрабатывать объектно-ориентированные системы и с помощью процедурных языков типа Cи, но это потребует написания большого числа дополнительных программ, т.к. придется строить объектно-ориентированные конструкции с самых азов.

Сейчас предпочтение отдается открытым системам и стандартам. Три основных объектно-ориентированных языка 90-х гг. - C++, Smalltalk и CLOS отвечают этой тенденции. В такой обстановке продавцам запатентованных языков приходится бороться за место на рынке. На практике это означает определение ниши и достижение соглашения с основным поставщиком или вкладывание средств в смежные области типа инструментария CASE.

ГИБРИДНЫЕ ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА

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

Многие пользователи познакомятся с объектно-ориентированным программированием только в этом контексте. В некоторых случаях объектно-ориентированный язык можно получить отдельно: например, фирма Xerox выделила объектно-ориентированный язык из среды программирования Loops и создала CommonLoops - объектно-ориентированное расширение языка Lisp.

4.2.2. Новые возможности рынка

Библиотеки классов и генераторы прикладных задач

Объектно-ориентированная технология открывает новые рынки. Это возможно благодаря двум ключевым особенностям технологии, описанным в разделе 1.2: группирование схожих объектов в классы и наследование данных и процедур.

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

Например, программе могут потребоваться базовые классы для наборов элементов типа Sequence (последовательность) , Set (набор с дублями) и Array (массив). Разработчик классов знает, как реализованы эти процедуры. Пользователь должен знать, какие из процедур можно использовать с этими классами: например, чтобы добавить элемент в массив или найти следующий элемент последовательности. Сегодня такие библиотеки классов составляют рынок повторно используемых программных компонентов, что похоже на интегральные схемы в аппаратных разработках.

Однако, для работы с библиотеками классов, покупатель должен уметь программировать на языке высокого уровня типа Object Pascal, C или C++. Широкое применение библиотек классов для разработки прикладных задач требует нового типа генератора прикладных задач, эквивалентного языку четвертого поколения (4GL) . Поставка объектно-ориентированного 4GL - важное достижение рынка 90-х гг.

Объектно-ориентированные базы данных

За важностью объектно-ориентированных баз данных скрываются две движущие силы: необходимость предоставления памяти для хранения постоянных объектов, указанных в разделе 3.3, и необходимость расширения объема существующих баз данных для включения в них объектов. Объектно- ориентированные базы данных в 90-х гг. стали важной силой, после чего внимание переключится на интегрирование языков, инструментов и баз данных в одну всеобъемлющую среду.

Инструменты для объектно-ориентированного анализа и проектирования

Развитие объектно-ориентированных систем в языках типа C++ потребует поддержки средств CASE. Рынок таких средств для поддержки объектно- ориентированного проектирования в настоящий момент ограничен необходимостью развития и соглашения по подходящей методологии. Успех объектно-ориентированных языков повлиял на развитие рынка CASE в начале 90-х гг.

Инструменты для конечного пользователя

Основным изменением на рынке объектно-ориентированных продуктов в начале 90-х гг. стало появление инструментальных средств для конечного пользователя на дешевых персональных компьютерах и рабочих станциях, что показало значение объектно-ориентированного программирования для человека. Эти средства начали развиваться в 1990 и стали формировать массовый рынок. Рынок инструментальных средств для конечного пользователя имеет огромные и трудно предсказуемые возможности.

4.3. Поставщики

4.3.1. Пользователи становятся поставщиками

Три основные группы продавцов, преобладавшие в конце 90-х г. в поставках объектно-ориентированных продуктов имели одну общую черту: они сами были пользователями этой технологии. Основные пользователи не попадали в эти три группы и едва ли могли называться сами поставщиками. С помощью языка C++ фирма AT&T успешно идет по проторенной ею дороге по распространению системы Unix и языка Си. Фирма не поддерживает C++ - этим занимается ряд небольших компаний типа Glockenspiel, Oasis и Lifeboat, имеющих лицензии AT&T на поставку исходных текстов и оказание услуг по поддержке. Другие компании, например, Oregon Software и Zortech сами реализовали C++. На рынок стали выходить более крупные фирмы: Appolo уже поддерживает версию Glockenspiel C++. С 1989 г. языком C++ также стали заниматься фирмы Apple и Microsoft.

Первые пользователи языка Smalltalk и объектно-ориентированных версий Лиспа также стали поставщиками. Хотя фирма Xerox и была основателем языка Smalltalk и сыграла основную роль в развитии сред искусственного интеллекта на основе Лиспа, она не считает себя распространителем технологии. Этим занимаются две его дочерние фирмы, с которыми Xerox входит в долю: ParcPlace Systems (Smalltalk-80) и Envos Corp (Лисп и системы искусственного интеллекта) . Однако, в настоящий момент наиболее широко используется версия Smalltalk/V фирмы Digitalk.

Еще одни первые пользователи языка Smalltalk - фирмы Tektronix и Apple - также сейчас являются распространителями технологии. Tektronix поставляет Smalltalk/80 на своих рабочих станциях. Apple первая выставила на рынок библиотеку классов для прикладных программистов, называющуюся MacApp, а также первое инструментальное средство для конечных пользователей - HyperCard.

Кроме фирмы Envos, продукты на основе Лиспа поставляются и другими давними пользователями объектно-ориентированной технологии, например, фирмой Symbolics, создавшей среду разработки экспертных систем и объектно-ориентированную базу данных. Фирмы-продавцы систем искусственного интеллекта, такие как Intellicorp, AICorp, Neuron Data и Gold Hill, заинтересовались объектно-ориентированной технологией и используют ее как один из элементов гибридных инструментальных средств для прикладных пользователей.

Другие фирмы, в настоящее время занимающиеся объектно-ориентированными системами, представляют собой поставщиков объектно-ориентированных баз данных (Graphael и Servio Logic) или продавцов инструментальных средств CASE (Rational, Software Sciences, Systematica и Objective Systems) . Уже вышли на рынок услуги по сопровождению ООС и прикладные программные продукты.

4.3.2. Поставщики в 1995 году

Состояние промышленности в 1995 г. будет коренным образом отличаться от того, что было в 1990 г. Возможное соглашение между крупнейшими производителями аппаратуры типа IBM и DEC, касающееся объектно- ориентированных систем, гарантирует место этой технологии в первых рядах рынка. Некоторые начинающие фирмы исчезнут вследствие потерь или приобретений.

Занялись этой технологией и компании-производители аппаратуры типа Sun и Hewlett-Packard, которые уже раскручивают внутренние проекты по программному обеспечению и инструментам баз данных на основе объектно-ориентированной технологии.

Появление инструментальных средств для объектно-ориентированного анализа и проектирования от фирм Cadre Technologies, Nestec и Index Technology послужит толчком к применению ООС в реализации больших программных проектов.

Появление объектно-ориентированных продуктов у знаменитых фирм - продавцов баз данных, таких как Relational Technology, Oracle и Informix окажет поддержку ООС и сильно увеличит спрос на эту технологию на рынке. Доступность таких объектно-ориентированных продуктов в совокупности с реляционными базами данных послужит толчком к применению ООС в фирмах - разработчиках информационных систем для коммерческих задач.

Баланс между поставщиками будет нарушен вступлением продавцов ПО для персональных компьютеров (Microsoft, Lotus) с рядом программных продуктов для конечных пользователей. К ним присоединятся новые фирмы типа NeXT и ON Technology.

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


Содержание