مقاله معماری نرم افزار


دنلود مقاله و پروژه و پایان نامه دانشجوئی

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

 فهرست

چکیده.. ۱

مقدمه. ۲

معماری نرم افزار چیست ؟ ۳

تعاریف پایه در معماری نرم افزار ۶

الگوهای معماری یا سبکهای معماری. ۷

مدل مرجع.. ۷

معماری مرجع. ۸

دیدگاه های معماری. ۸

دیدگاه Bass  ۹

دیدگاه ۴+۱ ۱۰

دیدگاه‌های دیگر ۱۱

طراحی معماری نرم افزار ۱۱

کارکرد‌های سیستم و معماری نرم‌افزار ۱۲

ویژگی‌های کیفی. ۱۲

ویژگی‌های کیفی سیستم. ۱۵

سناریو‌های ویژگی‌کیفی. ۱۶

ویژگی‌های کیفی کسب و کار ۱۷

ویژگی‌های کیفی معماری. ۱۹

دستیابی به ویژگیهای کیفی. ۲۰

تاکتیکهای معماری. ۲۰

الگوهای معماری. ۲۲

ارتباط تاکتیکها و الگوهای معماری. ۲۵

روشهای طراحی معماری نرم افزار ۲۶

طراحی مبتنی بر ویژگی. ۲۶

طراحی به کمک سبک های معماری مبتنی بر ویژگی. ۲۸

طراحی با ملاحظات اقتصادی با استفاده از روش آنالیز سود هزینه ۳۳

ویژگی کیفی قابلیت تغییر ۴۰

تعریف قابلیت تغییر ۴۰

مشخص نمودن نیاز‌های قابلیت تغییر با استفاده از سناریو‌های کیفی. ۴۱

مدل سازی قابلیت تغییر در سطح معماری نرم افزار ۴۲

تاکتیک‌های قابلیت تغییر ۴۳

ارزیابی قابلیت تغییر ۴۹

ارزیابی نحوه اختصاص وظایف.. ۴۹

ارزیابی وابستگی بین ماژول‌ها ۵۰

انواع وابستگی. ۵۰

نحوه بازنمایی وابستگی‌ها ۵۳

روش Brute-force  ۵۴

استفاده از بستار انتقالی. ۵۵

استفاده از روش‌های بهینه سازی. ۵۶

استفاده از جدول وابستگی‌ها ۵۶

تصمیم گیری نهایی در مورد طراحی ویژگی کیفی قابلیت تغییر ۵۷

مطالعه موردی. ۵۸

تعداد وظایف تغییر یافته در ماژول ثانویه ۶۹

وابستگی نحوی ومعنایی. ۷۲

استفاده از کامپایلر به عنوان واسط. ۷۴

استفاده از سیستم‌عامل به عنوان واسط. ۷۴

خلاصه و نتیجه گیری. ۷۷

منابع….. ۷۸

منابع

[Asundi 01] J. Asundi, R. Kazman, and M. Klein, Using Economic Considerations to Choose Among Architecture  Design Alternatives, Technical Report, CMU/SEI-2001-TR-035, Pittsburgh, Pa.: Software Engineering Institute, CarnegieMellonUniversity, 2001.

[Bachmann 02] F. Bachmann, L. Bass, and M. Klein, Illuminating the Fundamental Contributors to Software Architecture Quality, Technical Report, CMU/SEI-2002-TR-025, Pittsburgh, Pa.: Software Engineering Institute, CarnegieMellonUniversity, 2002.

[Bachmann 03] F. Bachmann, L. Bass, and M. Klein, Deriving Architectural Tactics: A Step Toward Methodical Architectural Design, Technical Report, CMU/SEI-2003-TR-004, Pittsburgh, Pa.: Software Engineering Institute, Carnegie Mellon University, 2003.

[Bass 01] L. Bass, M. Klein, F. Bachmann, “Quality Attribute Design Primitives and the Attribute Driven Design Method,” In proc. of the 4th International Workshop on Product Family Engineering, Bilbao, Spain, 3-5 October 2001, pp. 122 – 130.

[Bass 03] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, Second Edition, Addison-Wesley, 2003.

