Settings

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

  • Login
Module summary

Software Engineering and Distributed Systems 2

MKIB5104

Prof. Dr. Thomas Fuchß

7 ECTS points / 7 Contact hours

5th Semester

Databases and Communication Networks 1, Computer Science 2, Man Machine Communication 1, Internship, Technologies of the Internet

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

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.

  • 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

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

Module exam

The course "software engineering" concentrates on methods and techniques for the structured development of large software systems. Beyond the repetition of well-known object oriented concepts, the focus lies on establishing the fundamentals of modern and agile software development process. Based on their experiences made during internship, the students discover the real challenges associated to such a development process. The lecture is accompanied by a course-project, to gain experiences in practice. This covers agile and component based development techniques, containing requirement engineering, analysis, and design as well as a prototypical implementation of the software system in java.

Slides, textbooks, and other literature:

  • Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. - Upper Saddle River, NJ: Prentice Hall, 2004.
  • I. Jacobson, G. Booch, and Rumbaugh. The unified software development process - Reading, Mass.: Addison-Wesley, 1999.
  • Jim Arlow, Ila Neustadt. UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2. ed. - Addison-Wesley Professional, 2005.
  • Bernd Oestereich. Developing Software with UML: Object-Oriented Analysis and Design in Practice 2. ed. - Addison-Wesley Professional, 2003.
  • Bernd Oestereich. Analyse und Design mit UML 2.1: Objektorientierte Softwareentwicklung, 8. ed. - München; Wien; Oldenbourg, 2006.
  • OMG Object Management Group. UML 2.4.1 Superstructure Specification - Needham Ma: OMG, 2011.
  • Schwaber, K. and Sutherland, J. The Scrum Guide: The Definitive Guide to Scrum - Scrum.org, 2011.
  • Shimp, D. and Rawsthorne, D. Exploring Scrum: The Fundamentals - CreateSpace, 2011.
  • Sommerville, Ian. Software Engineering (9. Ausgabe) - Pearson Studium, 2012.

The lecture will take the form of seminars with exercises.

Course Softwareengineering Laboratory

MKIB5124

Laboratory

Prof. Dr. Thomas Fuchß

German

2/2

Laboratory Work 1 Semester (not graded)

Accompanying the software engineering lecture this course project covers a complete step in a modern software development process. Beginning with requirement engineering and analysis, central use cases are designed and finally implemented in Java. By this students learn more than facts, they get experiences and they understand the meaning of terms like architecture-oriented, iterative, incremental, or component-based.

Slides, textbooks, and other literature:

  • Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. - Upper Saddle River, NJ: Prentice Hall, 2004.
  • I. Jacobson, G. Booch, and Rumbaugh. The unified software development process - Reading, Mass.: Addison-Wesley, 1999.
  • Jim Arlow, Ila Neustadt. UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2. ed. - Addison-Wesley Professional, 2005.
  • Bernd Oestereich. Developing Software with UML: Object-Oriented Analysis and Design in Practice 2. ed. - Addison-Wesley Professional, 2003.
  • Bernd Oestereich. Analyse und Design mit UML 2.1: Objektorientierte Softwareentwicklung, 8. ed. - München; Wien; Oldenbourg, 2006.
  • OMG Object Management Group. UML 2.4.1 Superstructure Specification - Needham Ma: OMG, 2011.
  • Schwaber, K. and Sutherland, J. The Scrum Guide: The Definitive Guide to Scrum - Scrum.org, 2011.
  • Shimp, D. and Rawsthorne, D. Exploring Scrum: The Fundamentals - CreateSpace, 2011.
  • Sommerville, Ian. Software Engineering (9. Ausgabe) - Pearson Studium, 2012.

Attended teamwork