مختلف. نمونه ای از استفاده از دلفی و رشنال رز با هم

هنگامی که رز زیبای سلطنتی الف در حال بالا رفتن شکوفا می شود، هر کسی نفس گیر می شود. گل‌آذین‌های باز شده مانند یک وسواس افسانه‌ای در یک ابر نورانی زیبا ظاهر می‌شوند که از دور و نزدیک به سفیدی برفی و با طراوت لیمویی دلپذیر است. این شکوه پایدار در تمام فصل ها لذت می برد و افکار عاشقانه را برمی انگیزد. دست به سوی گل دراز می شود، اما نه برای چیدن آن، بلکه فقط برای لمس آفرینش غیر زمینی و استشمام عطر سحر انگیز.

یک جن نمی تواند بدون عشق زندگی کند، اما غیرممکن است که او را دوست نداشته باشید

رز کوهنوردی "Elf" پرورش یافته است شرکت آلمانی Tantau (سری گلهای نوستالژیک) در سال 2000 و یک گل رز باغی مدرن کوهنورد با گلهای بزرگ (LCI) است.

پرورش دهندگان گیاهی با ترکیبی نفیس از شبح ظریف و رمانتیسیسم نوستالژیک ملایم ایجاد کرده اند. در اینجا خود نام با آن همخوانی دارد ظاهر، گویی از سرزمین افسانه ای بیرون آمده است.

شرح

بوته قوی است (تا 280 سانتی متر ارتفاع، کمتر تا 250 سانتی متر) و قائم است. شاخه های کوهنوردی گاهی به سه متر می رسد.

گل - قطر بزرگ تا 14 سانتی متر، متراکم دو برابر است. هر لیوان گل به طور شگفت انگیزی تا 57 گلبرگ را در خود جای می دهد. رنگ منحصر به فرد آنها از عاج نجیب در امتداد لبه ها، به آرامی به رنگ سبز کم رنگ با رنگ لیمویی به پایه تبدیل می شود. شاید به همین دلیل است که رایحه اصلی - لطیف، کمی میوه ای، جادوگر و فریبنده است.

در شرایط مساعد، در طول گلدهی انبوه، یک دمگل به طور همزمان حداکثر پنج گل را در یک گل آذین چتری پرتاب می کند.

برگها بزرگ و سبز روشن هستند. در انعکاس شاخ و برگ های براق، خورشید دوست دارد که پیش چشم شود.

تکنولوژی کشاورزی

  1. مقررات. کوهنوردی رز "وروجک" به مکان های آفتابی گرم نیاز دارد. خاک باید حاصلخیز و سبک، کمی اسیدی یا خنثی باشد. نکته اصلی این است که رطوبت را به خوبی حفظ می کند. مانند همه اقوام، او به تغذیه منظم (مثلاً کود اسب) و پناهگاه برای زمستان نیاز دارد.
  2. فرود آمدن. در بهار، قبل از کاشت، نهال را به مدت یک روز در آب خیس می کنند. در این مدت، سیستم ریشه زمانی برای جذب رطوبت خواهد داشت. سپس شاخه های ضعیف گیاه قطع شده و آکوتان ژنریک خرید قوی باقی می ماند. ریشه های آسیب دیده و بلند قطع می شوند.
  3. پایداری. واریته "Elf" کاملاً در برابر سرما مقاوم است و حتی شاخ و برگ را حفظ می کند. اما در دماهای بسیار پایین انجماد امکان پذیر است. از سفیدک پودری و لکه سیاه رنج نمی برد. اما گلها باران و سایه را دوست ندارند.
  4. پشتیبانی. اگر گل رز در امتداد یک تکیه گاه نازک و نامحسوس هدایت شود، شاخه های جانبی قدرتمند تصویر یک درخت سر به فلک کشیده با بسیاری از جوانه های باشکوه را ایجاد می کنند.

"Elf" در یک باغ رمانتیک به شکل قوس عالی به نظر می رسد، دیوارها و آلاچیق ها را تزئین می کند. آبشارهای خامه ای لیمویی به زیبایی زیر وزن گل های بزرگ تعظیم می کنند که گلبرگ های آن توسط یک "استاد" ماهر حک شده است. این گل رز مخصوص عاشقان عاشق و کسانی است که حس سبک فوق العاده ای دارند. و اگر در پای آن گل گز، گربه گربه ای، اسطوخودوس بکارید، برگ های روباز و گل آذین های سرسبز و مطبوع آن ها به زیبایی قاب می شوند و زیبایی یک رز کوهنوردی را تکمیل می کنند.

گیاهی با گل های سرسبز، مانند زنان جن افسانه ای، سرشار از احساسات زنده است. رز "وروجک" می تواند تغییر پذیر و دمدمی مزاج باشد، در عین حال سرشار از جذابیت است، توانایی جادو کردن و تغییر جهان با زیبایی خود. بوته افسانه ای یادداشت های نوستالژیک را به زندگی روزمره ما می آورد و بسیار زیباست.

باغبانان در سراسر جهان گل رز را می پرستند و آنها را در آب و هواهای مختلف پرورش می دهند. نوعی انقلاب در دنیای گل رز با ظهور یک گروه باغبانی جدید - رزهای بوته ای ایجاد شد. اگرچه تقریباً همه آنها هنوز در شرایط ما برای زمستان نیاز به محافظت دارند، امروزه این گل رز درختچه ای است که همه کاره ترین و بی تکلف است.

بوته های اسکراب

اسکارها بسیار متنوع هستند. اینها گونه های وحشی و هیبریدهای آنها و رزهای مدرن با منشأ پیچیده هستند که گلهای آنها شبیه به گلهای رزهای چای هیبریدی و رزهای گروه فلوریبوندا است.

رزا روگوزا و هیبریدهای آن

یکی از ارزشمندترین رزهای پارکی، رز چروکیده یا رز روگوسا است که به آن رز ژاپنی نیز می گویند. گونه اصلی در کشور ما در مناطق خاور دور و همچنین در شمال چین، کره و ژاپن پراکنده است. به دو شکل وجود دارد: یکی با گل های سفید، دیگری با صورتی تیره یا قرمز.

گل هایی به قطر 5 تا 10 سانتی متر، بسیار معطر، در گل آذین های 3-6 گل یا منفرد. گل های گونه های هیبریدی روگوسا از سفید تا قرمز تیره هستند، همچنین گل های زرد نیز وجود دارد، آنها همچنین از نظر اندازه و دوتایی متفاوت هستند. برگها بزرگ، سخت، چروکیده هستند. شاخه ها به طور متراکم با خار و پرز پوشیده شده اند. بوته ها پهن، متراکم هستند، به ارتفاع 1-2 متر می رسند، شاخه های قوی با شاخه های راست می دهند. سیستم ریشه قدرتمند و سطحی است. گلدهی فراوان است، از اواخر اردیبهشت ماه طولانی است، به شکل ضعیفتر می توان آن را تکرار کرد. با توجه به این ویژگی، بوته ها به طور همزمان دارای میوه و گل هستند. فرم ها و انواع با گل های دوتایی به ویژه قادر به این کار هستند که از نظر تزئینی ارزشمند است. میوه ها روشن، نارنجی قرمز، بزرگ (2-2.5 سانتی متر)، بسیار تزئینی هستند. Rosa rugosa گونه ای بسیار مقاوم در برابر زمستان (نیازی به سرپناه) و مقاوم به بیماری است.

بیشتر هیبریدهای روگوزا نیز برای زمستان نیازی به پناهگاه ندارند. اما برخی از انواع) از نظر سختی زمستانی تفاوتی ندارند. شاخه های گلدار آنها روی شاخه های بالای زمستانه سال قبل ظاهر می شوند. بدون محافظت برای زمستان یا پوشش عمیق برف، فقط جوانه های پایینی حفظ می شوند که قادر به گلدهی نیستند. خم کردن شاخه های قدرتمند و ضخیم به زمین آسان نیست. بنابراین در انتخاب واریته باید به سختی کلی، تعدد و فراوانی گلدهی و مقاومت به بیماری توجه کرد.

Rosa rugosa و هیبریدهای آن برای کاشت های گروهی کوچک و تکی، پرچین استفاده می شود. این رزها پرچین های بسیار خوبی ایجاد می کنند، به خصوص آنهایی که طرح را به قسمت های جداگانه تقسیم می کنند. میوه ها برای تهیه مربا و کمپوت مناسب هستند.

هیبریدهای گل رز مویسی

