I have come across many situations where I had to build a system for a library or a clinic or other popular domains.
The thing is a domain model for a library was probably done 1000 times already with different level of details of course. Here is an example.
Is there a popular website or community where one can find ready made domain models for popular systems?
The whole purpose I’m trying to achieve is to quickly get a grasp of the domain I’m modelling and customise it to my needs. Re-inventing the wheel seems really absurd when the same system might have been modelled properly previously.
Note
I know Google might sound like the perfect source, but it will better if there is a repository out there that people can post there models, so that others can share them.
The whole purpose I’m trying to achieve is to quickly get a grasp of the domain I’m modelling and customize it to my needs.
There are books and other resources specially in the area ERP that discusses domain model (at least at a high level). However, for a system such as Library Management, you may not find much in the public domain.
You could still utilize standard domain entities such as “part”, “supplier”, etc. with some modifications. You could also use industry standards such as Library of Congress ID, ISBN(s), etc.
The reasons that 1 domain model does not fit all are the following:
-
Business are different.
-
Desired span of automation (system scope) is different, as business goals are different.
-
Business processes are different.
One way to look for to get a better business understanding for this are is specialized books on the subject, something like this may help: Google Books-Library Information Systems and Library Automation.
The main categories you want to understand are:
1 – Business standards (such as ISBNs, etc. worldwide).
2 – General laws and regulations.
3 – Standard systems your system need to integrate with and how the integration works (you need to know special data exchange formats, data exchange protocols etc.).
4 – Specific customer requirements (processes, data, business rules, etc.).
In my experience, even for a domain type that has been modeled 1000 times before, you cannot rely on a pre-fabricated domain design.
It is certainly true that some domain entities, “Book” or “Fine” in you example, might be common but their roles in the system you are building probably aren’t.
Put another way, the requirements gathering for your project is sure to yield different results than the requirements gathering from my project, even in the same domain.
However…
While an exact domain model may not be sharable by every system, a Glossary library might be.
That would be an interesting project too. A community generated and vetted (à la StackExchange) that provided glossaries for entities found in specific domains.
I’d check it out!
My $0.02. Hope it helps.
Hmmm…that’s interesting. A communal repository of domain models for discussion and shared knowledge. No such thing exists…but I could see the benefits of having something like it.
To go with it, maybe a service that allowed you to deploy one of these Domain Models ready to be customized in your preferred language.
In the meanwhile, here is a read-only collection of database models which could be used as the basis for a domain model.