{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2005/12/06/uml-diagram-of-cdk-module-dependencies.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/a3r1n-72841",
      "url": "https://chem-bla-ics.linkedchemistry.info/2005/12/06/uml-diagram-of-cdk-module-dependencies.html",
      "title": "UML diagram of CDK module dependencies",
      "content_html": "<p>The code clean up after <a href=\"http://cdk.sf.net/\">CDK</a>’s interfaces transition is in progress, and two\n<a href=\"http://almost.cubic.uni-koeln.de/cdk/cdk_top/devel/modules/\">CDK modules</a> are now independent\nof the <em>data</em> module. After <a href=\"https://chem-bla-ics.linkedchemistry.info/2005/10/25/more-cdkinterfaces-updates.html\">doing the <em>core</em> module <i class=\"fa-solid fa-recycle fa-xs\"></i></a>,\nthe standard was next, and I finished this yesterday. The dependencies in CVS now look like (click it to get a larger view):</p>\n\n<p>IMAGE LOST</p>\n\n<p>This <a href=\"https://en.wikipedia.org/wiki/Unified_Modeling_Language\">UML</a> diagram was made with <a href=\"http://uml.sourceforge.net/\">Umbrello</a>, and the source is in\n<a href=\"http://www-128.ibm.com/developerworks/xml/library/x-xmi/\">XMI</a> in CVS.</p>\n\n<p>I cannot stress enough the advantages of these changes:</p>\n\n<ol>\n  <li>the code is cleaner</li>\n  <li>module dependencies are cleaner</li>\n  <li>impossible to use methods outside the interface</li>\n  <li>the algorithms are independent of the data classes</li>\n</ol>\n\n<p>The last advantage is really important: it allows alternative implementations of the data classes. For example, we could make debug\ndata classes, which, unlike the normal classes, do all sorts of checks when using methods of these classes. For example, they can\nexplicitely check that parameters are not null, of the right class, and generally make sense. This makes them, possibly, slower,\nbut also more type save, and as such great for debugging and development sessions.</p>\n\n<p>Another important application of making the CDK library independent of the data classes (and only depending on the\n<a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/interfaces/package-frame.html\">interfaces</a>), is that we can have data classes\nshared with other Java libraries, such as <a href=\"http://joelib.sf.net/\">JOElib</a>, <a href=\"http://octetsource.com/\">Octet</a>,\nCML (<a href=\"http://sourceforge.net/mailarchive/forum.php?thread_id=9146642&amp;forum_id=8774\">Jumbo 5.0 is out!</a>), and even proprietary libraries.\nThis approach is already used in the <a href=\"https://chem-bla-ics.linkedchemistry.info/2005/10/18/cdk-taverna-fully-recognized.html\">CDK-Taverna <i class=\"fa-solid fa-recycle fa-xs\"></i></a>\nlibrary, and I anticipate much wider use with the arrival of <a href=\"http://www.bioclipse.net/\">Bioclipse</a>.</p>",
      "summary": "The code clean up after CDK’s interfaces transition is in progress, and two CDK modules are now independent of the data module. After doing the core module , the standard was next, and I finished this yesterday. The dependencies in CVS now look like (click it to get a larger view):",
      
      "date_published": "2005-12-06T00:00:00+00:00",
      "date_modified": "2024-03-11T00:00:00+00:00",
      "tags": ["cdk","uml"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
