Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Метрические особенности ООП систем

Метрические особенности ООП систем, страница 2

PDF-файл Метрические особенности ООП систем, страница 2 Проектирование программного обеспечения автоматизированных систем (5765): Другое - 9 семестр (1 семестр магистратуры)Метрические особенности ООП систем: Проектирование программного обеспечения автоматизированных систем - PDF, страница 2 (5765) - СтудИзба2015-08-23СтудИзба

Описание файла

PDF-файл из архива "Метрические особенности ООП систем", который расположен в категории "". Всё это находится в предмете "проектирование программного обеспечения автоматизированных систем" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "проектирование по автоматизированных систем" в общих файлах.

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Склеенные лексемы не требуют связывания всех секцийданных, поэтому данная метрика определяет более слабый тип связности. Слабая связность поданным вычисляется по формуле:G (CSA (C )),WDC(C ) =лексемы(C )где G(CSA(C)) — объединение склеенных лексем каждого из методов класса. Класс без склеенныхлексем не имеет слабой связности по данным. Наиболее точной метрикой связности междусекциями данных является клейкость данных (Data Adhesiveness). Клейкость данных определяетсякак отношение суммы из количеств секций, содержащих каждую склеенную лексему, кпроизведению количества лексем данных в классе на количество секций данных.

Метрикавычисляется по формуле:∑ d ∈ G(CSA(C )" d ∈ Секции .DA(C ) =лексемы(C ) × CSA (C )Метрики связности по методамД. Биемен и Б. Кенг предложили метрики связности класса, которые основаны на прямых икосвенных соединениях между парами методов [15]. Если существуют общие экземплярные3переменные (одна или несколько), используемые в паре методов, то говорят, что эти методысоединены прямо. Пара методов может быть соединена косвенно, через другие прямосоединенные методы.Обычно конструктору доступны все экземплярные переменные класса, он использует этипеременные совместно со всеми другими методами.

Следовательно, конструкторы создаютсоединения и между такими методами, которые никак не связаны друг с другом. Поэтому никонструкторы, ни деструкторы здесь не учитываются.Для формализации модели вводятся понятия абстрактного метода и абстрактного класса.Абстрактный метод АМ(М) — это представление реального метода М в виде множестваэкземплярных переменных, которые прямо или косвенно используются методом.Экземплярная переменная прямо используется методом М, если она появляется в методе каклексема данных.

Экземплярная переменная может быть определена в том же классе, что и М, илиже в родительском классе этого класса. Множество экземплярных переменных, прямоиспользуемых методом М, обозначим как DU(M).Экземплярная переменная косвенно используется методом М, если: 1) экземплярнаяпеременная прямо используется другим методом М', который вызывается (прямо или косвенно) изметода М; 2) экземплярная переменная, прямо используемая методом М', находится в том жеобъекте, что и М.Множество экземплярных переменных, косвенно используемых методом М, обозначим какIU(М).Количественно абстрактный метод формируется по выражению:AM (М) = DU (М) ∪ IU (М).Абстрактный класс АС(С) — это представление реального класса С в виде совокупностиабстрактных методов, причем каждый абстрактный метод соответствует видимому методу классаС.

Количественно абстрактный класс формируется по выражению:АС (С) = [[AM (M) | M ∈ V (С)]],где V(C) — множество всех видимых методов в классе С и в классах — предках для С.Отметим, что АМ-представления различных методов могут совпадать, поэтому в АС могутбыть дублированные элементы. В силу этого АС записывается в форме мультимножества(двойные квадратные скобки рассматриваются как его обозначение).Локальный абстрактный класс LAC(C) — это совокупность абстрактных методов, где каждыйабстрактный метод соответствует видимому методу, определенному только внутри класса С.Количественно абстрактный класс формируется по выражению:LAC(C)=[[AM(M)|M ∈ LV(C)]],где LV(C) — множество всех видимых методов, определенных в классе С.Абстрактный класс для стека, приведенного в табл.

