PDA

View Full Version : مقاله: مهندسی نرم افزار مبتنی بر مولفه



behrouzlo
سه شنبه 19 شهریور 1387, 18:56 عصر
مولفه چیست ؟
مهندسی نرم افزار پیشرفت زیادی در طول 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. فرسودگی فیزیکی و شیمیایی

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

behrouzlo
پنج شنبه 21 شهریور 1387, 13:37 عصر
چرا برنامه نویسی مبتنی بر مولفه اهمیت دارد؟
صنایعی که به طور کامل رشد کرده اند و یا مهندسین منضبط چگونه با توسعه سیستمهای پیچیده برخورد می کنند؟برای نمونه صنایع خودکار، ماشینهای خیلی پیچیده را با استفاده از مولفه ها ( با هر اندازه ای از خیلی کوچک مثل پیچ تا زیر سیستمهای پیچیده مثل موتورها و جعبه دنده ها و ... ) می سازند. کارخانه های خودکار مدرن ، به عنوان ایجادکنندگان سیستم مشهور شده اند تا تولیدکنندگان سیستم. به خاطر اینکه صنایع و مهندسین منضبط با استفاده موثر از مولفه ها ( که با تنظیم استانداردها که قابلیت همکاری آنها را تعریف می کنند) تحت تاثیر قرار گرفته اند. صنایع، استانداردهای مولفه ای را برای قطعات قابل تعویض و ابزارهای اسمبلی ساده را ، برای سرعت بخشیدن به توسعه محصولات پیچیده تر پذیرفته اند این تحولات انقلاب صنعتی است که تغییر چشمگیری در تولیدات صورت گرفته است ، در صنعت نرم افزاری محصولات هنوز هم بیشتر دستی ( مصنوع دست) هستند. بازدهی ( بهره وری ) پایین است ،کیفیت تضمین شده نیست ، پروژه ها دارای خطا هستند (مثلا در انتقال اطلاعات دارای خطا هستند که این خطا در مواقعی رخ می دهد که وسیله دریافت کننده داده ها قادر به مدیریت یا کاربرد اطلاعات با همان سرعت ارسال نیست). این چنین پدیده یا عارضه بحران نرم افزاری شناخته شد.

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

چندین دلیل مهم وجود دارد که چرا برنامه نویسی مبتنی بر مولفه اهمیت دارند. این نوع برنامه نویـسی، سطح بالاتـری ازانتزاع را فراهـم می کند. تعـداد زیادی از مـولفـه های کتـابـخانه ای قابل استفاده مـجدد وجود دارند که به تـوسعه برنامه های کاربردی در قلمروهای مختلف کمک می کند.

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

*غلبه بر پیچیدگی * مدیریت تغییر * قابلیت استفاده مجدد.

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

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

قابلیت استفاده مجدد: نرم افزار با قابلیت استفاده مجدد باعث می شود که طراحی و پیاده سازی فقط یکبار انجام گیرد و در زمینه ها و قلمرو های متفاوتی بارها و بارها مورد استفاده قرار گیرد که قابلیت استفاده مجدد باعث افزایش بازدهی ، بکارگیری مفید از راه حلهای ارائه شده ، اصلاح کیفیت و غیره می باشد. سطوح مختلفی از قابلیت استفاده مجدد نرم افزار وجود دارد برای نمونه کپی کردن کد منبع ، که پایین ترین سطح از قابلیت استفاده مجدد می باشد. کتابخانه ای از توابع رویه ای بهتر از کپی کد منـبع می باشد اما توسعـه پذیر نیست. کتـابخانه ای از کلاسها بهتر از دو حالت قبلی است و توسعه پذیـراست. قبل از اینکـه کـلاسها بتوانند به طـور مـجدد اسـتفاده شوند نیاز به درک بیشتری دارند .علاوه بر این استفاده مـجدد ازکلاسها فقـط استفاده مـجدد جعبه سیاه را پشتیبانی می کند .اگر داخل کلاسها تغییر کنند کاربران تحت تاثیر قرار خواهند گرفت . برای نمونه در زبان برنامه نویسی شی گرا شبیه C++ یا جاوا ، کلاسهای مشتق شده برای پیاده سازی کلاس پایه با یکدیگر ترکیب می شوند . تغییرات در هر کدام از کلاسهای پایه به طور سلسله مراتبی توسط کلاسهای مشتق شده به ارث برده می شود. این سطح از استفاده مجدد مخصوص یک زبان است نه استفاده مجدد در مقابل دیگر زبانها . برنامه نویسی مبتنی بر مولفه سطح بالایی از استفاده مجدد نرم افزار را پشتیبانی می کند. به خاطر اینکه در برگیرنده انواع گوناگونی از استفاده مجدد می باشد ، از قبیل :

* جعبه سفید * جعبه خاکستری * جعبه سیاه .

