hCM: Conceptual modelling support for Haskell

[ data-structures, development, library, mit, model, program ] [ Propose Tags ]

hCM is the result of finding a suitable way how to support conceptual modelling within Haskell programming language in the most simple but smart manner. hCM should allow you to build conceptual model with Haskell freely without any restrictions about selected representation of entities, relationships and model itself.


[Skip to Readme]
Versions 0.1.0.0
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5), hashable, haskell-src, hCM [details]
License MIT
Copyright 2017 Marek Suchánek
Author Marek Suchánek <suchama4@fit.cvut.cz>
Maintainer suchama4@fit.cvut.cz
Category Model, Development, Data Structures
Home page https://github.com/MarekSuchanek/hCM
Source repo head: git clone https://github.com/MarekSuchanek/hCM
Uploaded by MarekSuchanek at Mon May 8 14:28:11 UTC 2017
Distributions NixOS:0.1.0.0
Executables hCM
Downloads 302 total (12 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-05-08 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hCM-0.1.0.0

[back to package description]

hCM

Conceptual modelling support library for Haskell.

License Build Status

Introduction

This library is the result of finding a suitable way how to support conceptual modelling within Haskell programming language in the most simple but smart manner. hCM should allow you to build conceptual model with Haskell freely without any restrictions about selected representation of entities, relationships and model itself.

Advantages gained by applying hCM are:

  • Compiler-driven modelling = GHC guides you through implementing conceptual model via writing instances and mandatory functions.
  • Visualization = you can generate visualization of model and its instances (DOT format, see Graphviz)
  • Verification = correctness of model-implementation consistency is guaranteed by using conceptual model as part of implementation (model-is-a-code)
  • Validation = you can validate the conceptual model with domain expert thanks to visualization, instance generation (use QuickCheck's Arbitrary) and easy constraint construction as pure functions

Installation

  • Use standard Haskell way with stack.
  • Optionally you can use prepared Makefile.

Usage

There is very simple example of trivial model within app/Example.hs file. For more complex example, try to check hCM-CaseStudy.

If you have used this library and want to share your project, feel free to let me know via issues.

Sharing ideas and reporting bugs is more than welcome as well via issues!

License

This project is licensed under the MIT license - see the LICENSE file for more details.