Oblikovanje vođeno domenom

Kosanović, Alen (2016) Oblikovanje vođeno domenom. Diploma thesis, Faculty of Science > Department of Mathematics.

[img]
Preview
PDF
Language: Croatian

Download (549kB) | Preview
[img] Archive (dodatni materijali)
Language: Croatian

Download (10MB)

Abstract

This thesis is about domain driven design, a design approach that Eric Evans describes in his book of the same title. The principles of domain driven design have been illustrated on an example of a system for designing and monitoring academic timetables. In order to make a software that does some useful activities, a development team must have knowledge about the underlying business domain. That domain is often complex and unfamiliar to the developers. Developers must engage in knowledge crunching activities with domain experts in order to create a model that contains rich domain knowledge and dictates the design of the software. As a result, a ubiquitous language is developed that is used as a common language between developers and domain experts and as a standard language between the developers. After certain knowledge is obtained, domain objects are specified as entities or value objects and operations are defined as services. Some objects come in groups and have invariant that always need to be satisfied. They are formed in aggregates. Creating aggregates and complex objects are delegated to factories. Finding and retrieving objects that have previously been created and stored is done through repositories. During development, refactoring is needed to reflect new insights about the domain or to obtain a design that allows better expression of the domain through code. Implicit concepts must be made explicit, cumbersome parts of the design should be redesigned in a more supple way in order to make it easier to change, with less interdependencies. That is accomplished by using techniques such as intention-revealing interfaces, side-effect-free functions, assertions, conceptual contours, standalone classes, closure of operations and declarative design. In large systems that have several models for the same domain segment we need to focus on maintaining model integrity on system scale. A domain can be so complex and huge that it is hard to distinguish the core domain from its supporting elements. Sometimes, it is useful to impose a certain structure to a large-scale system in order to better understand the roles of the parts of the system in the whole system.

Item Type: Thesis (Diploma thesis)
Supervisor: Manger, Robert
Date: 2016
Number of Pages: 57
Subjects: NATURAL SCIENCES > Mathematics
Divisions: Faculty of Science > Department of Mathematics
Depositing User: Iva Prah
Date Deposited: 19 May 2016 10:46
Last Modified: 19 May 2016 10:46
URI: http://digre.pmf.unizg.hr/id/eprint/4840

Actions (login required)

View Item View Item