منطقه پراکنش جد این گروه چین غربی است. هیبریدها از تلاقی گونه های اصلی با گل های رز از گروه های مختلف به دست می آیند. گل ها قرمز، صورتی، متوسط ​​(5-6 سانتی متر)، غیر دوتایی یا نیمه دوتایی، در گل آذین هستند. برگها از 7-13 برگچه بیضی شکل تشکیل شده است. بوته ها بلند هستند - تا 2-2.5 متر، پراکنده، با شاخه های قرمز مایل به قهوه ای. گلدهی از ژوئن فراوان است، گلدهی مکرر ضعیف تر است. میوه ها بطری شکل، بزرگ (طول 5 سانتی متر)، نارنجی مایل به قرمز تیره هستند. هیبریدهای گل رز Moyesi برای باغبانی منظره تزئینی هستند. آنها نیاز به پوشش سبک دارند، بدون اینکه شاخه ها به زمین خم شوند.

کوردز هیبریدهای رز

این گل رز به نام نویسنده آنها، مبتکر معروف آلمانی V. Kordes نامگذاری شده است. بیشتر این رزها از واریته مکس گراف (هیبرید خود به خودی از رز چروکیده و رز ویهورا) به دست می آیند. در نتیجه تلاقی آن با واریته هایی از گروه های دیگر، یک گروه واریته از هیبریدهای رز Cordes تشکیل شد. لازم به ذکر است که گروه های باغی جدید بدون دلایل خاصی ایجاد نمی شوند و گل رز کوردس به دلیل سختی همراه با جذابیت بسیار مورد احترام قرار گرفته است.

گل های نسبتاً بزرگ (قطر 7-8 سانتی متر) گل های رز این گروه با انواع رنگ ها و اشکال متمایز می شوند، از نیمه دوتایی تا متراکم دوتایی، گاهی اوقات معطر، جمع آوری شده در گل آذین های کوچک. همه گونه ها دارای برگ های سبز تیره زیبا و براق هستند. بوته ها قوی هستند (1.5-2 متر)، اغلب با شاخه های شلاق مانند. گلدهی از ژوئن تا اواخر پاییز فراوان است. میوه ها تخم مرغی هستند. همه گونه ها کاملاً مقاوم در برابر زمستان و مقاوم به بیماری هستند. با این وجود، در شرایط روسیه مرکزی، آنها برای زمستان نیاز به سرپناه دارند. آنها را می توان حتی در سایه جزئی رشد داد.
از این گروه گل رز در کاشت های گروهی و تکی، برای باغبانی عمودی استفاده می شود. آنها می توانند آلاچیق ها، تراس ها، آلاچیق ها، طاق ها، مشبک های ویژه و سایر تکیه گاه ها را به منظور تقسیم فضای باغ، ایجاد مناطق تفریحی و تزئین ساختمان های بیرونی تزئین کنند.

این گل های رز قادر به پیچیدن دور تکیه گاه نیستند، بنابراین باید به آن بسته شوند و از اوایل بهار پس از هرس تشکیل شوند تا بلافاصله در جهت درست رشد کنند. در طول فصل رشد، شاخه های اصلی در امتداد تکیه گاه هدایت می شوند و به دقت به آن گره می خورند.

درختچه ها

درختچه ها (به آنها گل رز پارک مدرن نیز گفته می شود) همه گونه هایی را شامل می شود که نمی توان آنها را با اطمینان در سایر گروه های باغ گنجاند.

  • ظاهر موثر گلدهی فراوان، طولانی (از ژوئن تا پاییز)، تکراری است. تقریباً همه گونه ها دوباره شکوفا می شوند، اما انواع تک گل نیز وجود دارد.
  • عطر. رزهای معطر در میان اسکراب ها بیشتر از رزهای چای هیبریدی هستند.
  • جلد. بسیاری از گونه ها به دلیل قدرت و قدرت رشد خود (به 2 متر) متمایز می شوند. بوته های برخی از گونه ها به قدری برازنده هستند که شاخه های انعطاف پذیر آنها به تکیه گاه کمی نیاز دارد که به زودی با گل پوشانده می شود.
  • مقاومت در برابر بیماری و مقاومت بالا در زمستان.

آنها فقط برای زمستان به محافظت نور نیاز دارند.

  • بی تکلفی هر باغبانی می تواند اسکراب بکارد.
  • استفاده گسترده در محوطه سازی
  • بوته ها را می توان هم به صورت تک کاشت و هم در گروه های کوچک (هر کدام 3-5 بوته) پرورش داد.

کاشت در گروه های کوچک جلوه یک گلوله گل رز بزرگ را می دهد، تمام بی نظمی های یک بوته توسط همسایه ها پنهان می شود. فاصله بین بوته ها بسته به عرض بوته ها می تواند از 50 سانتی متر تا بیش از 2 متر باشد. دادن غیر ممکنه توصیه کلیدر کاشت بوته ها، زیرا آنها از نظر اندازه بوته بسیار متنوع هستند. به طور متوسط ​​در هر متر مربع از 2 تا 3 بوته کاشته می شود. در گل رزهای بوته ای بزرگ، گاهی اوقات قسمت برهنه بوته قابل مشاهده است و سپس می توان آن را با گل رزهای کم اندازه که در جلوی آنها قرار دارد پنهان کرد.

یک بوته منفرد زیبا روی چمن بسیار دیدنی به نظر می رسد. آنها برای نقش "تک نواز" گیاهی را با شکل بوته ای زیبا و گلدهی فراوان با عطر دلپذیر انتخاب می کنند. می توانید آن را در هر جایی بکارید: در ورودی خانه، در چمنزار، در مرکز تخت گل. برای کاشت تک، بسیاری از گل های رز بوته ای، چه قدیمی و چه مدرن، خوب هستند. نکته اصلی این است که گیاه با چشم انداز اطراف هماهنگ است.

اسکراب های نوستالژیک

گل رزهای به اصطلاح انگلیسی که توسط دیوید آستین بریتانیایی ایجاد شده اند نیز به گروه اسکراب تعلق دارند. سال‌هاست که این پرورش‌دهنده روی برنامه‌ای کار می‌کند تا رزهایی شبیه گونه‌های باستانی، اما با رنگ‌های مدرن گل و قابلیت شکوفه‌دهی مجدد بسازد. گل رز انگلیسی از تلاقی رزهای فرانسوی، داماسک، بوربن و سایر رزها با انواع مدرن رز چای هیبریدی و گل رز فلوریبوندا به دست می آید. Roses D. Austin در ربع آخر قرن بیستم ظاهر شد. گلهای آنها دوتایی متراکم و دارای رنگهای مختلف است: زردآلوی کم رنگ، زرد تیره، قرمز تیره، گل صد تومانی شکل، بسیار معطر و نوستالژیک کهنه به نظر می رسد. بوته ها جمع و جور هستند، شکل خوبی دارند، دوباره شکوفا می شوند. بسیاری از گونه ها به بیماری مقاوم هستند. شایستگی D. Austin این است که او دوباره عشق به اشکال قدیمی گل را در جهان القا کرد ( برای مدت طولانیگل رز جام از نوع چای هیبریدی ایده آل در نظر گرفته شد)، و همچنین ساختار حجمی بوته.

محبوب ترین گونه های این گروه آبراهام داربی، گراهام توماس هستند. تا حد زیادی به لطف گل رز انگلیسی، باغبان در مورد گروه اسکراب یاد گرفتند. آب و هوای منطقه میانی برای آنها کمی خشن است. بنابراین، شاخه های آنها برای زمستان باید با دقت پوشانده شوند.

گل رزهای شرکت فرانسوی Meilland سری Romantica نیز با مقاومت، گلدهی مکرر فراوان، انواع سایه ها، گلبرگ های راه راه و جذابیت گل های رز قدیمی متمایز می شوند. درست است، فقط چند گونه از این گروه متعلق به گروه اسکراب است، به عنوان مثال، Collette، Les Quatre Saisons، Yellow Romantika، Lovely Meilland. همه انواع نه تنها در زیبایی و ظاهر قدیمی، بلکه در پایداری نیز متفاوت هستند. آنها رویای هر باغ رمانتیک هستند. شرکت آلمانی Rosen Tantau نیز سالهاست که به پرورش گل رز نوستالژیک مدرن می پردازد. همه گونه ها از نظر مقاومت در برابر بیماری و مقاومت در برابر سرما در آب و هوای سخت آزمایش می شوند. انواع جدید رزهای اسکراب نوستالژیک: Belvedere، First Lady، Gartentraume، Grafin von Hardenberg، Mariatherese، Pasella.

گل رزهای سری رزهای اکسپلورر کانادایی (چارلز آلبانل، دیوید تامپسون، هنری هادسون، ینس مونک، مارتین فروبیچر)، که به افتخار کاشفان برجسته کانادایی نامگذاری شده‌اند، در درجه اول با مقاومت بالا در زمستان متمایز می‌شوند. رز کوردزیا و رز روگوزا در منشا بسیاری از انواع این سری شرکت داشتند.

ویژگی های مراقبت

پناهگاه برای زمستان

