-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathReferenceManagement.cml
58 lines (54 loc) · 1.78 KB
/
ReferenceManagement.cml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
BoundedContext ReferenceManagementContext implements PaperArchive {
domainVisionStatement "This Bounded Context realizes the following subdomains: PaperArchive"
type APPLICATION
/* This Aggregate contains the entities and services of the 'PaperArchive' subdomain.
* TODO: You can now refactor the Aggregate, for example by using the 'Split Aggregate by Entities' architectural refactoring.
* TODO: Add attributes and operations to the entities.
* TODO: Add operations to the services.
* Find examples and further instructions on our website: https://contextmapper.org/docs/rapid-ooad/ */
Aggregate PaperArchiveAggregate {
Service PaperArchivingService {
@PaperItem createPaperItem (@PaperItem paperItem); // improved
Set<@PaperItem>lookupPapersFromAuthor(String who); // added
String convertToMarkdownForWebsite(@PaperItemId id); // added
}
Entity PaperItem {
String title
String authors
String venue
- PaperItemId paperitemId
}
Entity PaperCollection {
- List<PaperItem> paperitemList
- PaperCollectionId paperCollectionId
}
ValueObject PaperItemId {
String id
}
ValueObject PaperCollectionId {
String id
}
}
}
Domain PublicationManagement {
Subdomain PaperArchive supports PaperArchiving {
domainVisionStatement "Aims at promoting the following benefit for a Researcher: other researchers can find the referenced paper easily."
Entity PaperItem {
String title
String authors
String venue
}
Entity PaperCollection {
- List<PaperItem> paperitemList
}
Service PaperArchivingService {
createPaperItem;
}
}
}
UserStory PaperArchiving {
As a "Researcher"
I want to create a "PaperItem"
with its "title", "authors", "venue" in a "PaperCollection"
so that "other researchers can find the referenced paper easily."
}