Lectures
If not indicated otherwise, the lectures are held on Tuesday 14.00-15.40 in Aula Magna.
Here, you will find the accompanying slides, materials, and reading.
Last year's slides and materials are also available, but there might be some changes in this year's content, of course.
Don't forget to report the most confusing thing (what notion, connection, element, technique, example…) in the lecture via the anonymous form after each lecture.
Lecture recordings are also available.
- [September 19]
L1: Software Architecture: Here, There and Everywhere
- Reading/watching:
- M. Fowler. Making Architecture Matter. OSCON 2015, Portland, USA (video). [link]
- Chapter 1 from J. O. Coplien and G. Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, 2010.
- [September 26]
L2: Microservices and Containers – Pavle Dakić
- [October 3]
L3: Pattern Oriented Software Architecture
- Reading:
- K. Henney and F. Buschmann. Pattern-Oriented Software Architecture. OOP 2008. Presentation slides. Munich, Germany, 2008.
- Chapter 2 and Section 6.4, Inside Model-View-Controller from [POSA5] F. Buschmann, K. Henney, and D. C. Schmidt. Pattern-Oriented Software Architecture: On Patterns and Pattern Languages. Volume 5. John Wiley & Sons, 2007.
- Introduction: Design Patterns in Smalltalk MVC from [GoF] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
- Section 8.1 from J. O. Coplien and G. Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, 2010.
- References:
- C. Alexander. The Timeless Way of Building. Oxford University Press, 1977.
- C. Alexander et al. A Pattern Language: Towns, Buildings, Construction. Oxford University Press, 1977.
- [POSA4] F. Buschmann et al. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Volume 4. John Wiley & Sons, 2007.
- C. Richardson. A Pattern Language for Microservices. 2023.
- [October 10]
L4: Selected Design Patterns and Their Composition
- Reading:
- Sections 11.4 and 11.5 from [POSA5] F. Buschmann, K. Henney, and D. C. Schmidt. Pattern-Oriented Software Architecture: On Patterns and Pattern Languages. Volume 5. John Wiley & Sons, 2007.
- K. Henney and F. Buschmann. Pattern-Oriented Software Architecture. OOP 2008. Presentation slides. Munich, Germany, 2008.
- References:
- [POSA4] F. Buschmann et al. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Volume 4. John Wiley & Sons, 2007.
- [October 17]
L5: Expressing Software Architecture in UML
- [October 24]
L6: Aspect-Oriented Modularization
(L8 from 2021/22)
- Reading:
- References:
- V. Vranić. Aspect-Oriented Software Development, 2020.
[course website]
[AspectJ examples]
- Peter Berta and Valentino Vranić. Synergy of Organizational Patterns and Aspect-Oriented Programming. In Proceedings of 2019 IEEE 15th International Scientific Conference on Informatics, Informatics 2019. Poprad, Slovakia, 2019. IEEE, 2020.
[link]
- [October 31]
L7: Lean Architecture and DCI
- Reading:
- Section 5.1 and Sections 9.1-9.4 (look at the code examples in a language closest to your preference) from J. O. Coplien and G. Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, 2010.
- References:
- DCI - Data Context Interaction: A New Role-Based Paradigm for Specifying Collaborating Objects
- Heart of Agile
- J. Zaťko and V. Vranić. Assessing the DCI Approach to Preserving Use Cases in Code: Qi4J and Beyond. In Proceedings of IEEE 19th International Conference on Intelligent Engineering Systems, INES 2015, Bratislava, Slovakia. IEEE, 2015.
[link]
- M. Bystrický and V. Vranić. Preserving Use Case Flows in Source Code: Approach, Context, and Challenges. Computer Science and Information Systems Journal (ComSIS), 14(2): 423–445, 2017.
[link]
- M. Bystrický and V. Vranić. Literal Inter-Language Use Case Driven Modularization. In MODULARITY Companion 2016, Companion Proceedings of the 15th International Conference on Modularity, Modularity 2016, LaMOD'16: Language Modularity A La Mode, workshop, Málaga, Spain. ACM, 2016.
[link]
- I. Jacobson and P-W. Ng. Aspect-Oriented Software Development with Use Cases Addison-Wesley, 2004.
- [November 7]
L8: People and Architecture: Organizational Patterns
- Reading:
- M. Conway. Conway's Law. 2012.
- A few organizational patterns of your own choice from J. O. Coplien and N. B. Harrison. Organizational Patterns of Agile Software Development. Prentice Hall, 2004.
- A. Cockburn. The Heart of Agile. Humans and Technology Technical Report 2016.01.
[link] (kokoro vs. shu-ha-ri)
- References:
- H. Takeuchi and I. Nonaka. The New New Product Development Game. Harvard Business Review, 1986. [link] (the paper that inspired Scrum)
- J. O. Coplien, N. B. Harrison, et al. Organizational Patterns of Agile Software Development.
- J. Sutherland, J. Coplien et al. Scrum as Organizational Patterns. Gertrud&Cope, 2011.
- J. Sutherland, J. O. Coplien, et al. Scrum Patterns: The Spirit of Scrum. Book in preparation, 2010–2018.
- T. Frťala and V. Vranić. Architect Also Implements, 2015. (An animated version of the Architect Also Implements organizational pattern.)
- T. Frťala and V. Vranić. Animating Organizational Patterns. In Proceedings of 8th International Workshop on Cooperative and Human Aspects of Software Engineering, CHASE 2015, ICSE 2015 Workshop, Florence, Italy, IEEE.
- J. Sutherland and K. Schwaber. Scrum Guide. 2017.
- Jeff Sutherland’s Scrum Handbook. Scrum Training Institute Press, 2010.
- M. Novotný and V. Vranić. Supporting Peripheral Perception in Distributed Teams by Enforced Exposure to Chat Messages. IEEE Transactions on Human-Machine Systems. IEEE, 2022.
- N. Pham van and V. Vranić. Constraining Peripheral Perception in Instant Messaging During Software Development by Continuous Work Context Extraction. Universal Access in the Information Society. Springer, 2022.
- [November 14]
L9: Software Product Lines
- Reading:
- Chapters 2, 3, and 5 from K. Czarnecki. Generative Programming: Principles and Techniques of Software Engineering Based on Automated Configuration and Fragment-Based Component Models. Ph.D. Thesis, Computer Science Department, Technical University of Ilmenau, Ilmanau, Germany, 1998.
(almost the same published as Chapters 2 and 4 in K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.)
- References:
- R. Capilla, J. Bosch, and K.-C. Kang (Eds.). Systems and Software Variability Management: Concepts, Tools and Experiences. Springer, 2013. [link] (use STU VPN to access)
- Q. M. M. Shahid. Software Product Line: Survey of Tools. Final Thesis. Linköping universitet, 2010. http://liu.diva-portal.org/smash/get/diva2:328288/FULLTEXT02.pdf
- Software Product Lines Curriculum. Software Engineering Institute, 2020.
- FeatureIDE (a simple feature modeling tool)
- pure::variants, pure::systems (a commercial software product line tool)
- Gears Product Line Engineering Tool and Lifecycle Framework, BigLever
(a commercial software product line tool)
- A Brief History of Lean. Lean Enterprise Institute, 2000-2020.
- OMG. OMG Unified Modeling Language. Version 2.5.1, December 2017. [direct link to PDF] (template class: Section 9.3.5, p. 104; template package: Section 7.4.5.1, p. 30–31)
- K. Fakhroutdinov. UML Template. The Unified Modeling Language, 2016
- J. Bosch. Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Pearson Education, 2000.
- V. Vranić and R. Táborský. Features as Transformations: A Generative Approach to Software Development. Computer Science and Information Systems Journal (ComSIS), 13(3): 759–778, 2016.
- [November 21]
L10: Distributed Software Architecture
- Reading:
- Chapters 2 and 13 from G. Hohpe and B. Woolf. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison Wesley, 2003.
- References:
- [POSA4] F. Buschmann et al. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Volume 4. John Wiley & Sons, 2007.
- [November 28]
L11: Maintaining Software Architecture
- Reading:
- Chapter 18 from [POSA4] F. Buschmann et al. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Volume 4. John Wiley & Sons, 2007.
- References:
- M. Fowler et al. Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
- J. Kerievsky. Refactoring to Patterns. Addison Wesley, 2004.
- Chapters 12 and 20 from [POSA4] F. Buschmann et al. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Volume 4. John Wiley & Sons, 2007.
- [December 5]
Discussion
fiit.stuba.sk/~vranic/as