Организациска структура и дизајн · 2014-09-27 · • Матрична и проектна структура – Проектни тимови во
Мултипарадигамски дизајн са моделирањем особина
description
Transcript of Мултипарадигамски дизајн са моделирањем особина
![Page 1: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/1.jpg)
В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Мултипарадигамски дизајн
са моделирањем особина
Валентино Вранић[email protected]
Катедра за информатику и рачунарску технику
Факултет електротехнике и информатике
Словачки технички универзитет у Братислави
Факултет организационих наука Универзитета у Београду, 26. март 2002.
![Page 2: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/2.jpg)
2В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Увод
• Различите парадигме програмирања (развоја софтвера):– парадигма објектно-оријентисана, процедурална,
функционална, логичка, аспектно-оријентисана, агентно-оријентисана…
– нису једнозначно дефинисане
• Програмски језици и парадигме– програмски језик подржава једну или више парадигми
• Комбиновање различитих парадигми– мултипарадигамски језици
• Шта је парадигма програмирања (развоја софтвера)?
![Page 3: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/3.jpg)
3В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Преглед предавања
Појам парадигме у развоју софтвера
Ка мултипарадигамском развоју софтвера
Мултипарадигамски дизајн
Мултипарадигамски дизајн са моделирањем особина
Закључна запажања и даљи рад
![Page 4: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/4.jpg)
4В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Парадигма
• Научне парадигме: Thomas Kuhn — The Structure of Scientific Revolutions, 1970.– научне парадигме се мењају револуцијом, а не еволуцијом
– концепт донекле применљив и на парадигме програмирања
• Лингвистика– пример конјугације или деклинације
• Значење речи– пример, поређење, узор
![Page 5: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/5.jpg)
5В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Парадигме програмирања
• Robert W. Floyd — The Paradigms of Programming, 1978.– налази сличности са научним парадигмама (Kuhn)
• међусобно неразумевање припадника различитих парадигми
– али игнорише разлике:• у нормалној науци парадигма је једна
• научне парадигме се мењају одједном (револуцијом, а не еволуцијом)
• J. O. Coplien — мултипарадигамски дизајн– Парадигма као процес развоја софтвера
• парадигма у великом
– Парадигма као конфигурација заједничког и променљивог• парадигма у малом
![Page 6: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/6.jpg)
6В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Програмски језици и парадигме
• Језичка конструкција– пример: класа у језику AspectJ
• Парадигма у малом– пример: класа
• Парадигма у великом– пример: објектно-оријентисано програмирање
![Page 7: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/7.jpg)
7В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Ка мултипарадигамском развоју софтвера
• Објектно-оријентисано програмирање– више дефиниција
– често се примењује с другим парадигмама (најчешће са процедуралним програмирањем)
• Аспектно-оријентисано програмирање– мултипарадигамско у основи
– везано за опште процедуралне приступе
• Генеративно програмирање– спаја више парадигми:
• инжењерство домена — domain engineering (нпр. FODA)
• објектно-оријентисано програмирање
• аспектно-оријентисано програмирање
• програмирање засновано на компонентама (нпр. GenVoca)
![Page 8: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/8.jpg)
8В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Мултипарадигамски приступи
• Комбиновање парадигми– стварање програмских језика и окружења која подржавају
употребу више парадигми (нпр. Leda, Intentional Programming)
• Избор парадигме– метапарадигма
– дизајн је флексибилнији ако се употребе адекватна средства
![Page 9: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/9.jpg)
9В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Мултипарадигамски дизајн
• Multi-paradigm design (for C++), J. O. Coplien• SCVR анализа
– Scope, Commonality, Variability, and Relationship analysis
– анализа домена
• Инжењерство домена (domain engineering)– породица система
– анализа домена апликације (проблема)
– успостављање модела домена
![Page 10: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/10.jpg)
10В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Процес мултипарадигамског дизајна
• Анализа домена апликације– домен апликације, проблема
– декомпозиција у поддомене
– анализа зависности променљивог (дијаграми зависности променљивог)
• Анализа домена решења– домен решења — програмски језик, али и друга средства
(нпр. обрасци дизајна, design patterns)
– парадигме — конфигурације заједничког и променљивог
• Трансформациона анализа– пресликавање домена апликације на домен решења
![Page 11: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/11.jpg)
11В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Пример мултипарадигамског дизајна
C o m m o n a l i t y V a r i a b i l i t y B i n d i n g I n s t a n t i a t i o n L a n g u a g e M e c h a n i s m . . .
. . . A l g o r i t h m ( e s p e c i a l l y m u l t i p l e ) , a s w e l l a s ( o p t i o n a l ) d a t a s t r u c t u r e a n d s t a t e
C o m p i l e t i m e
O p t i o n a l I n h e r i t a n c e R e l a t e d o p e r a t i o n s a n d s o m e s t r u c t u r e ( p o s i t i v e v a r i a b i l i t y )
A l g o r i t h m , a s w e l l a s ( o p t i o n a l ) d a t a s t r u c t u r e a n d s t a t e
R u n t i m e O p t i o n a l V i r t u a l f u n c t i o n s
V a r i a b i l i t y t a b l e s ( f r o m a p p l i c a t i o n d o m a i n S C V R a n a l y s i s )
P a r a m e t e r s o f v a r i a t i o n M e a n i n g D o m a i n B i n d i n g D e f a u l t O u t p u t m e d i u m S t r u c t u r e , A l g o r i t h m
… D a t a b a s e , R C S f i l e , T T Y , U N I X f i l e
R u n t i m e U N I X f i l e
T e x t E d i t o r V a r i a b i l i t y A n a l y s i s f o r C o m m o n a l i t y d o m a i n : T E X T E D I T I N G B U F F E R S ( C o m m o n a l i t y : B e h a v i o r a n d S t r u c t u r e )
F a m i l y t a b l e ( f r o m s o l u t i o n d o m a i n S C V R a n a l y s i s )
![Page 12: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/12.jpg)
12В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Мултипарадигамски дизајн са моделирањем особина — MPDFM
• Примена прилагођеног моделирања особина уместо SCVR анализе
• Домен апликације и решења у облику модела особина• Домен — концепт• Трансформациона анализа — тражење инстанција
парадигми које одговарају концептима домена апликације
• Примена MPDFM: MPDFM за AspectJ– AspectJ — аспектно-оријентисани језик заснован на језику
Java, развијен у Xerox PARC
![Page 13: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/13.jpg)
13В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Моделирање особина (1)
• Feature modeling• Техника концептуалног моделирања• Примењује се у инжењерству домена
– FODA — Feature-Oriented Domain Analysis• Software Engineering Institute
– Generative Programming• K. Czarnecki, U. Eisenecker
• Омогућава експлицитно моделирање заједничких и променљивих особина
• Дозвољене конфигурације променљивих особина одређују инстанције концепта
![Page 14: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/14.jpg)
14В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Моделирање особина (2)
c
f1 f2 f3 f4
f5 f6 f7
Дијаграми особина– оријентисано дрвеће са
декорацијама грана
– корен = концепт,остали чворови = особине
– заједничке и променљиве особине
– места промене
Додатне информације о свакој особини
– Опис значења
– Разлог употребе
– Ограничења
– Мод везивања
![Page 15: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/15.jpg)
15В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Пример: Бафер за едитацију текстаText Editing Buffer
cursor position
number of characters
number of lines
yield data
replace data
load file
save file
Unix File
read
write
yield data
replace data
yield data replace data
yield data
replace datawhole page
whole file LRU fixed
…
Working Set Management
File
ASCII
UNICODE
…
Character Set
Working SetManagement DC
File DC
Character Set DC
debug
production
Debugging Code
…
read
writestatus
database
read
writename
contents
![Page 16: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/16.jpg)
16В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Инстанција концепта бафераText Editing Buffer
cursor position
number of characters
number of lines
yield data
replace data
load file
save file
Unix File
read
write
yield data
replace data
whole file
Working Set Management
File
UNICODE
Character Set
Working SetManagement DC
File DC
Character Set DC
production
Debugging Code
status
read
writename
contents
![Page 17: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/17.jpg)
17В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Анализа зависности променљивог• Дијаграми зависности променљивог
– могу се извести из модела особина
– помажу у:• идентификацији и обједињавању заједничких концепата
• идентификацији циркуларних зависности међу концептима
• Пример:– Дијаграм зависности бафера за едитацију текста
Text Editing Buffer
FileCharacter
Set
Debugging Code
Working Set Management
![Page 18: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/18.jpg)
18В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Узајамно зависни домени
• Утичу на избор парадигме• Пример:
– Није могуће користити наслеђивање за сваку од три зависности на слици
A
C
B
C
A
B
C
A
B
C
A
C …
![Page 19: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/19.jpg)
19В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Модел парадигми
• Корен дијаграма особина је концепт програмског језика
• Парадигме — концепти модела особина:– директно употребљиве
• везане директно за концепт програмског језика
– индиректно употребљиве• појављују се као подконцепти других парадигми
• Дубина модела– први ниво индиректно употребљивих парадигми
AspectJ
Aspect Interface Class Inheritance
![Page 20: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/20.jpg)
20В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Трансформациона анализа
• Успостављање пресликавања по правилима моделирања особина
• Разлог употребе особине одређује када се особина прикључује концепту:– приликом пресликавања на њу
– приликом прикључења одређених особина (нпр. њених подособина)
• Два типа парадигми:– структуралне
– односне
![Page 21: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/21.jpg)
21В. Вранић — Мултипарадигамски дизајн са моделирањем особина
ASCII
Character Set
UNICODE
…
replace data
File…
read
write
Unix File
Database yield data
save file
number of characters
number of lines
cursor position
load file
Working Set Management
Whole file
Whole page
LRU fixed
yield data replace data
yield data
replace data
yield data
replace data
…
Text Editing Buffer
debug
production File DC
Character Set DC
Working SetManagement DC
Debugging Code
read
write
read
writename
status
contents
Структуралне парадигме — пример
Class
Overloading
inner fields Methods
type value
… … [run time]
![Page 22: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/22.jpg)
22В. Вранић — Мултипарадигамски дизајн са моделирањем особина
ASCII
Character Set
UNICODE
…
replace data
File…
read
write
Unix File
Database yield data
save file
number of characters
number of lines
cursor position
load file
Working Set Management
Whole file
Whole page
LRU fixed
yield data replace data
yield data
replace data
yield data
replace data
…
Text Editing Buffer
debug
production File DC
Character Set DC
Working SetManagement DC
Debugging Code
read
write
read
writename
status
contents
Структуралне парадигме — пример
Class
[state]
fields Methods
… run time
…
[type]
инстанција концепта парадигме класа
![Page 23: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/23.jpg)
23В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Односне парадигме — пример
ASCII
Character Set
UNICODE
…
replace data
File…
read
write
Unix File
Database yield data
save file
number of characters
number of lines
cursor position
load file
Working Set Management
Whole file
Whole page
LRU fixed
yield data replace data
yield data
replace data
yield data
replace data
…
Text Editing Buffer
debug
production File DC
Character Set DC
Working SetManagement DC
Debugging Code
read
write
read
writename
status
contents
Inheritance
base type implements
subtype
extends
Class Interface Aspect
Class Interface Aspect
![Page 24: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/24.jpg)
24В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Односне парадигме — пример
ASCII
Character Set
UNICODE
…
replace data
File…
read
write
Unix File
Database yield data
save file
number of characters
number of lines
cursor position
load file
Working Set Management
Whole file
Whole page
LRU fixed
yield data replace data
yield data
replace data
yield data
replace data
…
Text Editing Buffer
debug
production File DC
Character Set DC
Working SetManagement DC
Debugging Code
read
write
read
writename
status
contents
Inheritance
base type
subtype
extends
Class
Class
![Page 25: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/25.jpg)
25В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Програмски код
class TextBuffer {public: yield(...) {...}; replace(...) {...};
loadFile(...) {...}; saveFile(...) {...};
private: int numLines, numChars, curPosition;. . .}
class WholeFileTextBuffer extends TextBuffer {public: WholeFileTextBuffer(File f, CharacterSet c) {...};
yield(...) {...}; replace(...) {...};. . .}. . .
![Page 26: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/26.jpg)
26В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Поступак при трансформационој анализи
• Пресликавање на структуралне парадигме• Пресликавање на односне парадигме
– узети у обзир и анализу зависности променљивог
• Апликација метода специфичних за парадигме (ако је потребно)
• Трансформација пресликавања у програмски код
![Page 27: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/27.jpg)
27В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Закључна запажања
• Парадигме у малом– могу се јасно дефинисати
– боља основа мултипарадигамског развоја софтвера
• Моделирање особина– омогућава комплекснији а прегледнији опис домена од
првобитне нотације мултипарадигамског дизајна
– полазна техника MPDFM, али и генеративног програмирања, што омогућава одлагање избора методе
• Трансформациона анализа у MPDFM
– једноставније поређење структура домена апликације и парадигми
![Page 28: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/28.jpg)
28В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Даљи рад
• Дорада парадигамског модела језика AspectJ
• Студија примене MPDFM, тј. MPDFM за AspectJ
• Развој CASE алата за MPDFM
– моделирање особина са особеностима MPDFM
– бележење резултата трансформационе анализе
– структурално упоређивање апликационих концепата с парадигмама
– генерисање програмског кода на основу резултата трансформационе анализе
• Даље информације o MPDFM:
http://www.dcs.elf.stuba.sk/~vranic
![Page 29: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/29.jpg)
29В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Моделирање особина и UML
• Обједињени језик моделирања (UML):– веома заступљен у моделирању не само софтвера
– проширив
• Разлика у односу на моделирање особина– UML захтева опредељење за механизам имплементације
приликом моделирања места промене
• Проширење UML-а моделирањем особина– коришћењем стандардних механизама (стереотипови,
ограничења и означене вредности)• концепти и особине као стереотип класе — неадекватно решење
– проширењем метамодела UML-а• без подршке у CASE алатима
![Page 30: Мултипарадигамски дизајн са моделирањем особина](https://reader036.fdocument.pub/reader036/viewer/2022062305/56814eee550346895dbc7c4b/html5/thumbnails/30.jpg)
30В. Вранић — Мултипарадигамски дизајн са моделирањем особина
Коришћена литератураT. S. Kuhn. The Structure of Scientific Paradigms. University of Chicago Press, Chicago, 1970.
R. W. Floyd. The paradigms of programming. Communications of the ACM, 22(8), Aug. 1979.
T. A. Budd. Multiparadigm Programming in Leda. Addison Wesley, 1995.
J. O. Coplien. Multi-Paradigm Design for C++. Addison-Wesley, 1999.
K. C. Kang et al. Feature-oriented domain analysis (FODA): A feasibility study. Technical Report CSMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, USA, Nov. 1990. http://www.sei.cmu.edu/domain-engineering/FODA.ps.
K. Czarnecki, U. Eisenecker. Generative Programming: Principles, Techniques, and Tools. Addison-Wesley, 2000.
Xerox PARC. AspectJ home page. http://aspectj.org.
E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
D. Battory and B. J. Geraci. Composition validation and subjectivity in GenVoca generators. IEEE Transactions on Software Engineering (special issue on Software Reuse), Febr. 1997. http://www.cs.utexas.edu/users/schwartz.
I. Stanojević, D. Surla. Uvod u objedinjeni jezik modeliranja. Grupa za informacione tehnologije, 1999.
Шири списак литературе и детаљније о MPDFM:V. Vranić. Towards multi-paradigm software development. To appear in Journal of Computing and
Information Technology (CIT). 2001.
V. Vranić. AspectJ paradigm model: A basis for multi-paradigm design for AspectJ. In J. Bosch, editor, Proc. of 3rd International Conference on Generative and Component-Based Software Engineering (GCSE 2001). LNCS 2186, Erfurt, Germany, Sept. 2001. Springer.
V. Vranić. Multi-paradigm design with feature modeling. March 2002. Submitted to 6th East Eauropean Conference on Advances in Databases and Information Systems (ADBIS 2002).