از دوستانی که ما را در بهتر و پر بارتر کردن مطالب وبلاگ یاری می رسانند کمال سپاس گذاری را د اریم . یک نکته که شما عزیزان باید در جریان آن باشید این است که من هم مثل خیلی از شماها دانشجو هستم و تنها در آخر هفته وقت می کنم به وبلاگ سر بزنم و ایمیلهایم را چک کنم . لذا دوستان مطمئن باشند که نظرات ارسالی شما حتماً بررسی خواهد شد ( با فاصله زمانی دو سه روز ) .
یکی از دوستان در رابطه با آموزش SSADM مطلب خواسته بودند که به زودی آموزش این متدولوژی را با یک مثال عملی شروع می کنیم . در یکی از یادداشتهای مربوط به SSADM به مراحل کار را به ترتیب اشاره کرده ایم .
مهندسی معکوس عبارت است از توانایی گرفتن اطلاعات از کد منبع و ایجاد یا ارتقاء مدل Rose .
یکی از موانع موجود بر سر راه پروژه های فناوری اطلاعات سازگار نگاه داشتن مدل آبجکت با کد است . با تغییر نیازها ، تغییر مسقیم کد می تواند وسوسه انگیز باشد ، تا اینکه مدل را تغییر دهید و سپس کد تغییر یافته را از مدل تولید کنید . مهندسی معکوس به ما این امکان را می دهد تا همیشه مدل را با کد همسان نگاه داریم .
در فرایند مهندسی معکوس ، Rose نسبت به خواندن بسته ، Component ها ، کلاسها رابطه ها ، صفات و عملیات از کد اقدام خواهد کرد . هنگامی که این مدل در یک مدل Rose قرار می گیرد ، می توانید هر تغییر لازمی را ایجاد کرده سپس کد را از طریق امکانات مهندسی مستقیم Rose مجدداً تولید کنید .
گزینه هایی که در اختیار شما قرار خواهند گرفت به نسخه مورد استفاده شما بستگی خواهد داشت .
عناصر مدل ایجاد شده در طول مهندسی معکوس :
در طول مهندسی معکوس ، Rose به جمع آوری اطلاعاتی درباره موارد زیر خواهد پرداخت .
با استفاده از این اطلاعات ، Rose اقدام به ایجاد یا ارتقاء یک مدل Object خواهد کرد .
دوستان بخش اول مستندات Use Case جهت استفاده شما آماده شده است . با توجه به این که این متن توسط مدیر ترجمه شده ، به دلیل اشکالات احتمالی در جمله بندی از شما عزیزان پوزش می طلبیم .
هر یک از مستندات Use Case برای نمایش ضمیمه ها بکار می روند . در این بخش شرح کاملی از هر یک از بخشهای الگوی Use case آماده شده است .
تعیین هویت Use Case
· شماره Use Case : هر یک از Use Case ها باید توسط یک عدد صحیح بی همتا مشخص شود . برای شماره گذاری متناوب Use Case هایی که در یک گروه قرار دارند از شکل X:Y استفاده می شود .
· نام Use Case : توضیح مختصری برای نامی که برای Use Case انتخاب شده است . این نام ها وظیفه های مورد نیاز که برای انجام نیازهای سیستم که شامل یک کار یا اسمی که شبیه مثالهای زیر است را منعکس می کند .
1) نمایش اطلاعات قسمت عددی
2) نشانه گذاری دستی منابع و فرامتنها و ایجاد لینک به مقصد
3) مکان یک دستورالعمل برای CD با بروز شدن نسخه نرم افزار
· تاریخچه Use Case :
1) چه کسی Use Case را ایجاد کرده است .
2) در جه تاریخی Use Case ایجاد شده است .
3) آخرین بار توسط چه کسی به روز شده است .
4) تاریخ آخرین به روز رسانی چه موقع بوده است .
از اینکه با نظرات خود ما را در پربار تر کردن وبلاگ خود یاری می رسانید بسیار سپاس گذاریم . متاسفانه به دلیل حجم زیاد درسها حدود یک ماهی است که مطلب جدیدی در وبلاگ قرار نگرفته است . ولی انشاالله در هفته جاری متنی را با عنوان " یوزکیس ها برای پروژه " که در بر گیرنده مطالب مفیدی در مورد به کار گیری یوزکیس ها در پروژه و نحوه مستند سازی یوزکیس های پروژه می باشد ، ترجمه و برای استفاده شما عزیزان در وبلاگ قرار خواهد گرفت. یکی از دوستان مطالبی در مورد مهندسی معکوس در زمینه دیاگرامهای UML در خواست کرده که باز هم سعی می کنم در چند روز آینده مطلب را آماده کنم . یکی دیگر از دوستان مباحث مربوط به طراحی را درخواست کرده اند . در مورد طراحی ، به خصوص طراحی بانکهای اطلاعاتی ما باید پس از تجزیه و تحلیل صحیح و دقیق به سراغ طراحی پایگاه داده خود برویم و با یک مدل ( مثل EER ) ، بانک اطلاعات خود را ترسیم و سپس پیاده سازی کنیم . همچنین با یکی از زبانهای برنامه نویسی موجود ( مثل VB یا دلفی ) کدهای برنامه خود را ایجاد نمائیم ( در مورد زبانهای برنامه نویسی سایتهای زیادی وجود دارند که دوستان می توانند از آنها استفاده کنند ) . انشاالله بزودی نیز در مورد چگونه مدل کردن بانک اطلاعاتی ، مطالبی برای استفاده در وبلاگ مهندسی نرم افزار قرار خواهد گرفت . در پایان از کلیه دوستان دعوت می شود که مطالب و مقالات خود را در زمینه های مربوط به مهندسی نرم افزار ، برنامه نویسی ، پایگاه داده و ... را برای ما ارسال تا سایر کاربران از آن استفاده کنند .
با تشکر
با تبریک عید سعید فطر بر همه مسلمانان جهان به ویژه هم وطنان عزیزمان و قبولی طاعات و عبادات شما به درگاه حق تعالی به اطلاع شما کاربران محترم می رسانم که دروره آموزش Rayional Rose به پایان رسیده است . دوستان با ارسال نظرات خود برای ما ، ما را از پیشنهادات سازنده خود مطلع کنید .
با تشکر مدیریت
Stereotype کلاسها
انواع Stereotype های کلاسها در درس هشتم توضیح داده شده است . ما فقط بطور مختصری آنها را یادآوری می کنیم .
Actor یا عامل ، Boundary : که به معنای User Interface هستند ، Control : این آبجکت ها همان اشیاء کنترلی هستند ، Entity : اشیای هستند که در سیستم وجود دارند ، Table : جدول از پایگاه داده هستند .
صفات کلاس و افزودن صفات به کلاس
برای یافتن صفات می توان به Use Case ها رجوع کرده و در جریان رخدادها اسامی را پیدا نمود .
برای افزودن صفات به کلاس کافی است بر روی کلاس مورد نظر کلیک راست نموده و سپس گزینه New Attribute را انتخاب کنید . به این ترتیب می توانید به کلاس خود صفات جدید اضافه کنید .
یک صفت از لحاظ Visibility چهار وضعیت زیر را می تواند داشته باشد :
عملیات و یافتن عملیاتها
رفتارها و عملکردهای مربوط به یک کلاس هستند . با رجوع به نمودارهای توالی و همکاری می توان عملیاتها را استخراج کرد . بعد از مشخص شدن عملیلتها موارد زیر را در مورد کلاسها بررسی می نمائیم .
برای افزودن عملیات به کلاس کافی است بر روی کلاس مورد نظر کلیک راست نموده و سپس گزینه New Operation را انتخاب کنید . به این ترتیب می توانید به کلاس خود عملیات جدید اضافه کنید .
یک کلاس دیاگرام یک دیاگرام برای توصیف یک سیستم است . کلاس دیاگرام شامل آیکون هایی است که کلاسها و نمونه ها و ارتباط بین آنها را نشان می دهد . شما می توانید یک یا بیش از یک کلاس دیاگرام را برای شرح کلاس ها در مدلی سطح بالا بسازید . کلاس دیاگرامها در مدل سطح بالا شامل خودشان نیز می باشند .
با وجود اینکه نمودار کلاس از نمودار اصلی طراحی شیءگرا می باشد از آن در مرحله تحلیل نیز استفاده می شود . در اینجا ما قصد تولید یک نمودار کلاس تجزیه و تحلیل را داریم . یعنی هدف از ایجاد این نمودار دراین مرحله پیدا کردن مفاهیم مهم سیستم و در نهایت درک مشکلات و نیازمندیهای مشتری می باشد یا به عبارتی در اینجا فقط مفاهیم و ارتباطات بین آنها به تصویر کشیده می شود .
نمودارهای کلاس ( Class )
یک نمودار کلاس برای نمایش تعدادی از کلاس ها و بسته های کلاس در سیستم شما استفاده شده است . این نمودار یک تصویر ایستا از قطعات سیستم و ارتباط بین آنها را به شما می دهد .
شما معمولاً برای یک سیستم واحد چندین نمودار کلاس را ایجاد خواهید کرد . برخی از اینها زیر مجموعه ای از کلاس ها و روابط آنها را نمایش خواهند داد . شما می توانید بسیاری از نمودارهای کلاس را که نیاز دارید ، بسازید تا یک تصویر کاملی را از سیستم خود بدست آورید .
بطور پیش فرض یک نمودار کلاس وجود دارد که Main ( اصلی ) نامیده شده و مستقیماً زیر نظر نمای Logical است . این نمودار کلاس بسته ها و کلاس های موجود در مدلتان را نمایش می دهد .داخل هر بسته ای نمودار دیگری است که Main ( اصلی ) نامیده می شود ، که شامل همه کلاس های داخل آن بسته است .
نمودار کلاس یک ابزار طراحی خوب برای تیم می باشند . آنها به برنامه نویسان کمک می کنند تا ساختار سیستم را قبل از اینکه کدی نوشته شود ، ببینند و طراحی کنند و کمک می کنند تا مطمئن شوند که سیستم از ابتدا خوب طراحی شده است .
در نمودار کلاس ، تمام کلاسهای سیستم نشان داده می شود و تمام ارتباط بین آنها بطور کامل باید مشخص شود . به نمونه ای ازاین نمودار که در شکل زیر آمده است توجه کنید . همانطور که دیده می شود هر کلاس از سه بخش تشکیل شده است .
منابعی جهت استخراج کلاسها
راههای تجربی جهت شناسایی کلاسها
Inception (آغازین) |
هدف اصلی این فاز دستیابی به توافق میان کلیهی ذینفعان بر روی اهداف چرخهی حیات پروژه است. فاز Inception به دلیل تلاشهای تولید و توسعه جدید به صورت پایهای اهمیت فراوانی دارد که در آن ریسکهای نیازسنجی و تجاری مهمی وجود دارد که باید پیش از اینکه اجرای پروژه مورد توجه قرار گیرد، بررسی شوند. برای پروژههایی که بر توسعه سیستم موجود متمرکزند، فاز Inception کوتاهتر است، با اینحال این فاز برای حصول اطمینان از اینکه پروژه ارزش انجام دادن دارد و امکانپذیر نیز هست، انجام میشود. اهداف اصلی فاز آغازین شامل موارد زیر است :
|
Purpose | Language Unit |
(Foundation) modeling of fine-grained actions | Actions |
Data and control flow behavior modeling | Activities |
(Foundation) modeling of basic structures | Classes |
Complex structure modeling for component technologies | Components |
Deployment modeling | Deployments |
(Foundation) common behavioral semantic base and time modeling | General Behaviors |
Abstract data flow modeling | Information Flows |
Inter-object behavior modeling | Interactions |
Model organization | Models |
Language customization | Profiles |
Event-driven behavior modeling | State Machines |
Complex structure modeling | Structures |
Pattern modeling | Templates |
Informal behavioral requirements modeling | Use Cases |
بهبود پشتیبانی برای سفارشی سازی برای یک حوزه بخصوص
تجارب عملی استفاده از UML ارزش مکانیزمهای توسعه (Extension) آنرا نمایان ساخته است. در UML 1.x فقط از مکانیزمهای توسعة stereotype و profile استفاده میشد، لکن در UML 2.0 مکانیزم توسعة جدید metamodel اضافه شده است که امکانات توسعة سطح بالاتری را فراهم میکند.
تقویت، تطابق با اصول، روشنی و وضوح بیشتر برای مفاهیم مختلف مدلسازی
زبان سادهتر و سازگارتر شده است. اقدامات جدید شامل تقویت و تثبیت مفایهم و – در بعضی موارد – حذف مفاهیم تکراری، پالایش چندین تعریف و افزودن توضیحات متنی و مثال بوده است.