مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

انواع رابطه ها در کلاس دیاگرام و راههای تشخیص

سلام خدمت دوستان

"سلام،
از مطالبتون ممنون،
ولی ای کاش در مورد انوع ارتباطات کلاس و اینکه چطور میتوان نوع ارتباط رو تشخیص داد هم توصیح میدادید" 

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

**************************************************

انواع رابطه ها در کلاس دیاگرام 

در کلاس دیاگرام چهار نوع رابطه وجود دارد که می توانید آنها را بین کلاسها برقرار کنید . association , dependency, aggregation , generalization

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

 

   

Dependency شبیه به association ها هستند با یک تفاوت که همیشه یک طرفه هستند . Rose در یک رابطه Dependency صفتها را برای کلاسها تولید نمی کند . Dependency ها با فلش خط چین نشان داده می شوند . 

   

Aggregation ها یک فرم قویتر از association  ها هستند . یک Aggregation  یک رابطه بین یک واحد کل و بخشهای آن می باشد . برای مثال رابطه بین یک کلاس ماشین را در نظر بگیرید با یک کلاس موتور یا یک کلاس بدنه . aggregation  ها مانند یک خط با یک لوزی در کنار کلاسی که واحد کل را نمایش می دهد نشان داده می شوند . 

   

Generalization ها برای نشان دادن یک رابطه وراثتی بین کلاسها استفاده می شوند .  

    

پیدا کردن رابطه ها

1)     1) کار را با بررسی نمودارهای توالی و همکاری آغاز کنید . اگر کلاس A از طریق یک نمودار توالی یا همکاری پیامی را به کلاس B  بفرستد ، یک رابطه باید بین آنها وجود داشته باشد . معمولاً رابطه های که با این روش پیدا می کنید ، association یا dependency هستند .

2)    2) کلاسهایتان را بررسی کنید و به دنبال رابطه های کل به جزء بگردید . هر کلاسی که از سایر کلاسها تشکیل شده ، ممکن است در یک aggregation  شرکت کند .

3)    3) کلاس هایتان را بررسی کنید و به دنبال رابطه های generalization  بگردید . سعی کنید کلاسهایی را پیدا کنید که انواع مختلف داشته باشند . مثلاً در یک شرکت ممکن است کارمند به دوصورت ساعتی و حقوقی باشد ، در این صورت ما یک کلاس کارمند ساعتی و یک کلاس کارمند حقوقی داریم که هر کدام از یک کلاس کارمند ارث بری دارند .

4)    4) کلاسها یتان را برای یافتن رابطه های بیشتر generalization  بررسی کنید . سعی کنید کلاسهایی را پیدا کنید که مشترکات بسیار زیادی باهم دارند . مثلاً در یک دانشگاه هم دانشجو و هم استاد و هم کارمند از کلاس انسان ارث بری دارند .

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

فرق تحلیل مهندسین صنایع با مهندسین نرم فزار

با سلام  

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

اگر دوستان مایل باشند نظر آنها ذیل نظر مدیر قرار می گیرد .

 

سوال توسط آرش : 

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

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

 ****************************************************** 

 

نظر مدیر وبلاگ : 

