{"id":9687,"date":"2026-07-24T15:26:46","date_gmt":"2026-07-24T07:26:46","guid":{"rendered":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/"},"modified":"2026-07-26T17:39:18","modified_gmt":"2026-07-26T09:39:18","slug":"a-comprehensive-guide-to-the-object-constraint-language-ocl","status":"publish","type":"post","link":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/","title":{"rendered":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9"},"content":{"rendered":"<p data-nodeid=\"44120\">\u63d0\u4f9b\u3055\u308c\u305f\u8b1b\u7fa9\u8cc7\u6599\u306b\u57fa\u3065\u304d\u3001\u3053\u306e\u30ac\u30a4\u30c9\u306fUML\u30e2\u30c7\u30ea\u30f3\u30b0\u306e\u6587\u8108\u306b\u304a\u3051\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u57fa\u672c\u7684\u306a\u6982\u5ff5\u3001\u69cb\u6587\u3001\u304a\u3088\u3073\u5b9f\u7528\u7684\u306a\u5fdc\u7528\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p id=\"ELHqSML\"><img alt=\"Objct Constraint Language (OCL)\n\" class=\"alignnone wp-image-25369 size-full\" decoding=\"async\" height=\"928\" loading=\"lazy\" sizes=\"auto, (max-width: 1664px) 100vw, 1664px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png 1664w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-300x167.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-1030x574.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-768x428.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-1536x857.png 1536w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-150x84.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7-400x223.png 400w\" width=\"1664\"\/><\/p>\n<hr data-nodeid=\"44121\"\/>\n<h2 data-nodeid=\"44122\">1. OCL\u306e\u7d39\u4ecb<\/h2>\n<h3 data-nodeid=\"44123\">\u306a\u305cOCL\u304c\u5fc5\u8981\u306a\u306e\u304b\uff1f<\/h3>\n<p data-nodeid=\"44124\">UML\u56f3\uff08\u30af\u30e9\u30b9\u56f3\u306a\u3069\uff09\u306f\u69cb\u9020\u3092\u53ef\u8996\u5316\u3059\u308b\u306e\u306b\u512a\u308c\u3066\u3044\u308b\u304c\u3001\u4ed5\u69d8\u306e\u3059\u3079\u3066\u306e\u95a2\u9023\u3059\u308b\u5074\u9762\u3092\u8868\u73fe\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3002<\/p>\n<ul data-nodeid=\"44125\">\n<li data-nodeid=\"44126\">\n<p data-nodeid=\"44127\"><strong data-nodeid=\"44305\">\u81ea\u7136\u8a00\u8a9e<\/strong>\u306f\u66d6\u6627\u3067\u3042\u308b\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44128\">\n<p data-nodeid=\"44129\"><strong data-nodeid=\"44310\">\u5f93\u6765\u306e\u5f62\u5f0f\u8a00\u8a9e<\/strong>\u306f\u66d6\u6627\u3055\u304c\u306a\u3044\u304c\u3001\u5e73\u5747\u7684\u306a\u30b7\u30b9\u30c6\u30e0\u30e2\u30c7\u30e9\u30fc\u304c\u8aad\u307f\u66f8\u304d\u3059\u308b\u306b\u306f\u3042\u307e\u308a\u306b\u96e3\u89e3\u3067\u3042\u308b\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44130\">\n<p data-nodeid=\"44131\"><strong data-nodeid=\"44323\">OCL<\/strong>\u306f\u3053\u306e\u30ae\u30e3\u30c3\u30d7\u3092\u57cb\u3081\u308b\uff1a\u305d\u308c\u306f<strong data-nodeid=\"44324\">\u5f62\u5f0f\u8a00\u8a9e<\/strong>\u6b63\u78ba\u306a\u5236\u7d04\u3092\u8868\u73fe\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u304c\u3001\u4f9d\u7136\u3068\u3057\u3066<strong data-nodeid=\"44325\">\u8aad\u307f\u66f8\u304d\u3057\u3084\u3059\u3044<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"44132\">OCL\u306e\u6838\u5fc3\u7684\u306a\u7279\u5fb4<\/h3>\n<ol data-nodeid=\"44133\">\n<li data-nodeid=\"44134\">\n<p data-nodeid=\"44135\"><strong data-nodeid=\"44339\">\u7d14\u7c8b\u306a\u5f0f\u8a00\u8a9e\uff1a<\/strong>\u5f0f\u306b\u306f\u526f\u4f5c\u7528\u304c\u306a\u3044\u3002OCL\u5f0f\u306e\u8a55\u4fa1\u306f\u5024\u3092\u8fd4\u3059\u304c\u3001<em data-nodeid=\"44340\">\u30b7\u30b9\u30c6\u30e0\u306e\u72b6\u614b\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3002\u305f\u3060\u3057\u3001<\/em>\u72b6\u614b\u5909\u5316\u3092\u8a18\u8ff0\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u308b\uff08\u4f8b\u3048\u3070\u3001\u4e8b\u5f8c\u6761\u4ef6\u306b\u304a\u3044\u3066\uff09\u3002<em data-nodeid=\"44341\">\u8a18\u8ff0\u3059\u308b<\/em>\u72b6\u614b\u5909\u5316\uff08\u4f8b\u3048\u3070\u3001\u4e8b\u5f8c\u6761\u4ef6\u306b\u304a\u3044\u3066\uff09\u3092\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44136\">\n<p data-nodeid=\"44137\"><strong data-nodeid=\"44346\">\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u306f\u306a\u3044\uff1a<\/strong>\u30d7\u30ed\u30b0\u30e9\u30e0\u8ad6\u7406\u3001\u5236\u5fa1\u30d5\u30ed\u30fc\u3092\u66f8\u304f\u3053\u3068\u3082\u3001\u72b6\u614b\u3092\u5909\u66f4\u3059\u308b\u30d7\u30ed\u30bb\u30b9\uff0f\u64cd\u4f5c\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u3082\u3067\u304d\u306a\u3044\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44138\">\n<p data-nodeid=\"44139\"><strong data-nodeid=\"44351\">\u578b\u4ed8\u304d\u8a00\u8a9e\uff1a<\/strong>\u3059\u3079\u3066\u306e\u5f0f\u306b\u306f\u578b\u304c\u3042\u308b\u3002\u6574\u5408\u6027\u306e\u3042\u308b\u5f0f\u306f\u578b\u9069\u5408\u30eb\u30fc\u30eb\u306b\u5f93\u308f\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002\u3059\u3079\u3066\u306eUML\u5206\u985e\u5b50\u306fOCL\u306e\u578b\u3067\u3042\u308b\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44140\">\n<p data-nodeid=\"44141\"><strong data-nodeid=\"44360\">\u5373\u6642\u8a55\u4fa1\uff1a<\/strong>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u72b6\u614b\u306f\u8a55\u4fa1\u4e2d\u306b\u5909\u5316\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002<em data-nodeid=\"44361\">\u8a55\u4fa1\u4e2d<\/em>OCL\u5f0f\u306e\u8a55\u4fa1\u4e2d<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"44142\"\/>\n<h2 data-nodeid=\"44143\">2. \u57fa\u672c\u7684\u306a\u69cb\u6587\u3068\u610f\u5473<\/h2>\n<h3 data-nodeid=\"44144\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3068Self<\/h3>\n<p data-nodeid=\"44145\">\u3059\u3079\u3066\u306eOCL\u5f0f\u306f\u3001\u7279\u5b9a\u306eUML\u5206\u985e\u5b50\uff08\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306a\u3069\uff09\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306e\u4e2d\u3067\u8a55\u4fa1\u3055\u308c\u308b\u3002<\/p>\n<ul data-nodeid=\"44146\">\n<li data-nodeid=\"44147\">\n<p data-nodeid=\"44148\"><strong data-nodeid=\"44369\"><code data-backticks=\"1\" data-nodeid=\"44366\">context<\/code><\/strong>: \u5236\u7d04\u304c\u9069\u7528\u3055\u308c\u308b\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3059\u308b\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44149\">\n<p data-nodeid=\"44150\"><strong data-nodeid=\"44374\"><code data-backticks=\"1\" data-nodeid=\"44371\">self<\/code><\/strong>: \u8a55\u4fa1\u4e2d\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30af\u30e9\u30b9\u306e\u7279\u5b9a\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u6307\u3059\u4e88\u7d04\u8a9e\u3002<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-ocl\" data-nodeid=\"44151\"><code data-language=\"ocl\">context Person\r\n-- 'self' \u306fPerson\u306e\u7279\u5b9a\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u6307\u3059\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44152\">\u30b3\u30e1\u30f3\u30c8\u3068\u6f14\u7b97\u5b50<\/h3>\n<ul data-nodeid=\"44153\">\n<li data-nodeid=\"44154\">\n<p data-nodeid=\"44155\"><strong data-nodeid=\"44384\">\u30b3\u30e1\u30f3\u30c8:<\/strong>\u00a0\u306f\u00a0\u3067\u793a\u3055\u308c\u308b<code data-backticks=\"1\" data-nodeid=\"44380\">--<\/code>\u00a0\uff08\u4f8b\uff1a\u00a0<code data-backticks=\"1\" data-nodeid=\"44382\">-- \u3053\u308c\u306f\u30b3\u30e1\u30f3\u30c8\u3067\u3059<\/code>).<\/p>\n<\/li>\n<li data-nodeid=\"44156\">\n<p data-nodeid=\"44157\"><strong data-nodeid=\"44401\">\u4e2d\u7f6e\u6f14\u7b97\u5b50:<\/strong>\u00a0\u6a19\u6e96\u7684\u306a\u6570\u5b66\/\u8ad6\u7406\u6f14\u7b97\u5b50\uff08<code data-backticks=\"1\" data-nodeid=\"44389\">+<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44391\">-<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44393\">=<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44395\">&lt;<\/code>\uff09\u3092\u7528\u3044\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002\u6982\u5ff5\u7684\u306b\u306f\u3001<code data-backticks=\"1\" data-nodeid=\"44397\">a + b<\/code>\u00a0\u306f\u00a0\u3068\u540c\u4e00\u3067\u3042\u308b<code data-backticks=\"1\" data-nodeid=\"44399\">a.+(b)<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"44158\">\u30d7\u30ed\u30d1\u30c6\u30a3\u3078\u306e\u30a2\u30af\u30bb\u30b9<\/h3>\n<p data-nodeid=\"44159\">\u5c5e\u6027\u3084\u64cd\u4f5c\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30c9\u30c3\u30c8\u8868\u8a18\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u64cd\u4f5c\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u306a\u304f\u3066\u3082\u3001\u304b\u306a\u3089\u305a\u62ec\u5f27\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44160\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Person\r\nself.age             -- 'age' \u5c5e\u6027\u306b\u30a2\u30af\u30bb\u30b9\r\nself.stockPrice()    -- 'stockPrice' \u64cd\u4f5c\u3092\u547c\u3073\u51fa\u3057\r\n<\/code><\/pre>\n<hr data-nodeid=\"44161\"\/>\n<h2 data-nodeid=\"44162\">3. \u578b\u3068\u30b3\u30ec\u30af\u30b7\u30e7\u30f3<\/h2>\n<h3 data-nodeid=\"44163\">\u57fa\u672c\u7684\u306a\u4e8b\u524d\u5b9a\u7fa9\u578b<\/h3>\n<p data-nodeid=\"44164\">OCL\u306b\u306f\u3001\u7279\u5b9a\u306e\u64cd\u4f5c\u3092\u6301\u3064\u6a19\u6e96\u578b\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n<ul data-nodeid=\"44165\">\n<li data-nodeid=\"44166\">\n<p data-nodeid=\"44167\"><strong data-nodeid=\"44425\">\u8ad6\u7406\u578b\uff1a<\/strong>\u00a0<code data-backticks=\"1\" data-nodeid=\"44411\">true<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44413\">false<\/code>\uff08\u64cd\u4f5c\uff1a<code data-backticks=\"1\" data-nodeid=\"44415\">and<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44417\">or<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44419\">not<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44421\">implies<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44423\">xor<\/code>)<\/p>\n<\/li>\n<li data-nodeid=\"44168\">\n<p data-nodeid=\"44169\"><strong data-nodeid=\"44448\">\u6574\u6570\u578b\uff0f\u5b9f\u6570\u578b\uff1a<\/strong>\u6570\u5024\uff08\u64cd\u4f5c\uff1a<code data-backticks=\"1\" data-nodeid=\"44430\">+<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44432\">-<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44434\">*<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44436\">\/<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44438\">\u7d76\u5bfe\u5024<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44440\">\u6700\u5927\u5024<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44442\">\u6700\u5c0f\u5024<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44444\">\u9664\u7b97<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44446\">\u5270\u4f59<\/code>)<\/p>\n<\/li>\n<li data-nodeid=\"44170\">\n<p data-nodeid=\"44171\"><strong data-nodeid=\"44461\">\u6587\u5b57\u5217:<\/strong>\u00a0\u30c6\u30ad\u30b9\u30c8\uff08\u64cd\u4f5c\uff1a\u00a0<code data-backticks=\"1\" data-nodeid=\"44453\">\u30b5\u30a4\u30ba<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44455\">\u9023\u7d50<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44457\">\u90e8\u5206\u6587\u5b57\u5217<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44459\">\u6574\u6570\u306b\u5909\u63db<\/code>)<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"44172\">\u30b3\u30ec\u30af\u30b7\u30e7\u30f3<\/h3>\n<p data-nodeid=\"44173\">\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306f\u8907\u6570\u306e\u8981\u7d20\u3092\u4fdd\u6301\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u62bd\u8c61\u578b\u3067\u3059\u3002\u305d\u308c\u3089\u306f\u00a0<code data-backticks=\"1\" data-nodeid=\"44464\">-&gt;<\/code>\u00a0\u8868\u8a18\u3092\u4f7f\u3063\u3066\u30a2\u30af\u30bb\u30b9\u3055\u308c\u307e\u3059\u3002<\/p>\n<ol data-nodeid=\"44174\">\n<li data-nodeid=\"44175\">\n<p data-nodeid=\"44176\"><strong data-nodeid=\"44471\">\u96c6\u5408:<\/strong>\u00a0\u6570\u5b66\u7684\u306a\u96c6\u5408\uff08\u91cd\u8907\u306a\u3057\u3001\u9806\u5e8f\u306a\u3057\uff09\u3002\u00a0<code data-backticks=\"1\" data-nodeid=\"44470\">\u96c6\u5408 {1, 2, 5}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"44177\">\n<p data-nodeid=\"44178\"><strong data-nodeid=\"44477\">\u9806\u5e8f\u4ed8\u304d\u96c6\u5408:<\/strong>\u00a0\u91cd\u8907\u306a\u3057\u3001\u305f\u3060\u3057\u4f4d\u7f6e\u9806\u306b\u4e26\u3079\u3089\u308c\u307e\u3059\u3002\u00a0<code data-backticks=\"1\" data-nodeid=\"44476\">\u9806\u5e8f\u4ed8\u304d\u96c6\u5408 {5, 4, 3}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"44179\">\n<p data-nodeid=\"44180\"><strong data-nodeid=\"44483\">\u30d0\u30c3\u30b0:<\/strong>\u00a0\u91cd\u8907\u3092\u8a31\u3057\u3001\u9806\u5e8f\u306f\u95a2\u4fc2\u306a\u3044\u3002\u00a0<code data-backticks=\"1\" data-nodeid=\"44482\">\u30d0\u30c3\u30b0 {1, 2, 2, 5}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"44181\">\n<p data-nodeid=\"44182\"><strong data-nodeid=\"44489\">\u30b7\u30fc\u30b1\u30f3\u30b9:<\/strong>\u00a0\u91cd\u8907\u3092\u8a31\u3057\u3001\u9806\u5e8f\u304c\u95a2\u4fc2\u3059\u308b\u3002\u00a0<code data-backticks=\"1\" data-nodeid=\"44488\">\u30b7\u30fc\u30b1\u30f3\u30b9 {1, 2, 5, 10}<\/code><\/p>\n<ul data-nodeid=\"44183\">\n<li data-nodeid=\"44184\">\n<p data-nodeid=\"44185\"><em data-nodeid=\"44498\">\u6ce8\u610f:<\/em>\u00a0\u3053\u306e\u00a0<code data-backticks=\"1\" data-nodeid=\"44494\">..<\/code>\u00a0\u8868\u8a18\u306f\u9023\u7d9a\u3059\u308b\u6574\u6570\u306e\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u4f5c\u6210\u3059\u308b\uff1a\u00a0<code data-backticks=\"1\" data-nodeid=\"44496\">\u30b7\u30fc\u30b1\u30f3\u30b9 {1..5}<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 data-nodeid=\"44186\">\u4e3b\u8981\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u64cd\u4f5c<\/h3>\n<ul data-nodeid=\"44187\">\n<li data-nodeid=\"44188\">\n<p data-nodeid=\"44189\"><strong data-nodeid=\"44518\">\u5171\u901a:<\/strong>\u00a0<code data-backticks=\"1\" data-nodeid=\"44504\">size()<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44506\">isEmpty()<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44508\">notEmpty()<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44510\">includes(v)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44512\">excludes(v)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44514\">count(v)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44516\">sum()<\/code>.<\/p>\n<\/li>\n<li data-nodeid=\"44190\">\n<p data-nodeid=\"44191\"><strong data-nodeid=\"44522\">\u30a4\u30c6\u30ec\u30fc\u30bf\uff08OCL\u306b\u3068\u3063\u3066\u91cd\u8981\uff09:<\/strong><\/p>\n<ul data-nodeid=\"44192\">\n<li data-nodeid=\"44193\">\n<p data-nodeid=\"44194\"><code data-backticks=\"1\" data-nodeid=\"44523\">select(expr)<\/code>: \u8981\u7d20\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u00a0<code data-backticks=\"1\" data-nodeid=\"44525\">expr<\/code>\u00a0\u306f\u771f\u3067\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44195\">\n<p data-nodeid=\"44196\"><code data-backticks=\"1\" data-nodeid=\"44527\">reject(expr)<\/code>: \u8981\u7d20\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u00a0<code data-backticks=\"1\" data-nodeid=\"44529\">expr<\/code>\u00a0\u306f\u507d\u3067\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44197\">\n<p data-nodeid=\"44198\"><code data-backticks=\"1\" data-nodeid=\"44531\">collect(expr)<\/code>: \u3059\u3079\u3066\u306e\u8981\u7d20\u304b\u3089\u7279\u5b9a\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u62bd\u51fa\u3057\u3001\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u3057\u307e\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44199\">\n<p data-nodeid=\"44200\"><code data-backticks=\"1\" data-nodeid=\"44533\">forAll(expr)<\/code>: \u3092\u8fd4\u3057\u307e\u3059\u00a0<code data-backticks=\"1\" data-nodeid=\"44535\">true<\/code>\u00a0if\u00a0<code data-backticks=\"1\" data-nodeid=\"44537\">expr<\/code>\u00a0\u306f\u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u8981\u7d20\u306b\u5bfe\u3057\u3066\u771f\u3067\u3059\u3002<em data-nodeid=\"44543\">\u3059\u3079\u3066\u306e<\/em>\u00a0\u8981\u7d20\u306b\u5bfe\u3057\u3066\u771f\u3067\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44201\">\n<p data-nodeid=\"44202\"><code data-backticks=\"1\" data-nodeid=\"44544\">exists(expr)<\/code>: \u3092\u8fd4\u3057\u307e\u3059\u00a0<code data-backticks=\"1\" data-nodeid=\"44546\">true<\/code>\u00a0if\u00a0<code data-backticks=\"1\" data-nodeid=\"44548\">expr<\/code>\u00a0\u306f\u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u8981\u7d20\u306b\u5bfe\u3057\u3066\u771f\u3067\u3059\u3002<em data-nodeid=\"44554\">\u5c11\u306a\u304f\u3068\u30821\u3064\u306e<\/em>\u00a0\u8981\u7d20\u306b\u5bfe\u3057\u3066\u771f\u3067\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44203\">\n<p data-nodeid=\"44204\"><code data-backticks=\"1\" data-nodeid=\"44555\">iterate(elem; acc = init | expr)<\/code>: \u3059\u3079\u3066\u306e\u30a4\u30c6\u30ec\u30fc\u30bf\u306e\u6c4e\u7528\u7684\u306a\u57fa\u5e95\u3067\u3059\u3002<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p data-nodeid=\"44205\"><em data-nodeid=\"44560\">\u30a4\u30c6\u30ec\u30fc\u30bf\u306e\u69cb\u6587\u306e\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3:<\/em><\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44206\"><code data-language=\"ocl\">self.employee-&gt;select(age &gt; 50)\r\nself.employee-&gt;select(p | p.age &gt; 50)\r\nself.employee-&gt;select(p: Person | p.age &gt; 50)\r\n<\/code><\/pre>\n<hr data-nodeid=\"44207\"\/>\n<h2 data-nodeid=\"44208\">4. UML\u30e2\u30c7\u30eb\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3<\/h2>\n<p data-nodeid=\"44209\">OCL\u306f\u3001\u95a2\u9023\u3092\u305f\u3069\u308b\u305f\u3081\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u8a00\u8a9e\u3068\u3057\u3066\u5e83\u304f\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3 data-nodeid=\"44210\">\u6a19\u6e96\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3<\/h3>\n<p data-nodeid=\"44211\">\u9006\u306e\u30ed\u30fc\u30eb\u540d\u3092\u4f7f\u7528\u3057\u3066\u30ca\u30d3\u30b2\u30fc\u30c8\u3057\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u578b\u306f\u591a\u91cd\u5ea6\u306b\u4f9d\u5b58\u3057\u307e\u3059\uff1a<\/p>\n<ul data-nodeid=\"44212\">\n<li data-nodeid=\"44213\">\n<p data-nodeid=\"44214\"><strong data-nodeid=\"44573\">\u591a\u91cd\u5ea6\u00a0<code data-backticks=\"1\" data-nodeid=\"44567\">1<\/code>\u00a0\u307e\u305f\u306f\u00a0<code data-backticks=\"1\" data-nodeid=\"44569\">0..1<\/code>:<\/strong>\u00a0\u5358\u4e00\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44215\">\n<p data-nodeid=\"44216\"><strong data-nodeid=\"44586\">\u591a\u91cd\u5ea6\u00a0<code data-backticks=\"1\" data-nodeid=\"44576\">*<\/code>:<\/strong>\u00a0\u3092\u8fd4\u3057\u307e\u3059\u00a0<code data-backticks=\"1\" data-nodeid=\"44580\">Set<\/code>\u00a0\uff08\u307e\u305f\u306f\u00a0<code data-backticks=\"1\" data-nodeid=\"44582\">OrderedSet<\/code>\u00a0\u304c\u30de\u30fc\u30af\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u00a0<code data-backticks=\"1\" data-nodeid=\"44584\">{ordered}<\/code>).<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-ocl\" data-nodeid=\"44217\"><code data-language=\"ocl\">context Company\r\nself.manager.age &gt; 40               -- manager\u306f0..1\u3001Person\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3059\r\nself.employee-&gt;notEmpty()           -- employee\u306f0..*\u3001Set\u3092\u8fd4\u3059\r\n<\/code><\/pre>\n<p data-nodeid=\"44218\"><em data-nodeid=\"44592\">\u30ed\u30fc\u30eb\u540d\u304c\u6b20\u3051\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u3082\u3046\u4e00\u65b9\u306e\u7aef\u306e\u30af\u30e9\u30b9\u540d\u306e\u5c0f\u6587\u5b57\u3092\u4f7f\u7528\u3057\u307e\u3059\uff08\u4f8b\uff1a\u00a0<code data-backticks=\"1\" data-nodeid=\"44589\">self.bank<\/code>).<\/em><\/p>\n<h3 data-nodeid=\"44219\">\u95a2\u9023\u30af\u30e9\u30b9<\/h3>\n<p data-nodeid=\"44220\">\u95a2\u9023\u30af\u30e9\u30b9\u306e\u5c0f\u6587\u5b57\u540d\u3092\u4f7f\u7528\u3057\u3066\u3001\u95a2\u9023\u30af\u30e9\u30b9\u306b\u30ca\u30d3\u30b2\u30fc\u30c8\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44221\"><code data-language=\"ocl\">context Person\r\nself.job-&gt;size() &gt;= 1  -- 'job'\u306fPerson\u3068Company\u306e\u9593\u306e\u95a2\u9023\u30af\u30e9\u30b9\u3067\u3059\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44222\">\u518d\u5e30\u7684\u95a2\u9023<\/h3>\n<p data-nodeid=\"44223\">\u95a2\u9023\u304c\u540c\u3058\u30af\u30e9\u30b9\u306b\u623b\u308b\u5834\u5408\uff08\u4f8b\uff1a2\u4eba\u306ePerson\u9593\u306e\u7d50\u5a5a\uff09\u3001\u56db\u89d2\u62ec\u5f27\u3092\u4f7f\u7528\u3057\u3066\u65b9\u5411\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u00a0<code data-backticks=\"1\" data-nodeid=\"44597\">[roleName]<\/code>.<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44224\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Person\r\nself.marriage[wife]-&gt;select(m | m.ended = false)-&gt;size() = 1\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44225\">\u9650\u5b9a\u4ed8\u304d\u95a2\u9023<\/h3>\n<p data-nodeid=\"44226\">\u7279\u5b9a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e\u3059\u308b\u305f\u3081\u306b\u3001\u8cea\u554f\u5c5e\u6027\u3092\u89d2\u304b\u3063\u3053\u5185\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44227\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Bank\r\nself.customer[12345]  -- accountNo 12345 \u306e\u7279\u5b9a\u306e Person \u3092\u8fd4\u3059\r\nself.customer         -- \u3059\u3079\u3066\u306e\u9867\u5ba2\u306e Set \u3092\u8fd4\u3059\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44228\">\u518d\u578b\u5909\u63db\uff08\u30ad\u30e3\u30b9\u30c8\uff09<\/h3>\n<p data-nodeid=\"44229\">\u4f7f\u7528\u3059\u308b\u00a0<code data-backticks=\"1\" data-nodeid=\"44603\">oclAsType()<\/code>\u00a0\u30b5\u30d6\u30bf\u30a4\u30d7\u307e\u305f\u306f\u96a0\u3055\u308c\u305f\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44230\"><code data-language=\"ocl\">self.oclAsType(Sub).p       -- Subtype \u3067\u5b9a\u7fa9\u3055\u308c\u305f\u30d7\u30ed\u30d1\u30c6\u30a3 'p' \u306b\u30a2\u30af\u30bb\u30b9\r\nself.oclAsType(Super).p     -- Superclass \u3067\u5b9a\u7fa9\u3055\u308c\u305f\u30d7\u30ed\u30d1\u30c6\u30a3 'p' \u306b\u30a2\u30af\u30bb\u30b9\r\n<\/code><\/pre>\n<hr data-nodeid=\"44231\"\/>\n<h2 data-nodeid=\"44232\">5. \u5236\u7d04\u306e\u8a18\u8ff0<\/h2>\n<h3 data-nodeid=\"44233\">1. \u4e0d\u5909\u6761\u4ef6\uff08<code data-backticks=\"1\" data-nodeid=\"44607\">inv<\/code>)<\/h3>\n<p data-nodeid=\"44234\">\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u5bfe\u3057\u3066\u5e38\u306b<strong data-nodeid=\"44614\">true \u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u6761\u4ef6\u3002<\/strong>\u00a0\u30af\u30e9\u30b9\u306e\u3059\u3079\u3066\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u5bfe\u3057\u3066\u5e38\u306b\u771f\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u6761\u4ef6\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44235\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Company \r\ninv: self.noEmployees &lt;= 50\r\ninv SME: self.stockPrice() &gt; 0  -- 'SME' \u306f\u5236\u7d04\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u540d<\/code><\/pre>\n<h3 data-nodeid=\"44236\">2. \u524d\u63d0\u6761\u4ef6\u304a\u3088\u3073\u5f8c\u7f6e\u6761\u4ef6\uff08<code data-backticks=\"1\" data-nodeid=\"44616\">pre<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44618\">post<\/code>)<\/h3>\n<p data-nodeid=\"44237\">\u64cd\u4f5c\u306b\u95a2\u9023\u3059\u308b\u5236\u7d04\u3002<\/p>\n<ul data-nodeid=\"44238\">\n<li data-nodeid=\"44239\">\n<p data-nodeid=\"44240\"><strong data-nodeid=\"44629\"><code data-backticks=\"1\" data-nodeid=\"44622\">pre<\/code><\/strong>: \u5b9f\u884c\u306e<em data-nodeid=\"44630\">\u524d<\/em>\u00a0\u306b\u771f\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002<\/p>\n<\/li>\n<li data-nodeid=\"44241\">\n<p data-nodeid=\"44242\"><strong data-nodeid=\"44641\"><code data-backticks=\"1\" data-nodeid=\"44632\">post<\/code><\/strong>: \u5b9f\u884c\u306e<em data-nodeid=\"44642\">\u5f8c<\/em>\u5b9f\u884c\u3002\u4f7f\u7528\u3059\u308b<code data-backticks=\"1\" data-nodeid=\"44639\">\u7d50\u679c<\/code>\u623b\u308a\u5024\u306e\u305f\u3081<\/p>\n<\/li>\n<li data-nodeid=\"44243\">\n<p data-nodeid=\"44244\"><strong data-nodeid=\"44651\"><code data-backticks=\"1\" data-nodeid=\"44644\">@pre<\/code><\/strong>\uff1a\u5f8c\u6761\u4ef6\u3067\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5024\u3092\u53c2\u7167\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528<em data-nodeid=\"44652\">\u64cd\u4f5c\u304c\u958b\u59cb\u3055\u308c\u308b\u524d<\/em>\u64cd\u4f5c\u304c\u958b\u59cb\u3055\u308c\u305f\u5f8c<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-ocl\" data-nodeid=\"44245\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Person::income(): Integer\r\npre adult: self.age &gt;= 18\r\npost resultOK: result &lt; 5000\r\n\r\n\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Company::hireEmployee(p: Person)\r\npost: employee = employee@pre-&gt;including(p)\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44246\">3. \u672c\u4f53\u3001\u521d\u671f\u5024\u3001\u5c0e\u51fa\u5f0f<\/h3>\n<ul data-nodeid=\"44247\">\n<li data-nodeid=\"44248\">\n<p data-nodeid=\"44249\"><strong data-nodeid=\"44658\"><code data-backticks=\"1\" data-nodeid=\"44655\">\u672c\u4f53<\/code><\/strong>\uff1a\u30af\u30a8\u30ea\u64cd\u4f5c\u306e\u7d50\u679c\u3092\u5b9a\u7fa9\u3059\u308b\uff08\u518d\u5e30\u7684\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\uff09<\/p>\n<\/li>\n<li data-nodeid=\"44250\">\n<p data-nodeid=\"44251\"><strong data-nodeid=\"44663\"><code data-backticks=\"1\" data-nodeid=\"44660\">\u521d\u671f\u5024<\/code><\/strong>\uff1a\u5c5e\u6027\u306e\u521d\u671f\u5024\u3092\u5b9a\u7fa9\u3059\u308b<\/p>\n<\/li>\n<li data-nodeid=\"44252\">\n<p data-nodeid=\"44253\"><strong data-nodeid=\"44668\"><code data-backticks=\"1\" data-nodeid=\"44665\">\u5c0e\u51fa<\/code><\/strong>\uff1a\u5c0e\u51fa\u5c5e\u6027\u3092\u5b9a\u7fa9\u3059\u308b<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-ocl\" data-nodeid=\"44254\"><code data-language=\"ocl\">\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Person::income(): Integer\r\n\u672c\u4f53: self.job.salary-&gt;sum()\r\n\r\n\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Person::isMarried: Boolean\r\n\u521d\u671f\u5024: false\r\n\r\n\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 Company::noEmployees: Integer\r\n\u5c0e\u51fa: self.employee-&gt;size()\r\n<\/code><\/pre>\n<hr data-nodeid=\"44255\"\/>\n<h2 data-nodeid=\"44256\">6. \u9ad8\u5ea6\u306aOCL\u6a5f\u80fd<\/h2>\n<h3 data-nodeid=\"44257\">let\u3068def\u5f0f<\/h3>\n<ul data-nodeid=\"44258\">\n<li data-nodeid=\"44259\">\n<p data-nodeid=\"44260\"><strong data-nodeid=\"44675\"><code data-backticks=\"1\" data-nodeid=\"44672\">let<\/code><\/strong>\uff1a\u5358\u4e00\u306e\u5f0f\u5185\u3067\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3092\u5b9a\u7fa9\u3059\u308b<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44261\"><code data-language=\"ocl\">let totHours: Integer = self.worksOn-&gt;collect(hours)-&gt;sum() in totHours &gt;= 30\r\n<\/code><\/pre>\n<\/li>\n<li data-nodeid=\"44262\">\n<p data-nodeid=\"44263\"><strong data-nodeid=\"44680\"><code data-backticks=\"1\" data-nodeid=\"44677\">def<\/code><\/strong>\uff1a\u5206\u985e\u5b50\u306b\u4ed8\u968f\u3059\u308b\u518d\u5229\u7528\u53ef\u80fd\u306a\u5909\u6570\u307e\u305f\u306f\u64cd\u4f5c\u3092\u5b9a\u7fa9\u3059\u308b<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44264\"><code data-language=\"ocl\">def: hasTitle(t: String): Boolean = self.job-&gt;exists(title = t)\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"44265\">\u672a\u5b9a\u7fa9\u5024\uff083\u5024\u8ad6\u7406\uff09<\/h3>\n<p data-nodeid=\"44266\">\u90e8\u5206\u5f0f\u304c\u672a\u5b9a\u7fa9\u306e\u5834\u5408\uff08\u4f8b\uff1anull\u306e\u95a2\u9023\u3092\u305f\u3069\u308b\u5834\u5408\uff09\u3001\u5168\u4f53\u306e\u5f0f\u3082\u672a\u5b9a\u7fa9\u306b\u306a\u308b\u3002\u305f\u3060\u3057\u3001\u8ad6\u7406\u6f14\u7b97\u5b50\u306b\u306f\u77ed\u7d61\u8a55\u4fa1\u306e\u4f8b\u5916\u304c\u3042\u308b\uff1a<\/p>\n<ul data-nodeid=\"44267\">\n<li data-nodeid=\"44268\">\n<p data-nodeid=\"44269\"><code data-backticks=\"1\" data-nodeid=\"44683\">true or &lt;\u672a\u5b9a\u7fa9&gt;<\/code>\u00a0=\u00a0<strong data-nodeid=\"44688\">true<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"44270\">\n<p data-nodeid=\"44271\"><code data-backticks=\"1\" data-nodeid=\"44689\">false and &lt;\u672a\u5b9a\u7fa9&gt;<\/code>\u00a0=\u00a0<strong data-nodeid=\"44694\">false<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"44272\">\n<p data-nodeid=\"44273\"><code data-backticks=\"1\" data-nodeid=\"44695\">false \u306f &lt;undefined&gt; \u3092\u542b\u610f\u3059\u308b<\/code>\u00a0=\u00a0<strong data-nodeid=\"44700\">true<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"44274\">\n<p data-nodeid=\"44275\"><code data-backticks=\"1\" data-nodeid=\"44701\">&lt;undefined&gt; \u306f true \u3092\u542b\u610f\u3059\u308b<\/code>\u00a0=\u00a0<strong data-nodeid=\"44706\">true<\/strong><\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"44276\">\u30af\u30e9\u30b9\u306e\u7279\u5fb4\u3068\u4e8b\u524d\u306b\u5b9a\u7fa9\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3<\/h3>\n<ul data-nodeid=\"44277\">\n<li data-nodeid=\"44278\">\n<p data-nodeid=\"44279\"><strong data-nodeid=\"44714\"><code data-backticks=\"1\" data-nodeid=\"44711\">allInstances()<\/code><\/strong>: \u30af\u30e9\u30b9\u306e\u3059\u3079\u3066\u306e\u65e2\u5b58\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304b\u3089\u306a\u308b\u96c6\u5408\u3092\u8fd4\u3059\u3002<\/p>\n<pre class=\"lang-ocl\" data-nodeid=\"44280\"><code data-language=\"ocl\">Person.allInstances()-&gt;size() &lt;= 100\r\n<\/code><\/pre>\n<\/li>\n<li data-nodeid=\"44281\">\n<p data-nodeid=\"44282\"><strong data-nodeid=\"44727\">\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3\uff1a<\/strong>\u00a0<code data-backticks=\"1\" data-nodeid=\"44719\">oclIsTypeOf(Type)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44721\">oclIsKindOf(Type)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44723\">oclInState(State)<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"44725\">oclIsNew<\/code>\u00a0\uff08\u4e8b\u5f8c\u6761\u4ef6\u3067\u4f7f\u7528\u3055\u308c\u308b\uff09\u3002<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"44283\"\/>\n<h2 data-nodeid=\"44284\">7. \u7dcf\u5408\u7684\u306a\u4e8b\u4f8b\u7814\u7a76\uff1a\u4f01\u696d\u30e2\u30c7\u30eb<\/h2>\n<p data-nodeid=\"44285\">\u3053\u308c\u3089\u306e\u6982\u5ff5\u3092\u5b9a\u7740\u3055\u305b\u308b\u305f\u3081\u306b\u3001\u4f01\u696d\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30e2\u30c7\u30eb\uff08\u5f93\u696d\u54e1\u3001\u90e8\u9580\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3001\u5f93\u5c5e\u8005\uff09\u306b\u9069\u7528\u3055\u308c\u305f\u6574\u5408\u6027\u5236\u7d04\u306e\u96c6\u307e\u308a\u3092\u793a\u3059\u3002<\/p>\n<h3 data-nodeid=\"44286\">\u57fa\u672c\u7684\u306a\u5c5e\u6027\u5236\u7d04<\/h3>\n<pre class=\"lang-ocl\" data-nodeid=\"44287\"><code data-language=\"ocl\">-- \u5e74\u9f62\u306f18\u4ee5\u4e0a\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee inv: self.age() &gt;= 18\r\n\r\n-- \u96c7\u7528\u65e5\u306f\u8a95\u751f\u65e5\u3088\u308a\u5f8c\u306b\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee inv: self.hireDate &gt; self.birthDate\r\n\r\n-- \u7ba1\u7406\u8005\u306e\u958b\u59cb\u65e5\u306f\u96c7\u7528\u65e5\u3088\u308a\u5f8c\u306b\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee inv: self.manages-&gt;notEmpty() \u306a\u3089\u3070 self.manages.startDate &gt; self.hireDate\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44288\">\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u304a\u3088\u3073\u95a2\u4fc2\u6027\u5236\u7d04<\/h3>\n<pre class=\"lang-ocl\" data-nodeid=\"44289\"><code data-language=\"ocl\">-- \u30b5\u30fc\u30d0\u30fc\u306f\u5f93\u696d\u54e1\u3088\u308a\u5e74\u4e0a\u3067\u3001\u7d66\u4e0e\u3082\u9ad8\u3044\u5fc5\u8981\u304c\u3042\u308b\r\ncontext Employee \r\ninv: self.supervisor-&gt;notEmpty() \u306a\u3089\u3070 self.age() &gt; self.supervisor.age()\r\ninv: self.supervisor-&gt;notEmpty() \u306a\u3089\u3070 self.salary &lt; self.supervisor.salary\r\n\r\n-- \u30b5\u30fc\u30d0\u30fc\u306f\u90e8\u4e0b\u3088\u308a\u524d\u306b\u96c7\u7528\u3055\u308c\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ninv: self.subordinates-&gt;notEmpty() \u306a\u3089\u3070 self.subordinates-&gt;forall(e | e.hireDate &gt; self.hireDate)\r\n\r\n-- \u90e8\u9580\u306e\u7ba1\u7406\u8005\u306f\u305d\u306e\u90e8\u9580\u306e\u5f93\u696d\u54e1\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Department \r\ninv: self.worksFor-&gt;includes(self.manages.employee)\r\n\r\n-- \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5834\u6240\u306f\u90e8\u9580\u306e\u5834\u6240\u306e\u4e00\u3064\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Project \r\ninv: self.controls.locations-&gt;includes(self.location)\r\n\r\n-- \u5f93\u696d\u54e1\u306f\u6240\u5c5e\u90e8\u9580\u304c\u7ba1\u7406\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u307f\u306b\u5f93\u4e8b\u3067\u304d\u308b\r\ncontext Employee \r\ninv: self.worksFor.controls-&gt;includesAll(self.worksOn.project)\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44290\">\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304a\u3088\u3073\u30a4\u30c6\u30ec\u30fc\u30bf\u5236\u7d04<\/h3>\n<pre class=\"lang-ocl\" data-nodeid=\"44291\"><code data-language=\"ocl\">-- SSN\u306f\u3059\u3079\u3066\u306e\u5f93\u696d\u54e1\u306b\u304a\u3044\u3066\u4e00\u610f\u306e\u8b58\u5225\u5b50\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ninv: Employee.allInstances-&gt;forAll(e1, e2 | e1 &lt;&gt; e2 \u306a\u3089\u3070 e1.SSN &lt;&gt; e2.SSN)\r\n\r\n-- \u5f93\u5c5e\u8005\u306e\u540d\u524d\u3068\u95a2\u4fc2\u306f\u3001\u5404\u5f93\u696d\u54e1\u3054\u3068\u306b\u4e00\u610f\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ninv: self.dependents-&gt;forAll(e1, e2 | \r\n      e1 &lt;&gt; e2 \u306a\u3089\u3070 (e1.name &lt;&gt; e2.name \u307e\u305f\u306f e1.relationship &lt;&gt; e2.relationship))\r\n\r\n-- \u6d3e\u751f\u5c5e\u6027\uff1a\u90e8\u9580\u5185\u306e\u5f93\u696d\u54e1\u6570\r\ncontext Department \r\ninv: self.nbrEmployees = self.worksFor-&gt;size()\r\n\r\n-- \u5f93\u696d\u54e1\u306f\u6700\u59274\u3064\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5f93\u4e8b\u3067\u304d\u308b\r\ncontext Employee \r\ninv: self.worksOn-&gt;size() &lt;= 4\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44292\">\u8907\u96d1\u306a\u8ad6\u7406\u3092\u4f7f\u7528\u3057\u3066\u00a0<code data-backticks=\"1\" data-nodeid=\"44734\">let<\/code>\u00a0and\u00a0<code data-backticks=\"1\" data-nodeid=\"44736\">select<\/code><\/h3>\n<pre class=\"lang-ocl\" data-nodeid=\"44293\"><code data-language=\"ocl\">-- \u9031\u3042\u305f\u308a\u306e\u5408\u8a08\u52e4\u52d9\u6642\u9593\u306f30\uff5e50\u6642\u9593\u306e\u9593\u3067\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ninv: let totHours: Integer = self.worksOn-&gt;collect(hours)-&gt;sum() \r\n     in totHours &gt;= 30 and totHours &lt;= 50\r\n\r\n-- \u7279\u5b9a\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306710\u6642\u9593\u672a\u6e80\u52e4\u52d9\u3059\u308b\u5f93\u696d\u54e1\u306f\u6700\u59272\u4eba\u307e\u3067\r\ncontext Project \r\ninv: self.worksOn-&gt;select(hours &lt; 10)-&gt;size() &lt;= 2\r\n\r\n-- \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30675\u6642\u9593\u672a\u6e80\u52e4\u52d9\u3067\u304d\u308b\u306e\u306f\u3001\u90e8\u9580\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306e\u307f\r\ncontext Employee \r\ninv: self.worksOn-&gt;select(hours &lt; 5)-&gt;notEmpty() implies \r\n     self.worksFor.manages.employee = self\r\n\r\n-- \u5f93\u696d\u54e1\u304c\u90e8\u4e0b\u3092\u6301\u305f\u306a\u3044\u5834\u5408\u3001\u3059\u3079\u3066\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306710\u6642\u9593\u4ee5\u4e0a\u52e4\u52d9\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ninv: self.subordinates-&gt;isEmpty() implies self.worksOn-&gt;forAll(hours &gt;= 10)\r\n\r\n-- \u90e8\u9580\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306f\u3001\u305d\u306e\u90e8\u9580\u304c\u7ba1\u7406\u3059\u308b\u3059\u3079\u3066\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30675\u6642\u9593\u4ee5\u4e0a\u52e4\u52d9\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\r\ncontext Department \r\ninv: self.controls-&gt;forall(p: Project | \r\n      self.manages.employee.worksOn-&gt;select(hours &gt;= 5)-&gt;contains(p))\r\n<\/code><\/pre>\n<h3 data-nodeid=\"44294\">\u5faa\u74b0\u306e\u9632\u6b62\uff08\u518d\u5e30\u7684\u8ad6\u7406\uff09<\/h3>\n<pre class=\"lang-ocl\" data-nodeid=\"44295\"><code data-language=\"ocl\">-- \u5f93\u696d\u54e1\u81ea\u8eab\u3092\u76e3\u7763\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\r\ncontext Employee inv: self.subordinates-&gt;excludes(self)\r\n\r\n-- \u76e3\u7763\u69cb\u9020\u306f\u5faa\u74b0\u3057\u3066\u306f\u306a\u3089\u306a\u3044\r\ncontext Employee \r\ndef: allSubordinates = self.subordinates-&gt;union(\r\n          self.subordinates-&gt;collect(e: Employee | e.allSubordinates))\r\ninv: self.allSubordinates-&gt;excludes(self)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u63d0\u4f9b\u3055\u308c\u305f\u8b1b\u7fa9\u8cc7\u6599\u306b\u57fa\u3065\u304d\u3001\u3053\u306e\u30ac\u30a4\u30c9\u306fUML\u30e2\u30c7\u30ea\u30f3\u30b0\u306e\u6587\u8108\u306b\u304a\u3051\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u57fa\u672c\u7684\u306a\u6982\u5ff5\u3001\u69cb\u6587\u3001\u304a\u3088\u3073\u5b9f\u7528\u7684\u306a\u5fdc\u7528\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002 1. OCL\u306e\u7d39\u4ecb \u306a\u305cOCL\u304c\u5fc5\u8981\u306a\u306e\u304b\uff1f UML\u56f3\uff08\u30af [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[36],"tags":[],"class_list":["post-9687","post","type-post","status-publish","format-standard","hentry","category-uml","loop-entry","clr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0\" \/>\n<meta property=\"og:description\" content=\"\u63d0\u4f9b\u3055\u308c\u305f\u8b1b\u7fa9\u8cc7\u6599\u306b\u57fa\u3065\u304d\u3001\u3053\u306e\u30ac\u30a4\u30c9\u306fUML\u30e2\u30c7\u30ea\u30f3\u30b0\u306e\u6587\u8108\u306b\u304a\u3051\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u57fa\u672c\u7684\u306a\u6982\u5ff5\u3001\u69cb\u6587\u3001\u304a\u3088\u3073\u5b9f\u7528\u7684\u306a\u5fdc\u7528\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002 1. OCL\u306e\u7d39\u4ecb \u306a\u305cOCL\u304c\u5fc5\u8981\u306a\u306e\u304b\uff1f UML\u56f3\uff08\u30af [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm \u30d6\u30ed\u30b0\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-24T07:26:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-26T09:39:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/\",\"url\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/\",\"name\":\"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0\",\"isPartOf\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png\",\"datePublished\":\"2026-07-24T07:26:46+00:00\",\"dateModified\":\"2026-07-26T09:39:18+00:00\",\"author\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage\",\"url\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png\",\"contentUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.visual-paradigm.com\/ja\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/#website\",\"url\":\"https:\/\/blog.visual-paradigm.com\/ja\/\",\"name\":\"Visual Paradigm \u30d6\u30ed\u30b0\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.visual-paradigm.com\/ja\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"caption\":\"Admin\"},\"url\":\"https:\/\/blog.visual-paradigm.com\/ja\/author\/vpadminuser\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/","og_locale":"ja_JP","og_type":"article","og_title":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0","og_description":"\u63d0\u4f9b\u3055\u308c\u305f\u8b1b\u7fa9\u8cc7\u6599\u306b\u57fa\u3065\u304d\u3001\u3053\u306e\u30ac\u30a4\u30c9\u306fUML\u30e2\u30c7\u30ea\u30f3\u30b0\u306e\u6587\u8108\u306b\u304a\u3051\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u57fa\u672c\u7684\u306a\u6982\u5ff5\u3001\u69cb\u6587\u3001\u304a\u3088\u3073\u5b9f\u7528\u7684\u306a\u5fdc\u7528\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002 1. OCL\u306e\u7d39\u4ecb \u306a\u305cOCL\u304c\u5fc5\u8981\u306a\u306e\u304b\uff1f UML\u56f3\uff08\u30af [&hellip;]","og_url":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/","og_site_name":"Visual Paradigm \u30d6\u30ed\u30b0","article_published_time":"2026-07-24T07:26:46+00:00","article_modified_time":"2026-07-26T09:39:18+00:00","og_image":[{"url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png","type":"","width":"","height":""}],"author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"Admin","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"4\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/","url":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/","name":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9 - Visual Paradigm \u30d6\u30ed\u30b0","isPartOf":{"@id":"https:\/\/blog.visual-paradigm.com\/ja\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage"},"image":{"@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png","datePublished":"2026-07-24T07:26:46+00:00","dateModified":"2026-07-26T09:39:18+00:00","author":{"@id":"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/a649c442f11a53040710ddec750926c6"},"breadcrumb":{"@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#primaryimage","url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png","contentUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a63134535ef7.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.visual-paradigm.com\/ja\/a-comprehensive-guide-to-the-object-constraint-language-ocl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.visual-paradigm.com\/ja\/"},{"@type":"ListItem","position":2,"name":"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5236\u7d04\u8a00\u8a9e\uff08OCL\uff09\u306e\u5305\u62ec\u7684\u30ac\u30a4\u30c9"}]},{"@type":"WebSite","@id":"https:\/\/blog.visual-paradigm.com\/ja\/#website","url":"https:\/\/blog.visual-paradigm.com\/ja\/","name":"Visual Paradigm \u30d6\u30ed\u30b0","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.visual-paradigm.com\/ja\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/a649c442f11a53040710ddec750926c6","name":"Admin","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/blog.visual-paradigm.com\/ja\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","caption":"Admin"},"url":"https:\/\/blog.visual-paradigm.com\/ja\/author\/vpadminuser\/"}]}},"modified_by":"Admin","_links":{"self":[{"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/posts\/9687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/comments?post=9687"}],"version-history":[{"count":0,"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/posts\/9687\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/media?parent=9687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/categories?post=9687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/ja\/wp-json\/wp\/v2\/tags?post=9687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}