1 / 30

Мултипарадигамски дизајн са моделирањем особина

Факултет организационих наука Универзитета у Београду, 26. март 2002. Мултипарадигамски дизајн са моделирањем особина. Валентино Вранић vranic@elf.stuba.sk Катедра за информатику и рачунарску технику Факултет електротехнике и информатике Словачки технички универзитет у Братислави. Увод.

bud
Download Presentation

Мултипарадигамски дизајн са моделирањем особина

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Факултет организационих наука Универзитета у Београду, 26. март 2002. Мултипарадигамски дизајнса моделирањем особина Валентино Вранић vranic@elf.stuba.sk Катедра за информатику и рачунарску технику Факултет електротехнике и информатике Словачки технички универзитет у Братислави

  2. Увод • Различите парадигме програмирања (развоја софтвера): • парадигма објектно-оријентисана, процедурална, функционална, логичка, аспектно-оријентисана, агентно-оријентисана… • нису једнозначно дефинисане • Програмски језици и парадигме • програмски језик подржава једну или више парадигми • Комбиновање различитих парадигми • мултипарадигамски језици • Шта је парадигма програмирања (развоја софтвера)?

  3. Преглед предавања • Појам парадигме у развоју софтвера • Ка мултипарадигамском развоју софтвера • Мултипарадигамски дизајн • Мултипарадигамски дизајн са моделирањем особина • Закључна запажања и даљи рад

  4. Парадигма • Научне парадигме: Thomas Kuhn — The Structure of Scientific Revolutions, 1970. • научне парадигме се мењају револуцијом, а не еволуцијом • концепт донекле применљив и на парадигме програмирања • Лингвистика • пример конјугације или деклинације • Значење речи • пример, поређење, узор

  5. Парадигме програмирања • Robert W. Floyd — The Paradigms of Programming, 1978. • налази сличности са научним парадигмама (Kuhn) • међусобно неразумевање припадника различитих парадигми • али игнорише разлике: • у нормалној науци парадигма је једна • научне парадигме се мењају одједном (револуцијом, а не еволуцијом) • J. O. Coplien — мултипарадигамски дизајн • Парадигма као процес развоја софтвера • парадигма у великом • Парадигма као конфигурација заједничког и променљивог • парадигма у малом

  6. Програмски језици и парадигме • Језичка конструкција • пример: класа у језику AspectJ • Парадигма у малом • пример: класа • Парадигма у великом • пример: објектно-оријентисано програмирање

  7. Ка мултипарадигамском развоју софтвера • Објектно-оријентисано програмирање • више дефиниција • често се примењује с другим парадигмама (најчешће са процедуралним програмирањем) • Аспектно-оријентисано програмирање • мултипарадигамско у основи • везано за опште процедуралне приступе • Генеративно програмирање • спаја више парадигми: • инжењерство домена — domain engineering (нпр. FODA) • објектно-оријентисано програмирање • аспектно-оријентисано програмирање • програмирање засновано на компонентама (нпр. GenVoca)

  8. Мултипарадигамски приступи • Комбиновање парадигми • стварање програмских језика и окружења која подржавају употребу више парадигми (нпр. Leda, Intentional Programming) • Избор парадигме • метапарадигма • дизајн је флексибилнији ако се употребе адекватна средства

  9. Мултипарадигамски дизајн • Multi-paradigm design (for C++), J. O. Coplien • SCVR анализа • Scope, Commonality, Variability, and Relationship analysis • анализа домена • Инжењерство домена(domain engineering) • породица система • анализа домена апликације (проблема) • успостављање модела домена

  10. Процес мултипарадигамског дизајна • Анализа домена апликације • домен апликације, проблема • декомпозиција у поддомене • анализа зависности променљивог (дијаграми зависности променљивог) • Анализа домена решења • домен решења — програмски језик, али и друга средства (нпр. обрасци дизајна, design patterns) • парадигме — конфигурације заједничког и променљивог • Трансформациона анализа • пресликавање домена апликације на домен решења

  11. Пример мултипарадигамског дизајна

  12. Мултипарадигамски дизајн са моделирањем особина — MPDFM • Примена прилагођеног моделирања особина уместо SCVR анализе • Домен апликације и решења у облику модела особина • Домен — концепт • Трансформациона анализа — тражење инстанција парадигми које одговарају концептима домена апликације • Примена MPDFM: MPDFM за AspectJ • AspectJ — аспектно-оријентисани језик заснован на језику Java, развијен у Xerox PARC

  13. Моделирање особина (1) • Feature modeling • Техника концептуалног моделирања • Примењује се у инжењерству домена • FODA — Feature-Oriented Domain Analysis • Software Engineering Institute • Generative Programming • K. Czarnecki, U. Eisenecker • Омогућава експлицитно моделирање заједничких и променљивих особина • Дозвољене конфигурације променљивих особина одређују инстанције концепта

  14. Моделирање особина (2) Дијаграми особина • оријентисано дрвеће са декорацијама грана • корен = концепт,остали чворови = особине • заједничке и променљиве особине • места промене Додатне информације о свакој особини • Опис значења • Разлог употребе • Ограничења • Мод везивања

  15. Пример: Бафер за едитацију текста

  16. Инстанција концепта бафера

  17. Анализа зависности променљивог • Дијаграми зависности променљивог • могу се извести из модела особина • помажу у: • идентификацији и обједињавању заједничких концепата • идентификацији циркуларних зависности међу концептима • Пример: • Дијаграм зависности бафера за едитацију текста

  18. Узајамно зависни домени • Утичу на избор парадигме • Пример: • Није могуће користити наслеђивање за сваку од три зависности на слици

  19. Модел парадигми • Корен дијаграма особина је концепт програмског језика • Парадигме — концепти модела особина: • директно употребљиве • везане директно за концепт програмског језика • индиректно употребљиве • појављују се као подконцепти других парадигми • Дубина модела • први ниво индиректно употребљивих парадигми

  20. Трансформациона анализа • Успостављање пресликавања по правилима моделирања особина • Разлог употребе особине одређује када се особина прикључује концепту: • приликом пресликавања на њу • приликом прикључења одређених особина (нпр. њених подособина) • Два типа парадигми: • структуралне • односне

  21. Структуралне парадигме — пример

  22. Структуралне парадигме — пример инстанција концепта парадигме класа

  23. Односне парадигме — пример

  24. Односне парадигме — пример

  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(...) {...}; . . . } . . .

  26. Поступак при трансформационој анализи • Пресликавање на структуралне парадигме • Пресликавање на односне парадигме • узети у обзир и анализу зависности променљивог • Апликација метода специфичних за парадигме (ако је потребно) • Трансформација пресликавања у програмски код

  27. Закључна запажања • Парадигме у малом • могу се јасно дефинисати • боља основа мултипарадигамског развоја софтвера • Моделирање особина • омогућава комплекснији а прегледнији опис домена од првобитне нотације мултипарадигамског дизајна • полазна техника MPDFM, али и генеративног програмирања, што омогућава одлагање избора методе • Трансформациона анализа у MPDFM • једноставније поређење структура домена апликације и парадигми

  28. Даљи рад • Дорада парадигамског модела језика AspectJ • Студија примене MPDFM, тј. MPDFM за AspectJ • Развој CASE алата за MPDFM • моделирање особина са особеностима MPDFM • бележење резултата трансформационе анализе • структурално упоређивање апликационих концепата с парадигмама • генерисање програмског кода на основу резултата трансформационе анализе • Даље информације o MPDFM: http://www.dcs.elf.stuba.sk/~vranic

  29. Моделирање особина и UML • Обједињени језик моделирања (UML): • веома заступљен у моделирању не само софтвера • проширив • Разлика у односу на моделирање особина • UML захтева опредељење за механизам имплементације приликом моделирања места промене • Проширење UML-а моделирањем особина • коришћењем стандардних механизама (стереотипови, ограничења и означене вредности) • концепти и особине као стереотип класе — неадекватно решење • проширењем метамодела UML-а • без подршке у CASE алатима

  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. of3rdInternational 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).

More Related