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

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

uo;-иерархическая
структура  –  базируется  на  отношении  агрегации.  Агрегация  не  является
понятием, уникальным для объектно-ориентированных  систем.  Например,  любой
язык программирования, разрешающий  структуры  типа  «запись»,  поддерживает
агрегацию. И все же агрегация особенно полезна в сочетании с  наследованием:
агрегация обеспечивает физическую группировку логически  связной  структуры,
а наследование позволяет легко и многократно использовать эти  общие  группы
в других абстракциях.
    Рассмотрим более пристально  объекты  –  конкретные  сущности,  которые
существуют во времени и пространстве.
    Объект –  это  конкретное  представление  абстракции.  Объект  обладает
индивидуальностью, состоянием и поведением. Структура и  поведение  подобных
объектов определены  в  их  общем  классе.  Термины  «экземпляры  класса»  и
«объект» взаимозаменяемы.
    Индивидуальность – это характеристика объекта, которая отличает его  от
всех других объектов.
    Состояние объекта  характеризуется  перечнем  всех  свойств  объекта  и
текущими  значениями  каждого  их  этих  свойств.  Объекты   не   существуют
изолированно  друг  от  друга.  Они  подвергаются   воздействию   или   сами
воздействую  на  другие  группы.  Поведение  характеризует  то,  как  объект
воздействует на другие объекты (или  подвергается  воздействию)  в  терминах
изменений его состояния и передачи  сообщений.  Поведение  объекта  является
функцией как его состояния, так и  выполняемых  им  операций.  Говорят,  что
состояние объекта представляет суммарный результат его  поведения.  Операция
обозначает обслуживание, которое объект предлагает своим клиентам.  Возможны
пять видов операций клиента над объектом:
     1) модификатор (изменяет состояние объекта);
     2) селектор (дает доступ к состоянию, но не изменяет его);
     3)  итератор  (доступ  к  содержанию  объекта  по  частям,   в   строго
        определенном порядке);
     4) конструктор (создает объект и инициализирует его состояние);
     5) деструктор (разрушает объект и освобождает занимаемую им память).
    В  чистых  объектно-ориентированных  языках  программирования  операции
могут  объявляться  только  как  методы  –  элементы  классов,  экземплярами
которых являются объекты. Гибридные  языки  позволяют  писать  операции  как
свободные подпрограммы (вне классов). В общем случае все методы и  свободные
подпрограммы, ассоциированные  с  конкретным  объектом,  образуют  протокол.
Таким образом, протокол определяет оболочку допустимого поведения объекта  и
поэтому заключает в себе цельное (статическое и динамическое)  представление
объекта. Большой  протокол  полезно  разделять  на  логические  группировки,
разделяющие пространство поведения объект, обозначают  роли,  которые  может
играть объект. С точки зрения внешней  среды  важное  значение  имеет  такое
понятие,  как  обязанности  объекта.  Обязанности   означают   обязательства
объекта обеспечить определенное поведение.  Обязанностями  объекта  являются
все виды обслуживания, которые он предлагает клиентам. В мире объект  играет
определенные роли, выполняя свои обязанности.
    Наличие  у  объекта  внутреннего  состояния   означает,   что   порядок
выполнения им операций очень важен. То есть объект может представляться  как
независимый автомат. Можно выделить активные и пассивные  объекты.  Активный
объект  имеет  собственный  канал  (поток)  управления,  пассивный  –   нет.
Активный  объект  автономен,  он  может   проявлять   свое   поведение   без
воздействия со стороны других объектов. Пассивный  объект,  наоборот,  может
изменять свое состояние только под воздействием других объектов.
    В  поле  зрения  разработчика  программного  обеспечения  находятся  не
объекты-одиночки, а взаимодействующие объекты,  ведь  именно  взаимодействие
объектов  реализует  поведение  системы.  Отношения  между  парой   объектов
основываются на взаимной информации  о  разрешенных  операциях  и  ожидаемом
поведении.



    4. Оценка сложности программных систем
    При  конструировании   объектно-ориентированных   программных   средств
значительная часть затрат приходится на создание визуальных  моделей.  Очень
важно корректно и всесторонне  оценить  качество  этих  моделей,  сопоставив
качеству  числовую  оценку.   Решение   данной   задачи   требует   введения
специального   метрического   аппарата.   Такой   аппарат   развивает   идеи
классического  оценивания  сложных  программных   систем,   основанного   на
метриках сложности,  связности  и  сцепления.  Вместе  с  тем  он  учитывает
специфические  особенности   объектно-ориентированных   решений.   Объектно-
ориентированные метрики вводятся с целью:
      . улучшить понимание качества продукта;
      . оценить эффективность процесса конструирования;
      . улучшить качество работы на этапе проектирования.
    Для любого инженерного продукта метрики должны ориентироваться  на  его
уникальные   характеристики.   С   точки   зрения   метрик   выделяют   пять
характеристик объектно-ориентированных  систем:  локализацию,  инкапсуляцию,
информационную закрытость, наследование и способы абстрагирования  объектов.
Эти   характеристики   оказывают   максимальное   влияние    на    объектно-
ориентированные метрики.
    Локализация фиксирует способ  группировки  информации  в  программе.  В
классических  методах,   где   используется   функциональная   декомпозиция,
информация локализуется  вокруг  функций.  Функции  в  них  реализуются  как
процедурные модули. В методах, управляемых данными, информация  группируется
вокруг  структур  данных.  В   объектно-ориентированной   среде   информация
группируется внутри классов или объектов (инкапсуляция, как  данных,  так  и
процессов). Поскольку в классических методах основной  механизм  локализации
– функция, программные метрики ориентированы  на  внутреннюю  структуру  или
сложность функций (длина модуля, связность, цикломатическая  сложность)  или
на способ, которым функции связываются друг с  другом  (сцепление  модулей).
Так  как  в  объектно-ориентированной  системе  базовым  элементом  является
класс, то  локализация  здесь  основывается  на  объектах.  Поэтому  метрики
должны применяться к классу (объекту)  как  к  комплексной  сущности.  Кроме
того, между операциями  (функциями)  и  классами  могут  быть  отношения  не
только    «один-к-одному».    Поэтому    метрики,    отображающие    способы
взаимодействия классов, должны быть  приспособлены  к  отношениям  «один-ко-
многим», «многие-ко-многим».
    Инкапсуляция  –  упаковка  (связывание)  совокупности  элементов.   Для
классических  программных  средств  примерами  низкоуровневой   инкапсуляции
являются записи и массивы. Механизмом инкапсуляции среднего уровня  являются
подпрограммы.   В    объектно-ориентированных    системах    инкапсулируются
обязанности   класса,   представляемые   его   свойствами,   операциями    и
состояниями.  Для  метрик  учет  инкапсуляции  приводит  к  смещению  фокуса
измерений с  одного  модуля  на  группу  свойств  и  обрабатывающих  модулей
(операций). Кроме того, инкапсуляция переводит измерения  на  более  высокий
уровень абстракции. Напротив, классические метрики ориентированы  на  низкий
уровень  –  количество  булевых  условий   (цикломатическая   сложность)   и
количество строк программы.
    Информационная  закрытость  делает   невидимыми   операционные   детали
программного компонента.  Другим  компонентам  доступна  только  необходимая
информация.  Качественные  объектно-ориентированные   системы   поддерживают
высокий  уровень  информационной   закрытости.   Таким   образом,   метрики,
измеряющие степень достигнутой закрытости,  тем  самым  отображают  качество
объектно-ориентированного проекта.
    Наследование  –  механизм,  обеспечивающий  тиражирование  обязанностей
одного класса в  другие  классы.  Наследование  распространяется  через  все
уровни иерархии классов. Стандартные программные  средства  не  поддерживают
эту  характеристику.  Поскольку  наследование  –   основная   характеристика
объектно-ориентированных  систем,  на  ней  фокусируются  многие   объектно-
ориентированные метрики (количество  детей  –  потомков  класса,  количество
родителей, высота класса в иерархии наследования).
    Абстракция – это механизм, который  позволяет  проектировщику  выделять
главное в программном компоненте (как свойства, так и  операции)  без  учета
второстепенных  деталей.  По  мере  перемещения  на  более  высокие   уровни
абстракции мы игнорируем все большее  количество  деталей,  обеспечивая  все
общее представление понятия или  элемента.  По  мере  перемещения  на  более
низкие  уровни  абстракции  мы  вводим  все  большее   количество   деталей,
обеспечивая более точное представление понятия или  элемента.  Класс  –  это
абстракция,  которая  может   быть   представлена   на   различных   уровнях
детализации  и  различными   способами.   Поэтому   объектно-ориентированные
метрики должны представлять абстракции в терминах измерений класса.
    Классической  мерой  сложности  внутренних   связей   модуля   является
связность, а классической мерой сложности внешних связей – сцепление.
    Связность  модуля  –  мера  зависимости  его  частей,  это   внутренняя
характеристика модуля.  Чем  выше  связность  модуля,  тем  лучше  результат
проектирования. Для измерения связности используют  понятие  силы  связности
(СС). Существует 7 типов связности:
    1. Связность по совпадению (СС=0). В модуле отсутствуют явно выраженные
       внутренние связи.
    2. Логическая связность (СС=1). Части  модуля  объединены  по  принципу
       функционального  подобия.  Например,  модуль   состоит   из   разных
       подпрограмм обработки ошибок. При исполь
12345След.
скачать работу

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

 

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

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


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