[Booch 98] G. Booch, J. Rumbaugh, and I. Jacobson, UML User Guide, Addison-Wesley Longman, 1998.

[Chastek 05] G. Chastek, and R. Ferguson, Toward Measures for Software Architectures, Technical Report, CMU/SEI-2006-TN-013, Pittsburgh, Pa.: Software Engineering Institute, CarnegieMellonUniversity, 2005

[Garlan 93] D. Garlan, and M. Shaw. An Introduction to Software Architecture, Technical Report, CMU/SEI-94-TR-21, 1993.

[Garland 03] J. Garland,  R. Anthony, Large-Scale Software Architecture, Wiley Press, 2003.

[IEEE 00] Recommended Practice for Architectural Description of Software Intensive Systems. Technical Report IEEE P1471-2000, IEEE Standards Department, The Architecture Working Group of the Software Engineering Committee, September 2000.

[Kazman 02] R. Kazman, J. Asundi, and M. Klein, Making Architecture Design Decisions: An Economic Approach, Technical Report, CMU/SEI-2002-TR-035, Pittsburgh, Pa.: Software Engineering Institute, CarnegieMellonUniversity, 2001.

[Klein 99] M. Klein, R. Kazman, Attribute-Based Architectural Styles, Technical Report, CMU/SEI-99-TR-022, Pittsburgh, Pa.: Software Engineering Institute, CarnegieMellonUniversity, 1999.

[Kruchten 95] P. Kruchten, “The 4+1 view model of architecture”, IEEE Software, 12, No. 5, 1995.

[RUP 03]  P. Kruchten, The Rational Unified Process: An Introduction, Third Edition, Addison-Wesley, 2003.

[Shaw 96] M. Shaw, and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.

[Shaw 06] M. Shaw, and P. Clements, “The Golden Age of Software Architecture,” IEEE Software, vol. ۲۳,  no. ۲,  pp. 31-39,  Mar/Apr,  ۲۰۰۶٫

[With 02] P. H.N. de With, and and G. J. van Dijk, “Architecture assessment for practical management of system architectures”, Proc. Workshop Embedded Systems (Progress02), Utrecht, NL, 2002.

 چکیده

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

مقدمه

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

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

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

در این گزارش، هدف بررسی روش­های موجود در طراحی معماری نرم­افزار بر اساس ویژگی­های کیفی مورد نظر مشتریان و بررسی نحوه خودکار سازی فرایند طراحی معماری با ارائه ابزار­هایی برای این منظور می­باشد. ادامه مطالب گزارش به این صورت طبقه بندی شده اند. در بخش ۲ توضیح مختصری در ارتباط با معماری نرم­افزار و مفاهیم مرتبط با آن ارائه می­شود. این مفاهیم در ادامه مطالب گزارش به کار گرفته خواهند شد. در بخش ۳ طراحی معماری نرم­افزار، ویژگی­های یک طراحی خوب و عوامل تاثیرگذار در طراحی معماری مورد بررسی قرار خواهند گرفت. در بخش ۴ روش­های طراحی معماری نرم افزار مورد بررسی قرار خواهند گرفت. در بخش ۵ خلاصه و  نتیجه گیری ارائه خواهد شد. در بخش ۶ مراجع مورد استفاده در این گزارش معرفی می­گردد.

معماری نرم افزار چیست ؟

برای معماری نرم‌افزار، تعریفی که به طور عمومی پذیرفته شده باشد، وجود ندارد. افراد مختلف، معماری نرم‌افزار را به اشکال گوناگون تعریف کرده‌اند. این تعاریف، از لحاظ ظاهری متفاوتند ولی به مفهوم مشترکی اشاره می‌کنند.

در [Bass 03] معماری نرم افزار به صورت زیر تعریف شده است :

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

از تعریف فوق می توان به نتایج زیر دست یافت :‌

•        معماری، اجزای نرم افزار را تعریف می نماید. همچنین در این تعریف، از جزئیاتی از اجزا، که در نحوه استفاده و ارتباط با اجزای دیگر کاربردی ندارند؛ صرف نظر می گردد.

