university of belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/... · web viewНазив...
TRANSCRIPT
УНИВЕРЗИТЕТ У БЕОГРАДУФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА
Катедра за софтверско инжењерствоЛабораторија за софтверско инжењерство (СИЛАБ)
Семинарски рад из предмета:СОФТВЕРСКИ ПАТЕРНИ
Професор: Студент: Број индекса:Проф. др Синиша Влајић Пера Перић 123/14
Београд - 2017.
САДРЖАЈ:
1. УВОД...................................................................................................................................................................1
2. СОФТВЕРСКИ ПАТЕРНИ................................................................................................................................1
2.1 Основне дефиниције патерна...................................................................................................................1
2.2 Општи облик GOF патерна пројектовања............................................................................................2
2.3 Примењивост патерна у животу.............................................................................................................4
3. ПРИМЕНА СОФТВЕРСКИХ ПАТЕРНА У РАЗВОЈУ СОФТВЕРСКОГ СИСТЕМА...............................5
3.1 Опис софтверског система........................................................................................................................5
3.2 Патерни за креирање објеката................................................................................................................5
3.3 Структурни патерни..................................................................................................................................5
3.4 Патерни понашања....................................................................................................................................5
4. ЗАКЉУЧАК........................................................................................................................................................9
5. ЛИТЕРАТУРА..................................................................................................................................................10
i
1. УВОД
Укратко објаснити садржај семинарског рада. (пола стране до једне стране)
2. СОФТВЕРСКИ ПАТЕРНИ2.1 Основне дефиниције патернаОбјаснити:а) шта су софтверски патерни и дати неке од основних дефиниција патерна, б) улогу патерна у развоју софтвера, ц) када се користе патерни ид) однос патерна, реда и хаоса. (максимално две стране)
1
2.2 Општи облик GOF патерна пројектовања
(максимално три стране)
...
Слика ...: Патерн као структура и процес
...
Слика ...: Структура решења GOF патерна пројектовања
...
Слика ...: Структура проблема GOF патерна пројектовања
....
Клијент
Конкретни сервер 1
Апстрактни сервер
Конкретни сервер 2
Конкретни серверn
СТРУКТУРАT
ПАТЕРНИ
ПРОБЛЕМ РЕШЕЊЕ
ПРОЦЕС
Клијент
Конкретни сервер 1
Конкретни сервер 2
Конкретни серверn
2
Слика ---: Општи облик GOF патерна пројектовања
Структура проблема Структура решења
TКЛ
КС1
КС2
КСn
KЛ
КС1
АС
КС2 КСn
GOF ПАТЕРНИ ПРОЈЕКТОВАЊА
3
2.3 Примењивост патерна у животу
Дати сопствени пример или примере када се патерни могу применити у животу.(од једне до максимално две стране)
4
3. ПРИМЕНА СОФТВЕРСКИХ ПАТЕРНА У РАЗВОЈУ СОФТВЕРСКОГ СИСТЕМА
3.1 Опис софтверског системаУкратко објаснити софтверски систем који се развија.
3.2 Патерни за креирање објеката ПК1 – Abstract Factory ПК2 – Builder ПК3 – Factory method ПК4 – Prototype ПК5 – Singletone 3.3 Структурни патерни СП1: Adapter СП2: Bridge СП3: Composite СП4: Decorator СП5: Facade СП6: Flyweight СП7: Proxy 3.4 Патерни понашања ПП1: Chain of responsibility ПП2: Command ПП3: Interpreter ПП4: Iterator ПП5: Mediator ПП6: Memento ПП7: Observer ПП8: State ПП9: Strategy ПП10: Template method ПП11: Visitor
За сваки патерн урадити слично као што је урађено на примеру AbstractFactory патерна.
5
******************************************************************************************ПК1: Abstract Factory патерн1
ДефиницијаОбезбеђује интерфејс за креирање фамилије повезаних или зависних објеката (производа) без навођења њихових конкретних класа.Појашњење дефиницијеОбезбеђује интерфејс (AbstractFactory) за креирање (CreateProductA(), CreateProductB()) фамилије повезаних или зависних производа (AbstractProductA, AbstractProductB), без навођења њихових конкретних производа (ProductA1, ProductA2,ProductB1,ProductB2).
Структура Abstract Factory патерна
Учесници
Client - Користи AbstractFactory и AbstractProduct интерфејсе и из њих изведене класе за креирање сложеног производа.
AbstractFactory - Декларише интерфејс за операције (CreateProductA(), CreateProductB()) које креирају производе.
ConcreteFactory - Имплементира операције (CreateProductA(), CreateProductB()) интерфејса AbstractFactory, којима се креирају производи (ProductA1, ProductA2,ProductB1,ProductB2).
AbstractProduct - Декларише интерфејс (AbstractProductA, AbstractProductB) за производе. ConcreteProduct - Дефинише производе (ProductA1, ProductA2,ProductB1,ProductB2) који ће
бити креирани преко ConcreteFactory класа. Имплементира операције AbstractProduct интерфејса.
1 Документацију за овај патерн, поред семинара треба унети и у word документ у фолдеру Documents пројекта. Назив word документа треба да буде исти као назив пројекта. Нпр. Ако је назив пројекта PAF41, тада word документ треба да има назив PAF41.doc.
<<interface>> AbstractFactory
CreateProductA()CreateProductB()
Client
ConcreteFactory1
CreateProductA()CreateProductB()
ConcreteFactory2
CreateProductA()CreateProductB()
<<interface>>AbstractProductA
ProductA2 ProductA1
<<interface>>AbstractProductB
ProductB2 ProductB1
6
Кориснички захтев PAF412: Шеф развоја софтверског система (за обраду пријаве студената) је послао захтев пројектантима софтверског система да креирају елементе софтверског система:А) Екранску форму (view) са пољима за прихват и приказ података.Б) Контролер за размену података између екранске форме и базе података.Ц) Брокер базе података помоћу кога се омогућава памћење, промена, брисање и приказ података.Након прихватања елемената софтверског система шеф ће креирати и покренути софтверски систем за обраду пријава студената. Шеф надзире процес израде софтверског система.
Дијаграм класа примера PAF41
Веза између елемената структуре решења Abstract Factory патерна и структуре решења примера PAF41
2 Водити рачуна да назив корисничког захтева (нпр. PAF41) представља назив вашег Јава пројекта у коме је имплементиран одређени патерн.
Sef<<interface>>Projektant
EkranskaForma kreirajEkranskuFormu() BrokerBazePodataka kreirajBrokerBazePodataka ()
Kontroler kreirajKontroler (EkranskaForma ef,BrokerBazePodataka dbbr)
B
Panel1
A
A
Panel1Panel2
Panel1
SoftverskiSistem
EkranskaForma1
<<abstract>>EkranskaForma
EkranskaForma2
Panel2
<<abstract>>Panel
Panel1
BrokerBazePodataka2
<<abstract>>BrokerBazePodataka
BrokerBazePodataka1
Kontroler2
<<abstract>>Kontroler
Kontroler1
B
DKIspitnaPrijava
Projektant2 Projektant3 Projektant4Projektant1
7
Елементи Abstract Factory патерна Елементи структуре примера PAF41Client SefAbstractFactory ProjektantConcreteFactory Projektant1, Projektant2, Projektant3, Projektant4AbstractProductA EkranskaFormaAbstractProductB BrokerBazePodatakaAbstractProductC KontrolerProductA EkranskaForma1, EkranskaForma2ProductB BrokerBazePodataka1, BrokerBazePodataka2ProductC Kontroler1, Kontroler2
Напомене за пример PAF41
Уколико имате, наведите допунске напомене везане за пример.
******************************************************************************************
8
4. ЗАКЉУЧАК
Навести кључне елементе овога рада, као и проблеме са којима сте се сретали током израде овога рада. Укратко објаснити ваше субјективно мишљење о улози патерна у развоју софтвера.
9
5. ЛИТЕРАТУРА
1. Gamma E, Helm R, Johnson R, Vlissides J.: Design Patterns. Addison-Wesley: Reading MA, 19952. Siniša Vlajić, Vojislav Stanojević, Dušan Savić, Miloš Milić, Ilija Antović, Saša Lazarević, The General Form of GoF Desiдn Patterns, The World of Computer Science and Information Technology Journal (WSCIT), Volume 6, Issue 2. pp. 12-20, 2016, ISSN: 2221-0741. 3. Синиша Влајић: Софтверски патерни, Издавач Златни пресек, ISBN: 978-86-86887-30-6, Београд, 2014.
Важна напомена:Документацију за овај семинарски рад и програмски код сваког од пројеката изрезати на CD-у. Документацију оштампати и ставити у спиралу. На задњој страни семинарског рада направити џеп, у коме ћете ставити наведени CD.
10