PDA

نسخه کامل مشاهده نسخه کامل : دیاگرام های Uml



aliaghaaaaa
26-04-2008, 18:30
سلام.
در مورد دیاگامهای Uml یه توضیح مناسب برای کنفرانس میخواستم.
خیلی هم عجله دارم. لطفا اگه میشه کمکم کنین.

Hamid Reza
26-04-2008, 18:34
عزیزم لطفا برای تایپک عنوان مناسب انتخاب کن
متشکرم:40:

majid-ar
26-04-2008, 23:36
سلام.عنوان ویرایش شد...

------------------------

UML چیست ؟

دیاگرام های UML



UML یک ابزار ویژوال بوده و از انواع متفاوتی دیاگرام استفاده می نماید . هر یک از دیاگرام های UML ، امکان مشاهده یک سیستم نرم افزاری را از دیدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختیار پیاده کنندگان قرار می دهد. برخی از دیاگرام های UML عبارتند از :


Class Diagram

State Diagram

Sequence Diagram

Collaboration Diagram

Activity Diagram

Component Diagram

Deployment Diagram


آنالیز شی گراء (OOA)



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


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


طراحی شی گراء ( OOD )



نکته اساسی در طراحی شی گراء ، تاکید و سرو کار داشتن با سوالاتی است که با How شروع و در فرآیند پیاده سازی نرم افزار حضوری فعال و موثر خواهند داشت . " چگونه این کلاس داده را جمع آوری می کند ؟" . " چگونه این کلاس گزارش را چاپ می نماید ؟" ، نمونه سوالاتی در این زمینه می باشند .در نمونه مثال بیمارستان، وضعیت فوق به خصلت ها ، صفات و متدهای یک کلاس مرتبط می گردد .
بنابراین OOA ، کلاس های مورد نظر و ضروری بمنظور نیل به اهداف نرم افزار را مشخص می نماید و محور عملیات بر جستجو و تبین جایگاه یک کلاس در برنامه متمرکز است . در OOD ، تاکید بر پیاده سازی کلاس ها ، صفات و خصایصی است که بمنزله هسته یک کلاس مطرح می گردند . ترکیب هر یک از فعالیت های فوق ( آنالیز شی گراء و طراحی شی گراء ) بهمراه پیاده سازی لینک هائی که با کلاس ها سروکار دارند جملگی بعنوان بخشی از فرآیند OOP ( برنامه نویسی شی گراء ) محسوب می گردند.


دیاگرام های کلاس UML



دیاگرام کلاس در UML یکی از مهمترین دیاگرام ها تلقی می گردد . دیاگرام فوق ، مسئولیت مدل سازی ساختار کلاس و محتویات را با استفاده از عناصری نظیر کلاس ها ، اشیاء و پکیج ها برعهده دارد . این دیاگرام همچنین ، ارتباطاتی نظیر : توارث و پیوستگی را نمایش خواهد داد. دیاگرام فوق ، شکل خلاصه و استانداردی بمنظور نمایش یک کلاس را ارائه می نماید. در این راستا از یک مستطیل که به سه بخش متفاوت تقسیم می گردد ، استفاده می شود. در اولین بخش مستطیل ، نام کلاس قرار می گیرد . در دومین بخش مستطیل ، خصلت های یک کلاس قرار خواهند گرفت ( ممکن است از واژه صفات و یا متغیر نیز استفاده گردد ) و در بخش سوم ، متدهای یک کلاس قرار می گیرند.متدهای هر کلاس ، عملیاتی را که یک کلاس می تواند انجام دهد ، مشخص می نمایند. شکل زیر ، یک دیاگرام کلاس نمونه را نشان می دهد. در اولین بخش ، نام کلاس Vehicle مشخص شده است .نام هر کلاس با یک حرف بزرگ شروع و در مواردیکه نام کلاس شامل بیش از یک کلمه باشد ، هر کلمه در نام کلاس با یک حرف بزرگ آغاز می گردد . Vehicle ، PassengerCar و IncomeStatement نمونه هائی در این زمینه می باشند .استفاده از از فضای خالی بین کلمات تشکیل دهنده نام یک کلاس ، مجاز نمی باشد .




