Information on individual educational components (ECTS-Course descriptions) per semester

  
Degree programme:Bachelor Computer Science - Software and Information Engineering
Type of degree:FH BachelorĀ“s Degree Programme
 Full-time
 Winter Semester 2023
  

Course unit titleSoftware Engineering
Course unit code024717030401
Language of instructionGerman
Type of course unit (compulsory, optional)Compulsory
Semester when the course unit is deliveredWinter Semester 2023
Teaching hours per week6
Year of study2023
Level of course unit (e.g. first, second or third cycle)First Cycle (Bachelor)
Number of ECTS credits allocated8
Name of lecturer(s)Wolfgang AUER
Andrea JANES
Roland PETERSTORFER
Florian REISCHER
Peter STADELWIESER


Prerequisites and co-requisites

Elementary algorithms and object-oriented programming, data management, user centered technologies

Course content

The students apply an agile test-driven development process in a software project. The concrete description of the project is fleshed out by the students using Impact Maps, Event Storming, User Stories and Acceptance Criterias and implementedwith a clean architecture. Topics: object-oriented Domain-Driven Design, Dependency Injection, Test-Driven Development and mocking, Full-Stack Webapplication, layer architecture, design patterns, object-oriented persistence connection.

Content:

  1. Overview of software engineering topics
  2. Strategic Domain-Driven Design
  3. Design and implementation of a hexagonal architecture with dependency injection
  4. Tactical Domain-Driven Design
  5. Object-oriented design with design patterns (Gamma and Co.)
  6. DB connection in a layered model
  7. Concurrency in a layered model
  8. Testing: general test theory, whitebox and blackbox testing, unit testing (JUnit), integration test, test metrics
  9. Test-driven development with mocking as a development process
  10. Refactoring
  11. Principles of Code Quality
  12. Client-Side Architecture
Learning outcomes
  • Students can implement a layered architecture in the context of a monolithic webapplication with persistence connection based on a larger semester project.
  • Students can implement a UI both with server-side rendering as well as with a Single Page Application.
  • The students have knowledge of the presentation of and implementation in complex software architectures.
  • Students can make independent design decisions with the help of design patterns
  • Students have experience in implementing and testing larger applications in a team
  • Students have experience with DevOps (version management, build systems, continuous integration).
Planned learning activities and teaching methods

Lecture, project work in strict teamwork, technical and organizational coaching, seminar work to solve concepts and techniques on small, detached tasks, including presentation of model solutions.

Assessment methods and criteria

Final individual oral examination (70%), and evaluation of teamwork in the project (30%).

For a positive grade, a minimum of 50% of the possible points must be achieved in each part of the examination.

 

Comment

Lecturenotes: https://homepages.fhv.at/thjo/lecturenotes/se/index.html

 

Recommended or required reading
  • Vernon, V. (2016). Domain-driven design distilled. Addison-Wesley Professional.
  • Vernon, V. (2013). Implementing domain-driven design. Addison-Wesley.
  • Evans, Eric J. (2003): Domain-Driven Design: Tackling Complexity in the Heart of Software. 1. A. Boston: Addison Wesley.
  • Millett, S., & Tune, N. (2015). Patterns, principles, and practices of domain-driven design. John Wiley & Sons.
  • Larman, Craig (1998): Applying UML and patterns. Prentice Hall Englewood Cliffs, NJ.
  • Gamma, Erich u. a. (2020): Design Patterns: Elements of Reusable Object-Oriented Software: Elements of Reusable Object Orientated Software. Upper Saddle River, NJ: Pearson Education.
  • Bruegge, Bernd; Dutoit, Allen H. (2013): Object-Oriented Software Engineering Using UML, Patterns, and Java: Pearson New International Edition. 3 ed. Essex: Prentice Hall.
  • Sommerville, Ian (2018): Software Engineering. 10., aktualisierte. Hallbergmoos: Pearson Studium.
  • Fowler, Martin (2003): Patterns für Enterprise Application-Architekturen. 1st Ed. Bonn: MITP.
  • Freeman, Eric u. a. (2014): Head First Design Patterns. 1st Ed. Sebastopol, CA: O'Reilly and Associates.
  • Beck, Kent (2002): Test Driven Development: By Example. 01 Ed. Boston: Addison-Wesley Professional.
  • McLaughlin, Brett D; Pollice, Gary; West, David (2007): Objektorientierte Analyse und Design von Kopf bis Fuß. O'Reilly Germany.
  • Freeman, Steve; Pryce, Nat (2009): Growing Object-Oriented Software, Guided by Tests. 1st Ed. Upper Saddle River, NJ: Addison Wesley. 
Mode of delivery (face-to-face, distance learning)

classroom teaching

Winter Semester 2023go Top