Module Software Engineering and Distributed Systems 2, Media and Communication Computer Science (Bachelor) (ER 4)

English language
Compact font

Color scheme

Module summary

Software Engineering and Distributed Systems 2

MKIB5104

Prof. Dr. Thomas Fuchß

/

5th Semester

Datenbanken und Kommunikationsnetze 1, Informatik 2, Mensch-Maschine-Kommunikation 1, Praxistätigkeit, Technologien des Internets

none

The students learn how to work independently and productively in large software projects. This includes the decomposing of development tasks as well as the determination and assessment of appropriate architectures. They are able to capture the necessary steps in the context of a given task, to structure and clarify their decisions using suitable tools and methodologies, independently.

In this context, the students also gain the ability to recognize and classify goals and problems of distributed software systems. They can explain the general concepts of architectures, processes, communication, naming, coordination, replication fault tolerance and security, and apply them to the construction of distributed software services and applications.

Written Exam 120 Min. (graded)
Course Distributed Systems 2

MKIB5114.b

Lecture

Prof. Dr. Christian Zirpins

German

2/2

60 hours in total, including 30 hours of contact study.

Module exam

The lecture conveys both fundamental and extended principles of distributed systems and illustrates these in practical form on the basis of concrete paradigms and technologies. The spectrum of principles covered includes fundamental aspects of the objectives and classes of distributed systems, as well as their architectures, processes, communications, and naming. Advanced principles include coordination, consistency and replication, fault tolerance and security. The covered principles are exemplified by various paradigms. Here, exemplary implementations of individual principles are presented. In addition, an introduction to the development of corresponding systems based on concrete software technologies is given.

Upon completing this lecture class, students will achieve a comprehensive understanding of the principles underlying distributed systems, ranging from their fundamental objectives and architectures to advanced concepts such as coordination, consistency, replication, fault tolerance, and security. They will gain insights into the practical application of these principles through the examination of specific paradigms and technologies, enhancing their ability to analyze and design distributed systems. Moreover, the introduction to developing these systems using concrete software technologies will equip students with the practical skills necessary for implementing robust, efficient, and secure distributed systems in various computing environments.

  • Andrew S. Tannenbaum, Marten van Steen, "Verteilte Systeme, Prinzipien und Paradigmen", 2. aktualisierte Auflage, Pearson Studium, 2008, ISBN 978-3-8273-7293-2
  • George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, "Distributed Systems, Concepts and Design", Fifth Edition, Addison-Wesley, 2012, ISBN 978-0-13-214301-1
  • Additional literature will be announced during the lecture

Autonomous work includes pre- and post processing of lectures, exercises and exam preparation.

Course Distributed Systems 2 Laboratory

MKIB5134

Laboratory

Prof. Dr. Christian Zirpins

German

1/1

30 hours in total, including 15 hours of contact study.

Laboratory Work 1 Semester (not graded)

The lab provides practical insights into the functioning and construction of distributed information systems. To this end, current paradigms are taken up and fundamental principles are examined in the context of exemplary realizations. The lab tasks are based on the contents of the lecture, but also address current topics of industrial research and development. The practical implementation is done under utilization of modern industry-relevant platforms and frameworks.

  • Andrew S. Tannenbaum, Marten van Steen, "Verteilte Systeme, Prinzipien und Paradigmen", 2. aktualisierte Auflage, Pearson Studium, 2008, ISBN 978-3-8273-7293-2
  • George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, "Distributed Systems, Concepts and Design", Fifth Edition, Addison-Wesley, 2012, ISBN 978-0-13-214301-1
  • Additional literature will be announced during the lecture

Basic knowledge of programming, operating systems and databases is required. The course includes 50% supervised presence time (1 SWS) in the LKIT lab and 50% individual work. Proof of achievement is provided by presentation and defense of the solution.

Course Software Engineering

MKIB5114.a

Lecture

Prof. Dr. Thomas Fuchß

German

2/2

60 hours in total, including 30 hours of contact study.

Module exam

The course "Software Engineering" builds on the practical experience students have gained during their internships and introduces techniques and methods for structured large-scale software development. The lecture begins with a review and consolidation of fundamental concepts such as objects, classes, associations, methods, inheritance, and polymorphism to ensure a solid understanding of the basics. It then focuses on the challenges of modern software development processes and structured approaches to address them effectively.

Students learn how to integrate agile methodologies, such as Scrum, with established process models like the Unified Software Development Process to manage complex software projects. UML is introduced as a core modeling language to document development decisions and facilitate clear communication. Particular emphasis is placed on understanding the complexities of large-scale systems and applying structured methods and processes to address these challenges.

Throughout the course, students develop the ability to work independently in agile environments, make informed development decisions, and document these decisions methodically. Theoretical concepts are complemented by practical examples that help bridge the gap between theory and real-world applications.

