سورنا فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

سورنا فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

تحقیق درمورد نرم افزار Fault Tolerance با استفاده از Simulated Annealing 20 ص

اختصاصی از سورنا فایل تحقیق درمورد نرم افزار Fault Tolerance با استفاده از Simulated Annealing 20 ص دانلود با لینک مستقیم و پر سرعت .

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 21

 

به نام خدا

نرم افزار Fault Tolerance با استفاده از Simulated Annealing

چکیده :

در این مقاله سعی می کنیم بهترین مینیمم را برای تابع زیر به دست بیاوریم :

 

برای این منظور از روش simulated Annealing (SA) استفاده می کنیم .

SA یکی از روشهای بهینه سازی حل مسئله است که در واقع الهام گرفته شده از فرایند ذوب و دوباره سرد کردن مواد می باشد و به همین دلیل به شبیه سازی حرارتی شهرت یافته است .

پس از حل مسئله با روش SA ، سعی می کنیم آن را در یک نرم افزار تحمل خطا به کار ببریم. برای داشتن یک نرم افزار تحمل خطا تکنیکهای مختلفی وجود دارد که ما در این مقاله با استفاده از تکنیک های افزونگی و تنوع طراحی از روش Acceptance Voting (AV) بهره برده ایم .

مقدمه :

Fault: باعث errorدر سیستم می شود که به آنbug هم گفته می شود .

Error : حالتی از سیستم است که منتج به خرابی می شود .

Failure : حالتی است که سیستم از سرویس مورد نظر منحرف شود .

2-1- تحمل خطا (Fault Tolerance):

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

3-1- سیستم تحمل پذیر خطا (System Fault Tolerance ) :

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

- قابلیت دسترسی: سیستم در هر لحظه آماده استفاده باشد .

- قابلیت اعتماد: سیستم پیوسته و بدون عیب کار کند .

- ایمنی: وقتی سیستم fail می شود اتفاق فاجعه آمیزی رخ ندهد .

- قابلیت نگهداری: سیستم شدهfail به راحتی قابل ترمیم باشد.

4-1- افزونگی ( Redundancy):

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

5-1- تنوع طراحی (Design Diversity) :

برای تولید یک سیستم تحمل پذیر خطا می توان یک نرم افزار را به شرکت های مختلف برنامه نویسی داد تا برنامه را بنویسد و برای تولید نتیجه نهایی نیز می توان از الگوریتم voting استفاده کرد پس باید از یک نرم افزار طراحی های مختلف داشته باشیم .

روشهایی که از تکنیک تنوع طراحی استفاده می کنند عبارتند از:

1-5-1- Recovery Blocks(RCB)

یک تکنیک تحمل خطای نرم افزاری تنوع طراحی است. یک روش دینامیک است و ازیک AT(Acceptanc test) استفاده می کند. از افزونگی نرم افزاری استفاده میکند یعنی در اینجا ما از نرم افزار چندین گپی داریم از AT برای تست شرط استفاده می کند که آیا شرط برقرار شده است یا نه، اگربرقرار بود که خروجی تولید می شود و گرنهback ward Recovery انجام می دهد و Alternate بعدی کار را انجام می دهد و اگر هیچ یک از نتایج Alternate ها پاس نشد یک خطا اتفاق می افتد.

2-5-1- N- version programming(NVP):

از تکینیک های اصلی تنوع طراحی نرم افزاری است یک روش استاتیک است یعنی تمامtask هایی که قرار است به عنوان variant ها عمل کند تا خروجی تولید شود مشخص اند. از روش Forward Recoveryاستفاده می کند. پایه عملیات آن به این صورت است که n تا نسخه همزمان اجرا می شود و یک مکانیزم تصمیم گیری روی نتایج ورژن ها اعمال می کنیم اگر توانستیم به تصمیم جامعی برسیم که نتیجه برگردانده می شود و گرنه یک exception اتفاق می افتد.

3-5-1- : N self– Checking programming(NSCP)

