loading...
کـــــــــــــــــرج 2
نــــــیـما اقایـــی بازدید : 2029 پنجشنبه 20 آبان 1389 نظرات (0)

نقش شی گرایی در مهندسی نرم افزار

(بررسی متدولوژی OOA/OOD)

 

مهندسی به معنی :

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

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

طراحی و تولید نرم افزارباتبعیت از یک قواعد و ضوابط مشخصی .

چرا مهندسی نرم افزار متولد شد ؟

وقتی محصولی تولید می شود دو نکته مهم باید مورد توجه قرار بگیرد:

 

1-زمان

2-هزینه(پول)

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

پس از آن بود که تصمیم گرفتند ، طبق یک ضوابط خاص, زمان و هزینه را تخمین بزنند و بهمین خاطر از مهندسی نرم افزار استفاده کردند .

 

چرا مهندسی نرم افزار بسرعت رشد کرد ؟

1-رشد سریع تکنولوژی سخت افزار

2-مطرح شدن نیازهای جدید:

مثلا در15گذشته اینترنت نبود اما حالا هست و اینترنت نیازهای خود را به همراه آورد . مثلا نرم افزارهایی برای دانلود کردن .

3-ظهور سیستمهای بزرگ و پیچیده .

برای مدیریت سیستمهای بزرگ باید مهندسی نرم افزار رشد می کرد .

مراحل تولید نرم افزار :

1-مطالعه امکان سنجی (Feasebility Study)

2-تحلیل سیستم (System Analysis)

3-طراحی سیستم (System Design)

4-پیاده سازی سیستم (System Implementation)

5-آزمون و اصلاح (System Test & Integration)

6-اعتبارسنجی سیستم(System Validation)

7-پشتیبانی فنی(System Maintance)

 

سیستم چیست ؟

مجموعه ای از اجزا که با هم هدف خاصی داشته باشند .

در مهندسی نرم افزار با سیستمهای اطلاعاتی روبرو هستیم . سیستمهای اطلاعاتی دارای 5مولفه دارند :

 

1-مجموعه ای از ورودیها

2-مجموعه ای از خروجیها

3-مجموعه ای از فایلهای اطلاعاتی که اطلاعات سیستم در آنجا ذخیره می شود .

4-مجموعه ای از پروسسها که بیانگر عملیات سیستم می باشد .

5-هدف

تحلیل سیستم اطلاعاتی یعنی شناسایی 5 مولفه بالا .

 

متدولوژی چیست ؟

متدولوژی یعنی روش . هر متدولوژی باید 2 هدف مهم را تحقق ببخشد :

1-راه کارهای عملی برای انجام تحلیل به ما بدهد .

2-برای نمایش نتایج تحلیل یک روش ارائه دهد .( یعنی نتایج تحلیل را چطور نشان بدهیم )

UML به تنهایی یک متدولوژی نیست بلکه RUP مکمل آن است .

 

تحلیلگر سیستم باید توانمندیهای زیر را داشته باشد :

1-آشنایی با روشهای تحلیل .

2-دانش فنی کامپیوتری داشته باشد .

3-اطلاعات دامنه ای داشته باشد .

4-روابط عمومی قوی داشته باشد .

 

تکنولوژی چیست ؟

هرتکنولوژی یک ایده اصلی دارد و یک زمینه کاربردی .

بطور مثال تکنولوژی هسته ای :

1-ایده : در هسته اتم , انرژی هست .

2-کاربرد : در زمینه پزشکی یا کشاورزی و.....

 

تکنولوژی ساخت یافته :

1-ایده : اگر مسئله بزرگی داشته باشیم و بخواهیم راه حلی برای آن پیدا کنیم . این مسئله را به زیرمسائل کوچکتر بشکنیم تا به زیرمسائل حل شده برسیم بعد این زیرمسائل حل شده را بهم بچسبانیم تا جواب نهایی را پیدا کنیم .

2-کاربرد : استفاده از این تکنولوژی در زبانهای ساخت یافته . مانند : پاسکال و...

 

تکنولوژی شی گرائی :

