TTM4115
Design of Communicating Systems
Spring
Trondheim
English
About this course
Content
The course is about methods, languages and architectures to develop ICT systems with an emphasis on communication between system components. This includes classical ICT systems, cyber-physical systems, Internet-of-Things systems and emerging combinations of these. The main topics are: - Design of systems according to user requirements and use cases - Languages for system specifications and system models, with an emphasis on behavior descriptions - Semantics of specification and design models and consistency between them. - Development methods, including agile methods
Learning outcomes
A. Knowledge:
- Classify different types of requirements, and explain the main activities during requirements development. Recite and detect potential problems during requirements engineering.
- Recognize modeling elements in UML, properly explain their semantics, and correctly map them to program code. This includes use case, sequence, state machine and deployment diagrams, among others.
- Understand and describe the main features of application protocols (like HTTP and MQTT), and select and apply them efficiently and correctly to a system architecture.
- List and explain the main elements in a development method as for instance Scrum, and reason about their applicability in a given development context.
B. Skills:
- Capture user requirements and synthesize relevant use cases at a proper level of detail.
- Write project deliverables that describe system requirements, properties and solutions.
- Plan and coordinate the development of larger software products within a team of developers.
- Think in terms of states and transitions, and handle complex, concurrent behavior correctly.
- Model different aspects of a system efficiently, especially with regard to an appropriate level of detail and the consistency between different views.
- Apply agile development methods and reflect about their usage within the context of a project.
- Make proper design choices for the system architecture and document them accordingly.
C. General Competences:
- Organize and facilitate meetings in which use cases and user requirements are solicited, discussed and evaluated.
- Managing the work of several developers.
- Facilitate team discussions and brainstorming sessions.
- Provide feedback to the work of others that is critical, constructive and relevant.
- Reflect over own work done individually and in a team.
The learning outcomes of this course are related to the construction of large-scale, distributed ICT systems that are the backbone of digital infrastructures critical to society. Such systems provide relevant functions in a robust and efficient manner, and are directly related to SDG 9 (Industry, Innovation and Infrastructure). Indirectly such systems also contribute to other SDGs as enablers in various domains, like SDG 2 (Zero Hunger), SDG 3 (Good Health and Wellbeing), SDG 7 (Affordable Clean Energy), to mention a few.
Teaching methods
The course uses team-based learning, where traditional lectures are combined with exercises. Throughout the semester, students receive continuous feedback on their learning progress through several Readiness Assurance Tests (RATs). These tests are completed first individually, and then a second time in teams, normally at the beginning of the main session of each learning unit. To learn working on larger projects in a realistic setting, the course also includes a term assignment. In this assignment, students plan, refine, and develop an application.