Architectural Thinking for Intelligent Systems, Special Lecture Prof. Dr. Jana Koehler

News

Currently, no news are available
 

Architectural Thinking for Intelligent Systems

 

The development of Intelligent Systems requires the Integration of AI technologies into already complex software and hardware environments. This poses a number of challenges, such as for example how to keep these systems easy to maintain by developers or easy to interact with for their human users.

We need  to systematically analyze the desired functional requirements and system qualities, and to apply methods of modern architectural thinking in order to find appropriate and elegant architectures for AI systems.

This lecture teaches established and successful methods that software architects apply for the systematic planning, conception, and evaluation of complex software (and hardware) architectures in the context of Intelligent Systems. We sharpen our understanding of architectural concerns that give rise to architectural decisions a good software architect needs to be aware of. We also learn how we can evaluate software architectures before a system is built and how architectural decision making helps minimizing risks in complex (AI) software development projects.

The lecture focuses on methods to discuss complex AI systems on the conceptual level. Our goal is to foster an abstract, but still precise thinking about software as an architectural systems, which abstracts from specific design and implementation details. 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 communicate about complex software systems with different stakeholders and acquire the basic skills of software architects, nowadays one of the most interesting and most seeked of IT professions.

Each participating student (or student team) is expected to choose a system, for which an architecture needs to be devised. Such a system can be

  • a known AI system already in existence (e.g. Google search, Alexa, a subsystem of Facebook, a Natural-Language based application, etc.),
  • a specific system or app, that a team wants to build, is building, or has built in the past,
  • any other app or system (including non-AI), a team wants to use for practicing the methods taught in this course.

Every week, we learn about a specific architectural method and subsequently apply this method to the chosen system.  Architectural drafts are discussed during the weekly tutorials. Tutorial guidelines are available, which help the student teams to apply the method to their system and work out their specific solution. Each team is submitting their solution every week and a few teams will be selected to present during the tutorial. Personal presence of each student in at least 80% of 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 discussed and feedback be given, which 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 availalbe in written form. Formal acceptance of at least 80% of the solutions for the tutorial assignments is a prerequisite to participate in the written examen (90 minutes).

 

Time Schedule

Tutorial: Mondays 10:15 h - 11:45 h, Seminar Room 106 in E1 1 (starting 04.11.2019, ending 07.02.2020)

Lecture: Mondays 14.15 h - 16.00 h, Lecture Hall 001 in E1 3 (starting 21.10.2019, ending 03.02.2020)


Examen Preparation 07.02.2020 (in combination with last tutorial)

 

Lecture Overview

Week 1

21.10.2019, Introduction to Architectural Thinking

- Organization of this Lecture
- Main Concepts and Definitions
- Methods Overview
- 4C Approach
- Architecture vs. Design
 

Week 2

28.10.2019, Modeling for Architects I

- Capturing Structures and Relations with UML 2 (refresher from SOPRA)
 

Week 3

04.11.2019, Modeling for Architects II

- Analyzing Business Processes with BPMN 2.0
- Understanding Business Object Lifecycles
 

Week 4

11.11.2019, Modeling for Architects III

- Understanding Functional Requirements with Use Cases and User Stories (partial refresher from SOPRA)
- Architectural Concerns and Decisions in ISO 42010
- Documenting Architectures
 

Week 5

18.11.2019, System Functionality

- Negotiating Functional Requirements
- Defining Goal Hierarchies
- Writing Good Use Cases and User Stories
 

Week 6

25.11.2019, System Qualities

- Importance of Non-functional Requirements
- Making Qualities Measurable with Scenarios
 

Week 7

02.12.2019, System Context and System Idea

- Formulation the System Idea and Vision
- Views & Viewpoints
- Operational Model
 

Week 8

09.12.2019, Domain-Driven Design

- Understanding the Application Domain
- Domains & Bounded Contexts
 

Week 9

16.12.2019, Principles & Tactics

- 10 Key Principles: Loose Coupling, High Cohesion, Design for Change, Separation of Concerns, Information Hiding, Abstraction, Modularity, Traceability, Self Documentation, Incrementality
- Tactics
 

Week 10

13.01.2020, Architectural Patterns

- EAI Pattern
 

Week 11

20.01.2020, Architectural Stiles

- Layers, Peer2Peer
- Client-Server, SOA, Micro Services, Blackboard
- Onion, Clean, Lambda
 

Week 12

27.01.2020, AI Agent Architectures

- AI Architectures, Shakey Layers, Belief-Desire-Intention, Brooks Subsumption Architecture, SOA Cognitive Architecture
 
Week 13

03.02.2020, Evaluation of Architectures

- Architecture Tradeoff Analysis Method ATAM
- Scenarios

- Risks and Sensitive Points
- Profession of the Software Architect
 

Week 14

7.02.2020 Summary (Friday!)

- Examen Preparation
 

 

Tutorial Overview

Week 3

04.11.2019, Task1: UML

Week 4

11.11.2019,  Task 2: BPMN 2.0

Week 5

18.11.2019, Task 3: Use Cases, Task 4: User Stories

Week 6

25.11.2019, Task 5: Goal Hierarchies and Acceptance Criteria

Week 7

02.12.2019, Task 6: Scenarios

Week 8

09.12.2019, Task 7: System Vision and Context View

Week 9

16.12.2019, Task 8: Technical Domains and Key Decisions

Week 10

13.01.2020, Task 9: Principles, Task 10: Tactics

Week 11

20.01.2020, Task 11: Components and EAI Patterns

Week 12

27.01.2020, Task 12: Stiles

Week 13

03.02.2020, Task 13: Stiles (Optional)

Week 14

07.02.2020, Task 14: ATAM


 

 

 
 
 
 


Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators