Capability-based IT System Architecture Development
This is a tool that supports building reasonable IT architectures. For this is facilitates capability-based thinking which helps to ensure business-oriented architecture decisions.
Web-Version can be found here https://archicap.netlify.com/
Checkout the related projects:
- https://archicap-formulator.netlify.com/ A capability formulator
- https://github.com/uni-stuttgart-wi1/analytics-capabilities-collection A collection of analytics capabilities
This is a tool that supports building reasonable IT architectures. For this is facilitates capability-based thinking which helps to ensure business-oriented architecture decisions.
The tool is part of an ongoing research project at the University of Stuttgart (https://www.uni-stuttgart.de/en) Department for Information Systems I (https://www.bwi.uni-stuttgart.de/en/dept7/)
It is published under MIT license (https://choosealicense.com/licenses/mit)
You can find the source code on Github: https://github.com/JEreth/archiCap
If you have any questions or notes please use the github page for interaction.
To get going you should first be aware that there are thee use cases that might be relevant for you:
- Greenfield: You want to achieve some business capabilities and ask your self which components fit.
- If this is the case you might only want to define your capabilities and use some of the predefined components and patterns.
- Brownfield: You have a legacy IT landscape that you analyze in order to identify possible capabilities.
- If this is the case you might only want to define your components and use some of the predefined capabilities.
- Benchmark: You have a legacy IT landscape and some capabilities and want to check which components are relevant and which might be redundant.
- If this is the case feel free to use any of the predefined elements and add you own if necessary.
You can simply use the Wizard to define your personal setup and then use the Stage to explore your possibilities.
You can always edit your environment in *My Profile
Currently, the tool comes with predefined environments for:
- Decentralized Analytics Landscapes
- Data Lakes
- AI & Machine Learning Architectures
Have fun with exploring the examples.
This tool provides the flexibility to save and load a set of predefined elements that serve as a collection in certain scenarios. It is for example possible to define possible elements for a use case such as the Internet of Things and then save all the relations of components, patterns and capabilities. Later, any user can load this setup and adjust it to his own needs.
For this you can define the following elements in the left configuration sections.
-
Categories are helpers to structure you architecture. You can for instance use them as component categories (e.g. Databases, Front-End Tools etc.) or to define layers in your architecture (e.g. data management, data processing etc.)
-
Components are abstract system types. It is important to understand that these are not concrete products, but more types of products, e.g. relational database and not MySQL. You can define substitutions when multiple components can be replaced by each other or if one component includes the functions of another (e.g. a "Message Queue" and a more sophisticated "Event Log"). Components can be further specified with individual attribute sets.
-
Products are concrete implementations of components. It is possible that there are more than one product to one component, e.g. MySQL and PostreSQL for relational databases.
-
Patterns are combinations of components that usually occur together in order to provide a certain set of functions, e.g. edge processing, event logs and stream processing are often used together to build a so-called event hub.
-
Capabilities constitute the business link (i.e. the actual reason why a component is used) and the possibilities that are enabled by a component, e.g. distribution of event-driven data to multiple receivers for an event log. Capabilities can be further specified with individual attribute sets.
- Export/Import of your setup
Feel free to contribute to this project. If you have any question or if you want to report a bug, please use the GitHub issue board.
If you contribute to the source, please fork this project and trigger a pull request with a good description of what you did.