1-ایده : همه چیز را در قالب اشیا و روابط بین آنها دیدن .

2-کاربرد : زبانهای برنامه نویس شی گرا و پایگاه داده شی گرا و مهندسی نرم افزار شی گرا .

تحلیل و طراحی سیستمها از دیدگاه تکنولوژی دو گونه اند :

1-دیدگاه مبتنی بر ساخت یافتگی

2-دیدگاه مبتنی بر شی گرایی

 

 

تاریخچه شی گرایی :اول بار در سال 1966 در قالب زبانی به نام simula که به منظور پیاده سازی شبیه سازی کامپیوتری تهیه شده بود , ارائه شد.در سال 1970 ، مفهومی تحت عنوان Abstract Data Type(ADT) بوجود آمد .

در دهه 70 زبان small talk بوجود آمد . ویژگی آن , این بود که اینترفیسش بصورت منویی طراحی شد و این ویژگی بدون شی گرایی ممکن نیست .

در دهه 80 زمینه های کاربردی آن در هوش مصنوعی هم توسعه پیدا کرد . از دهه90 تا حالا بشدت در حوزه زبانهای برنامه نویسی رشد کرد . (بطور مثال corba روشی شی گرا برای مدیریت شبکه و ...)

 

 

مزایایی شی گرایی :

1-مدل سازی دنیای واقعی را تسهیل می کند .

2-شی گرایی امکان Reuse کردن برنامه های کامپیوتری را فراهم می کند .(Reuseability:قابلیت استفاده مجدد)

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

 

مزایای Reuseability:

الف- صرفه جویی در زمان

ب صرفه جویی د رهزینه

3-شی گرایی امکانات مناسبی برای ساخت سریع GUI دقیق فراهم می کند .

4- امکان اجرای موازی (Parallel) نرم افزار را روی چندین CPU فراهم می کند .

5- امکان Proto typing سریع فراهم می کند .

6- امکان توسعه کم هزینه تر و سریع تر و راحت تر نرم افزار را فراهم می کند .

تئوری شی گرایی چیست ؟

 

این تئوری سه رکن دارد :

1-Object

2-Class

3-Inheritance

 

Object:

1-تعریف عمومی :

هر مفهوم مادی یا معنایی در دنیای واقعی را شی می گوییم .

2-تعریف در حوزه شی گرایی :

الف - یک شی یک نمونه از یک کلاس است .

ب - یک شی متشکل از سه مولفه است :

1) یک Attribute یکتا که آن شی را از سایر اشیا متمایز می کند . مثل : کد کتاب , شماره دانشجویی .

2) State : مجموعه مقادیری که آن شی را مشخص می کند .مثال:

I : Real

I:=3.5

3) Behavioure : مجموعه عملهای قابل اعمال روی شی را رفتار شی می گویند .

 

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

بین اشیا سه گونه رابطه هست :

1-یک به یک : خیلی کم هستند .

2-یک به چند : خیلی مهم هستند . مطرح ترین نوع رابطه به شمار می آیند .

3-چند به چند : حضورشان در سیستم کامپیوتری ممنوع است .

 

Class :

رکن دوم شی گرایی می باشد .

1- تعریف بصورت عام :

یک مجموعه همگون از اشیا به لحاظ ساختار و رفتار .

2- تعریف بصورت خاص :

مشتمل بر 3 مولفه است :

الف Instantiation :

هر کلاسی لازم است که مکانیزمی برای نمونه سازی داشته باشد .(معنی ندارد که کلاسی داشته باشیم که نمونه ساز نداشته باشد .)

ب - Instance variable = Attribute

فیلدهای اطلاعاتی (بخش داده) کلاس را تشکیل می دهد .

ج - Operations(Method)

یعنی مجموعه عملگرهای مجاز یا قابل اعمال روی اشیا کلاس .

 

یک کلاس یک Abstract Data Type (داده انتزاعی) است که توسط یک مکانیزم نمونه سازی و مجموعه ای از Propertyها مشخص می شود .Operationهای کلاس رفتار اشیا کلاس را بیان می کند .