•        هر سیستم نرم افزار شامل چندین ساختار می باشد؛ و هیچ یک از این ساختارها، به تنهایی معماری نرم افزار نمی­باشد. بلکه این ساختارها در کنار یکدیگر معماری نرم افزار را تشکیل می دهند.

•        هر سیستم نرم افزاری دارای یک معماری می باشد. (زیرا هر سیستم نرم افزاری دارای اجزایی است که این اجزا با یکدیگر دارای رابطه می باشند).

•        رفتار هریک از اجزاء، بخشی از معماری نرم افزار می باشد. (زیرا این رفتار در نحوه ارتباط بین اجزا تاثیرگذار است.)

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

علاوه بر تعاریف ارائه شده در [Bass03] تعاریف گوناگون دیگری نیز برای معماری نرم افزار ارائه شده است که در اینجا به برخی از آنها اشاره خواهیم کرد :

در [IEEE00]معماری نرم افزار به صورت زیر تعریف شده است :

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

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

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

در [Garlan 93]، معماری نرم‌افزار سطحی از طراحی تعریف شده است که دارای ویژگی‌های زیر می‌باشد :

•        ورای الگوریتم و ساختمان داده طراحی شده باشد.

•        شامل ساختار کلی سیستم، ساختار‌های کنترلی عمده، پروتکل‌های ارتباطی، اختصاص کارکرد‌ها به اجزاء، توزیع فیزیکی اجزاء باشد.

•        ترکیبی از اجزاء طراحی باشد که از بین گزینه‌های طراحی موجود انتخاب شده است.

در تعاریف ارائه شده توسط [Booch 98] و [Garlan 93]، از معماری به عنوان ساختار کلی سیستم نام‌ برده شده است. باید توجه داشت، ضعف این تعریف نسبت به تعریف ارائه شده توسط [Bass 03] در محدود کردن ساختار سیستم به تنها یک ساختار می‌باشد. در حالی که سیستم برای مشخص کردن معماری، دارای ساختار‌های گوناگون باشد.

در [RUP 03] معماری نرم‌افزار سازمان یا ساختار اجزاء اصلی سیستم که از طریق واسط‌هایی با هم ارتباط برقرار می‌کنند؛ می‌باشد به طوری که هر یک از اجزاء از اجزاء کوچکتری تشکیل شده که این اجزاء کوچک نیز با یکدیگر ارتباط دارند. در این تعریف نیز، به ساختار‌های گوناگون اشاره نشده است. گرچه در [RUP 03] در مرحله طراحی معماری نرم‌افزار، ساختار‌ها یا دیدگاه های مختلفی برای معماری معرفی شده است.

دیدگاه ما نسبت به معماری، دیدگاه [Bass 03] می‌باشد. یکی از نکات مهم در این تعریف، امکان ارائه ساختار‌های گوناگون برای معماری می‌باشد. این ساختار‌ها نباید محدود به چندین ساختار پیش فرض باشند. به عنوان مثال برای تولید معماری یک سیستم امن، می‌توان مدل امنیتی سیستم را نیز عضو معماری قرار داد. زیر بررسی و ارزیابی آن قبل از مرحله پیاده سازی بسیار حیاتی می‌باشد.

تعاریف پایه در معماری نرم افزار

85,000 ریال – خرید

تمام مقالات و پایان نامه و پروژه ها به صورت فایل دنلودی می باشند و شما به محض پرداخت آنلاین مبلغ همان لحظه قادر به دریافت فایل خواهید بود. این عملیات کاملاً خودکار بوده و توسط سیستم انجام می پذیرد.

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

 

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

    براي قرار دادن بنر خود در اين مکان کليک کنيد
    به راهنمایی نیاز دارید؟ کلیک کنید
    

    جستجو پیشرفته مقالات و پروژه

    سبد خرید

    • سبد خریدتان خالی است.

    دسته ها

    آخرین بروز رسانی

      سه شنبه, ۴ اردیبهشت , ۱۴۰۳
    
    اولین پایگاه اینترنتی اشتراک و فروش فایلهای دیجیتال ایران
    wpdesign Group طراحی و پشتیبانی سایت توسط دیجیتال ایران digitaliran.ir صورت گرفته است
    تمامی حقوق برایbankmaghale.irمحفوظ می باشد.