اگرچه مقاومت زمستانی در گل رزهای بوته ای مدرن بیشتر از رزهای هیبریدی چای و فلوریبوندا است، اما آنها برای زمستان باید پوشیده شوند و خود پناهگاه به دلیل حجم بوته ها می تواند دشوارتر باشد.
رزهای بوته ای که دوباره شکوفا می شوند می توانند در طول فصل رشد به ارتفاع 1.5 متر یا بیشتر برسند. در پایان ماه اکتبر، هرس پاییزی انجام می شود - 1/3 طول شاخه ها.

شاخساره های بلند درختچه باید سعی شود تا روی زمین خم شوند. بوته ها را می توان از یک طرف کنده و روی زمین قرار داد. شاخه های خم شده روی لایه ای از شاخه های صنوبر قرار می گیرند، در غیر این صورت گل رز ممکن است در زمین ذوب شده زیر پوشش پوسیده شود. از بالا نیز با شاخه های صنوبر یا هر ماده عایق پوشیده شده اند. برای تثبیت مواد عایق در بالا، می توانید از زمین استفاده کنید.

پوشش قوی برف می تواند محافظ قابل اعتمادی برای بوته هایی باشد که مراحل سخت شدن را به طور معمول پشت سر گذاشته اند. در زیر یک لایه برف 50-70 سانتی متری، دما در دمای 30-25 درجه سانتی گراد به زیر 4-5 درجه زیر صفر نمی رسد. اما از آنجایی که زمان بارش برف و ضخامت پوشش برف ثابت نیست. روش های حفاظتی اضافی باید اعمال شود: شاخه های صنوبر، برگ بلوط، پارچه غیر بافته.

هرس کردن

بوته ها رشد حجمی قوی دارند و نیاز به هرس کمی دارند. این رزها از هرس قوی و حتی متوسط ​​می ترسند. جوانه های خواب بیشتر از مثلاً گل رزهای هیبریدی چای بیدار می شوند. با تابستان کوتاه، علاوه بر این، همیشه به اندازه کافی گرم نیست، این ویژگی ضروری می شود. با هرس طولانی، گلدهی فراوان تر است، زیرا شاخه های مرتبه دوم از جوانه های بالایی با شدت بیشتری رشد می کنند.

3-5 شاخه از قوی ترین شاخه های پایه جدید روی بوته ها باقی می مانند و 6-8 یا بیشتر جوانه های توسعه یافته روی آنها باقی می مانند. هدف از هرس سالانه کوتاه کردن ساقه ها به اندازه یک چهارم یا نصف و جانبی به اندازه دو سوم است. اگر ارتفاع ساقه به 120 سانتی متر رسید، آنها را 30-40 سانتی متر کوتاه کنید، اگر طول ساقه جانبی 30 سانتی متر است، آن را 10 سانتی متر کوتاه کنید، لازم است شاخه های به اندازه کافی قوی و با فاصله یکسان باقی بمانند.

نرم افزار Rational چندین سال پیشرو در طراحی، توسعه، تست و ابزارهای نگهداری بوده است. نرم افزار. محصول اصلی در خط Rational ابزار Rational Rose CASE است. Rational Rose از مدل سازی شی گرا بصری (UML) پشتیبانی می کند، از تولید کد و مهندسی معکوس (ساخت مدل از کد برنامه) برای بسیاری از زبان های برنامه نویسی پشتیبانی می کند، به شما امکان می دهد یک مدل شی از یک سیستم نرم افزاری توسعه یافته بسازید، مشخصات کلاس ها، اشیاء را تعریف کنید. ، ویژگی ها و عملیات (برای جزئیات بیشتر، نگاه کنید به. "برنامه نویس" شماره 2، 3، 5/6 برای سال 2001).

از آنجایی که Rational Rose دارای تمام ویژگی های لازم برای طراحی معماری یک سیستم در هر مقیاسی است، ایده استفاده از Rose با چنین سیستم برنامه نویسی قدرتمند و محبوبی مانند دلفی مطرح می شود. Rational Rose استاندارد دلفی نیست، اما Rational Software برنامه ای برای پشتیبانی از پل های شخص ثالث (پیوندها) بین Rose و سایر ابزارهای توسعه دارد. به عنوان بخشی از این برنامه، Ensemble Systems برنامه پل ارتباطی Rose Delphi (RDL) را توسعه داد که Rational Rose و Delphi را به هم پیوند می دهد. توابع اصلی RDL تولید کد و مهندسی معکوس است. لازم به یادآوری است که کد RDL تولید شده شامل اجرای عملکرد نیست! فقط عناصر اعلامی تولید می شوند: تعاریف کلاس ها، رابط ها، رکوردها، انواع، دستورالعمل های دید و غیره.


شکل 1. آیتم منوی RDL

قبل از اینکه به بررسی لینک رز دلفی بپردازیم، مراحل اصلی کار در محیط رشنال رز را به شما یادآوری می کنم. به طور معمول، روش زیر استفاده می شود:

  1. تعیین الزامات سیستم و ساخت مدلی برای تعامل عناصر سیستم (Use Case Diagram و Collaboration Diagram). از Sequence Diagram برای مشخص کردن Use Case استفاده کنید. این نمودارها اشیاء دامنه درگیر در فرآیندهای تجاری را نشان می دهد. این نمودارها روی کد تولید شده تاثیری ندارند.
  2. ساخت مدل سخت افزاری سیستم (Deployment Diagram). این نمودار مدل سیستم را در پیاده سازی سخت افزاری نشان می دهد. نمودار روی کد تولید شده توسط RDL تأثیری ندارد.
  3. توسعه مدل شیسیستم ها (تعریف کلاس ها، تعاملات آنها، ویژگی ها، عملیات). به موازات توسعه یک نمودار کلاس، به عنوان یک قاعده، یک نمودار مؤلفه ایجاد می شود که تعامل فایل ها، ماژول ها، کتابخانه های اضافی مورد استفاده در سیستم را نشان می دهد. نمودار مؤلفه نیز تأثیری در تولید کد ندارد.
  4. تولید کد برنامه
    تولید کد فقط تحت تأثیر نمودارهای کلاس است، بنابراین در این مقاله فقط نمودارهای بخش Logical View را بررسی می کنیم. ویژگی های ساخت دیگر نمودارها حذف شده است. این مراحل طراحی در محیط Rational Rose برای توسعه مدل و تولید کد به زبان‌های مختلف پشتیبانی شده توسط محیط Rose استفاده می‌شود. اما یک ویژگی در دلفی وجود دارد که به طور قابل توجهی توسعه در دلفی را از توسعه در سایر محیط های برنامه نویسی متمایز می کند: برنامه نویسی رابط کاربری. این راز نیست که در دلفی توسعه اکثر برنامه ها با طراحی رابط کاربری آغاز می شود و با برنامه نویسی بیشتر - تغییر قابل توجه آن. بنابراین، استفاده از رویکرد استاندارد Rational Rose چندان راحت نیست. برای حل این مشکل، Ensemble Systems روش طراحی زیر را ارائه می دهد:


شکل 2. روش شناسی طراحی با استفاده از RDL

ایده اصلی این رویکرد استفاده از مهندسی معکوس (مهندسی رفت و برگشت) است: تمام تغییرات ایجاد شده در سطح کد برنامهدر دلفی در مدل شی ساخته شده در Rose منعکس می شود، و برعکس، زمانی که کلاس ها، متدها و غیره تغییر می کنند. در مدل شی رز، کد برنامه بر این اساس تنظیم می شود. به جفت فلش هایی که بلوک سوم و چهارم را به هم متصل می کنند توجه کنید. این فلش ها هستند که فرآیند مهندسی معکوس را نشان می دهند.
پنجره اصلی Rose Delphi Link را در نظر بگیرید (شکل 3). رابط کاربری بسیار ساده است، شامل موارد زیر است:

  • منوی حاوی دستورات برای کار با پروژه، تنظیم گزینه ها و فراخوانی راهنما؛
  • پانل هایی که ساختارهای سلسله مراتبی مدل های رز و دلفی را به شکل درخت نمایش می دهند.
  • دکمه برای به‌روزرسانی درختان شی، دکمه‌هایی برای مهندسی معکوس (به‌روزرسانی همه) و مهندسی پیشرو، یعنی. تولید کد (به روز رسانی همه->).


شکل 3. پنجره اصلی پیوند رز دلفی

