Practical Course in Advanced Software Engineering (INF-SWEP)
||Practical Course in Advanced Software Engineering
||45 h (3 SWS)
6 credit points are awarded for this module. The attendance time is 3 hours a week. Including self-study, there are about 180 hours to be spent.
||elective module with compulsory module components
- Eligible for module INF-PfTI (Practical Course in Advanced Topics in Computer Science) for following courses:
INF-M-120 (Masters Programme Computer Science),
MINF-M-120 (Masters Programme Media Informatics),
MINF-M-120-KW: (Masters Programme Media Informatics with Communication Science),
MINF-M-120-MCI: (Masters Programme Human-Computer Interaction),
MINF-M-120-MG: (Masters Programme Media Informatics with Media Design),
MINF-M-120-MW: (Masters Programme Media Informatics with Media Economy)
- Eligible for module INF-B-VT1 oder INF-B-VT2 (Special Topics for Bachelor I/II) for following courses:
INF-B-120 (Bachelors Programme Computer Science with 60-CP Minor Subject),
INF-B-150 (Bachelors ProgrammeInformatik with 30-CP Minor Subject),
INF-B-180-CL (Bachelors Programme Computer Science plus Computer Linguistics),
INF-B-180-MA (Bachelors Programme Computer Science plus Mathematics),
INF-B-180-STAT (Bachelors Programme Computer Science plus Statistics),
MINF-B-180 (Bachelors Programme Media Informatics)
- Eligible for module INF-PP (Practical Programming) as Practical Course for scheduled development of a larger software system according to LPO I in following courses:
INF-LGY (Teaching Gymnasium),
INF-LRS (Teaching Realschule)
In the normal case the successful completion of:
- Software Engineering (INF-SWT)
- Practical Course in Software Development (INF-SEP) or Practical Training in Operating System Development (INF-SysP)
Students who did not complete the exam for INF-SWT can still participate in this modul if they
- know the content of INF-SWT (own confirmation is sufficient) and
- completed a Java-based SEP (e.g., not Inf-SysP).
|Time during the study
||Look at the description of the eligible module
||The module comprises 1 semester.
|Type of Examination
Repeatability: arbitrary, Admission Requirements: none
|Responsible for Module
||Prof. Dr. Dirk Beyer
Faculty for Mathematics, Computer Science and Statistics
Institute for Computer Science
Core Computer Science
LFE Software and Systems Engineering
||German or Englisch (some contents only available in english)
The practical course consits of two parts: Within the first three semester weeks there is a lecture part, where an introduction of the used methods and technology of the practical course is shown.
Afterwards the actual practical training begins. It takes places in teams with 5-7 persons.
The team gets the exercice of developing a specific software system (Java application, mostly web-based).
A structured process for software developement must be adhered to here (based on agile project management and Srum).
Every team get a chair staff as team advisor, who also takes the role of the product owner.
The practical part consists of multiple sprints and two weekly meeting with the team (online or in presence)
where the team is self responsible for sprint planing and performs similiar exercises.
During the meeting the team advisor is present.
During the sprints, the participants are working on the assigned tasks until the corresponding deadline and collaborate with e.g. code reviews.
For the whole organisation a platform with version control, issue tracker, continous integration, etc. is used.
The practical course ends with a final presentaion of the project.
Marked is not only the functionality of the developed software system, but also especially:
- the effective application of the required process for software developement
- the teamwork
- the software quality (robustness, Mmintainability, etc.)
- the implementation of best practices of software developement like e.g. design patterns
- the usage of techniques like automated testing, etc.
The requirements for the participation on this practical course is the mastery of the programming language Java
and associated developement tools like IDEs.
In more detail this means that not only the understanding of the syntax and semantics of Java is sufficient,
but also having knowledge about the classes of the Java-SDK (especially Collections framework and network functionality) is required
and the skill to learn for yourself further libraries and frameworks.
Also helpful is
- Skill to work together as a team (including version control, issue tracker, etc.)
- Advanced IDE knowledge
- Knowledge in web-based developement (HTML, CSS) and appropriate Java frameworks
- Experience with automated tests (JUnit, Mocking) und continous integration (CI)
The aim of the development practical course is to learn modern methods for development of larger software systems including their pracitcal applicaiton.
There will be different techniques and tools presented and trained, which are useful for the development of medium-sized and larger software projects.
The participants must apply these methods to work structured and develop in collaboration
a software system.