FOI nastava
FOI logo

Lista kolegija iz:

ak.god:
2014/2015
semestar:
Izborni kolegiji

2014/2015

7ECTSa

Doktorski

Poslijediplomski doktorski studij v1.1

Program Obavezan
Doktorski studij PDDS Ne
Izborni kolegij

Odabrana poglavlja programskih arhitektura i automatskog programiranja npp:45240

Engleski naziv

Selected topics in software architectures and automatic programming

Katedra

Katedra za gospodarstvo

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.

Nastava

Predavanje
20sati
Seminar
10sati

Sadržaj predavanja

  • Ponovno korištenje ReusabilityReusability review. Design reusable software, reusable components, domain modelling, domain specific software architecture. Reusability: generalization and composition.
    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.
  • UzorciPatternsPatterns. Pattern categories (integration, SOA, security, user interface, web, etc.) and languages. Pattern's formal specification. Pattern mining methods. Refactoring to patterns. Software factory lines.
    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 okviriApplication frameworksApplication frameworks. Types of application frameworks. Approaches to application framework development. Pattern-framework relationship.
    Aplikacijski okviri. Vrste aplikacijskih okvira. Pristupi razvoju aplikacijskih okvira. Odnos uzoraka i okvira.
  • Programske arhitekture Software architecturesSoftware architectures. Zachman enterprise framework. Architecture structure categories. ISO/IEC/IEEE 42010:2011 standard. Architecture quality attributes. Architecture tactics. Architectural patterns. Architecture knowledge management.
    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.

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 predmeti

  • 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
Nema podataka o izvođačima nastave
Nema definiranih ispitnih rokova
Nema podataka o rasporedu
Copyright © 2015 FOI Varaždin. All Rights Reserved. Sva prava pridržana.
Povratak na vrh