پنجره اصلی RDL فرزندی از پنجره اصلی Rational Rose است و همیشه بالای این پنجره مانند پنجره کودک مینیمال شده است که بدون شک بسیار راحت است.
قبل از جداسازی مثال خاص، بیایید نگاهی دقیق تر به موارد منوی Rose Delphi Link بیندازیم.
File -> Open Project - برای باز کردن پروژه دلفی ایجاد شده در RDL استفاده می شود. هنگامی که یک پروژه باز می شود، درختان شی پروژه در حال باز شدن در پنجره RDL نمایش داده می شوند.
File -> New Project - وقتی این آیتم منو را انتخاب می کنید، RDL پیشنهاد می کند یک پروژه خالی دلفی ایجاد کند. فایل پروژه ایجاد شده در این مورد فقط حاوی عناصر اعلامی مورد نیاز برای یک برنامه دلفی مینیمال (برنامه، شروع، پایان) است. اگر برنامه شامل یک رابط کاربری گرافیکی، به عنوان مثال، یک کتابخانه پویا نباشد، باید یک پروژه جدید ایجاد شود. درست است، در این مورد، باید تنظیماتی در کد تولید شده انجام شود - برنامه را با کتابخانه جایگزین کنید. با استفاده از منوی زمینه، می توانید ماژول ها (واحد) و دایرکتوری های اضافی برای ماژول ها ایجاد کنید. ماژول‌هایی که به این روش ایجاد می‌شوند، تنها شامل حداقل پیاده‌سازی (استفاده، رابط، پیاده‌سازی، پایان) هستند. پس از ایجاد ماژول، در طی تولید کد بعدی، یک اعلان ماژول جدید به بخش کاربردهای فایل پروژه اضافه می شود.
موارد منوی View و Help استاندارد هستند و نیازی به توضیح در این مقاله ندارند.

اکنون از متدولوژی طراحی فوق استفاده کرده و یک برنامه و مدل رز مربوطه را توسعه خواهیم داد. به عنوان مثال، برنامه ای را در نظر بگیرید که دو آرایه عددی به اندازه 5 در 5 را پر می کند اعداد تصادفی، و همچنین درک برخی از توابع ریاضیبرای پردازش آنها برنامه باید عملکردهای زیر را انجام دهد:

  • آرایه ها را با اعداد تصادفی از 1 تا 10 پر کنید.
  • مجموع عناصر هر آرایه را محاسبه کنید.
  • میانگین حسابی عناصر را تعیین کنید.
  • آرایه ها را پاک کنید (آنها را با صفر مقداردهی کنید).

بیایید با توسعه یک رابط کاربری در دلفی شروع کنیم. در نتیجه اقدامات ساده با ماوس، چنین برنامه ای دریافت کردم که هنوز هیچ عملی را انجام نمی دهد (شکل 4).


شکل 4. رابط برنامه توسعه یافته

بیایید این پروژه را با نام‌های پیش‌فرض ماژول دلفی ذخیره کنیم، یک پروژه Rational Rose جدید باز کنیم و Delphi Rose Link را شروع کنیم. مورد منو Open Project را انتخاب کنید و پروژه ای را که در دلفی ذخیره شده است باز کنید. درختان شی مدل رز و پروژه دلفی در پنجره RDL نمایش داده می شوند (شکل 5).


شکل 5. پروژه دلفی در RDL باز شد

درخت شیء سمت چپ، اشیاء مدل Rose است، درخت سمت راست، اشیاء اعلام شده در کد منبع دلفی است. به علامت تعجب قرمز رنگ در سمت چپ نمادهای نشان دهنده اشیاء توجه کنید. آنها تفاوت بین کد دلفی و مدل رز را نشان می دهند. اکنون همه نمادها بررسی شده اند، زیرا مدل هنوز در Rose وجود ندارد.
گام بعدی تولید مدل Rose از کد منبع است. برای شروع تولید، باید روی دکمه Update All کلیک کنید. اگر نسل موفقیت آمیز باشد، علامت تعجب روی اشیاء ناپدید می شود، به این معنی که مدل Rose برای هر شی با کد منبع دلفی مطابقت دارد. برای مشاهده تاریخچه تولید پیام ها، آیتم منو View -> Messages را انتخاب کنید. پنجره‌ای که باز می‌شود یک گزارش نسبتاً دقیق از پیام‌های RDL در طول تولید مدل یا کد منبع نمایش داده می‌شود.
پیوند Rose Delphi را جمع کنید و شاخه Logical View را در مرورگر Rose Object انتخاب کنید. ما دو بسته را می بینیم که ظاهر می شوند:<>Unit1 که شامل مدل شی کد از ماژول Unit1.pas و مراجع خارجی است که شامل اشیاء دلفی است که در ماژول های خارج از پروژه فعلی (اشیاء کتابخانه VCL) اعلان شده اند.
حالا بیایید نمودار کلاس مربوط به ماژول Unit1 را در محیط Rose باز کنیم (نمای منطقی -> واحد1 -> نمای کلی). در شکل اصلی خود، نمودار یک مدل شیء کمی گیج کننده را نشان می دهد که با مرتب کردن دقیق اشیاء بر اساس سلسله مراتب آنها به ترتیب آن ها را قرار می دهیم (شکل 6).


شکل 6. مدل شی ماژول واحد 1

وقتی رابط برنامه توسعه‌یافته کاملاً پیچیده است و بیش از دوازده عنصر را شامل می‌شود، معلوم می‌شود که مدل شی تا حدودی بارگذاری شده است. به منظور تخلیه مدل، می توانید برخی از عناصر غیر ضروری را از مدل حذف کنید. شما فقط باید عناصر را از نمودار حذف کنید، زیرا در این مورد آنها فقط به صورت بصری حذف می شوند. هنگامی که از مرورگر حذف می شود، اشیاء برای همیشه حذف می شوند و این مستلزم تغییر در کد RDL تولید شده است.
حالا بیایید به مرحله بعدی برویم: توسعه یک مدل شی که عملکرد برنامه مشخص شده در بالا را پیاده سازی می کند. کلاس‌ها، ویژگی‌ها و متدهای آن‌ها را در یک ماژول جداگانه پیاده‌سازی می‌کنیم، در ماژول اصلی نمونه‌هایی از کلاس‌ها را ایجاد می‌کنیم و در کنترل‌کننده رویداد کلیک دکمه‌ها، فراخوانی‌های متدهای این کلاس‌ها را می‌نویسیم.

بیایید یک ماژول جدید ایجاد کنیم. این را می توان در دلفی، رز، و RDL انجام داد، اما برای خلوص آزمایش، ما همه چیز را فقط در RDL ایجاد خواهیم کرد. در Rose، پنجره RDL را فعال کنید و روی عنصر ریشه در درخت شی مدل Rose کلیک راست کنید - در مورد ما Model1.mdl است. AT منوی زمینه New -> Unit را انتخاب کنید. پنجره Component Editor باز خواهد شد (شکل 7). در تب General، نام ماژول (Unit2) و یک نظر برای ماژول در حال ایجاد نشان داده شده است که در طول تولید کد به عنوان یک نظر در ماژول درج می شود. در تب Detail، نوع (نوع) جزء و مسیر فایل منبع نشان داده شده است. در تب Code Preview می توانید کدی را که توسط RDL برای این ماژول تولید می شود مشاهده کنید. خاموش کردن سوئیچ Allow Code/Model Updates تولید کد و به‌روزرسانی مدل را برای عنصر انتخابی غیرفعال می‌کند.


شکل 7. ویرایشگر مؤلفه

پس از فشار دادن دکمه Ok، می بینیم که یک نماد در پنجره RDL ظاهر شده است که نشان دهنده یک ماژول جدید و در کنار آن است. علامت تعجب، نشان می دهد که مدل رز و کد دلفی هماهنگ نیستند. کد دلفی را با کلیک بر روی دکمه Update All-> به روز کنید. اکنون باید به دلفی سوئیچ کنیم. پنجره ای را می بینیم که هشدار می دهد ماژول تغییر کرده است (شکل 8). برای دانلود ماژول به روز شده، روی Ok کلیک کنید.


شکل 8. پیام دلفی در مورد تغییر فایل پروژه

حال اجازه دهید ماژول Unit2.pas را که به تازگی تولید کرده ایم باز کنیم. می توانید مطمئن شوید که تولید کد موفقیت آمیز بوده است - همه کلمات کلیدی لازم اعلام شده اند، یک نظر درج شده است. مرحله بعدی مدل سازی کلاس ها و روش های آنها در این ماژول است. بیایید به Rose برویم و پنجره RDL را فعال کنیم. در درخت شی، منوی زمینه را روی شی Unit2 نمایش دهید و New -> Class را انتخاب کنید. پنجره Class Editor ظاهر می شود (شکل 9). در تب General، باید نام کلاس (Name)، view (Kind)، قابلیت مشاهده (Visibility) و یک نظر برای کلاس (Documentation) را مشخص کنید. در مورد ما، کلاس TMassiv نامیده می شود، محدوده آن Public است.


شکل 9. ویرایشگر کلاس

برای ایجاد تمام متدها و ویژگی های کلاس، از آیتم منوی New در منوی زمینه کلاس در درخت شی RDL استفاده می کنیم. ویرایشگرهای ویژگی و متد اساساً مشابه ویرایشگر کلاس هستند، بنابراین جزئیات ایجاد را حذف می کنیم. بیایید ویژگی‌ها و روش‌های زیر را ایجاد کنیم (همه روش‌های دارای دستورالعمل‌های دید عمومی هستند، ویژگی M دارای قابلیت مشاهده خصوصی است):
M: آرایه عدد صحیح. فرآیند شروع؛ // روش اولیه سازی آرایه FillArray; // پر کردن آرایه با روش اعداد تصادفی CalcSum; // محاسبه مجموع عناصر آرایه روش CalcSr; // محاسبه مقدار متوسط ​​عناصر آرایه تابع GetElement(X, Y: integer): Integer; // دریافت یک عنصر آرایه (x,y) بیایید همچنین یک متد برای کلاس TForm1 ایجاد کنیم که اجزای TMemo واقع در فرم را با عناصر آرایه ها پر می کند:

GetProcedureArray;

در ایجاد روش ها با پارامترها یک ویژگی خاص وجود دارد. ابتدا متد به روش معمول ایجاد می شود، سپس در درخت شی RDL، در منوی زمینه روی روشی که برای آن پیشنهاد شده است یک پارامتر مشخص شود، مورد New -> Parameter انتخاب شده و نام پارامتر، آن نوع و نظر به آن نشان داده شده است. پس از ایجاد کلاس، به نمودار کلاس برای ماژول Unit2 در Rose توجه کنید - کلاس ما مطابق با مشخصات UML نمایش داده می شود (شکل 10).


شکل 10. نمودار کلاس با کلاس ایجاد شده

بنابراین، کلاس، یا بهتر است بگوییم پوسته آن، تا کنون بدون پیاده سازی ایجاد شده است. اکنون در ماژول اصلی Unit1 دو نمونه از این کلاس ایجاد می کنیم. بیایید آنها را به عنوان M1 و M2 در بخش Public کلاس TForm1 اعلام کنیم. این کار با انتخاب موارد ضروری در منوی زمینه درخت شی و مشخص کردن پارامترها در ویرایشگر ویژگی انجام می شود. نمودار اصلاح شده، که در آن نمونه های اعلام شده کلاس در کلاس TForm1 نشان داده شده است، در شکل نشان داده شده است. یازده


شکل 11. نمونه های کلاس اعلام شده در بخش عمومی کلاس TForm1

بنابراین، مدل ساخته شده است و اکنون باید کد نهایی را تولید کنیم. در پنجره RDL روی Refresh، Update All-> کلیک کنید و به محیط دلفی بروید. حالا باید کدی را بنویسیم که عملکرد را پیاده سازی کرده و برنامه را کامپایل کند. زمانی که متدها را با کد پر می کنید، گاهی اوقات باید متغیرهای محلی یا سراسری را اضافه کنید. این کار را می توان در RDL انجام داد، اما بهتر است این متغیرها را در کد پیاده سازی کنید و سپس مدل Rose را از سورس کد دلفی (Update All) به روز کنید. اگر برخی از عناصر در مدل حذف شده باشند و قبلاً در کد پیاده سازی شده باشند، این کد بین دستورالعمل های کامپایلر ($IFDEF DELETED) و ($ENDIF) محصور می شود. پس از پیاده سازی تمام کدهای منبع در دلفی، بیایید با کلیک روی Refresh and Update All دوباره به RDL برگردیم و دوباره مهندسی معکوس را انجام دهیم. کلاس TForm1 تغییر کرده است - متدها در آن ظاهر شده اند - کنترل کننده رویداد دکمه (شکل 12). در مورد ما، این نسخه نهایی نمودار کلاس و کل مدل به عنوان یک کل است.


شکل 12. نمودار کلاس نهایی برای ماژول Unit1

نهایی منبعبرنامه ها و مدل رز ساخته شده می تواند .

در این مثال، ما از متدولوژی توسعه اپلیکیشن پیشنهاد شده توسط توسعه دهنده Rose Delphi Link پیروی کردیم و در نتیجه یک مدل شی از سیستم دریافت کردیم. تمام کلاس ها و نمودارهایی که فعالیت سیستم را توصیف می کنند در Rational Rose با استفاده از برنامه Rose Delphi Link طراحی شده اند. بنابراین، بیایید مزایای اصلی استفاده از RDL و Rational Rose را با هم برجسته کنیم:

  • سریع و ایجاد راحتنمونه اولیه رابط کاربری؛
  • توانایی به دست آوردن یک مدل دقیق از کلاس های رابط، و بر اساس آن برای برجسته کردن ویژگی های اساسی معماری سیستم.
  • توانایی تطبیق کلاس ها با الزامات عملکردی سیستم؛
  • توانایی ایجاد کلاس های کنترل در مدل های Rational Rose با تولید کد بعدی در دلفی.
  • حمایت کامل چرخه زندگیسیستم نرم افزاری در حال توسعه هنگام استفاده از سایر محصولات Rational.

بنابراین، با تطبیق دوره‌ای مبتنی بر مهندسی معکوس، مدل رز و کد دلفی سازگار هستند، که به توسعه‌دهنده اجازه می‌دهد تا اطمینان حاصل کند که تصمیمات معماری به‌طور قابل‌توجهی تغییر نکرده است، و همچنین مدل‌های مستند به‌روزی دارد که وضعیت واقعی توسعه را منعکس می‌کند. پروژه

ادبیات:

  1. وندرو A.M. طراحی نرم افزار برای سیستم های اطلاعات اقتصادی - م.: امور مالی و آمار، 2000
  2. Trofimov S.A. فناوری های CASE: کار عملیدر رشنال رز - "انتشارات بینوم"، 2001
  3. بوچ جی.، رمبو دی.، جیکوبسون ای. زبان UML. راهنمای کاربر: Per. از انگلیسی. - م.

در حال حاضر دلفییکی از محبوب ترین محصولات نرم افزاری برای ایجاد سیستم های اطلاعاتی است. بر اساس آن، هم برنامه های کوچک و هم سیستم های در مقیاس سازمانی ایجاد می شوند. چرا این محصول از نظر توسعه دهندگان اینقدر جذاب است؟ اول از همه، البته، این یک محیط برنامه نویسی بصری عالی است - قابل درک، یادگیری آسان و اغلب به دانش یک توسعه دهنده حرفه ای نیاز ندارد (که همانطور که می دانید طی سال ها و دهه ها ذره ذره جمع می شوند و فوق العاده هستند. گران). در محیط دلفی، می توانید سیستم های نرم افزاری کاملاً پیچیده ای را تقریباً از ابتدا با نوشتن حداقل کد ایجاد کنید. در عین حال زبان آبجکت پاسکال، که این برنامه روی آن نوشته شده است، برای بسیاری (حداقل در کشور ما) آشناست و در حال حاضر در دوره های راهنمایی در اکثر دانشگاه های فنی داخلی در حال تحصیل است.

با این حال، همه چیز به این سادگی نیست. اگر برای ایجاد کوچک سیستم های نرم افزاریبرای نیازهای خود، می توانید خود را به محیط برنامه نویسی بصری محدود کنید، سپس برای ایجاد هر نرم افزاری که به اندازه کافی برای کیفیت نرم افزار (SW) حیاتی باشد، رویکرد اساسی متفاوتی لازم است، حداقل با استفاده از یک مدل چرخه عمر در هنگام توسعه بر،با تمام الزامات بعدی برای مستندسازی فرآیند.

نکته اساسی برای سیستم های این کلاس وجود یک معماری پایه است که در تمام چرخه عمر توسعه و عملکرد سیستم بدون تغییر است و عناصر اصلی آن در مراحل اولیه طراحی گذاشته شده است. معماری پایه معمولاً با استفاده از مجموعه ای از مدل ها ایجاد می شود که نکات اصلی مربوط به ساختار سیستم و عملکردهای آن را منعکس می کند. ببخشید چهارشنبه دلفیبرای چنین مشکلاتی قابل استفاده نیست.

