پایان نامه ارزیابی قابلیت اطمینان معماری خط تولید نرم افزار

تعداد صفحات: 102 فرمت فایل: word کد فایل: 10001974
سال: 1387 مقطع: مشخص نشده دسته بندی: پایان نامه مهندسی کامپیوتر
قیمت قدیم:۱۶,۸۰۰ تومان
قیمت: ۱۴,۷۰۰ تومان
دانلود فایل
  • خلاصه
  • فهرست و منابع
  • خلاصه پایان نامه ارزیابی قابلیت اطمینان معماری خط تولید نرم افزار

    پایان نامه کارشناسی ارشد مهندسی کامپیوتر -   

    گرایش نرم افزار  

    چکیده

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

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

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

    کلمات کلیدی: 

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

     فصل اول

     

     روش تحقیق

    1- 1  مقدمه

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

    در مباحث، طراحی، مدل سازی و ارزیابی خانواده محصولات نرم افزاری، تمام مفاهیم و روشهایی که سابقاً در مورد تک محصول نرم افزاری استفاده می شدند بایستی گسترش یابند تا بتوانند خانواده محصولات را دربر بگیرند. در توسعه خانواده محصولات نیازمند یک روش تکاملی توسعه هستیم که این روش تکاملی، خود  دو بخش اصلی دارد: مهندسی  خط تولید و مهندسی سیستم های نرم افزاری[1]. 

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

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

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

      (تصاویر در فایل اصلی موجود است)

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

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

     یک معمار ممکن است معماری های مختلفی برای اعضای یک خانواده محصول پیشنهاد دهد، نکته ای که بایستی به آن توجه نمود چگونگی انتخاب معماری مناسب درمیان پیکربندی های مختلف مولفه ها به منظور دستیابی به محصولاتی با کیفیت بالاست. بدین منظور نیاز است بتوانیم، قبل از پیاده سازی معماری، رفتار محصولات یک خانواده را با هزینه ای کم و استفاده مجدد بالا بررسی نماییم. درست است که یکی از اهداف مهم در بررسی کیفیت معماری، بررسی میزان دستیابی معماری به صفات کیفی همچون قابلیت اطمینان، کارآیی و امنیت است اما درزمانی که به جای تک محصول با خانواده ای از محصولات روبرو باشیم جنبه هایی همانند هزینه و زمان در ارزیابی، قابلیت استفاده مجدد در ارزیابی و بهره گیری از فراورده های موجود بسیار مهم هستند. بکارگیری روش های موجود ارزیابی معماری که بر پایه تک محصول ارائه شده اند به منظور ارزیابی خانواده محصولات بسیار سخت بوده و علاوه بر هزینه و زمان چشمگیر، با اصول طراحی و ارزیابی خط تولید نرم افزار که تماماً بر اساس استفاده مجدد قرار دارد، متناقض است. با توجه به این نکته در این پایان نامه تلاش می کنیم روشی جایگزین برای ارزیابی صفات کیفی که با اصول و فعالیت های توسعه خانواده محصولات هماهنگ بوده و بر فراورده های تولید شده در توسعه خانواده محصولات قابل اعمال باشند ارائه نماییم. به منظور دستیابی به این هدف در گام آغازین نیاز است که یکی از رویکردهای مدل سازی معماری خط تولید را انتخاب نماییم. تمرکز این تحقیق بر روی روش مدل سازی مبتنی بر مجموعه تغییر[1] [2] قرار دارد که در دانشگاه UCI ارائه شده است. با توجه به مشخصات این روش که در فصل دوم به تفصیل بحث شده است، به منظور ارزیابی قابلیت اطمینان معماری ابتدا به ارزیابی قابلیت اطمینان هر مجموعه تغییر پرداخته، سپس مدل احتمالی خود را برای پوشش ترکیب مجموعه های تغییر که یک محصول را شکل می دهند، بروز رسانی می نماییم. در انتها نیز روش پیشنهادی را به وسیله یک مورد مطالعاتی ارزیابی می کنیم. 

    1- 2  تعریف مسئله 

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

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

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

    به منظور دستیابی به یک  خط تولید نرم افزار  با قابلیت اطمینان مطلوب بایستی از مراحل نخستین توسعه نرم افزار به این ویژگی کیفی توجه کرد. معماری نرم افزار نخستین مرحله ای است که می توان در مورد نیازمندی های کیفی تصمیم گیری نموده و آنها را ارزیابی نمود. به این منظور، در گردش کارهای طراحی معماری نیازمند  روش تحلیل معماری هستیم که به ارزیابی قابلیت اطمینان نرم افزار بپردازد. در طی سالهای اخیر روشهای فراوانی برای ارزیابی قابلیت اطمینان معماری نرم افزار ارائه شده است. با یک دید سطح بالا می توان آنها را به روشهای کیفی و کمی تقسیم بندی نمود. روش های کمی[3] از سال  1970 مورد استفاده قرار گرفته اند. در نگاه دیگر رویکردهای کمی خود به دو دسته روش جعبه سیاه که در ارزیابی خود به ساختار داخلی نرم افزار توجهی ندارند  [1]و[3] و جعبه سفید که مولفه های درونی تشکیل دهنده سیستم را در ارزیابی دخیل می نمایند، تقسیم بندی می شوند. در هر دو دسته دو رویکرد مشخص در ارزیابی ویژگی کیفی قابلیت اطمینان وجود دارد: 

    رویکرد های  مبتی بر حالت[2] و رویکرد های مسیری[3][6]و[5] . در دسته اول به منظور ارزیابی ویژگی کیفی مد نظر با استفاده از احتمالات انتقال کنترل بین مولفه ها به محاسبه قابلیت اطمینان نرم افزار می پردازد.روش های مبتنی بر مسیر به ارزیابی قابلیت اطمینان نرم افزار بر اساس مسیرهای مختلف اجرایی سیستم می پردازند. 

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

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

    در این تحقیق از روش بیزین [7] به منظور ارزیابی قابلیت اطمینان هریک از مولفه های معماری در زمان طراحی معماری استفاده می نماییم و سپس به دنبال ارائه روشی به منظور ارزیابی پیکربندی ها مختلف معماری و تلفیق آن با مدل سازی مبتنی بر مجموعه تغییرات برای ارزیابی معماری خط تولید هستیم. 

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

     

  • فهرست و منابع پایان نامه ارزیابی قابلیت اطمینان معماری خط تولید نرم افزار

    فهرست:

    1  فصل اول: روش تحقیق ..........................................................................................................

    1-1     مقدمه        ........................................................................................................................................................................................ 2

    1-2    تعریف مسئله  ........................................................................................................................................................................................ 5

    1-3    محدوده تحقیق ....................................................................................................................................................................................... 7

    1-4    ساختار پایان نامه .................................................................................................................................................................................... 7 فصل دوم: مروری بر ادبیات موضوع ..................................................................................... 9

    2-1    معماری نرم افزار ..................................................................................................................................................................................... 10

    2-2   ارزیابی معماری ..................................................................................................................................................................................... 14

    2-3   خط تولید نرم افزار ............................................................................................................................................................................... 21

    2-4   معماری خط تولید ................................................................................................................................................................................ 23

    2-5   جمع بندی  ..................................................................................................................................................................................... 29 فصل سوم: مدل سازی معماری با دید قابلیت اطمینان ..................................................... 30

    3- 1 مدل سازی مولفه ها .............................................................................................................................................................................. 31

    3- 2 مدل سازی رابط ها .............................................................................................................................................................................. 38

    3- 3  مدل سازی سبک ها ........................................................................................................................................................................... 52

    3- 4 جمع بندی  ..................................................................................................................................................................................... 55 فصل چهارم: رویکرد پیشنهادی در ارزیابی معماری خط تولید ....................................... 56

    4-1    مبانی رویکرد پیشنهادی ..................................................................................................................................................................... 58

    4-2   ساخت شبکه بیزین .............................................................................................................................................................................. 61

    4-3   بازنمایی عددی شبکه بیزین ............................................................................................................................................................... 65

    4-4   ارزیابی مجموعه های تغییر و معماری خط تولید ................................................................................................................................. 70

    4-5   جمع بندی  ...................................................................................................................................................................................... 71 فصل پنجم: مطالعه موردی ................................................................................................. 72

    5-1    مطالعه موردی: سیستم تصمیم گیری در محیط موبایل ...................................................................................................................... 73

    5-2   تحلیل و مقایسه .................................................................................................................................................................................. 83 فصل ششم: نتیجه گیری و کارهای آینده ......................................................................... 86

    6-1    جمعبندی و نتیجه گیری ...................................................................................................................................................................... 87

    6-2   کارهای آینده  ..................................................................................................................................................................................... 89 منابع .................................................................................................................................... 91

     

                 

     

    منبع:

     

    Gomaa, H., Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. s.l. : Addison Wesley, 2004.

    Hendrickson, S. A. and van der Hoek, A., Modeling Product Line Architectures through Change Sets and Relationships. In Proceedings of the 29th international Conference on Software Engineering. International Conference on Software Engineering. IEEE Computer Society, Washington, DC, pp. 189-19, 2007.

    Shooman, M. L., Structural models for software reliability prediction. In Proceedings of the 2nd international Conference on Software Engineering , San Francisco, California, United States, pp. 13 - 15, 1976.

    Runeson, P. and Regnell, B.,  Derivation of an integrated operational profile and use case model: The Ninth International Symposium on Software Reliability Engineering, IEEE Computer Society, Washington, DC, pp.70, 1998.

    Rome Labs, Methodology for Software Reliability Prediction. McCall, J., et al. Technical Report. RADC-TR-87-171, 1987.

    Goseva-Popstojanova, K., and Trivedi, K.S., Architecture-based approach to reliability assessment of software systems: Perform. Evaluat, 2001.

    Roshandel, R.,  A Bayesian Model for Predicting Reliability of Software Systems at the Architectural Level. USC, PhD Thesis, 2006.

    Eeles,   P.,        What    is          a          software           architecture?, Available         at: http://www.ibm.com/developerworks/rational/library/feb06/eeles/index.html, 2006. 

    IEEE Standards Description: 1471, Available: http://standards.ieee.org/reading/ieee/std_public/description/se/1471-2000_desc.html, 2000.

    Clements, P., Kazman, R., Bass, L., Software Architecture in Practice, Second Edition, Addison Wesley, 2003. 

    Eden, A. H., Kazman, R., Architecture, Design, Implementation, 25th International Conference on Software Engineering, pp. 149-159, 2003. 

    Garlan, D., and Shaw, M.,  An Introduction to Software Architecture, In Ambriola, V. and Tortora, G., eds. Advances in Software Engineering and Knowledge Engineering, Vol. 2, pp. 139, 1993. 

    Allen R., HLA: A Standards Effort as Architectural Style, Proc. of the 2nd Int'l Software Architecture Workshop (ISAW-2), pp. 130-133, 1996. 

    Perry, D. E., and Wolf, A. L., Foundations for the Study of Software Architecture, ACM SIGSOFT Software Engineering Notes, Vol. 17, No. 4, pp. 40-52, 1992. 

    Buschmann, F., Rohnert, H., Schmidt, D.M.S., Pattern Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996. 

    Vibhu S., Kishor S., Quantifying software performance, reliability and security: An architecturebased approach, Elsevier, J. Syst. Softw, pp. 493-509, 2006.

    System Analysis Reference Reliability, Availability and Optimization, Reliasoft publishing 2003.  [18] Laprie,  J. C., and Kanoun K., Handbook of Software Reliability Engineering, M. R. Lyu, Editor, chapter “Software Reliability and System Reliability”, New York, NY, 1996. 

    Swapna, S., Gokhale, S., Analytical Models for Architecture-based Software Reliability Prediction: A Unification Framework. IEEE Transactions on Reliability, pp. 578 – 590, 2006.

    Gokhale, S., and Trivedi, K. S., A time/structure based software reliability model. Annals of Software Engineering, pp. 85 – 121, 1999. 

    Ou Y. and Dugan J. B., Approximate sensitivity analysis for acyclic Markov reliability models. IEEE Trans. on Reliability, pp. 220 – 230, 2003. 

    Cheung, R.C., A user-oriented software reliability model. IEEE Transactions on Software Engineering, pp. 118-125, 1980.

    Wang, W., Mei-Hwa, D.,  Architecture-based software reliability modeling , Elsevier, pp. 141, 2005. 

    Wang, W., Pan, D., Chen, M., Hetrogrnouse Software Reliability Modeling, 13th international Symposium on software Reliability Engineering, IEEE, pp. 41, 2002.

    Rasmussen, J.L.,  and Singh, M., Designing a Security System by Means of Coloured Petri Nets. In Proc. ICATPN, Springer- Verlag, 1996. 

    Hadipour Sanati, H., an Executable model of Softtware Architecture, Thesis, Shahid Beheshti University, 2005. 

    Jensen, K.” Coloured Petri Nets. Basic concepts, analysis methods and practical use. Analysis Methods,”. Springer, Berlin, pp. 145-153, 1994. 

    Huang, C., Liang, W. Object-oriented development of the embedded system based on Petri-nets, Computer Standards & Interfaces on Elsevier, pp. 187-203, 2003. 

    http://www.daimi.au.dk/CPNTools/, CPN Tools.

    Jensen, K., Michael, L., Wells, L., Colored Petri Nets and CPN Tools for modeling and validation of concurrent systems, Springer, pp. 213 – 254, 2007. 

    Roshandel, R., Medvidovic, N., Modeling Multiple Aspects of Software Components, in Proceeding of Workshop on Specification and Verification of Component-Based Systems, ESECFSE03, Helsinki, Finland, pp. 54-62, 2003. 

    Roshandel, R., Medvidovic, N., Multi-View Software Component Modeling for Dependability, in Architecting Dependable Systems II, Lecture Notes in Computer Science. Rogerio de Lemos, Cristina Gacek, Alexander Romanovsky, (Editors.), pp. 286-306, 2004. 

    Liskov, B.H., Wing, J., A Behavioral Notion of Subtyping, ACM Transactions on Programming Languages and Systems, pp. 1811 – 1841, 1994. 

    Yellin, D.M., Strom, R.E., Protocol Specifications and Component Adaptors, ACM Transactions on Programming Languages and Systems, Vol. 19, No. 2, pp. 292 – 333, 1997. 

    Nikunj, R., Medvidovic, N., Phadke, S., Towards a taxonomy of software connectors, Proceedings of the 22nd international conference on Software engineering, Limerick, Ireland, pp. 178-187, 2000. 

    Allen, R., and Garlan, D., Formalizing Architectural Connection. Proceedings of the International Conference on Software Engineering, Sorrento, Italy, pp. 71-80, 1994. 

    Bershad, B. N., Anderson, T. E., Lazowska E. D.,  and Levy H. M., Lightweight Remote Procedure Call. ACM Transactions on Computer Systems, 8[1], 1990. 

    Birrell, A. D., and Nelson, B. J., Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, pp. 345 – 365, 1984. 

    Allen, R.  and Garlan, D. A, Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, pp. 213 – 249, 1997. 

    Oreizy, P., and Medvidovic, N., and Taylor, R.N, Runtime software adaptation: framework, approaches, and styles" , ICSE Companion : Companion of the 30th international conference on Software engineering, isbn:978-1-60558-079-1, pp. 899-91, 2008. 

    Ren, J., Taylor, R., Dourish, P., Redmiles, D., Towards an Architectural Treatment of Software Security: A Connector-Centric Approach. In Proceedings of the Workshop on Software Engineering for Secure Systems, International Conference on Software Engineering, pp. 1-7, 2005. 

    Ducasse, S., Richner, T., Executable connectors: towards reusable design elements, Proceedings of the 6th European conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 483-499, 1997. 

    Hoare, C. A. R., Communicating Sequential Processes. Prentice Hall, 1985. 

    http://www.omg.org/docs/ad/97-08-05.pdf., Rational Partners. UML Notation Guide. Object Management Group document ad/97-08-05. Available from 1997. 

    Aldrich, J., Chambers, C., Notkin, D., ArchJava: connecting software architecture to implementation, Proceedings of the 24th International Conference on Software Engineering, Orlando, Florida, pp. 19-25, 2002. 

    Roshandel, R., and Medvidovic, N., Coupling Static and Dynamic Semantics in an Architecture Description Language, in Proc. Working Conf. Complex and Dynamic Systems Architectures, Brisbane, Australia, pp. 123-133, 2001. 

    Dias, M., Vieira, M., Software Architecture Analysis based on Statechart Semantics. International Workshop on Software Specification and Design, IWSSD-10, San Diego, CA, USA, 2000. 

    Abowd, G, Allen, R., and Garlan, D., Using style to give meaning to software architecture. In Proceeding of SIGSOFT: Foundations of Software Engineering, Software Engineering Notes 118(3), pages 9–20. ACM Press, 1993. 

    Asikainen, T., Soininen, T., et al. A Koala-Based Approach for Modeling and Deploying Configurable Software Product Families. 5th International Workshop on Product-Family Engineering. pp. 225-249, 2003. 

    Ommering, R.v., Linden, F.v.d., et al. The Koala Component Model for Consumer Electronics Software. IEEE Computer. 33(3), pp. 78-85, 2000. 

    Sinnema, M., Deelstra, S., et al. COVAMOF: A Framework for Modeling Variability in Software Product Families. 3rd International Software Product Lines Conference. pp. 197-213, 2004. 

    Svahnberg, M., van Gurp, J., et al. A Taxonomy of Variability Realization Techniques. Software Practice and Experience. 35(8), pp.  705-754, 2005. 

    Cheung, L., Roshandel, R., Medvidovic, N., Golubchik, L., Early prediction of software component reliability, Proceedings of the 30th international conference on Software engineering, Leipzig, Germany, 111-120, 2008. 

    West, M., and Harrison, P.J., Bayesian Forecasting and Dynamic Models, 2nd. Springer-Verlag, New York, 1997. 

    Murphy, K., A Brief Introduction to Graphical Models and Bayesian Networks,

    http://www.cs.ubc.ca/~murphyk/Bayes/bnintro.html

    Heckerman, D., Jordan, M., A Tutorial on Learning with Bayesian Networks. In Learning in Graphical Models, , ed. MIT Press, Cambridge, MA, 1999. 

    Dias, M., Vieira, M., Richardson, D. J., Analyzing Software architecture with Argus I. ICSE2000 - Formal Research Demo, pp. 758 – 761, 2000. 

    Medvidovic, N., and Taylor, R., A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Trans. Software Engineering, 26[1], pp. 70 – 93, 2000. 

    Wagner, F., Schmuki, R., Wagner T., Wolstenholme, P., Modeling Software with Finite State Machines: A Practical Approach, by Taylor & Francis Group, LLC, 2006. 

    Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S., Feature Oriented Domain Analysis (FODA) Feasibility Study, Technical Report CMU/SEI-90-TR-021, 1990.

    Griss, M., Favaro, J., d'Alessandro, M., Integrating Feature Modeling with the RSEB, in: Proceedings of the Fifth International Conference on Software Reuse, pp. 76–85, 1998.

    Riebisch, M., Streitferdt, D., Pashov, I., Modeling Variability for Object-Oriented Product Lines, Workshop Reader of Object-Oriented Technology at ECOOP 2003, Springer, Lecture Notes in Computer Science, vol. 3013, pp. 165–178, 2004. 

    Czarnecki, K., Helsen, S., Eisenecker, U., Formalizing cardinality-based feature models and their specialization, Software Process Improvement and Practice 10 (1), pp. 7–29, 2005. 

    von der Maßen, T., Lichter, H., Modeling Variability by UML Use Case Diagrams, in: Proceedings of the International Workshop on Requirements Engineering for Product Lines 2002, Technical Report ALR-2002-033, 2002. 

    Halmans, G., Pohl, K., Communicating the variability of a software product family to customers, Software and Systems Modeling 2 (1), pp. 15–36, 2003. 

    Hotz, L., Krebs, T., Wolter, K., Nijhuis, J., Deelstra, S., Sinnema, M., MacGregor, J., Configuration in Industrial Product Families –The ConIPF Methodology, IOS Press, ISBN 158603-641-6, 2006. 

    Sinnema, M., Deelstra, S., Nijhuis, J., Bosch, J., COVAMOF: A Framework for Modeling Variability in Software Product Families, in: Proceedings of the Third Software Product Line Conference (SPLC 2004), Springer Verlag Lecture Notes on Computer Science, vol. 3154 (LNCS 3154), pp. 197–213, 2004. 

    Beuche, D., Papajewski, H., Variability management with feature models, Science of Computer Programming 53 (3), pp. 333–352, 2004. 

    Pure Systems website, available from: http://www.pure-systems.com/ [13] C. Krueger, Variation Management for Software Production Lines, in: Proc. of the 2nd International Software Product Line Conference, volume 2379 of LNCS, San Diego, USA, ACM Press, ISBN 3-540-43985-4, , pp. 37–48, 2002.

    Asikainen, T., Soininen, T., Männistö, T., A Koala-Based Approach for Modeling and Deploying Configurable Software Product Families, in: 5th Workshop on Product Family Engineering (PFE-5), Springer Verlag Lecture Notes on Computer Science, vol. 3014 (LNCS 3014), pp. 225– 249, 2004. 

ثبت سفارش
عنوان محصول
قیمت