با استفاده از NSCP با داشتن افزونگی نرم افزاری می خواهیم رفتار برنامه ها را که همزمان می شوند را چک کنیم ،در این روش از یک مقایسه کنند. که نقش اساسی در تصمیم گیری داردیعنی وظیفه اش این است که نتایج variant ویک الگوریتم مقایسه ای یکAT برای هرحقیقت سخت افزار تشکیل می شود که با افزایش سخت افزارها این موارد نیز افزایش

می یابند.

N در NSCP همیشه زوج است و نشان دهنده تعداد variant هاست جفت ها همزمان اجرا می شوند. درNSCP زمانی خطا اتفاقی می افتد که یا نتایج جفت ها با هم موافق نباشد ویا نتایج تولید شده بوسیله جفت های موافق باهم متفاوت باشند.


دانلود با لینک مستقیم


تحقیق درمورد نرم افزار Fault Tolerance با استفاده از Simulated Annealing 20 ص

تحقیق درمورد مهندسی نرم افزار 16 ص

اختصاصی از سورنا فایل تحقیق درمورد مهندسی نرم افزار 16 ص دانلود با لینک مستقیم و پر سرعت .

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 15

 

مهندسی نرم افزار :

مهندسی نرم افزار ( SE ) طراحی ، توسعه و ثبت نرم افزار با بکارگیری تکنولوژی ها و کار با علم کامپیوتر ، مدیریت پروژه ، مهندسی محدوده های کاربرد طرح همبست ، مدیریت دارایی دیجیتال و دیگر زمینه ها است .

اصطلاح مهندسی نرم افزار پس از 1968 عمومیت یافت در حین کنفرانس نرم افزار NATO 1968 بوسیله ریکس fl باور و از آن به بعد گسترش یافت .

این اصطلاح معانی متفاوت خاصی دارد :

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

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

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