اما برگردیم به مزایای دلفی. اگر محیط برنامه نویسی بصری را کنار بگذاریم، پس چه چیزی باقی می ماند؟ مدل شی و این مزیت دلفی از نظر طراح سیستم جذاب است. این مدل شی (مهم نیست چقدر برای کسی عجیب به نظر برسد) است که تا حد زیادی موفقیت محیط برنامه نویسی بصری را تعیین می کند. مدل شی دلفی طیف گسترده ای از وظایف را پوشش می دهد، ابزارهایی سطح بالا، اما بسیار انعطاف پذیر، تقریباً بدون محدودیت، برای سازماندهی رابط کاربری، مدیریت منابع سیستم عامل، دستکاری پایگاه های داده، پشتیبانی از استانداردهای سیستم باز، و همچنین پشتیبانی از فناوری های رایج. (شامل CORBAو COMمعماری لایه ای و در نهایت اینترنت-اینترانت-فن آوری.

معماری پایه می تواند از عناصر مدل شی دلفی استفاده کند (چرا همه موارد بالا را دوباره ایجاد کنیم)، آن را با اجزای لازم تکمیل کند که منعکس کننده ویژگی های کاربردی یک سیستم خاص است.

ما از محصول برای طراحی سیستم استفاده می کنیم رز منطقیشرکت ها Rational Software Corp.گرایش. این محصول دارای تمام ویژگی های لازم برای ایجاد معماری اولیه یک سیستم در هر مقیاسی است. اگر تجربه برنامه نویسی کافی در محیط دلفی دارید، استفاده از Rational Rose و Delphi با هم، در چارچوب یک فرآیند تکنولوژیک واحد، به نظر ما مناسب است.

هدف این مقاله بررسی نحوه همکاری Rational Rose و Delphi و مشخص کردن (البته به نظر ما) جایی است که هر محصول در فرآیند توسعه مناسب است. ما امیدواریم که این به توسعه دهندگان اجازه دهد تا در مورد کاربرد چنین فناوری برای نیازهای خود نظری داشته باشند و در مطالعه جزئیات در زمان صرفه جویی کنند.

آنچه ما از رشنال رز و دلفی می خواهیم

روشی که هنگام توسعه دنبال می کنیم بر، یک متدولوژی توسعه نرم افزار است فرآیند یکپارچه منطقی Rational Software Corporation. روش شناسی از نقطه نظر فن آوری شامل مراحل زیر است (البته در هر تکرار): مدل سازی دامنه، تعریف نیازمندی های سیستم، تجزیه و تحلیل و طراحی، پیاده سازی (کدگذاری و اشکال زدایی آفلاین)، آزمایش و پیاده سازی. جدول زیر نشان می دهد که ما انتظار داریم با Rational Rose و Delphi در هر مرحله به چه چیزی برسیم.

استفاده از Rational Rose و Delphi در مراحل مختلف توسعه نرم افزار

صحنه از رز چه انتظاری داریم؟ از دلفی چه انتظاری داریم
مدل سازی دامنه مدل‌سازی حوزه موضوعی انجام می‌شود، منطقه موضوع "همانطور که هست" توصیف می‌شود. -
تعیین الزامات سیستم الزامات عملکردی برای سیستم، الزامات برای رابط سیستم تعیین می شود یک نمونه اولیه رابط کاربری در حال ایجاد است
تحلیل و طراحی اجزای اصلی معماری تعریف می شوند، داده ها مدل می شوند، اجزای سیستم با جزئیات طراحی می شوند عناصر مدل شی دلفی در معماری پایه گنجانده شده است. یک تناظر یک به یک بین عناصر نمودار کلاس Rose و عناصر مؤلفه دلفی فراهم می کند
پیاده سازی نمودارهای کلاس به عنوان ماژول های نرم افزار پیاده سازی می شوند، نمودارهای اجزاء و نمودارهای قرارگیری توسعه می یابند. کد برنامه پیاده سازی شده است، مکاتبات یک به یک پروژه در رز و دلفی ارائه شده است. اسناد کد در دلفی در رز منعکس شده است
آزمایش کردن مدل ها تقریباً بدون تغییر باقی می مانند. موارد تست برای آزمایش عملکرد سیستم در حال توسعه هستند تغییراتی در کد برنامه ایجاد می شود. تغییرات در کد برنامه در کد دلفی منعکس می شود
پیاده سازی نمودارهای قرارگیری مبنای پیاده سازی نرم افزار هستند. بر اساس مدل ها، اسناد به روز در سطح سیستم را می توان به دست آورد -

همانطور که از جدول می بینید، تعامل اصلی بین Rose و Delphi می تواند در مراحل تعریف، تجزیه و تحلیل و طراحی و پیاده سازی سیستم مورد نیاز رخ دهد. مدل های اصلی مورد استفاده در این مراحل عبارتند از: مدل عملکرد سیستم، مدل رابط، مدل داده، مدل مشخصات ماژول برنامه.

برای فعال کردن ارتباط بین دلفی و رز، یک میان افزار به نام تولید کننده کد استفاده می شود. لازم به ذکر است که به بیان دقیق، وظایف این نرم افزار به تولید کد محدود نمی شود.

قبل از اینکه به توضیح یک تولید کننده کد خاص بپردازیم، آنچه را که به نظر ما باید ارائه کند فهرست می کنیم:

  • قادر به تبدیل کلاس های Rational Rose به کد تعریف کلاس در زبان مقصد (در این مورد، دلفی ) . در این مورد، توضیحات مرتبط با یک کلاس خاص باید در محل مناسب در کد برنامه قرار گیرد.
  • پشتیبانی از کلیشه های نمودار کلاس مرتبط با ویژگی های خاص زبان (به عنوان مثال، کلیشه واحد, رابطیا ویژگیبا تعاریف مناسب: بسته خاص - ماژول دلفی , کلاس - رابط دلفی، ویژگی - ویژگی برای مؤلفه دلفی).
  • یک روش توصیف شده، واضح و بدون ابهام برای نگاشت یک نمودار کلاس به کد دلفی داشته باشید. در این مورد، نمایشگر باید قابل تنظیم باشد.
  • قادر به وارد کردن مدل واقعی شی دلفی (ترجیحا برای نسخه های مختلفکتابخانه ها VCL);
  • پشتیبانی از تولید کد برای ایجاد کلاس های دلفی.
  • قادر به نمایش صحیح انواع معمولی از روابط بین کلاس ها (حداقل تعمیم، تجمع و ترکیب) باشد.
  • قادر به نمایش اصلی بودن اتصال در کد برنامه باشد.
  • بر اساس نمودار مؤلفه رز، یک پروژه دلفی حاوی ماژول های نرم افزار مورد نیاز ( مهندسی رو به جلو);
  • بر اساس پروژه تمام شده دلفی، یک نمودار مولفه رز بسازید که شامل تمام ماژول های پروژه دلفی و کلاس های مرتبط به دست آمده از دلفی در نتیجه مهندسی معکوس است. مهندسی معکوس). نمودارها باید فشرده و قابل توضیح باشند.
  • ارائه تطبیق خودکار مدل رز و دلفی پس از ایجاد تغییرات در کد ماژول های دلفی ( مهندسی رفت و برگشت);
  • پس از ایجاد تغییرات در مدل Rose و ایجاد مجدد کد، قطعات نوشته شده در محیط دلفی را از بین نبرید.
  • علاوه بر تولید کد، راهی برای نمایش یک عنصر دلفی مهم مانند فرم ها داشته باشید.
  • کار بر روی پروژه های واقعی (صدها کلاس و ماژول) با عملکرد قابل قبول.

تولید کننده کد دلفی از Ensemble Systems, Inc.

شرکت Ensemble Systems Inc.در حال حاضر یکی از تامین کنندگان پیشرو قطعات اضافی است (اضافه کردن)برای رشنال رز . این مؤلفه ها از تولید کد برای طیف گسترده ای از سیستم های برنامه نویسی محبوب از جمله دلفی پشتیبانی می کنند. بیایید کار مولد کد دلفی را در محیط Rational Rose در نظر بگیریم.

پس از نصب کامپوننت دلفی از Ensemble Systems, Inc. در محیط Rational Rose ظاهر می شود گزینه جدیدمنو در بخش ابزارها (شکل 1).

مولد کد نامیده می شود پیوند رز دلفی (RDL). نحوه استفاده از RDL , زمانی که مثال خاصی را در نظر می گیریم در طرح توضیح خواهیم داد. در حال حاضر، ما بر روی ویژگی های اصلی RDL تمرکز خواهیم کرد، بدون اینکه درک کنیم که استفاده موثر از RDL به سختی امکان پذیر است.

اول از همه، توجه داشته باشید که کد تولید شده توسط RDL هیچ اجرائی ندارد (برای یک مدل شی، این معمولا بدنه روش است). هنگامی که مدل از کد دلفی به روز می شود (مهندسی معکوس یا رفت و برگشت)، مدل کد نوشته شده در محیط دلفی را برای بدنه های متد بارگیری نمی کند. تغییرات در مدل فقط به عناصر اعلامی مربوط می شود: تعاریف کلاس ها، رابط ها، انواع، رکوردها و غیره. با این حال، هنگام بازسازی کد از Rose، بدنه‌های متدها در دلفی نیز بدون تغییر باقی می‌مانند و فقط عناصر اعلامی تغییر می‌کنند. بنابراین، "خراب کردن" کد برنامه در هنگام بازسازی غیرممکن است. برای نمایش عناصر مدل در کد برنامه RDL از آن استفاده می کند ویژگی های تولید کد (CG P) مجموعه ای از جداول ویژه است که با هر عنصر از مدل های Rational Rose مرتبط است و حاوی اطلاعات خاص دلفی است که برای تولید کد استفاده می شود. مجموعه ای از این جداول (شکل 2) از منوی اصلی (مورد ابزار/گزینه ها، نشانک دلفی).

