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



تفاوتهای 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 با در نظر گرفتن اهداف شیء گرایی طراحی می شوند .
جدول زیر بحث مختصری از شباهتها و تفاوتهای ما بین برنامه نویسی ساختیافته ، شیء گرا و مولفه ای را ارائه کرده است.


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



قابلیتها


COP



OOP



SP



تقسیم و غلبه


· مدیریت پیچیدگی


· تقسیم کردن یک مسئله بزرگ به بخشهای کوچکتر












یکپارچگی داده و تابع


· یک نهاد نرم افزاری ، داده ها و عملیاتی که بر روی داده ها انجام می گیرد را ترکیب می کند.


· بهبود دادن انسجام یا پیوستگی ( cohesion )









-


کپسوله سازی



· کاربر یک نهاد نرم افزاری ، از چگونگی ذخیره داده ها و پیاده سازی توابع اطلاعی ندارد.



· کاستن اتصالات ( پیوستگی)








-


مشخصه



· هر نهاد نرم افزاری یک مشخصه (ویژگی ) منحصر به فرد دارد .








-


واسط



· وابستگی بین مشخصات را نشان می دهد.



· مشخصه (ویژگی) مولفه را به واسطها تقسیم می کند



· کاستن وابستگیهای داخلی مولفه ای





-



-


پیکربندی



· یک واحد انتزاعی که به طور مستقل می تواند توسعه یابد.





-



-