15.07.2025 П9: 1/59
9.2.Основни концепти објектно оријентисаних методологија
Као што је приказано на слици, у сржи објектно оријентисаног
пословања (SE) су подаци. Шест фундаменталних принципа
објектно оријентисаног метода се заснива на подацима и извлачи
вредност из њих на различите начине. Ови објектно оријентисани
фундаментални принципи су следећи:
◾ Класификација (груписање)
◾ Апстракција (представљање)
◾ Енкапсулација (модуларизација)
◾ Асоцијација (повезивање)
◾ Наслеђивање (генерализација)
◾ Полиморфизам (извршавање)
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
2.
15.07.2025 П9: 2/59
9.2.Основни концепти објектно оријентисаних методологија
Класификација (груписање)
Класификација је почетна тачка објектно оријентисаног метода.
Добри софтверски инжењери разумеју захтеве тако што прво
идентификују ентитете у пословном простору.
Када се ови ентитети или потенцијални објекти идентификују, они
се групишу или класификују.
Класификација се заснива на захтевима који се појављују у
проблемском простору, а ови захтеви се, заузврат, итеративно
модификују на основу класификације.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
3.
15.07.2025 П9: 3/59
9.2.Основни концепти објектно
оријентисаних методологија
Класификација (груписање)
Kао што је приказано на слици, лептир и
ждрал су груписани под ознаком „птица“,
мачка и жаба под ознаком „животиња“,
шешир и сат под ознаком „ствар“ итд.
Промене у захтевима система у
проблемском простору мењају
одговарајућу основу за класификацију. На
пример, ако постоје додатни захтеви за
летеће објекте, онда је, поред лептира и
ждрала, авион такође укључен у ту
колекцију објеката, што резултира
другачијом класификацијом.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
4.
15.07.2025 П9: 4/59
9.2.Основни концепти објектно оријентисаних методологија
Апстракција (Представљање)
Објекти, који су ентитети из стварног света, морају бити
представљени шаблоном који такође дефинише њихове
карактеристике и понашање.
Колекције класификованих објеката су апстраховане у класе.
Класа пружа детаљну дефиницију свих објеката који се могу да
проистекну. Ово је основни ниво апстракције.
Бројни објекти о којима се говорило у одељку класификације у
претходном одељку представљени су класом.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
5.
15.07.2025 П9: 5/59
9.2.Основни концепти објектно оријентисаних методологија
Апстракција (Представљање)
Објекти, који су ентитети из стварног света, морају бити
представљени шаблоном који такође дефинише њихове
карактеристике и понашање.
Колекције класификованих објеката су апстраховане у класе.
Класа пружа детаљну дефиницију свих објеката који се могу да
проистекну. Ово је основни ниво апстракције.
Бројни објекти о којима се говорило у одељку класификације у
претходном одељку представљени су класом.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
6.
15.07.2025 П9: 6/59
9.2.Основни концепти објектно оријентисаних методологија
Апстракција (Представљање)
Неколико таквих класа је приказано својим именима унутар правоугаоника
на слици 1 (нпр. Жаба, Шешир, Сат и Мачка). Ниједна од ових класа није
стварни објект.
Иако је класа апстракција која представља колекцију објеката, саме класе
су подложне даљој апстракцији. Овај други ниво апстракције приказан је
на слици 2, где су класе Жаба и Мачка апстраховане у класу вишег нивоа
под називом Животиња.
1. 2.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
7.
15.07.2025 П9: 7/59
9.2.Основни концепти објектно оријентисаних методологија
Енкапсулација (Модуларизација)
Као што и само име сугерише, енкапсулација је у основи поступак
обухвата делова кохерентних података смисленим кодом.
Енкапсулација локализује податке и спречава њихово директно
излагање остатку система. Енкапсулација побољшава квалитет и
поновну употребу јер су подаци доступни само путем позива
операција (метода или функција) класе.
Са енкапсулацијом, програмер који поново користи класу не мора
да зна како је метода имплементирана да би је користио (позвао).
Све што је потребно је познавање интерфејса класе (наслов и
аргументи) и како га позвати. Јавни (интерфејс), или видљиви, део
класе је обично подскуп њених метода или функција.
Енкапсулација такође олакшава лакше дебаговање кода.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
8.
15.07.2025 П9: 8/59
9.2.Основни концепти објектно оријентисаних методологија
Асоцијација (Повезивање)
Објекти се класификују и апстрахују у класе. Класе не постоје
изоловано. Оне се повезују са другим класама на више начина.
Асоцијација је механизам за две (више) класа да се повежу
једна са другом. На пример, слика приказује класу Особа која се
повезује са класом Сат како би се постигао циљ, рецимо,
„проналажење које је време“. Може постојати много додатних
асоцијација између Особе и Сата, као што су „замена батерија у
сату“, „куповина сата“ или „подешавање времена“.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
9.
15.07.2025 П9: 9/59
9.2.Основни концепти објектно оријентисаних методологија
Наслеђивање (генерализација)
Класе у ООМ се такође међусобно повезују путем наслеђивања.
Наслеђивање је резултат генерализације класа у класе вишег
нивоа или апстраховане класе. Апстракција другог нивоа,
приказана раније је почетна тачка добрих ОО хијерархија.
Класа може наследити атрибуте, понашање и односе друге класе.
Наслеђивање омогућава проширивост дизајна и поновну употребу
кода.
Када се скуп класа апстрахује на виши ниво, то се назива
генерализација; када је класа изведена из постојеће класе, то се
назива специјализација.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
10.
15.07.2025 П9: 10/59
9.2.Основни концепти објектно
оријентисаних методологија
Наслеђивање (генерализација)
Пример:
Слика се надовезује на претходно поменути
пример класификације и апстракције. Класу
Животиња наслеђују Жаба и Мачка, што
резултира специјализацијом класе Животиња.
Класу Птица слично наслеђује Ждрал са свим
њеним атрибутима и односима. Поред тога,
заједничке особине између Птице и
Животиње су генерализоване у класу вишег
нивоа која се зове Жива.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
11.
15.07.2025 П9: 11/59
9.2.Основни концепти објектно оријентисаних методологија
Полиморфизам (Извршавање)
Полиморфизам је способност инстанцираног објекта (током
извршавања) да разуме и интерпретира поруку послату од објекта
који позива. Ова интерпретација поруке од стране објекта зависи
од његових сопствених карактеристика и дефиниције.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML
12.
15.07.2025 П9: 12/59
9.2.Основни концепти објектно оријентисаних методологија
Полиморфизам (Извршавање)
Имена метода унутар виших (генерализованих) и изведених
(специјализованих) класа морају бити иста како би се олакшао
полиморфизам. Такође, полиморфизам карактеристика објектно-
оријентисаног пројектовања током извршавања, у поређењу са
наслеђивањем, које је структурна карактеристика.
Наслеђивање у дизајну омогућава полиморфизам током
извршавања.
Предност полиморфизма је у томе што позивајући објекат (тј.
објекат који шаље поруку „покрет“ објекту Животиња) не мора да
зна који одређени објекат на пријемном крају извршава метод
„покрета“. Још једна предност полиморфизма је у томе што када се
појави нови захтев за, рецимо, Мачку у моделу приказаном на
слици, објекат који шаље поруку „покрет“ се не мења.
9. Објектно оријентисано моделовање
и језик за обједињено моделовање UML