تعریف انتزاع :

هرچقدر دید ما به آنچه که واقعا هست , نزدیکتر باشد , دید ما غیرانتزاعی تر است .

هر چقدر دید ما به آنچه که واقعا هست , فاصله بیشتری داشته باشد , دید ما انتزاعی تر است .

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

1-فاصله زیادی بین آنچه می بینیم با آنچه ذخیره می شود .

2-پنهان سازی اطلاعات می کند .

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

مزایا پنهان سازی اطلاعات ( Information Hidding) :

از دید طراح :

1-امنیت در مورد الگوریتمهای کلاس

2-هر وقت خواست می تواند الگوریتم پیاده سازی را عوض کند , بدون اینکه کسی اطلاع داشته باشد .(انعطاف در اعمال تغییرات مورد نظر)

از دید کاربر :

1- استفاده آسان از کلاس

 

شناسایی روابط بین کلاس ها :

چهار نوع رابطه بین کلاس ها وجود دارد :

1-رابطه کلی اختصاصی (Is-a) : Generalization - Specialization

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

2-رابطه Aggregation (Whole-part / Part of) :

3-رابطه Relation ship

مهمترین رابطه به لحاظ فراوانی . اکثر روابط از این نوع رابطه هستند .

4-رابطه Instantiation (Instance of)

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 598
  • کل نظرات : 297
  • افراد آنلاین : 2
  • تعداد اعضا : 224
  • آی پی امروز : 27
  • آی پی دیروز : 44
  • بازدید امروز : 94
  • باردید دیروز : 165
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 94
  • بازدید ماه : 1,502
  • بازدید سال : 15,015
  • بازدید کلی : 1,007,081
  • کدهای اختصاصی
    « ارسال برای دوستان »
    نام شما :
    ایمیل شما :
    نام دوست شما:
    ایمیل دوست شما:

    Powered by ParsTools
    مطالب پر بازديد اثر آلودگی روی کیفیت زندگی بازدید : 25467
    ارتباط فردوسی و سلطان محمود غزنوی بازدید : 15915
    هواكره چيست؟ بازدید : 13461
    نمونه سوال فیزیک (مدرسه تیزهوشان) اول راهنمایی بازدید : 10763
    تفسیر ایت الکرسی بازدید : 10627
    هنجار و ارزش های اجتماعی بازدید : 10387
    معرفی شغل پزشکی بازدید : 9121
    تیتراسیون اسید-باز بازدید : 8099
    ساختار سلولی چیست بازدید : 7997
    مهمترین مشکلات معلولین جسمی و حرکتی بازدید : 7471
    اصول راه اندازی یک کسب و کار موفق بازدید : 6893
    اهميت جنگل ها و مراتع بازدید : 6633
    آشنایی با رشته مکانیک خودرو بازدید : 6493
    موقعیت جغرافیایی کرج(البرز) بازدید : 6223
    تاریخچه ارگ بم بازدید : 6125
    نقش رسانه ها در پیشرفت جامعه بازدید : 6029
    اثرات نور بر روی گیاهان بازدید : 5829
    انگیزش چیست بازدید : 5387
    پروژه مخابرات پایان نامه دانشجویی بازدید : 5123
    سوالات روش هاي تحقيق در روان شناسي و علوم تربيتي بازدید : 4929
    نقش سرمایه انسانی در توسعه اقتصادی بازدید : 4749
    نظام اقتصادی بازدید : 4727
    نمونه سوال مدرسه تیزهوشان علوم اول راهنمایی بازدید : 4727
    سوالات روش هاي تحقيق در روان شناسي و علوم تربيتي بازدید : 4681
    وكالت بلا عزل بازدید : 4501
    روشهاي نگهداري مواد غذايي بازدید : 4411
    قانون های نیوتون بازدید : 4309
    مقایسه ساعت کار ایران با سایر کشورها بازدید : 4289
    آب و هواي آسيا بازدید : 4223
    نكات ايمني در ساختمان سازي بازدید : 4057
    سخنان آموزنده: