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
2013/2014
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
Magdalenić Ivan Nositelj
Radošević Danijel Nositelj
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