<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://workcraft.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://workcraft.org/feed.php">
        <title>Workcraft - devel:design</title>
        <description></description>
        <link>http://workcraft.org/</link>
        <image rdf:resource="http://workcraft.org/_media/logo.svg" />
       <dc:date>2026-05-09T22:47:09+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/compatibility_manager?rev=1551453998&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/expressions?rev=1572271632&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/model?rev=1539873825&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/model_conversion?rev=1539077066&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/objectaim?rev=1539076253&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/observer?rev=1539875463&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/plugin?rev=1539873844&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/reference?rev=1539873318&amp;do=diff"/>
                <rdf:li rdf:resource="http://workcraft.org/devel/design/start?rev=1595864326&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://workcraft.org/_media/logo.svg">
        <title>Workcraft</title>
        <link>http://workcraft.org/</link>
        <url>http://workcraft.org/_media/logo.svg</url>
    </image>
    <item rdf:about="http://workcraft.org/devel/design/compatibility_manager?rev=1551453998&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-01T15:26:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>compatibility_manager</title>
        <link>http://workcraft.org/devel/design/compatibility_manager?rev=1551453998&amp;do=diff</link>
        <description>Compatibility manager

Workcraft stores the models in XML format with explicit references to classes implementing particular aspects of the models. This becomes problematic when doing refactoring. If you change the name of a class or a property name that is stored in in the XML file then Workcraft would not be able to read the previously stored files.</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/expressions?rev=1572271632&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-28T14:07:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>expressions</title>
        <link>http://workcraft.org/devel/design/expressions?rev=1572271632&amp;do=diff</link>
        <description>Concept of expressions

The main reason for us to migrate Workcraft to Scala and switch to functional programming style was, beyond the obvious fascination with the novelty of functional programming and functional languages, Arseniy&#039;s idea of Expressions (which turned out to be his re-inventing the concept of Functional Reactive Programming to a certain extent, a relatively well-known concept[</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/model?rev=1539873825&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-18T14:43:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>model</title>
        <link>http://workcraft.org/devel/design/model?rev=1539873825&amp;do=diff</link>
        <description>Mathematical and visual layers

The internal division into mathematical and visual models was done to avoid mixing unrelated responsibilities of the classes. The mathematical model describes all the semantics, it checks model integrity, tells whether some operation is possible/valid (connection, simulation, etc.). It knows nothing about the visual model presenting it. In future versions there might be several different visual presentations showing different aspects of the same mathematical model…</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/model_conversion?rev=1539077066&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-09T09:24:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>model_conversion</title>
        <link>http://workcraft.org/devel/design/model_conversion?rev=1539077066&amp;do=diff</link>
        <description>Generic approach to model conversion

Notation: src -- source; dst -- destination.

	*  Convert math model of src to math model of dst.
		*  Use node creation methods that can generate necessary hierarchy in dst model based on src node reference.


	*</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/objectaim?rev=1539076253&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-09T09:10:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>objectaim</title>
        <link>http://workcraft.org/devel/design/objectaim?rev=1539076253&amp;do=diff</link>
        <description>Analysis of code with ObjectAID UML Explorer

One convenient way to understand the source code is through modelling. It is possible to use Eclipse plugin called ObjectAid. Here we only consider the class modeller, which is provided for free.

The object modeller helps to visualize the code, that has already been written. It also can update the models automatically, when the source code was changed. Therefore, it is not a modelling tool, but rather the source code visualizer. A model is essential…</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/observer?rev=1539875463&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-18T15:11:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>observer</title>
        <link>http://workcraft.org/devel/design/observer?rev=1539875463&amp;do=diff</link>
        <description>Observers of the model structure

Workcraft uses the  Observer pattern both mathematical and visual models create a number of observers listening to the changes in hierarchy such as adding and removing nodes in some container.



	*  DefaultHangingConnectionRemover removes connections that cannot exist without the nodes being removed.</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/plugin?rev=1539873844&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-18T14:44:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>plugin</title>
        <link>http://workcraft.org/devel/design/plugin?rev=1539873844&amp;do=diff</link>
        <description>Plugin structure</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/reference?rev=1539873318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-18T14:35:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>reference</title>
        <link>http://workcraft.org/devel/design/reference?rev=1539873318&amp;do=diff</link>
        <description>Naming of model components

Names of the nodes in Workcraft are used to identify the mathematical and visual nodes in the model. Every node in the model must have some name and normally every name is unique within its namespace. The root node of the mathematical model provides a namespace at the highest level. Inside the model, there may be other nodes (such as pages) that create their own namespaces.</description>
    </item>
    <item rdf:about="http://workcraft.org/devel/design/start?rev=1595864326&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-27T15:38:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>http://workcraft.org/devel/design/start?rev=1595864326&amp;do=diff</link>
        <description>Design decisions

	*  Mathematical and visual layers
		*  Naming of model components
		*  Plugin structure
		*  Compatibility manager
		*  Observers of the model structure
		*  Generic approach to model conversion

Verification

	*  1-way conformation
		*  Refinement

Conceptual

	*  Concept of expressions

Analysis tools

	*  ObjectAID UML Explorer</description>
    </item>
</rdf:RDF>
