The course introduces methods of architectural thinking, which used by software architects for the systematic planning, conception, and evaluation of complex software (and hardware) architectures. Our focus is on intelligent systems, which integrate AI technologies into complex hardware/software solutions.
The course introduces methods of architectural thinking used by software architects for the systematic planning, conception, and evaluation of complex software (and hardware) architectures. Our focus is on intelligent systems, which integrate AI technologies into complex hardware/software solutions. We systematically analyze functional and non-functional requirements and deepen our domain understanding using domain-driven design. Architectural patterns and solutions support the conception of a system architecture, which we evaluate using the architecture tradeoff analysis method. The systematic management and documentation of architectural decisions supports an agile development process, helps to minimize risks and leads to systems that are feasible, viable and desirable.
We learn the terminology and methods used by software architects and practice them by working on a specific architectural project during the semester. The focus of the lecture is on systematic conceptual thinking, method-based communication, and risk mitigation, not on implementation or theoretical properties of algorithms. We practice to precisely discuss the properties of complex systems with different stakeholders and acquire the basic skills of software architects.
You are inscribed in a Master degree at UdS. This year, the course is NOT open to Bachelor students. You have successfully attended the SOPRA course (software practicum) at UdS or taken a similar course on software engineering, which includes a practical software project and building a larger piece of software. We assume that you have basic knowledge of
Software and Systems Modeling
Software Engineering & Development
Agile software development methods (Scrum)
Software project management
A course on artificial intelligence is a plus, but not a mandatory admission requirement.
Tutorials and Exercises
Students work in teams on a semester project (this year a shopping robot), for which an architecture needs to be devised. Every week, we learn about a specific architectural method and subsequently apply this method to the system under consideration. Architectural drafts are discussed during the weekly tutorials.
Tutorial guidelines help student teams to apply the method to their system and work out their specific solution. Each team submits their solution every week and a selected team will present during the tutorial. Personal presence of each student in at least 8 out of 10 tutorials is required and a prerequisite for admission to the examen. In addition, at least one team member from every team must be present in every tutorial. Solutions will be shared and discussed among participants. Mutual feedback helps all teams to deepen their understanding of architectural methods and to master these methods in practice. At the end of the course (until last tutorial), each team is expected to have submitted all solutions to all tutorial assignments, such that a complete architectural documentation of their selected system is available in written form. Formal acceptance of all solutions for the tutorial assignments is a prerequisite to participate in the written exam (90 minutes).