خصایص کلاس (Properties , Attributes)



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


علایم + و -
همانگونه که مشاهده می گردد ، هر entry دربخش دوم دیاگرام کلاس Vehicle ، دارای یک علامت - در جلوی نام خود است .در بخش سوم ، برخی از Entry ها ، دارای علامت + و برخی دیگر دارای علامت - می باشند . وجود علامت + در ابتدای یک آیتم ( خصلت ، متد ) ، نشاندهنده در دسترس بودن آن از طریق خارج از کلاس است . بعبارت دیگر ، علامت +، امکان استفاده از آیتم مورد نظر و تاثیرگذاری بر وضعیت یک کلاس را نشان می دهد . علامت + ، عمومی بودن ( Public ) عناصر کلاس مربوطه را نشان می دهد .
اگر یک Entry با یک علامت - شروع گردد ، بدین معنی خواهد بود که آیتم مورد نظر صرفا" برای استفاده خود کلاس در


دسترس بوده و امکان استفاده از آن برای خارج از کلاس میسر نخواهد بود. بنابراین علامت - ، نشاندهنده خصوصی ( Private ) بودن عناصر مربوط به یک کلاس است .
استفاده از علائم + و - ، نشاندهنده نوع دستیابی به هر یک از عناصر مربوط به یک کلاس است . در حقیقت علامت + ، روشی بمنظور ارتباط با کلاس را مشخص نموده و علامت - نشاندهنده عناصری است که صرفا" برای خود کلاس قابل استفاده خواهند بود .
ایجاد یک آیتم بصورت خصوصی همواره مورد توجه طراحان شی گراء بوده و تامین کننده اهداف کپسوله سازی در برنامه نویسی شی گراء است . با کپسوله سازی داده ، امکان بروز تغییرغیرعمد داده در برخی بخش ها ی برنامه و از طریق خارج از کلاس به حداقل مقدار خود خواهد رسید . بدین ترتیب، تشخیص و برطرف نمودن خطاهای احتمالی ، بسرعت و بسادگی میسر خواهد شد .


متدهای کلاس ( عملیات )
عنصر سوم در دیاگرام کلاس ، نشاندهنده نوع عملیات مرتبط با کلاس است . در UML آیتم های موجود در این بخش را "عملیات " ( Operations ) ، ودر برخی از زبان های برنامه نویسی نظیر ویژوال بیسیک دات نت ، به آنان "متد" گفته می شود . متدها ، نحوه ارتباط برنامه نویسان با یک کلاس را مشخص می نمایند. هر متد عملیات خاصی را در ارتباط با یک کلاس انجام خواهد داد.اگر خصلت ها را بمنزله اسامی در یک جمله در نظر بگیریم ، می توان متدها را بمنزله افعال موجود در یک جمله در نظر گرفت .
متدهای کلاس و آرگومان ها
در برخی موارد یک متد نیازمند اطلاعات خارجی بمنظور انجام وظایف محوله است . مثلا" در دیاگرام کلاس Vehicle از متد زیر استفاده شده است :




+SetSpeed (DesiredSpeed:Integer):Integer


علامت + نشاندهنده این موضوع است که ( ) SetSpeed یک متد Public است . بنابراین امکان استفاده از آن توسط یک برنامه نویس وجود خواهد داشت .بمنظور ارسال داده به متد مورد نظر از آرگومان استفاده شده که بین علامت پرانتز قرار می گیرند.در مثال فوق ، پارامتر مورد نظر DesiredSpeed بوده و از نوع Integer است . در انتهای علامت پرانتز بسته ، ازیک کالون ":" ، که بدنبال آن کلمه Integer آمده است ، استفاده شده است . این بدان معنی است که متد ( ) SetSpeed یک مقدار صحیح را به برنامه صدازننده ، بر می گرداند.
در نمونه کلاس Vehicle از دومتد بمنظور افزایش و یا کاهش سرعت استفاده شده است :


-IncreaseSpeed(DesiredSpeed:Integer):Integer
-DecreaseSpeed(DesiredSpeed:Integer):Integer


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


