پایان نامه مدلی برای بررسی ویژگی های کیفیتی در سبک های معماری چندریختی

تعداد صفحات: 156 فرمت فایل: word کد فایل: 10001964
سال: 1386 مقطع: مشخص نشده دسته بندی: پایان نامه مهندسی کامپیوتر
قیمت قدیم:۲۲,۲۰۰ تومان
قیمت: ۲۰,۱۰۰ تومان
دانلود فایل
  • خلاصه
  • فهرست و منابع
  • خلاصه پایان نامه مدلی برای بررسی ویژگی های کیفیتی در سبک های معماری چندریختی

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

    چکیده 

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

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

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

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

    کلمات کلیدی: معماری نرم افزار، ویژگی های کیفی، سبک های یک ریختی، سبک های چندریختی، ویژگی کیفی نگهداشت پذیری، سناریو، زبان رسمی ACME. 

    فصل اول 

     

    معرفی موضوع تحقیق 

    ۱-۱ مقدمه 

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

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

    بنابراین طراحی معماری نرم افزار به عنوان یک مرحله مهم و ضروری در توسعه نرم افزارهای بزرگ و پیچیده مطرح است. 

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

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

    به عبارت دیگر هنگامی که کاربران با سیستم جدیدی روبرو می شوند به دنبال دو موضوع هستند: 

    ۱-  آیا سیستم مشکلات اصلی و تعیین شده ما را حل می کند؟ 

    ۲-  به چه صورت و یا با چه کیفیتی مشکلات ما را حل می کند؟

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

    بنابراین می توان گفت یک طراحی معماری نرم افزار زمانی به موفقیت کامل می رسد که بتواند حداکثر نیازهای وظیفه مندی و به ویژه نیازهای غیر وظیفه مندی (ویژگیهای کیفی) سیستم را برآورده سازد. 

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

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

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

    ۱-۲ طرح مسئله  

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

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

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

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

    فرض کنید که مطابق جدول ۱-۱ سبکهای St1,St2,…,Stn وجود داشته باشند و اثر هر یک از این سبکهای یکریختی روی ویژگیهای کیفی Qa1,Qa2,…,Qam مشخص باشند. همچنین فرض کنید سبک چندریختی S متشکل از سبکهای یکر یختی St1,St2,…,Stn توسط معمار ارائه شده است. حال این سئوال مطرح می شود که اثر سبک چندریختی S روی ویژگی های کیفی Qa1,Qa2,…,Qam چگونه است؟ ما در اینجا ویژگی کیفی نگهداشت پذیری را انتخاب نموده ایم و از آنجا که در سبکهای یکریختی بررسی کمی این ویژگی وجود ندارد ابتدا مدلی برای بررسی این ویژگی در مورد آنها ارائه نموده ایم و سپس به این سوال پاسخ داده ایم که چگونه در مورد سبک چندریختی متشکل از سبکهای یکریختی، که از سوی معمار ارائه گردیده است این بررسی را انجام دهیم. پاسخ به این سئوال هدف اصلی این  تحقیق است.  

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

    -۳ اهداف تحقیق 

    ارائه مدلی برای بررسی ویژگی کیفی نگهداشت پذیری در سبکهای یکریختی

    تعمیم مدل ارائه شده برای بررسی ویژگی کیفی نگهداشت پذیری در سبکهای چندریختی

    ارائه ابزاری برای انجام محاسبات مربوط به مدل ارائه شده

    ۱-۴ محدوده مطالعه 

    آنچه که در این تحقیق به آن پرداخته شده است، ارائه مدلی برای بررسی ویژگی کیفی نگهداشت پذیری در سبکهای یکریختی و چندریختی است. 

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

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

    ۱-۵ تحقیقات مرتبط 

    در مورد بررسی ویژگیهای کیفی در سبکهای چندریختی اگر نگوئیم که اص ﹰلا کار نشده است باید گفت دراین زمینه تحقیقات انجام شده بسیار ناچیز است. در [۲۴،۲۵] به بحث عدم تطابق معماری در مورد سبکهای چندریختی پرداخته شده است و در [۲۶] این کار تا حدودی کاملتر شده است ولی صحبتی از نحوه بررسی ویژگیهای کیفی در سبکهای چندریختی ارائه نشده است. در روشهایی به نام روشهای مبتنی بر معماری به عنوان مثال در [۲۳،۲۸] برای ویژگی قابلیت اطمینان، کارائی و امنیت راهکارهایی کمی ارائه شده است ولی مثلا در [۲۳]  تنها برای سبک چندریختی متشکل از چهار سبک خاص روشی برای بررسی ویژگی قابلیت اطمینان ارائه شده است که مبتنی بر زنجیره مارکوف است. سایر تحقیقاتی که در مورد بررسی و ارزیابی ویژگیهای کیفی انجام شده است، عمومﹰا منشعب از روشهایی چون [1]ATAM[2] ،SAAM و مانند آنها هستند و برای معماری نرم افزار ارائه شده اند (نه حتی برای سبکهای معماری)، ارزیابی ویژگیهای کیفی در سبکهای معماری عمومﹰا با واژه هائی چون خوب، نسبتﹰا خوب، بد، نسبتﹰا بد و مانند آنها بیان شده است و به صورت کمی و مدون به این ارزیابی پرداخته نشده است. مانند [۴۸]. 

    در مورد ویژگی کیفی نگهداشت پذیری، اکثر روشهای کمی ارائه شده برای بررسی این ویژگی به تعداد خط برنامه بستگی دارد و عمومﹰا با ارائه یک مدل رگرسیون خطی، شاخصی برای اندازه گیری این ویژگی کیفی در معماری فراهم نموده است [۳۵،۳۶،۳۷،۳۸،۳۹]. البته در مورد سبکهای معماری این کار انجام نشده است. بررسی ویژگی کیفی نگهداشت پذیری در مورد سبکهای معماری به همان صورت کیفی مانند خوب، نسبتﹰا خوب، بد و خیلی بد بیان شده است[۴۸]. لذا مزیت اصلی روش ارائه شده در این تحقیق این است که بدون وابستگی به تعداد خط برنامه و صرفﹰا با بررسی معماری ارائه شده توسط معمار، فرمولی در اختیار معمار قرار می دهد تا بتواند به صورت کمی این ویژگی کیفی را در سبکهای معماری و بویژه در سبکهای چندریختی مورد بررسی قرار دهد. 

    ۱-۶ ساختار تحقیق  

    مطالبی که در این تحقیق به آنها پرداخته ایم به صورت زیر است: 

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

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

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

    فصل پنجم: در این فصل مدل ارائه شده در فصل قبل بر روی سبکهای معماری اعمال شده است و در مورد هر سبک رابطه تعیین مقدار کمی این ویژگی کیفی را تعیین نموده ایم.  

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

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

    فصل دوم 

     زمینه تحقیق                                                    مفاهیم فصل 

                      

    معماری نرم افزار

    ویژگیهای کیفی در معماری نرم افزار

    سبک های معماری نرم افزار

    سبکهای معماری چندریختی

     

     

     

     

     

     

     

    ٢-١ معماری نرم افزار 

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

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

    ۲-۱-۱ معماری 

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

    واژه معماری دارای ریشه لاتین (APXITEKTΩN) بوده و به معنای "استادی در ساختن" است[۲] . 

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

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

    در IEEE STD 610.12 معماری اینگونه تعریف شده است[۵] :  

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

                                                   

    1  Architecture

     می توان گفت عواملی مانند ابعاد بزرگ، پیچیدگی زیاد، نیازمندی خاص، طول عمر زیاد و انعطاف پذیری در برابر تغییرات می توانند منجر به لزوم معماری در یک سیستم گردند و از معماران برای طراحی و ساخت کمک بگیرند[۵]. معماران افرادی مدبر، مدیر، هنرمند، کلان نگر، آینده نگر و با تجربه هستند که قادرند ضمن تشخیص نیازهای مشتریان- که عمومﹰا به صورتی غیر فنی بیان می شوند- آنها را به زبانی علمی و استاندارد تبدیل کرده و زمینه های آفرینش واقعی تفکرات و خواسته های آنان را فراهم سازند. لذا می توانیم خصوصیات یک معمار را به صورت زیر بیان نمائیم: 

    نگرش معمار، کلان و جامع بوده از توجه زیاد به جزئیات خودداری می کند. 

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

    خصوصیات، رفتار و نحوه ارتباط اجزاء سیستم را بخوبی می شناسد. 

    با ترکیب مناسب اجزاء، موفق به طراحی سیستم مورد نظرمی شود. 

    با توجه به عواملی که منجر به لزوم معماری در یک سیستم می گردند و در بالا نیز به آنها اشاره کردیم می توان خصوصیات یک معماری خوب را نیز به صورت زیرعنوان کرد: 

    معماری باید قابل فهم باشد. 

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

    موارد اصلی کاربری سیستم یا همان نیازمندی های خاص را در بر گیرد. 

    مؤلفه های آن قابل استفاده مجدد باشند تا بتوان در مدت طولانی از آنها استفاده کرد. 

    نسبت به تغییرات انعطاف پذیر باشد.

    ۲-۱-۲ انواع معماری 

    معماری را می توان از جنبه های مختلف مورد بررسی قرار داد. یک طراح پایگاه داده، همیشه از معماری داده صحبت می کند، طراح نرم افزار، از معماری نرم افزار و مدیر ارشد فناوری اطلاعات سازمان، از معماری اطلاعات و غیره. لذا معماری های مختلفی وجود دارد که ما در اینجا اگر بخواهیم برخی از آنها را نام ببریم، عبارتند از معماری سیستم٢، معماری نرم افزار٣، معماری سازمان٤، معماری مرجع٥ و معماری خط تولید٦. 

     

    Abstract

     

    Architectural Design, as an essential part of the software life cycle, is a solution for high level design in complex problems and large scale systems. The success of the software architectural design depends on whether the system to satisfy the functional and non functional (Quality Attributes) requirements.

    Architects use software architectural styles in designing software architecture. Since architectural styles have frequently been used by architects before, they have a specific effect on quality attributes. If this effect is measurable for each existing style, it will enable the architect to evaluate and make architectural decisions with more ease and precision. Therefore advantages of using architectural Styles in software architectural design, that design in economic manner is one of that’s, is obvious for software architecture designer’s society.  

    It is also hard to find an architecture consisting of just one style and most of the presented architectures for large systems are heterogeneous and include multiple styles. Therefore heterogeneous styles are very important and presenting methods that help to analyze quality attributes in heterogeneous styles will be very useful. As regards, it is hard to present quality by quantity, very effort must be doing in this way.

    In this thesis by selecting maintainability quality attribute as one of the most important quality attributes in software architecture, trying to present a model for investigating this attribute in heterogeneous architectural styles. Therefore at the first step will analyze maintainability quality attribute for homogeneous styles and then improve the model for heterogeneous styles. This model allows the architect to get a cost based numerical measurement for this quality attribute in architectural styles. Also in this thesis a tool presented that architect can work with that for calculation. 

    Keywords

    Software Architecture, Quality Attributes, Homogeneous Styles, Heterogeneous Styles, Maintainability Quality Attribute, Scenario, Formal Language ACME. 

  • فهرست و منابع پایان نامه مدلی برای بررسی ویژگی های کیفیتی در سبک های معماری چندریختی

    فهرست:

    چکیده...................................................................................................................................................................................................................۱  فصل اول 

    معرفی موضوع تحقیق 

         ۱-۱ مقدمه ..................................................................................................................................................................................................۳ 

         ۱-۲ طرح مسئله ........................................................................................................................................................................................۵ 

         ۱-۳ اهداف تحقیق ....................................................................................................................................................................................۶ 

         ۱-۴ محدوده مطالعه .................................................................................................................................................................................۶ 

         ۱-۵ تحقیقات مرتبط................................................................................................................................................................................۷ 

         ۱-۶ ساختار تحقیق...................................................................................................................................................................................۷   فصل دوم   زمینه تحقیق 

         ۲-۱ معماری نرم افزار...............................................................................................................................................................................۱۰ 

              ۲-۱- ۱ معماری...................................................................................................................................................................................۱۰ 

              ۲-۱- ۲ انواع معماری .........................................................................................................................................................................۱۱ 

              ۲-۱- ۳ تعریف معماری نرم افزار.....................................................................................................................................................۱۲ 

              ۲-۱- ۴ اجزاء معماری نرم افزار .......................................................................................................................................................۱۳ 

              ۲-۱- ۵ چرخه کاری معماری نرم افزار..........................................................................................................................................۱۴ 

              ۲-۱- ۶ مراحل فرآیند معماری نرم افزار .......................................................................................................................................۱۵ 

              ۲-۱- ۷ اهمیت معماری نرم افزار....................................................................................................................................................۱۷ 

         ۲-۲ ویژگیهای کیفی در معماری نرم افزار..........................................................................................................................................۱۸ 

              ۲-۲- ۱ کیفیت در نرم افزار و ویژگیهای کیفی...........................................................................................................................۱۹ 

              ۲-۲- ۲ مدلهای کیفی در نرم افزار.................................................................................................................................................۱۹ 

              ۲-۲- ۳ انواع ویژگیهای کیفی در معماری نرم افزار ...................................................................................................................۲۴ 

                   ۲- ۲- ۳-۱ صفات کیفیتی سیستمی.......................................................................................................................................۲۴ 

                   ۲- ۲- ۳-۲ صفات کیفیتی تجاری............................................................................................................................................۳۱ 

                   ۲- ۲- ۳-۳ صفات کیفیتی مربوط به معماری.......................................................................................................................۳۲ 

              ۲-۲- ۴ وجود مصالحه میان ویژگیهای کیفی..............................................................................................................................۳۳ 

         ۲-۳ سبکهای معماری نرم افزار..............................................................................................................................................................۳۴ 

              ۲-۳- ۱ تعریف سبک معماری .........................................................................................................................................................۳۴ 

              ۲-۳- ۲ انواع سبکهای معمار ی متداول .........................................................................................................................................۳۵ 

              ۲-۳- ۳ سبکهای چندریختی و دلیل معرفی آنها........................................................................................................................۴۶ 

         ۲-۴ خلاصه فصل.......................................................................................................................................................................................۴۷ 

         ۲-۵ نتیجه گیری.......................................................................................................................................................................................۴۸  فصل سوم 

    أ

    ارزیابی ویژگیهای کیفی در سبکهای معماری 

         ۳-۱ ارزیابی و تحلیل معماری نرم افزار................................................................................................................................................۵۰ 

         ۳-۲ انواع تکنیکهای ارزیابی معماری نرم افزار ...................................................................................................................................۵۰ 

                   ۳- ۲- ۱ تکنیکهای پرسشی .......................................................................................................................................................۵۱         

                   ۳- ۲- ۲ تکنیکهای اندازه گیری................................................................................................................................................۵۲ 

         ۳-۳ اثر سبکهای معماری روی ویژگیهای کیفی ...............................................................................................................................۵۳ 

         ۳-۴ خلاصه فصل.......................................................................................................................................................................................۵۵ 

         ۳-۵ نتیجه گیری.......................................................................................................................................................................................۵۵  فصل چهارم 

    مدلی برای بررسی ویژگی کیفی نگهداشت پذیری در سبکهای معماری 

         ۴-۱ مقدمه ..................................................................................................................................................................................................۵۷ 

         ۴-۲ کارهای انجام شده در این زمینه ..................................................................................................................................................۵۷ 

         ۴-۳ ارائه مدل در سبکهای معماری یکریختی...................................................................................................................................۵۷ 

              ۴-۳- ۱ مراحل مدل ...........................................................................................................................................................................۵۸ 

         ۴-۴ ارائه مدل در سبکهای معماری چندریختی سلسله مراتبی....................................................................................................۶۲ 

         ۴-۵ ارائه مدل در سبکهای معماری چندریختی از نظر مکانی ......................................................................................................۶۴ 

              ۴-۵- ۱ ارائه مدل در سبکهای معماری چندریختی از نظر مکانی متشکل از دو سبک....................................................۶۵ 

              ۴-۵- ۲ ارائه مدل در سبکهای معماری چندریختی از نظر مکانی متشکل از سه سبک ..................................................۶۶ 

              ۴-۵- ۳ ارائه مدل در سبکهای معماری چندریختی از نظر مکانی متشکل از n سبک .....................................................۶۸ 

         ۴-۶ خلاصه فصل.......................................................................................................................................................................................۶۸  فصل پنجم 

    اعمال مدل ارائه شده روی سبکهای معماری  

         ۵-۱ اعمال مدل ارائه شده روی سبکهای معماری یکریختی..........................................................................................................۷۰ 

      ۷۰............................................................................................................................................. Repository سبک معماری ۱ -۱-۵         

                   ۵- ۱- ۱-۱ سبک معماری Repository با یک منبع داده مشترک.................................................................................۷۰ 

                   ۵- ۱- ۱-۲ سبک معماری Repository با بیش از یک منبع داده مشترک ..................................................................۷۴ 

      ۷۸............................................................................................................................................ Blackboard سبک معماری ۲ -۱-۵         

                   ۵- ۱- ۲-۱ سبک معماری Blackboard با یک منبع داده مشترک................................................................................۷۸ 

                   ۵- ۱- ۲-۲ سبک معماری Blackboard با بیش از یک منبع داده مشترک .................................................................۸۱ 

      ۸۴................................................................................................................................ Batch Sequential سبک معماری ۳ -۱-۵         

      ۸۶..................................................................................................................................... Pipe and Filter سبک معماری ۴ -۱-۵         

      ۸۹..................................................................................................... Main Program and Subroutine سبک معماری ۵ -۱-۵         

      ۹۶........................................................................................................................... Abstract Data Type سبک معماری ۶ -۱-۵         

              ۵-۱- ۷ سبک معماری Layered ...................................................................................................................................................۹۹ 

      ۱۰۳.............................................................................................................................Implicit Invocation سبک معماری ۸ -۱-۵         

      ۱۰۶........................................................................................................................................ Client-Server سبک معماری ۹ -۱-۵         

         ۵-۲ خلاصه فصل.......................................................................................................................................................................................۱۱۰ 

    ب

     فصل ششم 

    مطالعه موردی 

         ۶- ۱ معرفی مسئله کلمه کلیدی در زمینه (KWIC) ......................................................................................................................۱۱۲ 

         ۶- ۲ ارائه معماری مسئله با استفاده از چند سبک کاندید...............................................................................................................۱۱۲ 

         ۶- ۳ بررسی ویژگی کیفی نگهداشت پذیری در این مسئله با روشهای دیگر..............................................................................۱۱۴ 

         ۶- ۴ بررسی ویژگی کیفی نگهداشت پذیری در این مسئه با مدل ارائه شده در این تحقیق ..................................................۱۱۴ 

         ۶- ۵ خلاصه فصل.......................................................................................................................................................................................۱۱۹ 

         ۶- ۶ نتیجه گیری .......................................................................................................................................................................................۱۱۹   فصل هفتم 

    خلاصه، نتیجه گیری و کارهای آینده 

         ۷-۱ خلاصه تحقیق ..................................................................................................................................................................................۱۲۲ 

         ۷-۲ نتیجه گیری.......................................................................................................................................................................................۱۲۳ 

         ۷-۳ کارهای آینده و پیشنهادات............................................................................................................................................................۱۲۳ 

     

    فهرست منابع و مراجع .....................................................................................................................................................................................۱۲۵  

     

    منبع:

    [۱]  جلیلی، سعید. شاه محمدی، غلامرضا. اسفند ۱۳۸۵، "انتخاب سبک معماری نرم افزار با استفاده از فرایند     تحلیل سلسله مراتبی"، دوازدهمین کنفرانس بین المللی انجمن کامپیوتر ایران، ۱۰۲۶-۱۰۱۹   [۲]  امربر، رامین. ۱۳۸۲، "ارائه مدلی برای معماری مرجع راهکار"، پایان نامه کارشناسی ارشد، دانشگاه

    آزاد اسلامی 

    [۳]                    پورکمالی انارکی، مریم. ۱۳۸۴، "روشهای ارزیابی معماری نرم افزار"، سمینار کارشناسی ارشد،

    دانشگاه آزاد اسلامی واحد علوم وتحقیقات 

    [۴]                     هاشمیان،حسین. ۱۳۸۵، "سبکهای معماری نرم افزار"، سمینار کارشناسی ارشد، دانشگاه آزاد

    اسلامی واحد علوم و تحقیقات 

    [۵]           شمس، فریدون. ۱۳۸۳، "مفاهیم پایه معماری سازمانی"، ماهنامه توسعه و کاربری فناوری ارتباطات و

    اطلاعات (تکفا)، سال دوم، شماره ۳ 

     

    Software Engineering Institute (SEI), Carnegie Mellon University, “How Do You Define Software Architecture”, from www.sei.cmu.edu/architecture/definition.html

     

    Kruchten, P. 2003, “The Rational Unified Process: An Introduction”, Third Edition, Addison Wesley

     

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

     

    Albin,S.T. 2003, “The Art of Software Architecture: Design Methods and Techniques” John Wiley&Sons

     

    Astudillo,H. 2004, “Five Ontological Levels to Describe and Evaluate Software Architecture”, Department de Informatics, Universidad Technical Federico Santa Maria Avda.España 1680, Valparaiso, Chile

     

    Garlan,D. Shaw,M. 1994 “An Introduction to Software Architecture”, Technical Report, CMU/SEI-94-TR-21

     

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

     

    Kaisler,S.H. 2005 “Software Paradigms”, John Wiley&Sons

     

    Garland, J. Anthony, R. 2003 “Large-Scale Software Architecture”, John Wiley&Sons 

     

    Land, R. 2001, “Architecture Solutions in PAM”, Master thesis, Computer Science, NAVI-PAM Project Group

     

     

    Land,R.2002 “A Brief Survey of Software Architecture”, Mälardalen Real-Time Research Center (MRTC) Report, Department of Computer Engineering, Mälardalen University, Västerås, Sweden

     

    Mahmoud,M.S. 2005 “A Framework of Architectural Styles for Distributed Business Information Systems”, IJICIS, Vol. 5, No. 1

     

    Clements, P.Bass, L.Garlan, D.Ivers, J.Little, R.Nord, R.Stafford, J.2002, “Documenting Software Architectures: Views and Beyond”, Addison Wesley

     

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

     

    Schultz,U.P.15/9/2004 “Architectural Patterns”

     

    Shaw, M. 1996, ”Some Patterns for Software Architectures”, Addison Wesley

     

     

    Fielding,R.T.1999 “Software Architectural Styles for Network Based Applications”

     

    Wang,D.P.Wen-Li.Chen,Mei-Hwa.2005 “Architecture Based Software Reliability Modeling”, Elsevier

     

    Ahmed Abd-Allah.1995 “Composing Heterogeneous Software Architectures”

     

    Ahmed Abd-Allah. Boehm,B.1996 “Models for Composing Heterogeneous Software Architectures”, USC Technical Report:USC-CSE-96-505

     

    Gacek,C.1998 “Detecting Architectural Mismatches During System Composition”

     

    Swapna,S.Kishor,S 2002 “Reliability Prediction and Sensitivity Analysis Based on Software Architecture”, IEEE

     

    Sharma,V.S. Kishor,S 2005 “Architecture Based Analysis of Performance, Reliability and Security of Software Systems”, ACM

     

    Alsharif,M. Bond,W. Al-Otaiby,T. 2004 “Assessing the Complexity of Software Architecture”, ACM

     

    Chavez,C. Garcia,A. 2007 “Composing Architectural Aspects based on Style Semantics”

     

    Kim,J.S. Garlan,D. 2006 “Analyzing Architectural Styles with Alloy”, ACM

     

    Shaw,M. Clements,P. 1996 “Toward Boxology: Preliminary Classification of Architectural Styles”, ACM

     

    Bhattacharya,S. Perry,D. 2005 “Predicting Architectural Styles from Component Specification”

     

    Peter Lo. 2007 “Using Architectural Styles in Design”

     

    Bosch,J. Bengtsson,PO. Smedinga,R. “Assessing Optimal Software Architecture Maintainability”

     

    Pizka,M. Deibenbock,F. “How to effectively define and measure maintainability”

     

    Land,R. “Measurements of Software Maintainability”

     

    Aldo Liso AIPA, “Software Maintainability Metrics Model: An Improvement in the Coleman-Oman Model”

     

    Muthanna,S. Kontogiannis,K. 2000 “A Maintainability Model for Industrial Software Using Design Level Metrics”, IEEE

     

    Garlan,D. Monroe,R. Wile,D. 1997 “ACME: An Architecture Description Interchange Language”

     

    Schmerl,B. Garlan,D. 2004 “AcmeStudio: Supporting Style-Centered Architecture Development” IEEE

     

    Berander,P. Eriksson,J 2005 “Software Quality Attributes and Trade-Offs”

     

    Klein,M. Kazman,R. 1999 “Attribute-Based Architectural Styles”, Technical Report, CMU/SEI -99-TR-022

     

    Thiel,S. 2005 “A Framework to Improve the Architecture Quality of SoftwareIntensive Systems”

     

    Bass,L. Clements,P. Kazman,R. Northrop,L. Zaremski,A. 1997 “Recommended Best Industrial Practice for Software Architecture Evaluation”, Technical Report, CMU/SEI-96-TR-025

     

    Chandra,A. 2003 “Software Architecture, Remote Visualisation System Server”

     

    Crnkovic,I. Larsson,M. 2002 “Building Reliable Component-Based Software Systems”

     

    Chung, L, 2005, “Software Architecture Project KWIC-Keyword in Context –

    Architectural Specification”  

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