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
2/1/2024 12:00:00 AM
Course type
Keywords
.NET, C#, architectural styles, architectural patterns, Domain Driven Design, Test Driven Development, Web API, Object-relational-mapping, project work.