Sadržaj se učitava...
mdi-home Početna mdi-account-multiple Djelatnici mdi-script Studiji mdi-layers Katedre mdi-calendar-clock Raspored sati FOI Nastava search apps mdi-login
Odabrana poglavlja programskih arhitektura i automatskog programiranja
Odabrana poglavlja programskih arhitektura i automatskog programiranja
2018/2019
7 ECTSa
Doktorski studij Informacijske znanosti 1.1 (PDDSIZ)
Katedra za informatičke tehnologije i računarstvo
NN
1. semestar
Osnovne informacijemdi-information-variant Izvođači nastavemdi-account-group Nastavni plan i programmdi-clipboard-text-outline Model praćenjamdi-human-male-board Ispitni rokovimdi-clipboard-check-outline Rasporedmdi-calendar-clock Konzultacijemdi-account-voice
Izvođenje kolegija
Studij Studijski program Semestar Obavezan
Doktorski studij Informacijske znanosti 1.1 (PDDSIZ) 1 izborni
Cilj kolegija
Studenti će dobiti uvid u recentna instraživanja i razvoj softverskih arhitektura i automatskog programiranja. Kolegij pokriva ponovno korištene programske artefakte uključujući uzorke dizajna, integracije, programske komponente, objektno orijentirane aplikacijske okvire i arhitektonske uzorke. Kolegij istražuje progranske koncepte koji promoviraju ponovno korištenje programskih arhitektura te upravljanje znanjem o arhitekturi. Također se razmatra utjecaj objektne tehnologije na dizajn softvera i ponovno korištenje. Tijekom kolegija studenti će analizirati koncepte na kojima se temelji konstrukcija korisničkog grafičkog sučelja, centraliziranih, web i distribuiranih aplikacija, servisne arhitekture i dr. Predstaviti aktualno stanje razvoja koncepata, teorijskih modela, tehnologija i alata automatskog programiranja (AP). Teorijski i praktični pristup izgradnji generatora i SPL (Software Product Lines). Perspektive razvoja i projekti u području AP-a: tehnologije temeljene na okvirima (XVCL, SCT), transformacije programskog koda (GenVoca, CodeWorker), metaprogramiranje (UniFrame), aspektno orijentirano programiranje (Spring, AspectJ, AspectC++). Predstaviti pregled relevantne znanstvene literature, trendove razvoja AP i mogućnosti znanstvenih istraživanja u području AP.
Preduvjeti
Kolegij nema definirane preduvjete
Norma kolegija
Predavanja
20 sati
Seminar
10 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Kermek Dragutin Nositelj Predavanja 1 5 1
Magdalenić Ivan Nositelj Predavanja 1 5 1
Radošević Danijel Nositelj Predavanja 1 5 1
Sadržaj predavanja
  • Ponovno korištenje
    Pregled ponovnog korištenja. Dizajn ponovno korištenog softvera, ponovno korištenih komponenata, modeliranje domene, softverske arhitekture specifičnih domena. Ponovno korištenje: generalizacijom i kompozicijom.
  • Uzorci
    Programska apstrakcija. Metaprogramiranje. Uzorci dizajna. Kategorije uzoraka (integracijski, SOA, sigurnost, sučelje, web i dr.). Formalna specifikacija uzoraka. Metode prepoznavanja i otkrivanja uzoraka. Refaktoriranje u uzorke dizajna. Programske proizvodne linije.
  • Aplikacijski okviri
    Aplikacijski okviri. Vrste aplikacijskih okvira. Pristupi razvoju aplikacijskih okvira. Odnos uzoraka i okvira.
  • Programske arhitekture
    Programske arhitekture. Zachmanov okvir arhitekture tvrtke. Kategorije arhitektonskih struktura. Norma ISO/IEC/IEEE 42010:2011. Atributi kvalitete arhitekture. Arhitektonske taktike za postizanje kvalitete atributa. Arhitektonski uzorci. Upravljanje znanjem o arhitekturi.
  • Uvod u AP
    Područje bavljenja i aktualni dosezi AP. Discipline u bazi AP, ciljevi i težnje AP. Proizvodne linije softvera (eng. Software Product Lines, SPL). Generativno programiranje (GP) i povezane discipline: objektno orijentirano programiranje (OOP), generičko programiranje, metaprogramiranje, domenski inženjering, aspektno orijentirano programiranje. Paralelni i srodni pristupi GP: razvoj temeljen na komponentama (eng. component-based development), modeliranje svojstava (eng. feature modelling), programiranje orijentirano na svojstva (eng. feature-oriented programming), intencionalno programiranje (eng. intentional programming), softversko inženjerstvo temeljeno na modelima (eng. model-based software engineering), objektno-orijentirano dizajniranje (eng. object-oriented design), polimorfizam, programske transformacije, refleksija.
  • Trendovi razvoja automatskog programiranja
    Napredne tehnike OOP. Generičke programske tehnike: predlošci funkcija i klasa u C++ i C++11 (STL- Standard Template Library), generičke klase u Java i C#. Dinamički polimorfizam, refleksija, statičko generiranje koda. Trendovi razvoja OOP i nasljedne discipline. Ciljevi, pristupi i tehnike generativnog programiranja (GP). Teorijski pristup izgradnji generatora i SPL. Perspektive razvoja i projekti u području AP-a: tehnologije temeljene na okvirima (XVCL, SCT), transformacije programskog koda (GenVoca, CodeWorker), metaprogramiranje (UniFrame), aspektno orijentirano programiranje (Spring, AspectJ, AspectC++).
  • Modeli generiranja i primjeri sustava AP
    Definicije i koncepti generatora programskog koda: aspekti, separacija pogleda (eng. Separation of concerns), domenski jezik, specifikacija, konfiguracija i metaprogrami. SCT (Specification, Configuration, Templates) model generatora izvornog koda: arhitektura i koraci izgradnje, primjeri aplikacija. Primjeri sustava AP temeljeni na različitim modelima. Aktualni problemi i istraživanja u području AP. Teme za seminarske radove.