مهندسی نرم افزار کار ، کاربرد یک راهکار سیستماتیک ، قانونمند و کمی برای توسعه عملکرد و حفظ نرم افزار است که کاربرد مهندسی در نرم افزار است . ( مطالعه راهکارهایی در استاندارد IEEE 610,12

محدوده و تمرکز :

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

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

مهندسی نرم افزار همچنین مربوط به ویژگی های فرآیند توسعه نرم افزار است . در این زمینه با ویژگی های هزینه توسعه ، طول توسعه و ریسک های توسعه نرم افزار سرو کار دارد .

نیاز به مهندسی نرم افزار :

نرم افزار در مواردی یافت می شود که اطمینان زیادی انتظار می رود ، در شرایطی مثل بررسی و کنترل طرح های نیروی هسته ای یا خطوط هوایی ، چنینی کاربردهایی شامل میلیونها خط رمز می شود که ماشین مدرن پیچیده ای است بعنوان مثال : یک خط هوایی مدرن میلیونها بخش دارد و نرم افزار این خط هوایی 4 میلیون خط رمز دارد .

تکنولوژی های و اعمال :

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

ویژگی SE چیست؟

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

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

تولید :

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

مدیریت پروژه :

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

هنرهای شنیداری و تجسمی :

برنامه ها حاوی اجزای هنرمندانه اند مثل نوشتنی یا نقاشی، صحبتهای کاربر باید خوشایند باشد وارتباط صوتی و دیداری مطلوب را به کاربران نهایی می دهد.آنچه مدنظر است"طراحی خوب"است که اغلب ذهنی است وحس زیبایی را مشخص می کند .


دانلود با لینک مستقیم


تحقیق درمورد مهندسی نرم افزار 16 ص

دانلود پروژه حل معادلات درجه 1 و 2 و 3 به همراه سورس کد (نوشته شده با نرم افزار ویژوال بیسیک 6)با قابلیت ویرایش وشخصی سازی

اختصاصی از سورنا فایل دانلود پروژه حل معادلات درجه 1 و 2 و 3 به همراه سورس کد (نوشته شده با نرم افزار ویژوال بیسیک 6)با قابلیت ویرایش وشخصی سازی دانلود با لینک مستقیم و پر سرعت .

دانلود پروژه حل معادلات درجه 1 و 2 و 3 به همراه سورس کد (نوشته شده با نرم افزار ویژوال بیسیک 6)با قابلیت ویرایش وشخصی سازی


دانلود پروژه حل معادلات درجه 1 و 2 و 3 به همراه سورس کد (نوشته شده با نرم افزار ویژوال بیسیک 6)با قابلیت ویرایش وشخصی سازی

عنوان پروژه : حل معادلات درجه 1 و 2 و 3 به همراه سورس کد

قالب بندی : visual basic 6

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

شرح مختصر : به کمک این نرم افزار میتوانید معادلات درجه 1 و 2 و 3 را حل کنید و نمودار معادلات درجه 22 را نیز ترسیم نمایید. این پروزه به زبان ویژوال بیسیک نوشته شده و توسط آقای سید حسن غریب برای سایت پروژه دات کام ارسال شده.

کلمات کلیدی : معادلات درجه یک، معادلات درجه دو، معادلات همگن، نرم افزار حل معادلات دیفرانسیل، سورس کد نرم افزار ریاضی، معادلات دیفرانسیل، نرم افزار ریاضی و آمار، پروژه ریاضی، رسم نمودار معادله درجه 2، رسم نمودار معادلات دیفرانسیل

 

دانلود با لینک مستقیم


دانلود پروژه حل معادلات درجه 1 و 2 و 3 به همراه سورس کد (نوشته شده با نرم افزار ویژوال بیسیک 6)با قابلیت ویرایش وشخصی سازی

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

اختصاصی از سورنا فایل تحقیق درمورد سخت افزار و نرم افزار دانلود با لینک مستقیم و پر سرعت .

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 17

 

سخت افزار و نرم افزار

  کامپیوترهای شخصی

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

پردازنده 

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

تاریخچه ریزپردازنده ها

 ریزپردازنده که CPU هم نامیده می گردد، پتانسیل های اساسی برای انجام محاسبات و عملیات مورد نظر در یک کامپیوتر را فراهم  می نماید. ریزپردازنده  از لحاظ فیزیکی  یک تراشه است . اولین ریزپردازنده در سال 1971 و با نام Intel 4004  معرفی گردید. ریزپردازنده فوق چندان قدرتمند نبود و صرفا" قادر به انجام عملیات جمع و تفریق  چهار بیتی بود. نکته مثبت پردازنده فوق، استفاده از صرفا" یک تراشه بود.قبل از آن مهندسین و طراحان کامپیوتر از چندین تراشه و یا عصر برای تولید کامپیوتر استفاده می کردند.

اولین ریزپردازنده ای که بر روی یک کامپیوتر خانگی نصب  گردید ، 8080 بود. پردازنده فوق هشت بیتی و بر روی یک تراشه قرار داشت . این ریزپردازنده در سال 1974 به بازار عرضه گردید.اولین پردازنده ای که باعث تحولات اساسی در دنیای کامپیوتر شد ، 8088 بود. ریزپردازنده فوق در سال 1979 توسط شرکت IBM طراحی و اولین نمونه آن در سال 1982 عرضه گردید. وضعیت تولید ریزپردازنده توسط شرکت های تولید کننده بسرعت رشد و از مدل  8088 به 80286 ، 80386  ، 80486 ، پنتیوم ، پنتیوم II ، پنتیوم III و پنتیوم 4  رسیده است . تمام پردازنده های فوق توسط شرکت اینتل و سایر شرکت های  ذیربط طراحی و عرضه شده است . پردازنده های پنتیوم 4 در مقایسه با پردازنده 8088 عملیات مربوطه را با سرعتی به میزان 5000 بار سریعتر انجام می دهد! جدول زیر ویژگی هر یک از پردازنده های فوق بهمراه تفاوت های موجود  را نشان می دهد.

حافظه های RAM و ROM

در بخش قبل گذرگاه های آدرس و داده نظیرخطوط RD,WR بررسی گردیدند. گذرگاه های فوق به حافظه های RAM ،ROM و یا هر دو متصل خواهند بود. در ریزپردازنده ساده فرضی فوق، از گذرگاه های آدرس و داده هشت بیتی استفاده می گردد. بدین ترتیب پردازنده قادر به آدرس دهی 256 بایت حافظه و خواندن و یا نوشتن هشت بیت از حافظه در هر لحظه خواهد بود. فرض کنید پردازنده فوق دارای 128 بایت حافظه ROM بوده که از آدرس صفر شروع شده و 128 بایت حافظه RAM که از آدرس 128 آغاز می گردد ، است . حافظه ROM تراشه ای است که اطلاعاتی را از قبل و بصورت دائم در خود نگهداری می نماید. گذرگاه های آدرس به  تراشه ROM اعلام خواهند کرد که کدام بایت را خواسته و آن را بر روی گذرگاه قرار خواهد داد. زمانیکه وضعیت خط RD تغییر نماید تراشه ROM بایت مورد نظر و انتخابی را بر روی گذرگاه داده قرار خواهد داد. RAM شامل بایت هائی از اطلاعات است . ریزپردازنده قادر به خواندن و نوشتن در حافظه فوق بر اساس سیگنال های دریافتی از خطوط RD و RW است . در رابطه با حافظه RAM می بایست به این نکته نیز اشاره گردد که این نوع از حافظه ها با از دست منبع انرژی ( برق ) اطلاعات خود را از دست خواهند داد.

تمامی کامپیوترها دارای حافظه ROM به میزان مشخص می باشند. ( برخی از کامپیوترها ممکن است دارای حافظه RAM نبوده نظیر میکرو کنترل ها ، ولی وجود و ضرورت حافظه ROM را در هیچ کامپیوتری نمی توان انکار نمود).بر روی کامپیوترهای شخصی حافظه ROM را BIOS نیز می نامند. زمانیکه ریزپردازنده فعالیت خود را آغاز می نماید ، در ابتدا دستورالعمل هائی را اجراء خواهد کرد که در BIOS می باشند. دستورالعمل های موجود در BIOS عملیانی نظیر تست سخت افزار و سیستم را انجام و در ادامه فرآیندی آغاز خواهد شد که نتیجه آن استقرار سیستم عامل در حافظه خواهد بود. (Booting) . در آغاز فرآیند فوق ، بوت سکتور هارد دیسک ( می تواند آغاز عملیات فوق از هارد شروع نشده و از فلاپی دیسک انجام گردد ، اتخاذ تصمیم در رابطه با وضعیت فوق بر اساس پارامترهای ذخیره شده در حافظه CMOS خواهند بود ) را بررسی خواهد کرد . بوت سکتور فوق حاوی برنامه ای کوچک است که در ادامه BIOS آن را خوانده و در حافظه RAM مستقر خواهد کرد. ریزپردازنده در ادامه دستورالعمل های مربوط به برنامه بوت سکتور را که در حافظه RAM مستقر شده اند ،اجراء خواهد کرد. برنامه فوق به ریزپردازنده اعلام خواهد کرد که اطلاعات دیگری را از هارد دیسک به درون حافظه RAM انتقال و آنها را اجراء نماید. با ادامه وتکمیل  فرآیند فوق سیستم عامل در حافظه مستقر ومدیریت  خود را آغاز می نماید.

ریجستر و Cache

با توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده از Bus عریض وسریع همچنان مدت زمانی طول خواهد کشید تا داده ها از حافظه RAM برای پردازنده ارسال گردند. Cache با این هدف  طراحی شده است که داده های مورد نیاز پردازنده را که احتمال استفاده از آنان  بیشتر است ، در دسترس تر  قرار دهد . عملیات فوق از طریق بکارگیری مقدار اندکی از حافظه   Cache  که Primary و یا Level 1 نامیده می شود صورت می پذیرد. ظرفیت حافظه های فوق بسیار اندک بوده


دانلود با لینک مستقیم


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

تحقیق درمورد آموزش توسعه نرم افزار های شیء گرا توسط UML 53 ص

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

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 63

 

آموزش توسعه نرم افزار های شیء گرا توسط UML

فصل اول: مفاهیم شیء گرایی

مقدمه

شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفادة جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.

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

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

در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.

مفاهیم اساسی

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

متد، متدلوژی و اشیاء

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

متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنة مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسة خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و ... باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.

------------------------ نام کلاس

------------------------ لیست صفات

------------------------ لیست اعمال

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

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

پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب


دانلود با لینک مستقیم


تحقیق درمورد آموزش توسعه نرم افزار های شیء گرا توسط UML 53 ص