دانلود مقاله معماری نرم افزار
چکیده
با گسترش روز افزون استفاده از مدلهای فرایند مبتنی بر معماری، طراحی معماری نرم افزار اهمیت ویژهای یافته است. یک طراحی معماری خوب، طراحی است که نیازهای کیفی مورد انتظار مشتری را برآورده نماید. در این گزارش روش های گوناگون طراحی معماری نرم افزار مورد بررسی قرار خواهد گرفت. سپس ویژگی کیفی قابلیت تغییر به طور دقیق و جزئیات معرفی خواهد شد و سپس معماری یک سیستم مطالعه موردی با دیدگاه دستیابی به قابلیت تغییر طراحی خواهد شد.
مقدمه
امروزه یکی از مهمترین ویژگیهای هر سیستم نرمافزاری، کیفیت میباشد. با پیشرفتهای انجام شده و گسترش ابزارهای گوناگون برای توسعه نرمافزار، توسعه نرمافزارهایی که کارکردهای مورد نظر مشتریان را برآورده سازند، امری آسان و سریع گشته است. در حال حاضر، تفاوت بین دو نرمافزار را توانایی نرمافزارها در برآورده ساختن ویژگیهای کیفی مورد انتظار تعیین میکند.
معماری نرم افزارِ یک برنامه یا سیستم کامپیوتری، ساختار یا ساختارهایی از سیستم می باشد، که در برگیرنده اجزاء، صفات قابل مشاهده آن اجزا و ارتباط بین آنها باشد[Bass 03] . معماری نرمافزار شامل اولین تصمیمات طراحی سیستم میباشد و این تصمیمات زیربنای فعالیتهای طراحی، پیادهسازی، استقرار و نگهداری سیستم میباشد. همچنین معماری نرمافزار، اولین عنصر قابل ارزیابی در فرایند توسعه نرمافزار میباشد[Bass 03] . بنابراین برای طراحی سیستمی که نیازهای کیفی مورد نظر را برآورده سازد، تولید معماری نرمافزار اولین گام در دستیابی به کیفیت در نرمافزار و همچنین ارزیابی ویژگیهای کیفی است.
در مدلهای فرایند توسعه نرمافزار مبتنی بر معماری[۱] معمولاً ابتدا نیازهای کیفی سیستم تعیین شده و سپس معماری نرمافزار مربوطه طراحی میگردد. پس از طراحی معماری، میتوان به ارزیابی آن پرداخت و تغییرات لازم را در طراحی مورد نظر ایجاد داد. بنابراین دو بخش اساسی در مدلهای فرایند توسعه نرمافزار مبتنی بر معماری، بخشهای طراحی و ارزیابی معماری نرم افزار میباشند. این دو بخش در ارتباط مستقیم با یکدیگر میباشند و هر یک مکمل دیگری میباشد. بنابراین فرایند طراحی معماری را میتوان شامل ساخت معماری نرمافزار، ارزیابی آن و اصلاح معماری پیشنهادی دانست.
در این گزارش، هدف بررسی روشهای موجود در طراحی معماری نرمافزار بر اساس ویژگیهای کیفی مورد نظر مشتریان و بررسی نحوه خودکار سازی فرایند طراحی معماری با ارائه ابزارهایی برای این منظور میباشد. ادامه مطالب گزارش به این صورت طبقه بندی شده اند. در بخش ۲ توضیح مختصری در ارتباط با معماری نرمافزار و مفاهیم مرتبط با آن ارائه میشود. این مفاهیم در ادامه مطالب گزارش به کار گرفته خواهند شد. در بخش ۳ طراحی معماری نرمافزار، ویژگیهای یک طراحی خوب و عوامل تاثیرگذار در طراحی معماری مورد بررسی قرار خواهند گرفت. در بخش ۴ روشهای طراحی معماری نرم افزار مورد بررسی قرار خواهند گرفت. در بخش ۵ خلاصه و نتیجه گیری ارائه خواهد شد. در بخش ۶ مراجع مورد استفاده در این گزارش معرفی میگردد.
فهرست
چکیده.. ۱
مقدمه. ۲
معماری نرم افزار چیست ؟ ۳
تعاریف پایه در معماری نرم افزار ۶
الگوهای معماری یا سبکهای معماری. ۷
مدل مرجع.. ۷
معماری مرجع. ۸
دیدگاه های معماری. ۸
دیدگاه Bass ۹
دیدگاه ۴+۱ ۱۰
دیدگاههای دیگر ۱۱
طراحی معماری نرم افزار ۱۱
کارکردهای سیستم و معماری نرمافزار ۱۲
ویژگیهای کیفی. ۱۲
ویژگیهای کیفی سیستم. ۱۵
سناریوهای ویژگیکیفی. ۱۶
ویژگیهای کیفی کسب و کار ۱۷
ویژگیهای کیفی معماری. ۱۹
دستیابی به ویژگیهای کیفی. ۲۰
تاکتیکهای معماری. ۲۰
الگوهای معماری. ۲۲
ارتباط تاکتیکها و الگوهای معماری. ۲۵
روشهای طراحی معماری نرم افزار ۲۶
طراحی مبتنی بر ویژگی. ۲۶
طراحی به کمک سبک های معماری مبتنی بر ویژگی. ۲۸
طراحی با ملاحظات اقتصادی با استفاده از روش آنالیز سود هزینه ۳۳
ویژگی کیفی قابلیت تغییر ۴۰
تعریف قابلیت تغییر ۴۰
مشخص نمودن نیازهای قابلیت تغییر با استفاده از سناریوهای کیفی. ۴۱
مدل سازی قابلیت تغییر در سطح معماری نرم افزار ۴۲
تاکتیکهای قابلیت تغییر ۴۳
ارزیابی قابلیت تغییر ۴۹
ارزیابی نحوه اختصاص وظایف.. ۴۹
ارزیابی وابستگی بین ماژولها ۵۰
انواع وابستگی. ۵۰
نحوه بازنمایی وابستگیها ۵۳
روش Brute-force ۵۴
استفاده از بستار انتقالی. ۵۵
استفاده از روشهای بهینه سازی. ۵۶
استفاده از جدول وابستگیها ۵۶
تصمیم گیری نهایی در مورد طراحی ویژگی کیفی قابلیت تغییر ۵۷
مطالعه موردی. ۵۸
تعداد وظایف تغییر یافته در ماژول ثانویه ۶۹
وابستگی نحوی ومعنایی. ۷۲
استفاده از کامپایلر به عنوان واسط. ۷۴
استفاده از سیستمعامل به عنوان واسط. ۷۴
خلاصه و نتیجه گیری. ۷۷
منابع….. ۷۸
فرمت فایل: WORD
تعداد صفحات: 85
مطالب مرتبط