ПК-ностальгия
HOME
Железо
Программы
Оборудование
Статьи и публикации
Фототаблица
Ссылки
Почта
Гостевая
ПОИСК
Новости Яndex
О сайте

Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?

StuhlbergR 2007 ©
Объектно-ориентированное программирование для менеджеров

Алан Каплан

Объектно-ориентированное программирование делает прикладные программы мощнее и проще.

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

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

Что такое ООП
Менеджеры-непрограммисты не нуждаются в понимании того, как именно ООП делает то, что оно делает. "Но, - говорит Джон Бирд, менеджер разработки Vision Video компании Borland International, - пока пользователи оценят то, что делает ООП, они не поймут, на что оно способно и чего следует ожидать от программ, разработанных с применением этого метода." А ожидать, по его словам, следует появления более мощных и простых в обращении программ, легко поддающихся модификации и к тому же недорогих.

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

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

В языках, поддерживающих ООП - наиболее известными из них являются Smalltalk, Actor, Simula и C++ - на передний план выностися абстракция и тот способ работы с характеристиками объектов, который в повседневной речи мы воспринимаем как нечто само собой разумеющееся. Эти языки позволяют при создании программ мыслить понятиями, отбросив бремя деталей реализации. Разработчики программного обеспечения приняли появление новых возможностей с исключительным энтузиазмом; журнал для программистов "Computer Language" превозносит ООП до небес.

ФИЛИПП КАН ПРИВОДИТ ПРИМЕР ОБЪЕКТА: dBase

Ни один человек, следивший за быстрым развитием фирмы Borland, не станет спорить с тем, что своим ведущим положением среди компаний, занимающихся разработкой программного обеспечения она обязана прежде всего ООП, а значит, ее главе Филиппу Кану, который первым начал отстаивать в Borland новую технологию. Сейчас Кан убеждает последних сомневающихсяЮ доказывая им, что ООП годится не только для создания новых программ, но может быть успешно применено и для улучшения старых. "Всем надо переходить к работе с ООП", - таково его мнение.
Недавнее приобретение фирмой Borland компании Ashton-Tate, которая с опозданием более чем на год выпустила на рынок обновленную версию своей лучшей разработки dBase, представляет собой великолепную возможность проверить, на что способна Borland. "В течение некоторого времени dBase недоставало действительно технологичных нововведений, - говорит Кан, - и Borland собирается это изменить. Написанный нами в Borland компилятор XBase значительно лучше своих предшественников, в чем вы, несомненно, убедитесь, когда он появится на рынке. Самое же главное, что системы нашей фирмы Paradox и dBase смогут обмениваться информацией с помощью нашей же технологии "Object Layer" ("уровень объектов"), которая позволит осуществить доступ к огромному множеству различных форматов файлов".
Как бы ни планировала Borland на долгий срок в отношении dBase, пользователи ожидают следующую версию с огромным интересом. "То, что делает Borland с dBase, могло бы стать наилучшим из существующих когда-либо аргументов в пользу ООП, - говорит консультант Джон Мэрфи, президент компании Metro Computing (Гиббсборо, шт. Нью-Джерси). - Значительно улучшенная, совместимая с Windows версия dBase могла бы стать наглядным доказательством того, что средства, предлагаемые Borland, действительно применимы к развитию старых программ".


Чем ООП выгодно пользователю
Разумеется, прежде, чем пользователь сможет с программой, кто-то должен ее написать. Поэтому ни одна компания во всем сообществе разработчиков программного обеспечения для DOS и Windows не защищает ООП энергичнее, чем Borland. Руководители этой компании полагают, что четыреста с лишним тысяч копий ее пакетов Borland C++, Turbo C++, Turbo Pascal (объектно-ориентированная версия) займут не менее 80% рынка объектно-ориентированного программирования для ПК.

В июле 1991 г. рекламная группа Borland посетила семь американских и семь иностранных городов для демонстрации материалов о продуктивности ООП и распространения 21-минутного видеофильма "Мир объектов" ("World of Object"), в котором глава компании Филипп Кан в общих чертах описывает суть нового метода. Эта запись, адресованная менеджерам программистских фирм, стала первой в серии, включающей теперь учебники для программистов, уже имеющих опыт работы с популярным языком Си. Программисты, пишущие на Си, обычно готовы перейти на Си++, и именно поэтому Си++ стал наиболее популярным языком ООП для персональных компьютеров.

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

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

