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