برای اینکه CGP برای دلفی از روی مشخصات موجود باشد، باید مقدار فیلد را تنظیم کنید زبان پیش فرض = دلفینشانک نشانه گذاریآیتم منو ابزارها/گزینه ها. برای عملکرد راحت تر در بخش منو ابزار / گروه ابزارهمچنین یک نشانک وجود دارد ویرایشگر خواص دلفی، که در آن می توانید ویژگی های عنصر مدل انتخاب شده را تنظیم کنید. توجه داشته باشید که استفاده از CGP یک روش معمول برای همه تولیدکنندگان کد Ensemble Systems, Inc. است. و به طور کلی برای Rational Rose. هنگام استفاده از ویرایشگر خواص دلفی، می توانید کد عنصر مدل مربوطه (به عنوان مثال، یک کلاس) را بدون انجام تولید کد مشاهده کنید، که اغلب بسیار راحت است.

حال بیایید ببینیم که چگونه RDL رویه‌های رایج طراحی را برای کدنویسی ترسیم می‌کند.

1. ارث بردن از یک کلاس و پیاده سازی یک رابط

تبدیل به کد:

نوع SampleClass1 = کلاس (BaseClass، SampleInterface) (...) end;

2. پیوندهای انجمنی با نقش ها و کاردینالیتی متفاوت پیوند

تبدیل به کد:

نوع SampleClass3 = کلاس خصوصی ArrayRole1: آرایه SupplierClass2; ArrayRole2: آرایه SupplierClass5. ArrayRole3: آرایه SupplierClass3. ArrayRole4: آیتم ها; پایان؛

توجه داشته باشید که آرایه‌ها (اعم از طول ثابت یا پویا) برای نشان دادن نقش‌هایی با کاردینالیته پیوند غیر از 1 استفاده می‌شوند. ثابت SampleRange در مثال باید در ویژگی Array_Range برای ArrayRole تعریف شود. توجه داشته باشید که Role4 در کد به عنوان یک آرایه تعریف نشده است، بلکه به عنوان یک نوع TItems است که باید یک مجموعه را نشان دهد.

تبدیل به کد:

SampleClass1 = کلاس Public A: SampleClass2; B: SampleClass3; ج: آرایه SampleClass4; D: آرایه SampleClass5; پایان؛

به خاطر داشته باشید که ما تفاوت قابل توجهی در کد برای تجمیع و ترکیب پیدا نکردیم و کد به دست آمده بسیار شبیه کد مربوط به ارتباط معمول با نقش ها است.

4. کلیشه برای عناصر معمولی کد برنامه دلفی

RDL چندین کلیشه برای نمایش عناصر معمول کد دلفی دارد: اشاره گرها، آرایه ها، فایل ها، مراجع کلاس و غیره. درست است، به نظر ما، این عناصر در طراحی سطح بالای یک مدل شی کاربرد کمی دارند.

در پایان شرح مختصری از ویژگی های RDL به موارد زیر اشاره می کنیم. یک عنصر طراحی مهم، مستندات موجود در مشخصات عنصر مدل مربوطه است. RDL انتقال آن به کد برنامه را تضمین می کند. بنابراین، برای عملیات (روش های کلاس دلفی)، مقدار فیلد مستنداتدر مشخصات قبل از تعریف روش در کد درج می شود. برعکس، نظرات در کد دلفی را می توان به فیلدهای مستند در مشخصات عنصر مدل رز تبدیل کرد.

کاری که RDL نمی تواند انجام دهد

ما قبلاً تعریف کرده‌ایم که فکر می‌کنیم یک تولیدکننده کد دلفی باید چه چیزی را ارائه دهد. به طور کلی، RDL تمام ویژگی های ذکر شده را پوشش می دهد، شاید به استثنای یک استثنا - اجازه ایجاد فرم ها را نمی دهد. آیا می توانید محیط دلفی را بدون فرم تصور کنید؟ ما هم نمی توانیم. پارادایم اصلی برنامه نویسی بصری در محیط دلفی، تنظیم مقادیر ویژگی های مربوطه (مقادیر ویژگی های کلاس) و نوشتن کد برای کنترل کننده رویداد است. و در این مورد، متأسفانه، RDL هیچ کمکی به ما نمی کند. اما آیا واقعاً چنین محدودیت جدی است؟ در اینجا ممکن است نظرات متفاوتی وجود داشته باشد.

یکی از راه های ایجاد اپلیکیشن به صورت زیر است: رابط کاربری در محیط دلفی طراحی می شود (و سریع ترین و راحت ترین راه برای این کار کجاست؟) و کد برنامه به مدل های Rational Rose تبدیل می شود. با وجود این واقعیت که فرم ها بسیار حجیم هستند، می توان آنها را "شانه کرد"، اما نکته اصلی این است جزئیات بی ربط را در آنها نمایش ندهید. در Rational Rose، خود مدل شی، مدل داده، مدل جزء طراحی شده است، یعنی عناصر مهم معماریدر ترکیب با مدل رابط کاربری سیستم، آنها یک ساختار سیستمی را تشکیل می دهند که می تواند توسط ابزارهای مدیریت پیکربندی ردیابی شود، در اسناد گنجانده شده، به راحتی برای خطاهای اساسی تجزیه و تحلیل شود و مبنایی برای آزمایش عملکردی است، یعنی در هر مرحله قابل استفاده است. از چرخه زندگی ( جی سی) توسعه نرم افزار. RDL در عین حال هماهنگی کامل مدل ها و کد برنامه را در طول کل چرخه عمر نرم افزار فراهم می کند. ما سعی می کنیم این رویکرد را دنبال کنیم.

نمونه ای از استفاده از دلفی و رشنال رز با هم

متأسفانه، در چارچوب یک مقاله کوتاه، به سختی می توان یک نمونه کامل از یک برنامه واقعی را نشان داد. با این حال، این مورد نیاز نیست. در نقطه ای از مقاله که آنچه را که از رز و دلفی در هر مرحله از توسعه انتظار داریم توضیح دادیم، خاطرنشان کردیم که برای ما در طراحی ایجاد یک معماری اساسی، در این مورد - با گنجاندن عناصر دلفی مهم است. مدل شی اینجاست که ما قابلیت های RDL را نشان خواهیم داد.

به عنوان مثال، ما بخشی از یک سیستم را انتخاب کرده ایم که نشانگرهای وضعیت بیمار را برای پزشک معالج نشان می دهد. الزامات عملکردی سیستم در قالب یک نمودار ارائه شده است (شکل 3).

نمودار سه شی فعال را نشان می دهد: مدیر، دستگاه، پزشک. ما عملکردهای سیستم مرتبط با دستگاه را در نظر نخواهیم گرفت. با توجه به دستگاه، برای ما ضروری است که نشانگر با فرکانس مشخصی بدست آید و سیستم یک رابط برای ذخیره آن در پایگاه داده ارائه دهد. تمام عملکردهای باقی مانده از سیستم به رابط کاربری و اطمینان از ذخیره سازی اطلاعات در پایگاه داده یا انتخاب آن مربوط می شود.

این سیستم بر اساس راه حل های معماری زیر است:

  • رابط کاربری ( رابط کاربری گرافیکی) سیستم بر اساس مدل شی دلفی ساخته شده است.
  • رابط با DBMS بر اساس مدل شی دلفی ساخته شده است.
  • DBMS رابطه ای به عنوان DBMS استفاده می شود.

هنگام طراحی یک سیستم، باید تعریف کنیم: کلاس هایی برای نمایش رابط کاربری ( کلاس های مرزی) کلاس های کنترلی که منطق سیستم را پیاده سازی می کنند ( کلاس های کنترل) کلاس های موجود برای نمایش ساختار ذخیره سازی اطلاعات ( کلاس های موجودیت).

کلاس های موجودیت طراحی شده توسط ما در شکل نشان داده شده است. چهار .

از مدل شی کلاس موجودیت، یک مدل داده فیزیکی برای یک DBMS رابطه ای به دست آوردیم و تولید آن را برای یک DBMS خاص ارائه کردیم. جزئیات نحوه انجام این کار در محیط Rational Rose در اینجا حذف شده است.

از آنجایی که ما در حال برنامه ریزی برای ساخت یک رابط کاربری گرافیکی بر اساس مدل شی دلفی هستیم، منطقی است که فرض کنیم کلاس هایی برای نمایش رابط کاربری (کلاس های مرزی) ) را می توان هنگام نمونه سازی رابط کاربری در محیط دلفی به دست آورد. کلاس ها رابط کاربری (کلاس های مرزی ) در حال طراحی هستند برای فرم ارائه شده در شکل 5 .

