magyar nyelvű adatlap
angol nyelvű adatlap
Software Architectures
A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftverarchitektúrák
Last updated: 2025. december 11.
Dr. Charaf Hassan, professor, AUT
A programozás alapjai 1-3, Szoftvertechnológia
A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.
The course provides an overview of cutting-edge software architectures used in applications, research, and development, discussing their role and significance in the development of information systems. Building on a review of current industry trends, it offers insights into future distributed and high-reliability system architectures and technologies expected to emerge. Previously introduced object-oriented, component-based, and service-oriented architectures are summarized in a synthesized form.
The course emphasizes systematic software reusability and, in light of ongoing research in the field of software architecture, analyzes the challenges of designing loosely coupled systems as well as the importance of architectural patterns. Another key objective of the course is to organize and deliver up-to-date knowledge related to the above topics to the students.
In enterprise systems development practice, multi-tier object-oriented platforms, microservices, and cloud technologies dominate. Practical experience demonstrates that these tools and technologies can effectively support application development; however, without adequate architectural expertise, numerous challenges may arise during implementation. Failures and unsuccessful development efforts often result from software engineers lacking sufficiently deep and broad architectural knowledge. In this regard, another primary aim of the course is to fully prepare students to perform professional development tasks for enterprise systems.
1. Introduction
- Definition
- Evolution of Software Architectures
- Architecture Basics
Characteristics of Software Architectures, Key elements. Basic elements. Design and Architecture Patterns. Scalability, Distributed, System Parameters.
2. Software Architecture Basics
- The role of Architect
- Goal of Software Architectures, Design steps
- Typical Mistakes in Software Architecture, Top 10
3. Software Architecture Patterns
- Motivation
- Calassification of Patterns: Services Acces And Configuration, Event Handling, Concurrency, Synchronisation
- First Group of Patterns: Wrapper Facade, Component Configurator, Interceptor, Extension Interface
4. Second Group of Patterns: Event handling
- Reactor
- Proactor
- ACT
- Acceptor-Connector
5. Third Group of Patterns: Concurrency
- Active Object
- Monitor Object
- Half Sync/Half Async
- Leader-Followers
- Thread Specific Storage
6. Fourth Group of Patterns: Synchronisation, Summarizing the Patterns
- Scoped Locking
- Stragized Locking
- Thread-Safe Interface
- Double Checked Locking Optimization
- Summary
7. Layered Architectures,
- Basic Patterns: MVC, Document/View, Layered
- Design Requirements
- Software Layers Design Questions
8. Case Study
The purpose of the case study is to illustrate the use of patterns and the application of the topics described above in a specific system through an illustrative example. We invite guest lecturers from industry to each case study.
9. Cloud Architectures
Cloud Specific Architectural Patterns. Backends for Frontends, Circuit Breaker, Static Content Hosting, Etc.
10. Microservices
11. Documentation of Architectures
- Basic Questions of Documentation, Software documentation specific issues
- Goals, Stakeholders, tasks
- Software Architecture specific documentations
12. Architectural Methodologies
- Top 4 Enterprise Architecture methodologies (Actually 4) Like:
- Zachman Framework
- TOGAF
- Federal Enterprise Architecture
- Gartner Methodology
13. Performance issues of Software Systems, Tuning tasks, aspects
- Performance modells
- Tuning issues
14. Integration Solutions
15. Architectural issues of Distributed Information Systems (DIS)
Basics of Distibuted Systems, Design and Implementation of DIS, Basic services of DIS. Component-based and Service-Based System development.
16. Typical or Well-known Distributed Architectures, Middleware Services, Flexible IT Architectures
17. Distributed Data Systems, Distributed Data Processing
18. Autonom Computing
Le Lecture
In Regular term
1 major midterm exam2 minor midterm exams1 homework assignment
Successful completion of the course requires an acceptable (at least passing) result on the major midterm exam, successful completion of at least one of the two minor midterm exams, and satisfactory performance on the homework assignment.
Grade calculation: Major midterm exam – 40%, Minor midterm exams – 10%, Homework assignment – 50%.
In Exam term
1. Patterns of Enterprise Application Architecture. Martin Fowler et al.
2. Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, Wiley press, vol.1 ,2.
3. Addison Wesley - Enterprise Integration Patterns - Designing, Building And Deploying Messaging Solutions (Fowler) – 2003.
4. Jain R., The Art of Computer Systems Performance Analysis, John Wiley and Sons, 1991
5. Menascé D.A., Almeida V., Capacity Planning for Web Services. Metrics, Models, and Methods, Prentice Hall, 2002
6. Meier J.D., Vasireddy S., Babbar A., Mackman A., Improving .NET Application Performance and Scalability (Patterns & Practices), Microsoft Corporation, 2004
7. Virgilio A.F. Almeida: Capacity Planning for Web Services, Techniques and Methodology
8. Written materials available on the course website.
9. Errol Simon, Distributed information systems, McGraw-Hill.
10. Mary Kirtland, Designing component-based applications, Microsoft Press.
42
Mid-term preparation for classes
Preparation for mid-terms
Homework
Studying written material