تجزیه و تحلیل سیستم
نمودار Use Case را در کجا استفاده کنیم ؟ از نمودارهاي Use Case مي توانيد به سه منظور استفاده کنيد : • براي نشان دادن امکانات (نيازمنديها) : جهت بيان نيازمنديهاي يک سيستم اغلب از نمودارهاي Use Case استفاده مي شود. اين امر بيشتر به اين خاطر است که هم تحليل گر نرم افزار و هم مشتري به درک واحدي از امکاناتي که يک سيستم در نهايت خواهد داشت ، برسند. • برقراري ارتباط با کاربران نرم افزار : به دليل سادگي درک نمودارهاي Use Case ، از آنها جهت برقراري ارتباط با کاربران نهايي سيستم استفاده مي شود. • جهت تست سيستم : سناريوهاي رسم شده براي يک سيستم مي توانند جهت تست سيستم بکار گرفته شوند. ________________________________________ ________________________________________ روشهای پیاده سازی نرم افزار UML در جريان شكل گيري روشهاي تحليل سيستم و طراحي شيء گرا بوجود آمده است. تمامي اين روشها عبارت اند از تركيبي از يك زبان مدلسازي گرافيكي و فرآيندي كه مراحل توسعه نرم افزار را توصيف مي كند. بعد از بوجود آمدن UML شركتهاي ايجاد كننده آن دريافتند كه اگر چه مي توان بر سر زبان مدلسازي گرافيكي بوجود آمده به توافق برسند ولي نمي توانند يك فرآيند مشترك و جامع جهت فرآيند پياده سازي نرم افزار ايجاد كنند. در نتيجه UML به يك استاندارد تبديل شد در حاليكه هيچگونه استانداردي براي توصيف فرآيند پياده سازي نرم افزار شكل نگرفت. موضوع اين وبلاگ UML مي باشد و من هم قصد داشتم بيشتر درمورد UML بنويسم. اما به نظر مي رسد كه تكنيكهاي مدلسازي بدون توصيف فرآيندي كه از اين تكنيكها استفاده خواهد كرد معنايي ندارد. روشي كه شما از UML استفاده خواهيد كرد به مقدار زيادي به فرآيندي بستگي دارد كه شما جهت پياده سازي نرم افزار خود استفاده مي كنيد. بنابراين بهتر است ابتدا به فرآيندها و روشهاي پياده سازي نرم افزار بپردازيم. ولي بياد داشته باشيد كه ما در اين وبلاگ به جزئيات روشهاي پياده سازي نرم افزار نخواهيم پرداخت. سعي ما براين است در مورد هر كدام از روشهاي مطرح شده يك ديد كلي را مطرح و منابع كافي جهت مطالعات بيشتر را معرفي كنيم. اغلب اوقات UML ، در رابطه با RUP يا Rational Unified Process مطرح مي شود. RUP در واقع يك فرآيند يا به عبارت ديگر يك چارچوب فرآيند توسعه نرم افزار مي باشد كه از UML استفاده مي كند. ولي بياد داشته باشيد كه مي توان UML را در روشهاي مختلف توسعه نرم افزار استفاده كرد و RUP تنها يكي از اين روشها مي باشد. ________________________________________ ساختار نمودارهای UML شما می توانید نحوه گروهبندی نمودارهای UML را در اين شکل مشاهده کنید! ________________________________________ نمودارهای UML UML2 داراي 13 نمودار رسمي مي باشد. در جدول زير مي توانيد انواع اين نمودارها را همراه با نسخه اي از UML كه ارائه شده اند را ببينيد. علي رقم اينكه هر كدام از اين نمودارها بصورت مجزا قواعد و نمادهاي مخصوص به خود را دارند ولي در اصل نمودارهاي UML قابليت انعطاف زيادي داشته و مي توان از انواع نمادها و نمودارها در نمودارهاي ديگر استفاده كرد. استاندارد UML بيان مي كندكه از عناصر مخصوص به يك نمودار تنها مي توان در آن نوع نمودار خاص استفاده كرد ولي اين يك قانون كلي نيست. نمودار هدف نمودار نسخه Activity نمايش نحوه رفتار و رويه اجراي يك كار UML 1 Class نمايش كلاس ، مشخصات كلاس و روابط بين كلاسها UML 1 Communication تراكنشهاي بين آبجكتها را نمايش مي دهد و تأكيد آن بر ارتباط بين اشياء مي باشد UML 1 Component ساختار و نحوه ارتباط بين مؤلفه ها UML 1 Composite structure تجزيه ساختاري يك كلاس در حال اجرا New to UML 2 Deployment نحوه استقرار فيزيكي سيستم UML 1 Interaction overview تركيب نمودار فعاليت و نمودار توالي New to UML 2 Object مثالي براي نحوه پيكربندي نمونه ها Unofficially in UML 1 Package ساختار سلسله مراتبي نحوه كامپايل نرم افزار Unofficially in UML 1 Sequence تعامل بين اشياء ، تأكيد اين نمودار بر توالي انجام كارها است In UML 1 State machine چگونه رويدادها يك شيء را در طول دوره عمرش تغيير مي دهند In UML 1 Timing تعامل بين اشياء ، تأكيد اين نمودار بر زمان مي باشد New to UML 2 Use case نمايش نحوه تعامل كاربران با سيستم In UML 1 در واقع UML داراي مجموعه اي از نمودارها مي باشد و استانداردي را تهيه نموده است كه تحليل گر را قادر مي سازد تا طرحي را ايجاد كند كه قابل درك براي مشتري ، برنامه نويس و همه افراد درگير فرآيند توسعه سيستم باشد. هر كدام از نمودارهاي UML در زمان خود و براي شخص مورد نظر خود بيان كننده يك ديد از سيستم مي باشند. ________________________________________ انواع نمودارهای موجود در UML لیست کامل نمودارهای UML به همراه توضيحي ضمني در داخل اين نمودارها و همچنين به تفكيك ورژن UML . اين نمودارها از كتاب زير اقتباس شده اند : UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition By Martin Fowler Publisher:Addison Wesley Pub Date: September 15, 2003 ________________________________________ از كجا شروع كنيم ؟ بعضي اصطلاحات مورد استفاده و معادل لاتين آنها : نمودار كلاس (class diagram) نمودار شيء نمودار مورد كاربرد (use case diagram) نمودار حالت (state diagram) نمودار توالي (sequence diagram) نمودار فعاليت (activity diagram) نمودار همكاري (collaboration diagram) نمودار جزء (component diagram) نمودار استقرار (deployment diagram) بسته ها (packages) كليشه ها (stereotypes) يادداشتها (notes) ________________________________________ UML پس از آشنايي با مفاهيم شيء گرايي، در اينجا زبان مدلسازي UML معرفي و خواهيم ديد چگونه اين زبان مفاهيم شيء گرايي را پشتيباني مي كند. جهت آشنايي با تاريخچه پيدايش uml اينجا را كليك كنيد. UML شامل تعدادي عنصر گرافيكي است كه از تركيب آنها نمودرارهاي UML شكل مي گيرند . هدف استفاده از نمودارهاي مختلف در UML ، ارائه ديدگاههاي گوناگون از سيستم است. همانطور كه مهندسين عمران جهت ساختن يك ساختمان پلانهاي مختلفي از ساختمان تهيه مي كنند ، ما با استفاده از نمودارهاي UML نماهاي مختلفي از نرم افزار مورد نظر را تهيه مي كنيم. نكته اي كه بايد حتما به آن توجه كنيد اين است كه : مدل UML آنچه كه يك سيستم بايد انجام دهد را توضيح مي دهد، ولي چيزي درباره نحوه پياده سازي سيستم نمي گويد. توجه : با توجه به رشد نرم افزارهاي پشتيباني كننده UML امروزه با استفاده از نرم افزارهايي مانند Visio ، Enterprise Architecture و rational rose شما مي توانيد بعد از كشيدن نمودارهاي UML مستقيما نمودارهاي خود را به بانك اطلاعاتي و كد تبديل كنيد (البته اين نرم افزارها ساختار كد شما را برايتان توليد مي كنند!). اين نرم افزارها همچنين كد برنامه شما را گرفته و نمودارهاي UML برنامه را توليد مي كنند. ________________________________________ تناظر يا Association تناظر نشان مي دهد كه اشياء و يا كلاسها در بعضي حالات با هم ارتباط دارند. تناظر يك ارتباط ساختاري بين دو شيء است. به طور مثال "روشن كردن" يك ارتباط بين شما و تلزيزيون است ،اين تناظر يك طرفه است (هميشه شما تلويزيون را روشن مي كنيد) . ولي بعضي تناظرها دوطرفه هستند ، مانند تناظر "ازدواج كردن با". در ضمن فراموش نكنيد كه امكان دارد دو شيء تناظرهاي مختلفي با هم داشته باشند! حتما خودتان يك مثال براي اين مورد پيدا كنيد. يكي از تناظرهاي مهم كه در تحليل سيستم وجود دارد تناظر چندتايي يا Multiplicity مي باشد : در واقع چند تايي تعداد اشياي مرتبط از يك كلاس را با اشياء كلاس ديگر بيان مي كند. مثلا در يك دانشگاه يك درس تنها توسط يك استاد تدريس مي شود(تناظر يك به يك) و يا يك درس توسط چند استاد تدريس مي شود (يك تناظر يك به چند). لازم به ذكر است كه نمودارها قديمي Database Diagram نيز از تناظر يا رابطه بين بانكها پشتيباني مي كردند. ولي نمودارهاي كلاس كه يكي از نمودارهاي اصلي بحث شيء گرايي مي باشد ، علاوه بر امكانات نمودارهاي قديمي ERD امكانات گسترده تري را در تمامي زمينه ها به تحليگر مي دهد. تجمع ، تركيب ، تناظر يك به چند ، تناظر دو به يك و .... از جمله تناظرهايي هستند كه در بحث شيء گرايي وجود دارند. ارسال پيام يا Message Sending در يك سيستم اشياء مختلف از طريق ارسال پيام با يكديگر كار مي كنند. فكر مي كنم يك تلويزيون و يك دستگاه كنترل از راه دور مثالي خوبي براي بيان اين مفهوم باشد. در واقع دستگاه كنترل پيامي را به دستگاه تلويزيون مي فرستد مبني بر اينكه "خودت را روشن كن" . شيء تلوزيون اين پيام را دريفات مي كند و خودش مي داند كه چگونه بايد روشن شود. ________________________________________ پنهان سازي يا Encapsulation مفهوم پنهان سازي يكي از مفاهيم اصلي و يكي از مزيتهاي برجسته روشهاي تحليل سيستم شيء گرا مي باشد. عمل پنهان سازي به اين معني است كه هر شيء به طور مستقل داراي داده ها و فرآيندهاي مورد نياز خود است و بخشي از اين داده ها و فرآيندها ممكن است از ديد ساير اشياء مخفي بماند. در نتيجه شيء ماهيتي تقريبا مستقل از اصل و محيط اطرفا خود پيدا مي كند. در نتيجه پنهان سازي اين امكان را مي دهد كه اگر يكي از اشياء درست كار نكند و مهندس نرم افزار مجبور به تغيير اين شيء است ، نيازي به تغيير اشياء ديگر نيست. درواقع يك شيء آنچه را كه انجام مي دهد از ساير اشياء و جهان واقعي دور نگه مي دارد. براي روشن شدن مطلب شما يك دستگاه تلويزيون را در نظر بگيريد ، عمليات پيچيده طراحي شده در داخل مدارها و لامپ دستگاه تلويزيون از ديد ما پنهان شده است ! در مثال بالا ، دستگاه تلويزيون مورد نظر ما احتياج به قسمتهايي دارد تا انسانها بتوانند از طريق آن دستوراتي از قبيل روشن شو ، خاموش شو و ... را به دستگاه بدهند ، به مجموعه عملياتي كه يك شيء در اختيار اشياء ديگر مي گذارد تا با آن رابطه برقرار كنند واسط مي گويند. ________________________________________ چندشکلی یا Polymorphism به طور كلي مي توان گفت كه چند شكلي به معناي يك چيز بودن و چند شكل داشتن است. به طور مثال در مورد "بازكردن" ! شما مي توانيد در را باز كنيد ، پنجره را باز كنيد ، يا يك حساب در بانك باز كنيد. در مدل شيء گرا كلاسهاي متفاوتي خواهيم داشت كه همگي متدي به نام "بازكردن" دارند، ولي هر كلاس خودش مي داند كه بايد چگونه عمليات "بازكردن" را انجام دهد. چند شكلي به مدل سازان اين امكان را مي دهد تا با مشتريان با زبان و اصطلاحات خودشان صحبت كنند. ________________________________________ تاريخچه UML مفاهيم شيء گرا مدت نسبتا زيادي است كه شناخته شده و به كار مي روند. تاريخه شيء گرايي به دهه 60 ميلادي بر مي گردد، زماني كه اولين زبان برنامه نويسي شيء گرا به نام Simula ابداع گرديد. به تدريج اين روش برنامه نويسي متداول گشت و در دهه زبان Smaltak موجب گسترش بيشتر اين نوع برنامه نويسي و جديد شد. تاقبل از دهه ۹۰ افرادي از قبيل بوچ ، يوردان ، رامبا ، كد ، جانسن ، ملو ، مارتين ، اورل ، هندرسون و ... ديدگاههاي مختلف و راه حلهاي مختلفي را در اين خصوص ارائه كردند. در اوايل دهه ۹۰ ميلادي و در ادامه اين مباحث به نقاط مشترك خوبي نزديك شدند. در اين دهه روشهاي بوچ و رامبا متداولتر شدند و در نهايت در سال ۱۹۹۵ ميلادي بوچ و رامبا شروع به تركيب روشهاي خود نمودند و UML يا زبان مدل سازي يكپارچه (Unfied Modeling Languag e ) ايجاد شد. بعد از مدتي جاكبسن نيز به اين گروه پيوست و روشهاي آنها در كليه محافل شناخته شده و مشهور شد. بالاخره در سال 1997 روايت 1.1 زبان UML به گروه مديريت شيء براي استانداردسازي ارائه شد و مورد قبول اين گروه قرار گرفت. در نهايت UML2.0 تحت بررسي OMG آخرين نسخه زبان مدلسازي يكپارچه ميباشد. جهت كسب اطلاعات بيشتر به www.omg.org/uml مراجعه كنيد. ________________________________________ مقدمه ای بر شی گرایی شیء گرایی (Object-Oriented) لغتی است که امروزه در صنعت نرم افزار باب شده است. شرکتها به سرعت حرکت می کنند تا خود را با این تکنولوژی سازگار کنند و آن را در برنامه های موجود خود وارد نمایند. در حقیقت بیشتر برنامه ها امروزه با شی گرایی توسعه می یابند. متد شیء گرایی یک راه متفاوت مشاهده برنامه هاست. با متد شیء گرایی شما یک برنامه را به قطعات بسیار کوچک یا آبجکتهایی تقسیم میکنید که تا اندازه ای مستقل از یکدیگر می باشند. به آن مانند ساختمانی از بلوکها نگاه کنید.به محض اینکه تعدادی آبجکتهای اساسی را در دنیای کامپیوتر ساختید یا بدست آوردید میتوانید به سادگی آنها را کنار هم بگذارید تا برنامه های جدید را ایجاد نمائید. یکی از امتیازات اساسی متد شیء گرایی این است که می توانید یکبار اجزاء را ساخته و بارها و بارها استفاده کنید. یک بلاک ساختمان را می توانید در یک خانه یا یک قصر یا یک سفینه فضایی دوباره استفاده کنید. همچنین می توانید از یک قطعه طرح یا کد شیء گرایی در یک سیستم حاسبداری - یک سیستم بازرگانی یا یک سیستم پردازش سفارش استفاده مجدد نمائید. حتما با خودتان می گوئید که شما تا کنون از کدهای قبلی نیز می توانستید در برنامه های مختلف استفاده کنید. تفاوت متد شیء گرایی با روش سنتی توسعه چیست ؟ در روش سنتی روش توسعه به همراه اطلاعاتی که سیستم نگهداری خواهد کرد به خودمان وابسته است. در این روش ما از کاربربان می رسیم که چه اطلاعاتی را نیاز دارند. پایگاه داده ای را طراحی می کنیم که اطلاعات را نگه دارد. صفحاتی را تهیه می کنیم که اطلاعات را بگیرد و گزارشاتی را چاپ می کنیم تا اطلاعات را برای کاربران نمایش دهد. به عبارت دیگر ما بر روی اطلاعات متمرکز می شویم و کمتر توجه می کنیم که چه کاری با اطلاعات انجام شده است یا رفتار سیستم چگونه است (نمودارهای ERD را در روش تحلیل سیستم ساختیافته ببینید). این روش Data Senteric یا مبتنی بر داده نامیده شده است و برای ایجاد سیستمهای زیادی تا کنون استفاده شده است. یک چالش بسیار بزرگ که روش مبتنی بر داده با آن روبرو می شود این است که درخواستهای سیستمها معمولا چندین بار تغییر مینماید. این سیستمها تغییرات در پایگاه داده را به آسانی پوشش میدهند ولی تغییرات در رفتار سیستم را به آسانی نمی توانند پوشش دهند. متد شیء گرایی در پاسخ به این مشکل ایجاد شده است. با متد شیء گرایی هم بر اطلاعات و هم بر رفتار متمرکز می شویم. در نتیجه اکنون می توانیم سیستم هایی را ایجاد نماییم که انعطاف پذیر شده اند تا اطلاعات یا رفتار را تغییر دهند. مشاهده و درک این انعطاف پذیری با شناخت تعدادی از اصول شیء گرایی نمایان خواهد شد: نهان سازی یا Encapsulation - وراثت يا Inheritance و چند ريختي يا Polymorphism. با ما همراه باشيد! ________________________________________ منابع مورد استفاده در تهيه مطالب اين وبلاگ بصورت گسترده اي از منابع ذيل استفاده شده است. به شما هم توصيه ميكنم درصورت امكان حتما كتابهاي ذيل را تهيه كنيد. مرجع کامل UML with Rational Rose نوشته باگزبندی ترجمه مهندس مهرداد توانا و مهندس عاطفه شیجوئی مقايسه متدولوژي هاي ايجاد و توسعه سيستم هاي اطلاعاتي گردآوري و تأليف : مهندس انوشيروان اخوان نياكي تحليل و طراحي سيستمها ايگور هوريس كيوويچ ترجمه مهندس عين الله جعفرنژاد قمي مهندسي نرم افزار با بهره گيري از UML ترجمه و تأليف مهندس اميرمهدي هدايت فر ما از منابع ذكر شده جهت بيان علامتها ، استانداردها و مفاهيم UML استفاده مي كنيم. ولي همانطور كه قبلا نيز ذكر شد هيچكدام از منابع موجود ترجمه شده و همچنين هيچكدام از سايتها بصورت Case Study يك پروژه كامل را بررسي نكرده اند! همچنين نرم افزاري كه ما در طول پروژه ها جهت مدلسازي استفاده خواهيم كرد Enterprise Rational Rose 2003 خواهد بود. جهت تهيه اين نرم افزار با من تماس بگيريد. ________________________________________ UML را بصورت کاربردی بیاموزید کتابهای آموزش UML موجود که اکثرا ترجمه می باشند تنها به معرفی علائم و مفهومهای زبان مدلسازی UML پرداخته اند و هیچکدام از آنها یک مثال کاربردی و واقعی را بطور کامل بررسی و تحلیل نکرده اند. این وبلاگ قصد دارد مفاهیم شیء گرایی و زبان مدلسازی UML را بصورت Case Study و در طول تحلیل یک سیستم واقعی آموزش دهد. نظرات , پیشنهادات و کمکهای علمی شما قطعا روشنای راه ما خواهد بود. ________________________________________ تحلیل سیستمهای نرم افزاری با استفاده از آخرین دستاوردها در حوزه مدلسازی نرم افزار [email protected] [email protected] 09155214840 ________________________________________ ________________________________________ آموزش UML RUP مثال مهندسی نرم افزار CMMS Data Model نویسندگان ________________________________________ مهدي جلالي نسیبه محمدی مصطفی حسینی عباس پيرنيا پیوندها ________________________________________ مقاله سايت بورلند آموزش UML در سایت رشنال دانلود رايگان Enterprise Architect ثبت هاست و دامنه آنلاين مهندسي صنايع - TPM يك سايت مفيد آموزشي متن رسمی UML2 http://www.omg.org/ http://www.uml.org/ RUP مهندسي نرم افزار (بهروز بختياري) پرسش و پاسخ در مورد UML پيشگو (درمانگر روح و جسم) شرکت پنگوئن مهندسين مشاور تصت BPMN.ir پیوندهای روزانه ________________________________________ آموزش تايپ سريع در 4 ساعت پيشگو صنایع wizact.com درخواست ترجمه مقالات مجله مديرساز مجله تدبير IPM مديريت پروژه ايران مديريت استراتژيک وبلاگ تخصصی شش زیگما(سیگما) نگهداري و تعميرات برپايه تجارت آرشیو پیوندهای روزانه سلام استاد آرزوعرب فرخنده اسدی آرزو زارع RSS
مطالب مشابه :
نمودار جریان داده ها DFD
مدل سازي فرآيند · مدل سازي سيستم را تعريف مي كنيد و ميان مدل هاي سيستمي فيزيكي و
تجزیه و تحلیل سیستم
نرم افزار کامپیوتر - تجزیه و تحلیل سیستم - رشته نرم افزار کامپیوتر شهرستان فارسان
تجزیه و تحلیل سیستم ها
آشنایی با درس تجزیه و تحلیل سیستم ها تعریف سیستم : سیستم مجموعه ای است
تجزیه و تحلیل سیستم چیست؟
در نظامی های مهندسی تجزیه وتحلیل سیستم روش هایی به نام آزمایش و خطا متداول است.
مراحل تجزیه و تحلیل سیستم ها
مقدمه:تجزیه و تحلیل و طراحی سیستمهای کسب و کاری در فضای سازمانها شکل میگیرد.
تجزیه تحلیل و طراحی سیستمها و روشها
Industrial Management 88 - تجزیه تحلیل و طراحی سیستمها و روشها - وبلاگ تخصصی رشته مدیریت
تجزیه و تحلیل سیستم دفترخانه ثبت اسناد رسمی
تجزیه و تحلیل سیستم دفترخانه ثبت اسناد رسمی فهرست مطالب شماره صفحه
تجزیه و تحلیل سیستم ها
به اختصار مراحل تجزیه و تحلیل سیستمها را می توان به صورات زیر بیان کرد :22
سیستم اطلاعات مدیریت منابع انسانی
مدیریت و تجزیه و تحلیل نظری جهت شناخت اجزاء و کاربرد "سیستم اطلاعات مدیریت منابع
برچسب :
تجزیه و تحلیل سیستم