Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Интерполяционный полином Лагранжа

ейс  с  пользователем,  иерархические  меню,  компилятор,
интерпретатор, отладчик, текстовый редактор.
    Разработка программ по объектно-ориентированной технологии  сводится  к
созданию новых классов, их  тестированию  и  включению  в  состав  объектно-
ориентированной среды разработки.
    Каждый  отдельный   класс,   благодаря   своей   независимости,   может
разрабатываться и тестироваться отдельно.  Проверенный  класс  включается  в
библиотеку  и  становится  достоянием  текущей  и  последующих   разработок.
Особенностью   объектно-ориентированной   технологии   разработки   программ
является  возможность  быстрого  прототипирования.  В  этом  случае   классы
решаемой  задачи  описываются   только   своими   основными   свойствами   и
поведением, что позволяет сразу проверить главную идею решения задачи.  Если
она неверна, то может быть быстро  изменена  и  проверена  снова.  При  этом
экономятся существенные затраты на программирование деталей.
    Рассмотрим,  каким  образом   в   объектно-ориентированной   технологии
преодолеваются три перечисленных недостатка функционального подхода.
    1. Формализация связей  между  этапами.  Все  этапы  (уровни),  начиная
       анализа программы,  описываются  на  едином  формализованном  языке.
       Фактически четкой границы между уровнями.
    2. Единственный неформализованный уровень  –  требования  пользователя.
       Этот  уровень  вообще   трудно   формализуем,   поскольку   конечным
       пользователем  или  заказчиком  обычно  является  непрофессионал   в
       области программирования  и  ему  необходимо  предложить  свободу  в
       изложении требований к задаче. То,  что  требуется  для  последующих
       спецификаций, – перечень объектов, их свойств и взаимных действий  –
       не выходит за  рамки  обычного  описания  проблемы  на  естественном
       языке. Переход от этого описания к спецификации  программы  делается
       вручную,  но  практически  один  в  один  с  точностью  до  простого
       синтаксиса объектно-ориентированного языка.
    3. Гибкость. Внесение изменений внутри объекта или класса совершенно не
       затрагивает его клиентов, т.е. тех объектов, которые его используют,
       разумеется, если внешний интерфейс объекта остается неизменным.  Это
       фундаментальный принцип объектно-ориентированного  программирования.
       Таким образом обеспечивается гибкость  при  программировании  снизу-
       вверх.
    В настоящее время объектно-ориентированный  подход  является  одним  из
быстро развивающихся направлений в  проектировании  систем.  Примером  могут
являться объектно-ориентированный анализ –  методология  разработки  систем,
предложенная Йорданом,  объектно-ориентированное  проектирование,  объектно-
ориентированное    программирование,    реализованное    в    многочисленных
компиляторах C++, Object Pascal, Borland Pascal, Smalltalk.



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

    Значительное   увеличение   сложности   задач,   решаемых   с   помощью
компьютеров, приводит  к  увеличению  размеров  и  сложности  программ,  что
порождает трудности при их разработке и отладке. Рассмотрение любой  сложной
системы требует применения техники декомпозиции – разбиения на  составляющие
элементы. Известны две схемы декомпозиции:  алгоритмическая  декомпозиция  и
объектно-ориентированная декомпозиция.
    В основе алгоритмической декомпозиции лежит разбиение  по  действиям  –
алгоритмам.  Эта  схема  представления  применяется  в  обычных  программных
средствах. Объектно-ориентированная декомпозиция обеспечивает  разбиение  по
автономным лицам – объектам реального  (или  виртуального)  мира.  Эти  лица
(объекты) – более «крупные» элементы, каждый из них несет в себе и  описания
действий, и описания данных.
    Объектно-ориентированное    представление     программного     средства
основывается  на  принципах  абстрагирования,  инкапсуляции,  модульности  и
иерархической  организации.  Каждый  из  этих  принципов  не  нов,   но   их
совместное  применение  рассчитано  на  проведение  объектно-ориентированной
декомпозиции.  Это  определяет  модификацию  их  содержания   и   механизмов
взаимодействия друг с другом.
    Аппарат абстракции  –  удобный  инструмент  для  борьбы  со  сложностью
реальных  систем.  Создавая  понятие  в  интересах  какой-либо  задачи,   мы
отвлекаемся  (абстрагируемся)  от  несущественных  характеристик  конкретных
объектов,  определяя  только  существенные  характеристики.  Абстрагирование
сводится к формированию абстракций.  Каждая  абстракция  фиксирует  основные
характеристики объекта, которые отличают его  от  других  видов  объектов  и
обеспечивают ясные понятийные границы. Абстракция концентрирует внимание  на
внешнем представлении  объекта,  позволяет  отделить  основное  в  поведении
объекта  от  его  реализации.  Абстракцию  удобно  строить  путем  выделения
обязанностей объекта.
    Инкапсуляция  и  абстракция  –  взаимодополняющие  понятия:  абстракция
выделяет внешнее поведение  объекта,  а  инкапсуляция  содержит  и  скрывает
реализацию, которая обеспечивает это поведение. Инкапсуляция  достигается  с
помощью информационной закрытости. Обычно скрываются  структура  объектов  и
реализация их методов. Инкапсуляция является процессом разделения  элементов
абстракции  на  секции  с  различной  видимостью.  Инкапсуляция  служит  для
отделения интерфейса абстракции от ее реализации.
    В языках С++, Object Pascal,  Ada  95  абстракция  классов  и  объектов
формируют  логическую  структуру  системы.   При   производстве   физической
структуры эти абстракции  помещаются  в  модули.  В  больших  системах,  где
классов  сотни,  модули  помогают  управлять   сложностью.   Модули   служат
физическими контейнерами, в которых объявляются классы и объекты  логической
разработки.
    Модульность определяет способность системы подвергаться декомпозиции на
ряд сильно связанных и слабо сцепленных модулей. Общая цель декомпозиции  на
модули: уменьшение сроков разработки и стоимости  программного  средства  за
счет выделения  модулей,  которые  проектируются  и  изменяются  независимо.
Каждая модульная  структура  должна  быть  достаточно  простой,  чтобы  быть
полностью понятной. Изменение  реализации  модулей  должно  проводиться  без
знания реализации других модулей и без влияния на их поведение.
    Определение  классов  и  объектов   выполняется   в   ходе   логической
разработки, а определение модулей – в ходе  физической  разработки  системы.
Эти действия сильно взаимосвязаны, осуществляются  итеративно.  Допустим,  в
Ada 95 мощным средством обеспечения модульности является пакет.
    Прекрасным дополнением к предыдущим  принципам  является  иерархическая
организация  –   формирование   из   абстракций   иерархической   структуры.
Определением иерархии в проекте упрощаются понимание проблем заказчика и  их
реализация – сложная система становится обозримой  человеком.  Иерархическая
организация задает  размещение  абстракция  на  различных  уровнях  описания
системы.
    Двумя  важными  инструментами  иерархической  организации  в  объектно-
ориентрованных системах являются:
       1. структура из классов(«is a»-иерархия);
       2. структура из объектов(«part of»-иерархия).
    Чаще  всего  «is  a»-иерархическая   структура   строится   с   помощью
наследования. Наследование определяет отношение между  классами,  где  класс
разделяет структуру или поведение, определенные в  одном  другом  (единичное
наследование) или в нескольких других (множественное наследование)  классах.
Другая разновидность иерархической  организации  –  «part  of&raq
12345След.
скачать работу

Интерполяционный полином Лагранжа

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