In the associated lab, students apply the knowledge gained in the lecture to various example projects. They conduct the first iteration of a software development process, practicing teamwork, the use of agile methods, and professional documentation with UML.

Slides, videos, textbooks, and other literature:

  • Arlow, J.; Neustadt, I.: UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2. ed. - Addison-Wesley Professional, 2005.
  • Shimp, D. and Rawsthorne, D. Exploring Scrum: The Fundamentals – CreateSpace, 2011.
  • Jacobson, I.; Booch, G. and Rumbaugh, J.: The unified software development process - Reading, Mass.: Addison-Wesley, 1999.
  • Kim, G.; Humble, J.; Debois, P. und Willis, J.: Das DevOps-Handbuch: Teams, Tools und Infrastrukturen erfolgreich umgestalten - Heidelberg: O'Reilly; Heidelberg: dpunkt.verlag, 2017.
  • Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. - Upper Saddle River, NJ : Prentice Hall, 2004.
  • Larman, C. und Vodde, B.: Large-Scale Scrum: Scrum erfolgreich skalieren mit LeSS - Heidelberg: dpunkt.verlag, 2017.
  • Oestereich, B.: Developing Software with UML: Object-Oriented Analysis and Design in Practice 2. ed. - Addison-Wesley Professional, 2003.
  • Oestereich, B.: Analyse und Design mit UML 2.1: Objektorientierte Softwareentwicklung, 8. ed. - München; Wien : Oldenbourg, 2006
  • OMG Object Management Group. Unified Modeling Language (OMG UML) Version 2.5.1 – OMG, 2017.
  • Seidl, M.; Scholz, M. and Huemer, C.: UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer, 2015.
  • Schwaber, K. and Sutherland, J. The Scrum Guide: The Definitive Guide to Scrum – Scrumguides.org, 2020.
  • Sommerville, I.: Software Engineering, 10. Auflage - Pearson, 2018.
  • Wintersteiger, A.: Scrum: Schnelleinstieg, 4. Auflage - Frankfurt am Main: entwickler.press, 2018.

The lecture will take the form of seminars with exercises.

Course Softwareengineering Laboratory

MKIB5124

Laboratory

Prof. Dr. Thomas Fuchß

German

2/2

60 hours in total, including 30 hours of contact study.

Laboratory Work 1 Semester (not graded)

In the Software Engineering Lab, students complete a full iterative software development process within a team. Starting with requirements analysis, they develop an analysis and design model and implement it in Java. Along the way, they actively engage with concepts such as use-case-driven development, architecture orientation, iterative and incremental approaches, and component-based software design.

Through a concrete example project, students experience the practical application of these methods and learn to make independent design decisions while adhering to given requirements. The lab emphasizes teamwork and independent problem-solving, preparing participants to work effectively in agile development teams and address the challenges of complex software projects.

Slides, videos, textbooks, and other literature:

  • Arlow, J.; Neustadt, I.: UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2. ed. - Addison-Wesley Professional, 2005.
  • Shimp, D. and Rawsthorne, D. Exploring Scrum: The Fundamentals – CreateSpace, 2011.
  • Jacobson, I.; Booch, G. and Rumbaugh, J.: The unified software development process - Reading, Mass.: Addison-Wesley, 1999.
  • Kim, G.; Humble, J.; Debois, P. und Willis, J.: Das DevOps-Handbuch: Teams, Tools und Infrastrukturen erfolgreich umgestalten - Heidelberg: O'Reilly; Heidelberg: dpunkt.verlag, 2017.
  • Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. - Upper Saddle River, NJ : Prentice Hall, 2004.
  • Larman, C. und Vodde, B.: Large-Scale Scrum: Scrum erfolgreich skalieren mit LeSS - Heidelberg: dpunkt.verlag, 2017.
  • Oestereich, B.: Developing Software with UML: Object-Oriented Analysis and Design in Practice 2. ed. - Addison-Wesley Professional, 2003.
  • Oestereich, B.: Analyse und Design mit UML 2.1: Objektorientierte Softwareentwicklung, 8. ed. - München; Wien : Oldenbourg, 2006
  • OMG Object Management Group. Unified Modeling Language (OMG UML) Version 2.5.1 – OMG, 2017.
  • Seidl, M.; Scholz, M. and Huemer, C.: UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer, 2015.
  • Schwaber, K. and Sutherland, J. The Scrum Guide: The Definitive Guide to Scrum – Scrumguides.org, 2020.
  • Sommerville, I.: Software Engineering, 10. Auflage - Pearson, 2018.
  • Wintersteiger, A.: Scrum: Schnelleinstieg, 4. Auflage - Frankfurt am Main: entwickler.press, 2018.

Attended teamwork