Print

Domain Centric Architecture

Code

IT-DCA1

Version

1.0

Offered by

ICT Engineering

ECTS

5

Prerequisites

Completed the 2nd semester Software Engineering course "Programming 2" (previously “Software Development with Java 2”), or a similar course.
Completed the 2nd semester Software Engineering course “Software Engineering”, or a similar course.
Completed the 3rd semester Software Engineering course “.NET Programming”, or a similar course.

Main purpose

The purpose is to qualify the student to understand and master the concepts and techniques of software architecture, test driven development, implementations of both.

The course will provide students with the qualifications needed to understand how to:
• Discuss various architectural styles
• Implement several architectural patterns
• Apply a subset of strategic and tactical Domain Driven Design patterns
• Drive software development with automated tests 

Knowledge

The student should be able to understand:

• Common architectural styles, among other: n-layered, vertical slices, hexagonal, clean, etc. 
• Different methods for testing 
• Several architectural patterns
• Selected strategic and tactical patterns from Domain Driven Design
• Basics of Web API
• Basics of Object-Relational Mapping
• How to develop a system through automated test

Skills

The student should achieve the skills:

• Apply architectural patterns in practice to build robust systems
• Apply architectural concepts
• Split a system by various concerns
• Test software using automated tests (unit-/integration-tests).
• Design and develop a rich, behavior-driven domain model, which reflects business-logic
• Apply tactical patterns from Domain Driven Design
• Effectively use an object-relational mapper for both database-generation and code-scaffolding
• Implement an RPC-oriented Web API

Competences

The student should be able to:

• Implement programs while considering architectural styles, ensuring low coupling, high cohesion, and clear separation of concerns
• Discuss different architectural styles, highlighting their strengths, weaknesses
• Critically reason about and practically implement key architectural patterns, understanding their implications and benefits
• Evaluate and reason about different Web API patterns 
• Reason about dependencies between system-components
• Thoroughly analyze complex domains to develop rich domain models that accurately represent business logic and requirements

Topics

Teaching methods and study activities

​The semester has 48 classroom lessons. These lessons will consist of teacher presentations and project-work. 

The course will include several course assignments. 


Resources

Evaluation

Examination

Exam prerequisites

None 

Exam type
• Individual oral exam, 20 minutes, without preparation. 
• Based upon course assignments, which must be submitted before the given deadline.
• The student will draw from a pool of known questions.
• The student will explain concepts and theories from the course, using the course work as reference.
• The student will start with a prepared presentation.
• Internal assessment.

Tools allowed:
N/A

Re-exam
Same as the ordinary exam. 

Grading criteria

​Grading based on the Danish 7-point scale.

Additional information

Responsible

Troels Mortensen (trmo)

Valid from

01-02-2024 00:00:00

Course type

Keywords

.NET, C#, architectural styles, architectural patterns, Domain Driven Design, Test Driven Development, Web API, Object-relational-mapping, project work.