در نمودار کلاس، ما ویژگی‌ها و عملیات را برای تمام کلاس‌های مدل شی دلفی حذف کرده‌ایم: از آنجایی که چندین ده مورد از این ویژگی‌ها و عملیات در هر کلاس وجود دارد، نمودار در این مورد بسیار زیاد می‌شود. نمودار به وضوح نشان می‌دهد که دقیقاً کدام کلاس‌های مدل شی دلفی برای نشان دادن عناصر رابط کاربری استفاده می‌شوند و دقیقاً چه چیزی را نشان می‌دهند. از بازنمایی مدل باید فوراً حذف شود TGroupBoxو برچسب Tبه عنوان عناصر بی ربط از نظر معماری. نمودار کلاس برای فرم ویرایش جدولی در شکل نشان داده شده است. هشت .

علاوه بر پنجره اصلی، به یک رابط (GUI) نیز برای نگهداری پایگاه داده بیماران، انواع شاخص ها و واحدهای اندازه گیری نیاز داریم. ما قصد داریم برای این کار از فرم استاندارد ویرایش جدولی بر اساس اجزای استاندارد دلفی استفاده کنیم. بیایید این شکل را در دلفی ترسیم کنیم و آن را به یک مدل رز گویا تبدیل کنیم (شکل 9).

سایر فرم های صفحه نمایش با استفاده از مکانیسم ارث بری از فرم ویرایش جدولی به دست می آیند. نمونه ای از نحوه شکل گیری دایرکتوری انواع مشاهده در شکل نشان داده شده است. ده .

بنابراین، ما کاملاً در مورد ظاهر رابط کاربری تصمیم گرفته ایم و اکنون می توانیم روی پیاده سازی منطق برنامه تمرکز کنیم. برای راحتی (اما این را به عنوان یک روش استاندارد در نظر نگیرید!) ما از یک کلاس رابط موجود به عنوان یک کلاس کنترل استفاده خواهیم کرد. TMainForm.

کلاس TMainForm باید ارائه دهد:

  • ناوبری بین صفحه‌ها، مدیریت رویدادهای فشار دادن دکمه برای نمایش فرم‌های دیگر.
  • پر کردن لیست های کشویی، بیماران، شاخص ها، واحدهای اندازه گیری؛
  • محاسبه خودکار واحد اندازه گیری بر اساس نوع نشانگر؛
  • انتخاب بیمار با شماره کارت؛
  • انتخاب شماره کارت برای بیمار؛
  • محاسبه و نمایش آخرین مقدار نشانگر.

بیایید عملیاتی را در محیط Rational Rose برای پیاده سازی توابع کلاس TMainForm که در بالا توضیح داده شد ایجاد کنیم (شکل 11).

عملیات کلاس TMainForm را باید به دو گروه تقسیم کرد: محاسبات و واکنش به رویدادها. عملیاتی که به پایان می رسد کلیکیا تغییر دادن، همچنین نمایش فرم- واکنش به رویدادها، بقیه - محاسبات.

عملیات باید موارد زیر را اجرا کند:

  • FillPatientLis t - پر کردن لیست کشویی بیماران؛
  • FillMeasureList- پر کردن لیست کشویی واحدهای اندازه گیری؛
  • FillObservList- پر کردن لیست کشویی انواع مشاهدات؛
  • CalcObservVal- محاسبه آخرین مقدار مشاهده شده؛
  • ChPatientByCard- جستجوی بیمار با شماره کارت؛
  • ChCardByPatient- جستجوی شماره کارت برای بیمار؛
  • ChMeasureByObserv- واحد اندازه گیری را برای نوع مشخص مشاهدات برگردانید.
  • CardValChange- واکنش به تغییر شماره کارت؛
  • PatientChComboChange- واکنش به انتخاب یک بیمار جدید در لیست؛
  • ObservTypeComboChange- واکنش به انتخاب نوع مشاهده؛
  • GetValueButtonClick- واکنش به فشار دادن دکمه برای محاسبه مقدار؛
  • PatientDictClick- واکنش به فشار دادن دکمه بیماران؛
  • ObservTypeDictClick- پاسخ به فشار دادن دکمه انواع مشاهدات.
  • MeasureDictClick- پاسخ به فشار دادن دکمه واحدهای اندازه گیری.
  • نمایش فرم- پردازش زمانی که فرم برای اولین بار روی صفحه نمایش داده می شود.

و آخرین چیزی که برای تکمیل طراحی مورد نیاز است، کلاس های کنترل برای اجرای تعامل با پایگاه داده است. بدون آنها، نه پر کردن پایگاه داده و نه اجرای عملیات تسویه کلاس کنترل TMainForm امکان پذیر نیست. همانطور که در مورد کلاس های رابط، ما از محیط استفاده خواهیم کرد دلفیبرای طراحی یک کلاس کنترل تعامل با پایگاه داده - TDataModule1و سپس تطبیق مدل را انجام دهید. ماژول جدید تعامل پایگاه داده در شکل نشان داده شده است. 12 .

مبتنی بر شی QueryPatient, KeyObType, QueryMeasuresو PatientData Source, ObTypeDataSource, MeasureDataSourceکار با پایگاه داده بیماران، انواع مشاهدات و واحدهای اندازه گیری اجرا شده است - به روشی استاندارد برای دلفی، بر اساس استفاده از یک جفت شی کلاس TQuery, تیمنبع اطلاعاتو تعامل آنها با کلاس های رابط کاربری گرافیکی. ObservDataSourceبرای دسترسی به اطلاعات مربوط به مشاهدات انجام شده استفاده می شود. برای توصیف تعامل کلاس های کنترل TDataModule1و TMainFormشما باید چندین نمودار تعاملی مربوط به اجرای پرس و جوهای مورد نیاز در پایگاه داده ایجاد کنید (با توجه به حجم محدود مقاله، این نمودارها را حذف می کنیم).

توجه داشته باشید که در فرآیند افزودن ماژول ها و کلاس های جدید به سیستم و تطبیق مدل ها، ما به طور خودکار یک مدل جزء سیستم را دریافت کردیم (شکل 13).

بنابراین، اجازه دهید به طور خلاصه خلاصه کنیم. در نتیجه استفاده مشترک از Rational Rose و Delphi، به دست آوردیم:

  • کلاس های رابط و کنترل که در بسته ها سازماندهی شده اند.
  • مدل اجزای سیستم

کلاس های موجودیت و نمودارهای دینامیک در Rational Rose طراحی شده اند. در آینده، مدل‌های Rational Rose مبنایی برای مستندسازی پروژه، ردیابی وضعیت آن و سازماندهی آزمایش‌های عملکردی در اختیار ما قرار می‌دهند. پروژه به دست آمده در دلفی به نوبه خود مبنای اجرای پیاده سازی است. در طول فرآیند اجرا، پروژه به صورت دوره ای در دلفی با مدل Rational Rose بر اساس فناوری هماهنگ می شود رفت و برگشت، که به شما امکان می دهد مدل ها را به روز نگه دارید و به آرامی آنها را مطابق با نیازهای سیستم تغییر دهید.

نتیجه

در پایان، ما می خواهیم به مراحلی توجه کنیم که به نظر ما، استفاده ترکیبی از دلفی و رشنال رز از نظر فناوری مناسب ترین است.

اولا ، ایجاد یک رابط کاربری نمونه اولیه است. ایجاد سریعفرم ها در محیط دلفی همچنین به شما امکان می دهد تا به سرعت مدل کلاس های رابط را در Rose دریافت کنید، نکات اساسی معماری را بر اساس آن برجسته کنید (به عنوان مثال، رفتار رایج، عناصر معمولی رابط کاربری گرافیکی، افزونگی)، و همچنین کلاس های رابط را با الزامات عملکردی مقایسه کنید. سیستم.

دوما ، ایجاد کلاس های کنترلی در مدل های Rational Rose و به دنبال آن تولید کد در دلفی است. کلاس های کنترل به صورت بصری در محیط Rational Rose با استفاده از UML ارائه می شوند (در دلفی می توان آنها را در بین کلاس های رابط بزرگ "تار" کرد).

و در نهایت سوم ، مرحله اجرای کد است که در آن می توان تغییرات مرتبط با پیاده سازی را در مدل ایجاد کرد. تطبیق دوره‌ای مدل‌ها در این مرحله به توسعه‌دهنده این امکان را می‌دهد تا مطمئن شود که راه‌حل‌های معماری اساسی تغییر قابل توجهی نکرده‌اند و همچنین مدل‌های به‌روزی داشته باشند که وضعیت واقعی توسعه را منعکس کنند.

ComputerPress 4 "2001