Пользователи вправе ожидать существенной скидки в цене, которую они платят поставщикам программного обеспечения за заполнение к имеющимся у них пакетам. Ведь разработчик, имеющий такое инструментальное средство ООП, как, например, библиотека ImageMan for Windows фирмы Data Techniques, сможет добавлять возможности вывода на экран и принтер к своей прикладной программе для Windows, не изучая бесчисленных графических форматов и не разрабатывая для каждого из них соответствующий код. По оценке Дэвида Хвалиша из фирмы Zylab, добавление графических модулей ImageMan к разработанной этой фирмой программе поиска текстов и изображений ZyIndex сократило время разработки на 80%, не считая "тягот изучения этих форматов". Хвалиш коротко описывает преимущества ООП так: "Теперь я просто открываю изображение и втаскиваю туда объект; мне нет необходимости вдаваться во внутренние детали". ImageMan поддерживает и такие хорошо известные программы, как XTree - командная оболочка для DOS, и DataEase - программа для работы с базами данных.

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

Аналогия с телефоном проясняет еще одно свойство ООП, ценное для конечного пользователя, - независимость от оборудования. Пользователь воздействует на объекты с помощью сообщений, и посылая сообщение, достаточно быть уверенным лишь в том, что объект его правильно проинтерпретирует. Операционная система CTOS фирмы Unisys основана на передаче сообщений, и Дэвид Маллинс, управляющий разработкой ОС в отделе распределенных систем фирмы Unisys, считает, что ООП "чрезвычайно расширило наши возможности по написанию программ для 80х86, RISC, Motorola и других микропроцессоров." Сейчас Маллинс внимательно следит за переходом к ООП в своей фирме. "Это полный переворот в профессиональном мышлении разработчика программ, и мы обнаружили, что работа тех, кто сумеет совершить в себе этот переворот, становится исключительно продуктвной".

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

Разумеется, многие превосходные объектно-ориентированные программы создавались без использования специализированных языков ООП; с другой стороны, сам по себе факт, что программа написана на C++ и рассчитана на среду Windows, еще не гарантирует ее качества. Инженер по программному обеспечению фирмы Data Techniques Тим Кэннэпел предупреждает, что следует держаться подальше от всяких болтунов, "которые говорят, что их продукция - объектно-ориентированная, в то время как она таковой не является". Но компании, понимающие технику ООП и программирующие на соответствующих языках, "посвящены в тайну создания хороших программ, и от них можно ожидать более мощных и в целом более эффективных разработок".

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

О том, чтобы программы работали хорошо, заботятся 800 тысяч американских программистов. О том, чтобы они работали вместе, мечтают 50 миллионов пользователей. Благодаря ООП очертания "слаженной работы" - этого Святого Грааля пользователей ПК - уже появились на горизонте.

ОБ ОБЪЕКТАХ
Три объектно-ориентированных механизма делают программы более удобными для пользователя и облегчают разработку

Пример инкапсуляции

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

Наследование атрибутов

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

Полиморфизм

Полиморфизм означает, что объекты реагируют по-своему на одни и те же команды. Соответствующий ответ на команду встроен в каждый объект. На рисунке текстовый объект, графический объект и страничный сами знают, как им реагировать на команду "ИЗОБРАЗИТЬ НА ЭКРАНЕ".

ОБ АВТОРЕ
Алан Каплан - внештатный сотрудник редакции журнала PC World.

*** "Объектно-ориентированное программирование для менеджеров".
Статья была опубликована в журнале "Мир ПК" №5/92

Комментарий:Вот оно, дыхание истории. А ведь теперь часто кажется, что в программировании (да и не только), кроме ООП, ничего больше и нет...



Еще на данную тематику можно прочитать здесь и здесь


Раздел ПРОГРАММЫ

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

Райво Штулберг


Rambler's Top100

Сайт мышонка Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое!

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

Hosted by uCoz