حرف شما را قبول دارم . من هم این مطلب رو شنیدم . این امر چند دلیل می تواند داشته باشد .

  1. باید مشخص بشود که با چه دیدی سیستم دارد تحلیل می شود . اولین نکته ای که من آن را گوش زد می کنم این است که تحلیل تا حدودی یک امر سلیقه ای است و دید افراد مختلف نسبت به یک سیستم هیچ گاه یکسان نیست . مثلاً در یک سیستم حقوق و دستمزد ، دیدی که یک مدیر نسبت به این سیستم دارد با دید یک حسابدار متفاوت است .
  2. مهمترین دیدگاهی که در تحلیل سیستم باید به آن توجه کرد ، دید کاربر سیستم است و اگر تحلیل به خوبی انجام شده باشد نباید در تحلیل سیستم میان افراد متفاوت فرق چندانی باشد .
  3. معمولاً بچه های نرم افزار از دید برنامه نویسی !!! به یک سیستم نگاه می کنند . یعنی اینکه پیاده سازی سیستم را بیشتر مد نظر دارند . من این مطلب را کاملاً تائید نمی کنم ولی اگر محیط برنامه نتواند به خواسته های کاربر پاسخ بدهد قطعاً سیستم به شکست بر می خورد .
  4. تیم های نرم افزار حسب تجربه ای که در تهیه نرم افزار دارند مواردی را در نظر می گیرند که برنامه را کابر پسندتر جلوه می دهد که غالباً بچه های مهندسی صنایع بر آنها واقف نیستند .
  5. چیزی دیگه ای که به نظر من می رسد این است که بچه های صنایع با برنامه نویسی و پیاده سازی نرم افزار آشنایی چندانی ندارند . به همین دلیل امکان دارد که در تحلیل خود مواردی را مطرح کنند که برنامه نویس آن را به شیوه دیگری پیاده سازی می کند .

البته من تحلیل بچه های صنایع رو ندیدم و ای کاش نمونه ای از تحلیل یک سیستم موجود بود تا بیشتر موضوع قابل لمس باشه .  

 

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

نظر دوست عزیزمان یوسف : 

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

نمونه قرادادهای نرم افزاری

با سلام خدمت دوستان و عرض تسلیت به مناسبت ایام سوگواری مولی الموحدین حضرت علی (ع) و قبولی طاعات و عبادات شما عزیزان . 

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

نمونه قرارداد خدمات و نگهداری سخت افزار و نرم افزار  

قواعد اساسی در تنظیم قراردادهای انفورماتیک 

نمونه قرارداد تهیه نرم افزار

حلول ماه مبارک رمضان بر شما مبارک باد

سلام بر همه دوستان  

حلول ماه مبارک رمضان بر شما مبارک باد . التماس دعا 

موفق باشید .

WSDM ( بخش دوم ) {یک روش طراحی مبتنی بر کاربر برای طراحی سایتها}

3- روش WSDM

          این روش از مراحل زیر تشکیل شده است: مدلسازی کاربر، طراحی مفهومی، طراحی پیاده‏سازی(ارائة طرح پیاده‏سازی) و مرحلة پیاده‏سازی.

مدلسازی کاربر از دو زیرمرحله تشکیل شده است: کلاس‏بندی کاربران و توصیف هر کلاس. طراحی مفهومی نیز دارای دو مرحله است: مدلسازی اشیاء و طراحی ناوبری. شکل 1 دیاگرامی از مراحل مختلف WSDM را نشان می‏دهد.

شکل 1

شکل 1

3-1- مدلسازی کاربر

          کاربران معمولاً وقتی یک سایت وب را ملاقات می‏کنند، سؤالاتی در ذهنشان راجع به این سایت وجود دارد. سایت وب باید این سؤالات را پیش‏بینی کرده و به آنها پاسخ مناسب دهد. لذا در اولین قدم ما روی کاربران بالقوه(آتی) سایت متمرکز می‏شویم.

ادامه مطلب ...

پروژه کامل تقاضای سیستم میکانیزه مطب با SSADM

سلام دوستان

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

موفق و پیروز و شاد باشید.

دوستان عزیز لینک جدید در تاریخ 1390/03/08 گذاشته شده .

تقاضای سیستم میکانیزه مطب

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

سلام دوستان

حدود یک سالی است که با این وبلاگ در خدمت شما عزیزان هستم . خدا را سپاسگذارم که در این مدت تونستم تا حدودی بعضی از دوستان را در پروژه هاشون راهنمایی کنم . ولی با این وجود فکر کنم خیلی بهتر از اینها می تونستم فعالیت کنم که متاسفانه درس و مشغله فکری و کاری اجازه نداد . البته سعی کردم به تمام ایمیل ها پاسخ دهم . خوب امیدوارم با نظرات سازنده خود مارا یاری کنید . در پایان از مسئولین بلاگ اسکای تشکر می کنم که این امکانات را فراهم نموده تا ما با سایر دوستان در ارتباط باشیم .

موفق باشید

WSDM ( بخش اول )

(web site design method)

یک روش طراحی مبتنی بر کاربر برای طراحی سایتهای وب

1- مقدمه

          داشتن یک سایت وب در حال حاضر برای شرکتها و سازمانها یک مسئلة حیاتی شده است. بسیاری از شرکتها دارای سایت وب مخصوص خود هستند. به خاطر اهمیت سایتهای وب، طراحی خوب و مناسب آنها اهمیت زیادی دارد.

نوشته‏ها و مطالب زیادی وجود دارند که به جنبه‏های گرافیکی و رابط کاربری یک سایت وب پرداخته‏اند ولی فقط تعداد معدودی مطلب در مورد یک روش سیستماتیک برای طراحی یک سایت وب خوب وجود دارد. سیری در وب نشان می‏دهد که بسیاری از سایتهای وب به روشهای تک‏کاره(Ad hoc) ایجاد شده‏اند و از یک سری مشکلات رنج می‏برند. این مشکلات را می‏توان به دو دسته تقسیم کرد: نقطه‏نظر کاربران سایت و نقطه‏نظر مدیران سایت. مدیر سایت معمولاً با مشکلات نگهداری روبرو است در حالیکه ملاقات کنندگان سایت مشکلاتی دارند که در رابطه با نحوة استفاده    از سایت برای سرکشی به همة قسمتهای آن است.

روش WSDM یک روش “مبتنی بر کاربر” به جای “مبتنی بر داده” است. در یک روش مبتنی بر داده، داده مسیر مدلسازی را معین می‏کند. در روش WSDM نقطة شروع مدلسازی، ملاقات کنندگان آیندة سایت هستند که گاهی به آنها کاربران و گاهی شنوندگان می‏گوییم. در WSDM، کاربران به چند کلاس کاربری تقسیم می‏شوند و داده‏ها از دیدگاه هریک از این کلاسها مدلسازی می‏گردد. این کار منجر به ایجاد سایتهایی می‏شود که مناسب برای کاربران باشند و قابلیت استفادة بالایی داشته، کاربران را راضی نگه دارند. بعلاوه در WSDM مابین طراحی مفهومی(که مستقل از جزئیات پیاده‏سازی است) و طراحی نحوة نمایش عملی یعنی Actual representation (که زبانی را که برای پیاده‏سازی بکار خواهد رفت، نحوة گروه‏بندی در صفحات وب مربوطه، استفاده از منوها،  link های استاتیک و دینامیک و   را در نظر می‏گیرد) تمایز قائل شویم. این تمایز همانند تمایزی که بین مدل مفهومی(مانند مدل ER) و مدل منطقی(مانند مدل رابطه‏ای) در پایگاه داده‏ها داشتیم. این تمایز به ما امکان می‏دهد که روشی را در طراحی سایت در پیش بگیریم که بواسطة محدودیتهای پیاده‏سازی موجود، تحت تاثیر قرار نخواهد گرفت. مهمتر اینکه مدل مفهومی می‏تواند به کاربر نشان داده شود تا دنبال اطلاعاتی که در سایت وجود ندارد نگردد. مدل مفهومی همچنین می‏تواند توسط موتورهای جستجو برای ایجاد امکان جستجو در سایت توسط این موتورها بکار گرفته شود.

 

2-طراحی سایتهای وب

   دو نوع سایت وب وجود دارند: نوع کیوسکی(kiosk web site) و نوع کاربردی(application web site).

ادامه مطلب ...

راهنمای مقدماتی برنامه نویسان پایگاه های اطلاعاتی

با سلام و پوزش به دلیل غیبت طولانی

فایل PDF زیر مربوط به شرکت پویش گران جوان می باشد . موضوع این مقاله راهنمای مقدماتی برنامه نویسان پایگاه های اطلاعاتی است . امیدوارم مورد استفاده قرار بگیرد .

موفق باشید .

دانلود

لینک دروس

سلام

دوستان عزیز لینک تمامی دروس در 4shared آپلود شد .

موفق باشید .