Sadržaj seminara/vježbi
Ishodi učenja kolegija
Ishodi učenja programa
Osnovna literatura
  • E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable of Object-Oriented Design. Addison-Wesley, Reading, MA, 1995.
  • Buschmann, F, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented Software Architecture: A System of Patterns. Addison-Wesley, Reading, MA, 1996.
  • Fayad, M. E., D. C. Schmidt, R. E. Johnson (editors). Building Application Frameworks. John Willey and Sons, 1999.
  • Fayad, M. E., R. E. Johnson (editors). Domain-Specific Application Frameworks. John Willey and Sons, 2000.
  • Buschmann,F., Henney, K., Schmidt,D.C. Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages, Addison-Wesley, 2007.
  • Fowler, M. Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
  • Hohpe, G., Woolf, B. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley, 2003.
  • J. Arnoldus, M. Brand, A. Serebrenik, J.J. Brunekreef: Code Generation with Templates, Atlantis Press, 2012.
  • Ghosh D.: DSLs in Action, Manning, 2011.
  • Kelly S., Tolvanen, J.P.: Domain-Specific Modelling, John Wiley & Sons, 2008.
  • Herrington J.: Code Generation in Action, Manning, 2003.
  • Bien,A. Real World Java EE Patterns-Rethinking Best Practices, lulu.com, 2012.
  • Erl, T. SOA Design Patterns, Prentice Hall, 2009.
  • Kerievsky, J. Refactoring to Patterns, Addison-Wesley, 2004.
Dopunska literatura
  • I. Magdalenić, D. Radošević, and T. Orehovački, “Autogenerator: Generation and execution of programming code on demand”, Expert Systems with Applications, 2013, http://dx.doi.org/10.1016/j.eswa.2012.12.003
  • R. Heradio, D. Fernandez-Amoros, L. de la Torre, and I. Abad, “Exemplar driven development of software product lines”, Expert Systems with Applications, vol. 39, no. 17, pp. 12885–12896, December 2012.
  • D. Radošević, and I. Magdalenić, “Source Code Generator Based on Dynamic Frames”, Journal of Information and Organizational Sciences, vol. 35, no. 1, pp. 73-91, July 2011.
  • Blair J., and Batory D. A Comparison of Generative Approaches: XVCL and GenVoca. Technical report, The University of Texas at Austin, Department of Computer Sciences, December 2004.
  • S. Jarzabek, P. Bassett, H. Zhang, W. Zhang: XVCL: XML-based variant configuration language Proceedings of the international conference on software engineering, IEEE Computer Society, Los Alamitos, CA, USA (2003), pp. 810–811
Slični kolegiji
  • Washington University in St. Louis, Advanced Object-Oriented Software Development with Patterns and Frameworks
  • Aarhus University, Advanced Topics in Software Architecture
  • San Francisco State University, Advanced Topics in CS: Software Architecture
  • George Mason University, Advanced Software Design: Reusable Software Architectures
  • From Aspect-Oriented Programming to Program Generation, University of Southampton, United Kingdom
  • Automatic Programming, University of Texas at Austin, Texas, United States
  • Aspect-Oriented Software Development (Advanced Software Development), Northeastern University, College of Computer and Information Science, Boston, Massachusetts, United States
  • Topics in Software Engineering, University of North Texas, Department of Computer Science, Denton, Texas,United States
  • Automated Software Design, University of Texas at Austin, Texas, United States
  • Generative software development, University of Kopenhagen, Dennmark
  • Object-Oriented Systems and Languages, Virginia Polytechnic Institute and State University, Blacksburg, Virginia, United States
Redoviti studenti Izvanredni studenti
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.
2024 © Fakultet organizacije i informatike, Centar za razvoj programskih proizvoda