t.BA.IT.SWEN1.13HS (Software Engineering 1) 
Module: Software Engineering 1
This information was generated on: 25 April 2024
No.
t.BA.IT.SWEN1.13HS
Title
Software Engineering 1
Organised by
T InIT
Credits
4

Description

Version: 4.0 start 01 August 2021
 

Short description

This module provides you with the necessary analysis and design skills to develop and realize larger and more complex software applications.

User and domain research, use cases and domain modeling are applied to analyze a problem. The elicited requirements for a software system are systematically specified and tested.   

Derived from the requirements, techniques for the design of a suitable software architecture and the implementation in an object-oriented design are taught. Proven architecture and design patterns are applied and emphasis is placed on high software quality (extensibility, maintainability). 

Standardized notations (such as UML) are used for modeling and communicating the results from analysis, software architecture and design.

Module coordinator

Walter Eich (eicw)

Learning objectives (competencies)

Objectives Competences Taxonomy levels
For a given, iterative-incremental software development process, you can explain the process and artifacts for developing an object-oriented software application. F, M K2
You can grasp the user's terminology using suitable procedures and condense it into a domain-specific terminology (domain model). F, M K3
You can define a software system and systematically collect and communicate the functional requirements with use cases as well as quality requirements and constraints. F, M K3
Based on the requirements, you can design a suitable software architecture and an object-oriented design for the components of the domain logic contained therein. F, M K3
You can use standardized notations (such as UML) for modeling and communicating artifacts in the software development process. F, M K3
You can use proven analysis, architecture and design patterns adequately for a problem. F, M K3, K4

Module contents

This module provides the necessary analysis and design skills to develop and implement larger and more complex software application.

Analysis competence includes above all the will and ability to communicate and cooperate with clients and future system users and to quickly familiarize oneself with new application contexts. Students must be able to recognize familiar problems in the application context and be familiar with the associated solution patterns. They recognize inconsistencies and can deal with unclear requirements. Complex domains can be modelled and large application problems can be broken down into subproblems using suitable interfaces.

Design competencies include the ability to design hardware and software systems that fully meet the requirements. Abstraction is as essential as a solid knowledge of software architecture. Central to the design is the implementation of non-functional requirements such as security, performance, scalability, maintainability, extensibility and reliability.

Introduction and Software Development Processes (4 lessons)
  • Overview of software development process models and their home grounds (waterfall, iterative-incremental and agile)
  • Process and artifacts in an iterative-incremental, use-case-driven and architecture-centric software development process
Requirements Analysis (16 lessons)
  • Introduction in Usability and UX
    (contextual inquiry, personas and scenarios, UI sketching & prototyping)
  • Elicitation and communication of functional requirements with use cases (UML use case diagram, use case specification)
  • Elicitation and communication of non-functional requirements (quality requirements, constraints)
  • Modelling of the user's technicality and terms (domain model) and introduction to Domain Driven Design (DDD, conceptual UML class diagram)
Software Architecture and Design (36 lessons)
  • Design and modeling of a software architecture (4+1 view, represented by UML package diagram, UML deployment diagram)
  • Introduction to Clean Architecture (SOLID principles, layer architecture, onion architecture)
  • Use case realization and class design (Responsibility Driven Design (RDD), UML class diagram, UML sequence diagram, UML communication diagram, UML state diagram, UML activity diagram)
  • Design with Design Patterns (GoF: Factory, Singleton, Adaptor, Bridge, Composite, Decorator, Facade, Proxy, Chain of Responsibility, Observer, State, Strategy, Visitor)
  • Various in-depth topics such as: Distributed systems, GUI architectures, persistence, framework design
Practical Training
  • As a practical training, the students solve exercises tailored to the topic of the lecture. The practical training is an integral part of the lecture in this module type (2 lessons lecture and 2 lessons exercises).      

Teaching materials

sides, articels, case studies

Supplementary literature

- Larman, C.: Applying UML 2 and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Pearson Education, 2005
- Seidel, M. et al.: UML @ Classroom - An Introduction to Object-Oriented Modeling, Springer International Publishing, 2015 
- Martin, R. C.: Clean Architecture: A Craftsman's Guide to Software Structure and Design, Pearson Education, 2018

Prerequisites

-

Teaching language

(X) German ( ) English

Part of International Profile

( ) Yes (X) No

Module structure

Type 2a
  For more details please click on this link: T_CL_Modulauspraegungen_SM2025

Exams

Description Type Form Scope Grade Weighting
Graded assignments during teaching semester exam quizzes 2x15 min. mark 20%
End-of-semester exam exam written 90 min. mark 80%

Remarks

 

Legal basis

The module description is part of the legal basis in addition to the general academic regulations. It is binding. During the first week of the semester a written and communicated supplement can specify the module description in more detail.

Note

Course: Software Entwicklung 1 - Praktikum
No.
t.BA.IT.SWEN1.13HS.P
Title
Software Entwicklung 1 - Praktikum

Note

  • No module description is available in the system for the cut-off date of 01 August 2099.
Course: Software Entwicklung 1 - Vorlesung
No.
t.BA.IT.SWEN1.13HS.V
Title
Software Entwicklung 1 - Vorlesung

Note

  • No module description is available in the system for the cut-off date of 01 August 2099.