-ChangeSpeed(DesiredSpeed:Integer):Integer




در صورتیکه پارامتر DesiredSpeed مثبت باشد ، سرعت افزایش و در غیر اینصورت ( پارامتر منفی باشد ) ، سرعت کاهش خواهد یافت.


Dim MyVehicle as New Vehicle
Dim ObjectSpeed as integer
' Some code that does something...
ObjectSpeed = MyVehicle.GetSpeed()
ObjectSpeed = MyVehicle.ChangeSpeed(-ObjectSpeed)




درنمونه مثال فوق ، در ابتدا یک شی Vehicle با نام MyVehicle تعریف شده است . در ادامه ، متد GetSpeed در ارتباط با شی MyVehicle فرا خوانده شده است .بمنظور جداسازی نام شی از متد مربوطه از علامت نقطه استفاده شده است


.
فرض کنید که Vehicle با سرعت 55مایل در ساعت در حال حرکت است . مقدار ObjectSpeed ، پنجاه و پنج در نظر گرفته می شود .در صورتیکه در ادامه مقداری منفی را به متد فوق پاس دهیم سرعت کاهش پیدا خواهد کرد. اگر مقدار 55 - را به متد ChangeSpeed() پاس دهیم ، توقف اتومبیل را بدنبال خواهد داشت .
همانگونه که مشاهده می شود ، برخی از متدها با علامت - شروع شده اند . این بدان معنی است که آنان متدهای اختصاصی ( Private) بوده و خارج از کلاس قابل دستیابی نخواهند بود. چنین متدهائی به سایر متدها ی موجود در کلاس ، سرویس و خدمات لازم را ارائه و استفاده از آنان برای برنامه نویس مجاز نخواهد بود.بعبارت دیگر متدهای فوق بعنوان ایترفیس کلاس مطرح نبوده و از خدمات آنان در داخل کلاس استفاده خواهد شد . در چنین مواردی ممکن است یک متد که بصورت Public تعریف و امکان استفاده از آن در خارج از کلاس و توسط برنامه نویسان وجود دارد ، خود از خدمات چندین متد خصوصی استفاده نماید .
یک دیاگرام کلاس UML ، امکان مرور سریع و فشرده پتانسیل ها ی یک کلاس را فراهم و نحوه ارتباط یک برنامه نویس با کلاس مورد نظر را نیز مشخص خواهد شد. اگر یک کلاس را بعنوان یک جعبه سیاه در نظر بگیریم ، علامت "-" ، نشاندهنده آیتم هائی درون جعبه سیاه است که امکان استفاده از آنان توسط برنامه نویسان وجود نخواهد داشت . علامت "+" ، نشاندهنده امکاناتی است که می توان از آنان بمنظور ارتباط با متدها و خصایص یک کلاس استفاده کرد . آیتم های Public یک کلاس ، اینترفیس لازم برای یک کلاس را تعریف و نحوه ارتباط با آن را مشخص می نمایند. در حقیقت متدهای Public ، نحوه استفاده از یک کلاس را به برنامه نویسان دیکته خواهند کرد .


خلاصه


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

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

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

Input Step->ReadKeyboard( )
ReadSetupTable( ) ->ReadTable1( ) ->(Code)
ReadTable2( )
ReadTable3( )




UML ، از کلمات Unified Modeling Language اقتباس شده است . مزیت استفاده از UML ، تفکر مبتنی بر برنامه نویسی شی گراء است .بلاک های اولیه ایجاد UML کلاس ، خصلت و متد نامیده می شوند. دیاگرام های کلاس UML تمام سه عنصر OOP را در یک دیاگرام مناسب نمایش می دهند .

در OOP ، واژه های Private و Public به نحوه دستیابی به خصلت ها بر می گردد . اگرخصلتی از نوع Private باشد ،امکان تغییر آن صرفا" برای کسانی که به کلاس فوق تعلق دارند، وجود خواهد داشت .اگر خصلتی از نوع Public باشد ، سایر اشیاء امکان دستیابی کامل به خصلت را ( اعمال تغییرات مورد نظر ) خواهند داشت.

منبع:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]