مهندسی نرم افزار مبتنی برمولفه
مولفه چیست ؟
مهندسی نرم افزار پیشرفت زیادی در طول 30 سال اخیر با اختراع نمودن تکنولوژیهای ابتکاری و نو ، بکارگیری برنامه نویسی ساختیافته ، تکنولوژی CASE ، تکنولوژی شی گرا داشته است . با اینحال روش اساسی توسعه نرم افزار ثابت باقی مانده است که برنامه نویسان کدها را خط به خط تا پایان یافتن آن می نویسند.
تغییرات اساسی در توسعه نرم افزار به صورت زیر معرفی شده است :
1. بایستی شیوه کد نویسی خط به خط با توسعه مبتنی بر مولفه جایگزین شود.
2. بایستی روش دستی توسعه نرم افزار توسط متدهای مهندسی جایگزین شود.
3. بایستی برنامه نویسی مبتنی برنحو یا گرامر (Syntax ) با اسمبل کردن یا ترکیب نمودن مولفه های مبتنی بر واسطها و معانی ( Semantic ) جایگزین گردد. بدیهی است تا زمانیکه ما نتوانیم روشهای رسمی و سیستماتیکی به سمت توسعه نرم افزار مبتنی بر مولفه را کشف کنیم این چنین تغییرات اساسی رخ نخواهد داد. مولفه های نرم افزاری در روشهای مختلف از نقطه نظر ساده تا مشکل تعریف شده است .
چهار تعریف از مولفه های نرم افزاری اولین بار در کارگاه بین المللی CBSE در آوریل 1998 به صورتهای زیر ارائه شده است :
o مولفه یک قطعه تقریبا مستقل و قابل تعویض یک سیستم است که وظیفه مشخصی را در زمینه ای که معماری آن به خوبی تعریف شده است را انجام می دهد ( Philippe Krutchen Rational Software ) .
o مولفه های نرم افزاری زمان اجرا بسته ای از یک یا چندین برنامه های مدیریت شده به عنوان یک واحـد می باشند که بـه طـور پویا می تواند به برنامـه مقید (متصل) شود. و از طـریق واسطـهای مـستند شده که در زمان اجـرا کشف می شود در دستـرس قـرار مـی گیرد.( Gartner Group ).
o مولفه های نرم افزاری واحدی از ترکیب واسطهای معین و وابستگیهای مفهومی صریح و روشن می باشند که به صورت قراردادی مشخص شده اند . مولفه نرم افزاری می تواند به طور مستقل توسعه یابد.(Clemens Szyperski) .
o مولفه تجاری ،پیاده سازی نرم افزاری یک فرآیند تجاری یا راه کار تجاری را ارائه می کند که شامل شرح ، پیاده سازی و توسعه نرم افزار می باشند که به عنوان یک قطعه قابل استفاده مجدد از یک سیستم بزرگتر می باشد . ( Wojtek Kozaczynski SSA ) .
در نهایت یک تعریف کلی از یک مولفه به شرح زیر می باشد :
" مولفه های نرم افزاری یک قطعه جامع و قابل توسعه می باشدکه عملکردش به خوبی تعریف شده است و از طریق واسطها با دیگر مولفه ها می تواند ترکیب شده و با همدیگر در تعامل باشند ."
مولفه های سخت افزاری و نرم افزاری :
در طول 50 سال گذشته تکنولوژی تولید سخت افزار کامپیوتری اساسا تغییر کرده است تراشه های مجتمع (IC) و مدارهای مجتمع با مقیاس زیاد (VLSI )، بلوکهای سازنده اساسی هستند که سریعترند و هزینه کمتری را در بر دارند .در مهندسی سخت افزار روش مبتنی بر مولفه به طور گسترده در ساخت قطعات جدید مورد استفاده قرار گرفته است ( یعنی استفاده از قطعات سخت افزاری از پیش ساخته شده ).
مهندسین سخت افزار نیاز دارند که بازدهی طراحی را با مونتاژ نمودن بلوکهای قابل استفاده مجدد از قبیل : Microprocessor ، DSP ، on chips encryption /decrepti و غیره بدست بیاید. روش مبتنی بر مولفه ، کیفیت و قابلیت اعتماد محصولاتی که هر کدام از مولفه هایش به خوبی تست شده است را افزایش می دهد . هر چند که ، تغییر چشمگیری در تولیدات نرم افزاری وجود نداشت . هر مـحصول نرم افزاری جـدید نیاز به طـراحی داشت و برنامه نویسان کد منبع را خط به خط می نوشتند تا اینکه برنامه تمام شود . پیشرفت بزرگ توسعه نرم افزار در طول 50 سال گذشته از برنامه نویسی خط به خط با استفاده از کد ماشین تا برنامه نویسی خط به خط با استفاده از زبانهای برنامه نویسی سطح بالا صورت گرفت . زبانهای برنامه نویسی سطح بالاچندین مزایای مهم را عرضه کرد که بازدهی برنامه نویسی را در نتیجه گرد آوری تکنیکها ( اصلاح کرد ) پیشرفت داد .
چه تفاوتهایی بین مولفه های سخت افزاری و نرم افزاری وجود دارد ؟
منطقا ، سخت افزار و نرم افزار کامپیوتر در قابلیت محاسبه شان مشابه هم هستند . بدین معنی که هر عملی که توسط نرم افزار انجام می شود می تواند به طور مستقیم با سخت افزار ساخته شود. از طرف دیگر هر دستوری که توسط سخت افزار اجرا می شود ، می تواند توسط نرم افزار شبیه سازی شود . به طور نمونه مولفه های سخت افزاری IC ها هستند که در برگیرنده مدارهای مجتمع با مقیاس متـوسط (MSI ) ، مدارهای مـجتمع با مـقیاس زیاد ( LSI) و مـدارهای مجتمع با مقیاس خیلی زیاد ( VLSI ) هستند. اینها مولفه های مفیدی هستند به خاطر اینکه مدارهای منطقی توابع ورودی و خروجی شان به خوبی تعریف شده و نیازی ندارند که به طور مستقیم با دنیای بیرون در تعامل باشند و ارتباط بین مولفه های سخت افزاری توسط گذرگاه سیستم فراهم شده است. در مورد مولفه های نرم افزاری برخی مشکلات وجود دارد ، یکی اینکه نمی توان این مولفه ها را به سادگی توابع ورودی و خروجی بیان کرد و دیگر اینکه برخی از مولفه های نرم افزاری بایستی با کاربران دیگر وسیله های فیزیکی که در محیط موجود هستند تعامل داشته باشد . به همین دلیل آنها را نمی توان به سادگی سخت افزار تلقی نمود. مهم است ذکر این نکته که مدلهای کامپیوتری که به خوبی تعریف شده اند وجود دارند مثل جبر بولی برای طراحی مدار در ساختن مولفه های سخت افزاری. جبر بولی روش مقرون به صرفه ای برای توصیف توابع مداربندی دیجیتالی فراهم می کند .یک تابع مطلوب داده می شود ، جبر بولی می تواند برای توسعه ، پیاده سازی ساده شده ای را که از طریق قوانین جبری عمل می کند ، بکاربندد.
مدل کامپیوتری برای مهندسی نرم افزار مبتنی بر مولفه چیست؟
بدیهی است که یک مدل کامپیوتری برای توسعه نرم افزار مبتنی بر مولفه مشابه جبر بولی که برای مهندسی سخت افزار مبتنی بر مولفه استفاده می شود مورد نیاز است . منطق (Hoar) هوار یک قاعده ای را برای بازبینی صحت برنامه ، مبتنی بر ساختار برنامه ، پیش شرطها و پس شرطها ارائه می کند .همانطور که ما از زبانهای برنامه نویسی خط به خط به سمت توسعه مبتنی بر مولفه حرکت می کنیم یک قاعده ای را برای بدست آوردن رفتار ( Behavior ) مولفه ها و اطمینان از صحت تعاملات مولفه ها نیاز داریم.
تفاوت مولفه های سخت افزاری و نرم افزاری به دو دلیل مقید و محدود شده اند :
ü اول اینکه برخلاف تراشه های حافظه که به طور فیزیکی در هر زمان تولید می شوند تولید مولفه های نرم افزاری با نسخه های متفاوت ، تکثیر (نسخه برداری ) دقیق در هر زمان است .
ü دوم اینکه محیط مولفه های نرم افزاری به طور محتمل برای هر استقرار ( نصب ) جدید تغییر می کند .
بالاخره جنبه موقتی شبیه فرسودگی یا زوال فیزیکی در مولفه های نرم افزاری ملاحظه نمی شود . این تفاوت خیلی مهم است مخصوصا زمانیکه ما مسئله تضمین کیفیت را برای توسعه مبتنی بر مولفه در نظر می گیریم .
برای نمونه ، قابلیت اعتماد مولفه های سخت افزاری تابع چهار عامل زیر می باشد :
1. خطا در طراحی
2. خطا در تولید
3. نقص فیزیکی
4. فرسودگی فیزیکی و شیمیایی
قابلیت اعتماد مولفه های نرم افزار فقط تابع یک عامل هست: آن هم خطا در طراحی (برای هر مولفه نرم افزاری پیاده سازی آن به عنوان قسمتی از طراحی در نظر گرفته می شود) به خاطر اینکه نرم افزار فرسوده نمی شود.
چرا برنامه نویسی مبتنی بر مولفه اهمیت دارد؟
صنایعی که به طور کامل رشد کرده اند و یا مهندسین منضبط چگونه با توسعه سیستمهای پیچیده برخورد می کنند؟برای نمونه صنایع خودکار، ماشینهای خیلی پیچیده را با استفاده از مولفه ها ( با هر اندازه ای از خیلی کوچک مثل پیچ تا زیر سیستمهای پیچیده مثل موتورها و جعبه دنده ها و ... ) می سازند. کارخانه های خودکار مدرن ، به عنوان ایجادکنندگان سیستم مشهور شده اند تا تولیدکنندگان سیستم. به خاطر اینکه صنایع و مهندسین منضبط با استفاده موثر از مولفه ها ( که با تنظیم استانداردها که قابلیت همکاری آنها را تعریف می کنند) تحت تاثیر قرار گرفته اند. صنایع، استانداردهای مولفه ای را برای قطعات قابل تعویض و ابزارهای اسمبلی ساده را ، برای سرعت بخشیدن به توسعه محصولات پیچیده تر پذیرفته اند این تحولات انقلاب صنعتی است که تغییر چشمگیری در تولیدات صورت گرفته است ، در صنعت نرم افزاری محصولات هنوز هم بیشتر دستی ( مصنوع دست) هستند. بازدهی ( بهره وری ) پایین است ،کیفیت تضمین شده نیست ، پروژه ها دارای خطا هستند (مثلا در انتقال اطلاعات دارای خطا هستند که این خطا در مواقعی رخ می دهد که وسیله دریافت کننده داده ها قادر به مدیریت یا کاربرد اطلاعات با همان سرعت ارسال نیست). این چنین پدیده یا عارضه بحران نرم افزاری شناخته شد.
پیامد اصلی مهندسی نرم افزار متضمن این است که چگونه نرم افزاری کارآمد و با کیفیت ایجاد شود . مولفه ها در بسیاری موارد توسط مهندسین نرم افزار به عنوان یک تکنولوژی مهم برای مقابله با بحران نرم افزاری استفاده می شوند .انقلاب صنعتی نرم افزار از طریق مهندسی نرم افزار مبتنی بر مولفه ها رخ داده است.
چندین دلیل مهم وجود دارد که چرا برنامه نویسی مبتنی بر مولفه اهمیت دارند. این نوع برنامه نویـسی، سطح بالاتـری ازانتزاع را فراهـم می کند. تعـداد زیادی از مـولفـه های کتـابـخانه ای قابل استفاده مـجدد وجود دارند که به تـوسعه برنامه های کاربردی در قلمروهای مختلف کمک می کند.
سه هدف اصلی از برنامه نویسی مبتنی بر مولفه عبارتند از :
*غلبه بر پیچیدگی * مدیریت تغییر * قابلیت استفاده مجدد.
غلبه بر پیچیدگی: ما در یک دنیای پیچیده ای از عصر انفجار اطلاعات زندگی می کنیم .طبق تحقیقات انجام گرفته توسط تیمی در دانشگاه برکلی : دنیا ما بین یک و دو اگزا بایت اطلاعات بی نظیر در هر سال تولید می کند که تقریبا 250 مگا بایت برای هر مرد ، زن و بچه در روی زمین است . هر اگزا بایت یک بیلییون گیگا بایت است . در علم کامپیوتر اندازه پیچیدگی نرم افزار به طور قابل توجه در حال افزایش است .. برنامه نویسی مبتنی بر مولفه یک روش موثر با نام تقسیم و غلبه را برای برخورد با پیچیدگی نرم افزار فراهم می کند.
مدیریت تغییر:تغییرات در مهندسی نرم افزار ذاتی است ، تغییر خواسته های کاربران ، تغییر مشخصه ها ، تغییر کارکنان ، تغییر بودجه ، تغییر تکنولوژی و غیره.یکی از اهداف اساسی مهندسی نرم افزار تاکیید بر اهمیت مدیریت تغییر می باشد.برنامه نویسی مبتنی بر مولفه یک روش موثر به نام برنامه ریزی برای تغییر و ساخت طراحی را برای برخورد با تغییرات در مهندسی نرم افزار فراهم آورده است . مولفه ها به آسانی با خواسته های جدید و در حال تغییر وفق داده می شوند . مهندسین نرم افزار توافـق کرده اند که روش بـهتر در برخـورد با تغییرات دائمی در ساخت سیستمها ، مولفه های قابل استفاده مجدد می باشند.
قابلیت استفاده مجدد: نرم افزار با قابلیت استفاده مجدد باعث می شود که طراحی و پیاده سازی فقط یکبار انجام گیرد و در زمینه ها و قلمرو های متفاوتی بارها و بارها مورد استفاده قرار گیرد که قابلیت استفاده مجدد باعث افزایش بازدهی ، بکارگیری مفید از راه حلهای ارائه شده ، اصلاح کیفیت و غیره می باشد. سطوح مختلفی از قابلیت استفاده مجدد نرم افزار وجود دارد برای نمونه کپی کردن کد منبع ، که پایین ترین سطح از قابلیت استفاده مجدد می باشد. کتابخانه ای از توابع رویه ای بهتر از کپی کد منـبع می باشد اما توسعـه پذیر نیست. کتـابخانه ای از کلاسها بهتر از دو حالت قبلی است و توسعه پذیـراست. قبل از اینکـه کـلاسها بتوانند به طـور مـجدد اسـتفاده شوند نیاز به درک بیشتری دارند .علاوه بر این استفاده مـجدد ازکلاسها فقـط استفاده مـجدد جعبه سیاه را پشتیبانی می کند .اگر داخل کلاسها تغییر کنند کاربران تحت تاثیر قرار خواهند گرفت . برای نمونه در زبان برنامه نویسی شی گرا شبیه C++ یا جاوا ، کلاسهای مشتق شده برای پیاده سازی کلاس پایه با یکدیگر ترکیب می شوند . تغییرات در هر کدام از کلاسهای پایه به طور سلسله مراتبی توسط کلاسهای مشتق شده به ارث برده می شود. این سطح از استفاده مجدد مخصوص یک زبان است نه استفاده مجدد در مقابل دیگر زبانها . برنامه نویسی مبتنی بر مولفه سطح بالایی از استفاده مجدد نرم افزار را پشتیبانی می کند. به خاطر اینکه در برگیرنده انواع گوناگونی از استفاده مجدد می باشد ، از قبیل :
* جعبه سفید * جعبه خاکستری * جعبه سیاه .
جعبه سفید ( White Box ) : بدین معنی است که منبع (Source ) یک مولفه نرم افزاری قابل دسترس می باشد و می تواند مطالعه شود ، استفاده مجدد گردد ، وفق داده شود یا تغییر یابد.
جعبه سیاه ( Black Box ) : مبتنی بر اصل مخفی نمودن اطلاعات می باشد . این واسط سرویسهایی که یک Client ممکن است از یک مولفه در خواست کند را مشخص می کند . مولفه پیاده سازی واسطی که Client بر آن تاکید دارد را فراهم می کند ، از آنجاییکه واسطها بدون تغییر باقی می مانند مولفه ها می توانند به طور داخلی تغییر کنند بدون اینکه کاربر را تحت تاثیر قرار دهد .
جعبه خاکستری (Gray Box ) : چیزی ما بین جعبه سفید و جعبه سیاه می باشد.
همانگونه که اندازه و پیجیدگی سیستمهای نرم افزاری رشد می کنند شناسایی و مدیریت مناسب اتصالات ما بین قطعه هایی از سیستم نیز اهمیت دارد. برنامه نویسی مبتنی بر مولفه یک راه حل قابل کنترل برای برخورد با پیچیدگی سیستمها ، تغییرات دائمی سیستمها و مشکلات استفاده مجدد از نرم افزار را ارائه می کند. امروزه COP نمونه عملی برای توسعه سیستمهای نرم افزاری بزرگ می باشد. برای مثال : برنامه های کاربردی توزیع شده در مقیاس موسسه اقتصادی ، برنامه های کاربردی تحت وب و خدمات وب.
http://barnamenevis.org
آخرین محصولات
|
|
|
||||||
|
|
|
||||||
|
|
|
مقالات
برنامه نویسی و پایگاه های داده نرم افزارهای تحت وب نرم افزارهای کامپیوتر موتورهای جستجو و بهینه سازی سایت شبکه ، سرور و میزبانی وب سخت افزار و قطعات کامپیوتر گرافیک ، انیمیشن و تدوین وسایل صوتی و تصویری امنیت ، هک ، کرک اینترنت آموزش ها لینک ها تستاخبار
اخبار دنیای رایانه در ایران اخبار دنیای رایانه در جهان اخبار اینترنت در جهان اخبار اینترنت در ایران اخبار امنیت و هک وب سایت های ایرانیآخرین محصولات
|
|
ویدئو پروژکتور اپسون Epson EB-445Wi
قیمت: 1 ﷼ |
|
|
تدی Teddy
قیمت: 1 ﷼ |
|
|
پاندا Panda
قیمت: 1 ﷼ |
|
|
موش Mouse
قیمت: 1 ﷼ |
|
|
ببر سیاه Black Panther
قیمت: 1 ﷼ |
| محصولات جدید | |
ورود كاربر
آمار
بازدید كننده: 971723رأی گیری
تبادل لینک فقط با پیج رنک 4 و 5: پنل اس ام اس | ایران تجارت | موبایل | بهترین سایت تفریحی دنیا | دانلود | ایران سیتی | دانلود | آگهی رایگان شیراز تجارت | پرتال آی تی مگ | دانلود کامل | آرشیو فیلم های آموزش کامپیوتر | دانلود رایگان | مقالات دانشجویی | فروشگاه اینترنتی | سایت تفریحی دیف دیفی | دانلود پروژه و نرم افزار | سایت فرهنگی سیناکو | پرشین رکس | عکس | سایت درج آگهی و تبلیغات |
منتظر برای تایید: عکس |



0 نظر
هیچ نظری وجود ندارد. اولین نفر برای نظر دهی به این مقاله باشید!