جعبه سفید ( White Box ) : بدین معنی است که منبع (Source ) یک مولفه نرم افزاری قابل دسترس می باشد و می تواند مطالعه شود ، استفاده مجدد گردد ، وفق داده شود یا تغییر یابد.



جعبه سیاه ( Black Box ) : مبتنی بر اصل مخفی نمودن اطلاعات می باشد . این واسط سرویسهایی که یک Client ممکن است از یک مولفه در خواست کند را مشخص می کند . مولفه پیاده سازی واسطی که Client بر آن تاکید دارد را فراهم می کند ، از آنجاییکه واسطها بدون تغییر باقی می مانند مولفه ها می توانند به طور داخلی تغییر کنند بدون اینکه کاربر را تحت تاثیر قرار دهد .

جعبه خاکستری (Gray Box ) : چیزی ما بین جعبه سفید و جعبه سیاه می باشد.

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

behrouzlo
دوشنبه 25 شهریور 1387, 11:30 صبح
در نوشته های قبلی در مورد اهمیت برنامه نویسی مبتنی بر مولفه وتعاریف مربوط به مولفه آشنا شدیم در این قسمت هم می خواهیم در مورد تفاوتهای بین انواع برنامه نویسی ها و مهندسی نرم افزار مبتنی بر مولفه اشنایی مختصری داشته باشیم :
تفاوتهای COP با OOP :
COP مبتنی بر واسط می باشد ، در حالیکه OOP مبتنی بر اشیاست.
COP تکنولوژی بسته بندی و توزیع می باشد ؛ در حالیکه OOP یک تکنولوژی پیاده سازی محسوب می گردد.
COP از قابلیت استفاده مجدد در سطح بالا پشتیبانی می کند ، در حالیکه OOP از قابلیت استفاده مجدد در سطح پایین پشتیبانی می کند.
COP ، در اصل می تواند در هر زبانی نوشته شود ، در حالیکه OOP محدود به زبانهای شی گرا می باشد.
در COP مولفه ها ارتباطات ضعیفی (Loosely Coupled) دارند در حالیکه در OOP اشیاء وابسته به همـدیگر از طریق پیاده سازی وراثت (ارث بری ) ، دارای ارتباطات محکم ( Loosely Coupled) می باشند.
COP ، از واسطهای چند گانه و طراحی مبتنی بر واسط پشتیبانی می کند ، در حالیکه OOP ارتباطات واضحی از واسطها ی میان ابرکلاس و زیر کلاسها را فراهم نمی کند.
COP از اتصـالات و اکتشافات پویا ( اتـصال در زمان اجرا ) پشتیبانی می کند، در حالیکه OOPپشتیبانی محدودی از مـکانیزمهای ترکیب زمان اجرا و بازیـابی اشیا را فـراهم می آورد .
COP مکانیزمهای بهتری برای ترکیب فراهم می کند ، در حالیکه OOP شکلهای محدودی از اتصالات را از طریق فراخوانی فراهم می آورد .
COP از خدمات امنیتی ، تراکنشها و غیره در سطح بالایی پشتیبانی می کند ، در حالیکه OOP مجموعه محدودی از خدمات امنیتی ، تراکنشها و غیره را پشتیبانی می کند.
در COP ، مولفه ها با در نظر گرفتن قوانین اساسی Framework (چهارچوب ) مولفه ها ، طراحی می شوند در حالیکه OOP با در نظر گرفتن اهداف شیء گرایی طراحی می شوند .
جدول زیر بحث مختصری از شباهتها و تفاوتهای ما بین برنامه نویسی ساختیافته ، شیء گرا و مولفه ای را ارائه کرده است.
(جدول را می توانید از این لینک (http://www.ooa.blogfa.com/post-93.aspx)مشاهده کنید.)
قابلیت ترکیب در برنامه نویسی ساختیافته خیلی پایین است در شیء گرا بالاست و در مولفه ای خیلی بالاست . دو واحد پیاده سازی مختلف در برنامه نویسی ساختیافته هرگز با همدیگر قابل تعویض نیستند ، در برنامه نویسی شیء گرا دو شی متفاوت پیاده سازی شده که ویژگیهای مشابه داشته باشند با همدیگر قابل تعویض هستند در حالیکه در برنامه نویسی مولفه ای ، مولفه های متفاوت با ویژگیهای مختلف با همدیگر قابل تعویض هستند .


SP : Structured Programming
OOP : Object Oriented Programming
COP : Component Oriented Programming

مهندسی نرم افزار مبتنی بر مولفه :
برخی اوقات COP (Component Oriented Programming ) و CBSE (Component Based Software Engineering ) در نوشتار با همدیگر اشتباه گرفته می شوند . هر چند که CBSE یک مفهوم کلی است در صورتیکه COP فقط یه عنوان قسمتی از CBSE به کار برده می شود.
CBSE= COA+COD+COP+COM

COA : Component Oriented Analysis
COD : Component Oriented Design
COP : Component Oriented Programming
COM : Component Oriented Management
COA ، COD ، COM به ترتیب نشان دهنده تحلیل مبتنی بر مولفه ، طراحی مبتنی بر مولفه و مدیریت مبتنی بر مولفه می باشند . CBSE ، به تسریع کردن توسعه نرم افزار و کاهش دادن هزینه سیستم با ترکیب نمودن مولفه های نرم افزاری از پیش ساخته شده تاکید دارد . طراحی ، توسعه و نگهداری مولفه ها ، برای استفاده مجدد فرآیند پیچیده ای است . CBSE شیوه های مهندسی نرم افزار و تکنیکهای مختلف نرم افزار را پوشش می دهد چه از نظر عملی و چه از دیدگاه تئوریک که هنوز هم به طور کامل تعریف و توسعه نیافته اند.
در مهندسی نرم افزار سنتی فرآیند توسعه نرم افزار در برگیرنده فعالیتها یا مراحل متوالی بود که عبارتنـد از : تحلیل ، طراحی ، برنامه نویسی ، تست و مجتمع سازی ( یکپارچه سازی ) . در CBSE ، مراحل اصلی توسعه ، تحلیل ، تولید و آماده سازی و اسمبل کردن می باشند. که در برنامه نویسی سنتی فعالیتهای تست و مجتمع سازی ( یکپارچه سازی ) جایگزین فعالیتهای تولید و آماده سازی مولفه و اسمبل کردن مولفه در CBSE شده است .
دو نوع اصلی از فعالیتها در CBSE وجود دارند :
DF ( Developing For reuse) : توسعه برای استفاده مجدد.
DW ( Developing Withr reuse) : توسعه با استفاده مجدد.
برای DF ، فعالیت توسعه می تواند با دنبال نمودن رویکردها یا دیدگاههای مهندسی نرم افزار سنتی تاکید بر استانداردهای مولفه ای سازماندهی گردد. برای نمونه هر مولفه ارائه کننده در برگیرنده دو نوع واسط می باشد :
واسط تامیین کننده : که خدمات ارائه شده توسط مولفه را تعریف می کند.
واسط مورد نیاز (ضروری ): که مشخص می کند سیستم استفاده کننده از مولفه ، چه خدماتی را باید ارائه کند.
اگر این واسطها مهیا نشوند ،مولفه کار نخواهد کرد . برای DW ، جستجو و بازیابی مولفه نرم افزار ، فعالیتهای تعیین کننده ای برای ساختن برنامه کاربردی دارند.
از دیدگاه فرآیند مهندسی نرم افزار ، مولفه ها می توانند به 5 فرم مختلف طبقه بندی شوند ( یعنی مولفه در طی گذراندن 5 مرحله حاصل می شود ):
1. مشخصه (ویژگی ) مولفه : این فرم مشخصه (ویژگی ) یک واحد نرم افزاری را ارائه میکند که رفتار مجموعه ای از اشیا مولفه ای را توصیف می کند و یک واحد پیاده سازی را تعریف می کند. رفتار به عنوان یک مجموعه از واسطها تعریف می شود مشخصات مولفه نهایتا در غالب پیاده سازی مولفه خواهد بود.
2. واسط مولفه : فرم واسط تعریفی از مجموعه رفتارهای مولفه را ارائه می کند که می توانند توسط اشیا مولفه ای ارائه شوند.
3. پیاده سازی مولفه : پیاده سازی مـولفه شکـلی از مـشخصه (ویژگی ) مولفه می باشد. این بدین معنی است که می توانند به طور مستقل جایگزین دیگر مولفه ها شده و نصب گردد. آن بدین معنی نیست که مولفه مستقل از دیگر مولفه هاست .بلکه ممکن است وابستگیهای زیادی داشته باشد.
4. مولفه نصب شده : فرم نصب شده که یک نسخه نصب شده یا توسعه یافته از پیاده سازی مولفه می باشد کـه با مستقر کـردن آن در مـحیط اجـرایی تـوسعـه می یابد.استقرار مولفه در محیط اجرائیش ، محیط اجرایی را قادر به شناسایی مولفه نصب شده برای استفاده از آن می کند .
5. شی مولفه ای : نمونه ای از مولفه نصب شده می باشد . مشابه OOP یک شی مولفه در COP یک شی با داده ها و مـشخصات ( ویـژگیها ی) منحصر به فرد می باشد ، که رفتار پیاده سازی شده را اجرا می کند یک مولفه نصب شده ممکن است چند شی مولفـه ای داشته باشد کـه نیازمـند ویـژگیهای صـریح و روشن می باشد

com-daneshjo
دوشنبه 27 مهر 1394, 01:23 صبح
میشه یه مقاله معتبر که شامل مباحث بالا باشه معرفی کنید؟

CodeforLife
پنج شنبه 28 آبان 1394, 19:12 عصر
سلام دوست عزیز پیشنهاد میکنم برای درک بهتر مفاهیم مهندسی نرم افزار به مطالعه کتاب پرسمن رجوع کنید .