inf005 - Software Engineering I (Course overview)

inf005 - Software Engineering I (Course overview)

Department of Computing Science 6 KP
Module components Semester courses Winter semester 2024/2025 Examination
Lecture
  • Unlimited access 2.01.005 - Softwaretechnik I Show lecturers
    • Prof. Dr. Andreas Winter
    • Florian Schmalriede

    Thursday: 08:00 - 10:00, weekly (from 17/10/24), Location: A14 1-102 (Hörsaal 2)
    Friday: 10:00 - 12:00, weekly (from 01/11/24), Location: A14 1-102 (Hörsaal 2)
    Dates on Wednesday, 05.02.2025 16:00 - 19:00, Wednesday, 26.03.2025 14:00 - 17:00, Location: A14 1-102 (Hörsaal 2), A14 1-103 (Hörsaal 3), A14 1-101 (Hörsaal 1)

    Ziel der Vorlesung ist die Vermittlung der ingenieurmäßigen Entwicklung und Wartung umfangreicher Softwaresysteme. Betrachtet wird der vollständige Software-Entwicklungsprozess inkl. Anforderungserhebung, Software-Architektur und Qualitätssicherung. Vertieft werden Grundkonzepte der objektorientierten Modellierung und Softwareentwicklung.

Exercises
Notes on the module
Prerequisites

Expected/useful experience

from inf030 Programming, Data structures and Algorithms

Professional competence

The students:

  • describe basic concepts of imperative programming with Java
  • recognise imperative programming terminology and use the appropriate terms accurately in discussions
  • recognise basic terminology of object-oriented programming
  • describe what programs presented to them do
  • independently develop programs to solve small problems
  • systematically examine their own and other people's programmes for errors
  • use modern programme development environments to develop and test programmes
  • create algorithms with general design concepts (e.g. Greedy method, divide-and-conquer method)
  • name algorithms and data structures for solving common problems and evaluate their applicability
  • name problems of efficiency of algorithmic solutions of concrete problems and evaluate them
  • make a well-founded choice of an algorithm and a data structure for solving a concrete problem
  • apply the learned algorithms and data structures sensibly to given and concrete problems

Methodological competence

The students:

  • solve given problems from the point of view of imperative or object-oriented programming
  • transfer practical experience in programme development to new tasks

Social competence

The students:

  • communicate the structure and mode of operation of self-developed programmes to others
  • present solutions to small tasks in front of groups

Self-competence

The students:

  • organise themselves in finding algorithmic solutions to small and medium-sized problems in computer science
  • incorporate the concepts of general programme design in their actions

 

from inf030 Object-oriented Modelling and Programming

Professional competence:

The students:

  • know basic concepts of object-oriented modelling and UML as modelling notation
  • know basic concepts of object-oriented programming with Java
  • know the terminology of object-oriented modelling and programming and use the appropriate terms precisely in discussions
  • can describe what object-oriented programmes presented to them do
  • independently develop models and programmes for solving medium-sized problems
  • systematically examine their own and other people's models and programmes for errors
  • use modern development environments for modelling and developing programmes
  • know the differences between the imperative, object-oriented, functional, logical and rule-based programming paradigms

Methodogical competence:

The students:

  • independently develop programmes for given problems by consistently applying the concepts of object-oriented modelling and programming
  • transfer practical experience in programme development to new tasks
  • independently develop programmes with concurrency
  • can independently apply known solution methods to complex problems

Social competence:

The students:

  • communicate the structure and mode of action of self-developed models and programmes to others
  • present independently developed solutions to groups

Self-competence:

The students:

  • organise themselves when developing programmes for small and medium-sized problems in computer science
  • incorporate the concepts of object-oriented programme design in their actions
Prüfungszeiten

At the end of the lecture period

Module examination

Written exam (as a rule)

Oral examination or portfolio (after consultation with the examination office, e.g. if compensation for disadvantages has been granted)

Skills to be acquired in this module

The objective of the module is to convey the development and maintainance of large scale software systems. The complete software developing process including requirements elicitation, software architecture and quality assurance, is covered in both classic and agile approaches. Basic concepts of object-oriented modeling and software development based on the Unified Modeling Language are covered in depth.


Professional competence
The students: 

  • recognize the phases in the software life cycle (requirements elicitation, design, implementation, quality assurance)
  • name the tasks involved in each phase
  • recognize and evaluate the arrangement of these activities in classic and agile approaches
  • assess and select suitable process models for the realization of projects
  • understand the advantages of the modelling process with UML
  • develop and evaluate models in different UML notations and their combinations
  • solve given problems with the help of UML notations


Methodological competence
The students:

  • structure, evaluate, differentiate and use procedures of classic and agile project management
  • structure, document and evaluate problems and solutions using the tools of object-oriented modeling
  • apply methods and techniques of object-oriented modeling with UML in a targeted manner


Social competence
The students:

  • create, present and discuss solutions to problems using modeling techniques
  • describe and solve given modeling problems in teams


Self-competence
The students: 

  • reflect on their actions when describing problems and developing solutions