university of belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · web viewНазив...

14
УНИВЕРЗИТЕТ У БЕОГРАДУ ФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА Катедра за софтверско инжењерство Лабораторија за софтверско инжењерство (СИЛАБ) Семинарски рад из предмета: СОФТВЕРСКИ ПАТЕРНИ Професор: Студент: Број индекса:

Upload: others

Post on 16-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

УНИВЕРЗИТЕТ У БЕОГРАДУФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА

Катедра за софтверско инжењерствоЛабораторија за софтверско инжењерство (СИЛАБ)

Семинарски рад из предмета:СОФТВЕРСКИ ПАТЕРНИ

Професор: Студент: Број индекса:Проф. др Синиша Влајић Пера Перић 123/14

Београд - 2017.

Page 2: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

САДРЖАЈ:

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

Page 3: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

1. УВОД

Укратко објаснити садржај семинарског рада. (пола стране до једне стране)

2. СОФТВЕРСКИ ПАТЕРНИ2.1 Основне дефиниције патернаОбјаснити:а) шта су софтверски патерни и дати неке од основних дефиниција патерна, б) улогу патерна у развоју софтвера, ц) када се користе патерни ид) однос патерна, реда и хаоса. (максимално две стране)

1

Page 4: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

2.2 Општи облик GOF патерна пројектовања

(максимално три стране)

...

Слика ...: Патерн као структура и процес

...

Слика ...: Структура решења GOF патерна пројектовања

...

Слика ...: Структура проблема GOF патерна пројектовања

....

Клијент

Конкретни сервер 1

Апстрактни сервер

Конкретни сервер 2

Конкретни серверn

СТРУКТУРАT

ПАТЕРНИ

ПРОБЛЕМ РЕШЕЊЕ

ПРОЦЕС

Клијент

Конкретни сервер 1

Конкретни сервер 2

Конкретни серверn

2

Page 5: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

Слика ---: Општи облик GOF патерна пројектовања

Структура проблема Структура решења

TКЛ

КС1

КС2

КСn

КС1

АС

КС2 КСn

GOF ПАТЕРНИ ПРОЈЕКТОВАЊА

3

Page 6: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

2.3 Примењивост патерна у животу

Дати сопствени пример или примере када се патерни могу применити у животу.(од једне до максимално две стране)

4

Page 7: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

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

Page 8: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

******************************************************************************************ПК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

Page 9: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

Кориснички захтев 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

Page 10: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

Елементи Abstract Factory патерна Елементи структуре примера PAF41Client SefAbstractFactory ProjektantConcreteFactory Projektant1, Projektant2, Projektant3, Projektant4AbstractProductA EkranskaFormaAbstractProductB BrokerBazePodatakaAbstractProductC KontrolerProductA EkranskaForma1, EkranskaForma2ProductB BrokerBazePodataka1, BrokerBazePodataka2ProductC Kontroler1, Kontroler2

Напомене за пример PAF41

Уколико имате, наведите допунске напомене везане за пример.

******************************************************************************************

8

Page 11: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

4. ЗАКЉУЧАК

Навести кључне елементе овога рада, као и проблеме са којима сте се сретали током израде овога рада. Укратко објаснити ваше субјективно мишљење о улози патерна у развоју софтвера.

9

Page 12: University of Belgradesilab.fon.bg.ac.rs/wp-content/uploads/2017/12/...  · Web viewНазив word документа треба да буде исти као назив пројекта

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