14.2, имеет вид:AC (Stack) = [[{top}, {size}, {array, top}, {array, top, size}, {pop}]].Поскольку класс Stack не имеет суперкласса, то справедливо:AC (Stack) = LAC (Stack)Пусть NP(C) — общее количество пар абстрактных методов в AC(C). NP определяетмаксимально возможное количество прямых или косвенных соединений в классе. Если в классе Симеются N методов, тогда NP(C) = N*(N- l)/2. Обозначим:‰ NDC(C) — количество прямых соединений AC(Q;‰ NIC(C) — количество косвенных соединений в АС(С).Тогда метрики связности класса можно представить в следующем виде:‰ сильная связность класса (Tight Class Cohesion (ТСС)) определяется относительнымколичеством прямо соединенных методов:ТСС (С) = NDC (С) / NP (С);‰ слабая связность класса (Loose Class Cohesion (LCC)) определяется относительнымколичеством прямо или косвенно соединенных методов:LCC (С) = (NDC (С) + NIC (С)) / NP (С).Очевидно, что всегда справедливо следующее неравенство:LCC(C)>=TCC(C).4Метрики ТСС и LCC индицируют степень связанности между видимыми методами класса.Видимые методы либо определены в классе, либо унаследованы им.

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

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

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

д. Более разнообразным стал составмодулей в системе (классы, объекты, свободные функции и процедуры, пакеты). Отсюда вывод:необходимость измерения и регулирования сцепления в объектно-ориентированных системахобострилась.Рассмотрим объектно-ориентированные метрики сцепления, предложенные М. Хитцем и Б.Монтазери [38].Зависимость изменения между классамиЗависимость изменения между классами CDBC (Change Dependency Between Classes)определяет потенциальный объем изменений, необходимых после модификации класса-сервераSC (server class) на этапе сопровождения.

До тех пор, пока реальное количество необходимыхизменений класса-клиента СС (client class) неизвестно, CDBC указывает количество методов, накоторые влияет изменение SC.CDBC зависит от:‰ области видимости изменяемого класса-сервера внутри класса-клиента (определяется типомотношения между CS и СС);‰ вида доступа СС к CS (интерфейсный доступ или доступ реализации).Возможные типы отношений приведены в табл. 14.3, где п — количество методов класса СС,α — количество методов СС, потенциально затрагиваемых изменением.Таблица 14.3. Вклад отношений между клиентом и сервером в зависимость измененияТип отношенияSC не используется классом ССSC — класс экземплярной переменной в классе ССЛокальные переменные типа SC используются внутри /-методов класса ССSC является суперклассом ССSC является типом параметра для/-методов класса СССС имеет доступ к глобальной переменной класса SCα0njnjnКонечно, здесь предполагается, что те элементы класса-сервера SC, которые доступны классу5клиенту СС, являются предметом изменений.

Авторы исходят из следующей точки зрения: есликласс SC является «зрелой» абстракцией, то предполагается, что его интерфейс более стабилен,чем его реализация. Таким образом, многие изменения в реализации SC могут выполняться безвлияния на его интерфейс. Поэтому вводится фактор стабильности интерфейса для класса-сервера,он обозначается как к (0 < k < 1). Вклад доступа к интерфейсу в зависимость изменения можноучесть умножением на (1 - k).Метрика для вычисления степени CDBC имеет вид:A=∑ α+ (1 − k ) × ∑ α;iiДоступ iк интерфейсуДоступ iк реализацииCDBC(CC, SC) = min(n, A).Пути минимизации CDBC:1) ограничение доступа к интерфейсу класса-сервера;2) ограничение видимости классов-серверов (спецификаторами доступа public, protected,private).Локальность данныхЛокальность данных LD (Locality of Data) — метрика, отражающая качество абстракции,реализуемой классом.

Чем выше локальность данных, тем выше самодостаточность класса. Этахарактеристика оказывает сильное влияние на такие внешние характеристики, как повторнаяиспользуемость и тестируемость класса.Метрика LD представляется как отношение количества локальных данных в классе к общемуколичеству данных, используемых этим классом.Будем использовать терминологию языка C++. Обозначим как Mi(1 ≤ i ≤ n) методы класса. В ихчисло не будем включать методы чтения/записи экземплярных переменных.

Тогда формулу длявычисления локальности данных можно записать в виде:aLD =∑Li =1ai∑Ti =1,iгде:‰ Li(1 ≤ i ≤ n) — множество локальных переменных, к которым имеют доступ методы Mi(прямо или с помощью методов чтения/записи). Такими переменными являются:непубличные экземплярныё переменные класса; унаследованные защищенныеэкземплярныё переменные их суперклассов; статические переменные, локальноопределенные в Mi ;‰ Ti(1 ≤ i ≤ n) — множество всех переменных, используемых в Mi, кроме динамическихлокальных переменных, определенных в Mi.Для обеспечения надежности оценки здесь исключены все вспомогательные переменные,определенные в Mi , — они не играют важной роли в проектировании.Защищенная экземплярная переменная, которая унаследована классом С, является локальнойпеременной для его экземпляра (и следовательно, является элементом Li), даже если она необъявлена в классе С.

Использование такой переменной методами класса не вредит локальностиданных, однако нежелательно, если мы заинтересованы уменьшить значение CDBC.Набор метрик Чидамбера и КемерераВ 1994 году С. Чидамбер и К. Кемерер (Chidamber и Кетегег) предложили шесть проектныхметрик, ориентированных на классы [24]. Класс — фундаментальный элемент объектноориентированной (ОО) системы. Поэтому измерения и метрики для отдельного класса, иерархииклассов и сотрудничества классов бесценны для программного инженера, который долженоценить качество проекта.Набор Чидамбера-Кемерера наиболее часто цитируется в программной индустрии и научных6исследованиях.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее