چکیده:هدف اصلی روش پیشنهاد شده در این مقاله، مقایسه معماری سیستم های نرم افزاری می باشد. تا کنون روش های بسیاری برای ارزیابی معماری نرم افزار پیشنهاد و بکار گرفته شده است. اما بیشتر این روش ها امکان واضح و مستقیمی برای مقایسه دو معماری ارائه نمی دهند. روش پیشنهادی امکان مقایسه دو معماری را در تمام دوره ی چرخه حیات نرم افزار تضمین می کند. این روش بر سه مفهوم اهداف کسب وکار، مدل کیفی استاندارد و سرویس های در سطح معماری استوار است. تمام مراحل این روش برمبنای اهداف کسب وکار انتخاب شده می باشد و تمام ویژگی های کیفی و اولویت ها از این اهداف استخراج می شوند. لذا با تغییر اهداف کسب وکار، بستر فراهم شده برای مقایسه تغییر چندانی نخواهد داشت و به سرعت مراحل انجام مقایسه بازسازی می شوند. با استفاده از مدل کیفی استاندارد، بیان، مستندسازی و اندازه گیری ویژگی های کیفی به صورت یکپارچه و ساده درخواهد آمد. مقایسه دو معماری برمبنای سرویس های در سطح معماری صورت می پذیرد که این امر باعث محدود شدن دامنه ی بررسی مولفه ها و اندازه گیری ویژگی های کیفی می شود و از سوی دیگر امکان مقایسه هر دو معماری موجود در یک دامنه را، مستقل از موارد کاربرد خاص آن ها فراهم می سازد. از این روش می توان برای تعیین معماری مرجع برای خط توسعه نرم افزار، مرتب سازی معماری های پیشنهادی باتوجه به هدف کسب وکار خاص، نظارت بر میزان پیشرفت پروژه در یک فرآیند مبتنی بر معماری نرم افزار و اثبات بهبود حاصل از انجام تغییرات کلی یا جزئی بر معماری پیشین استفاده نمود.
فهرست مطالب:چکیده
مقدمه
فصل اول: مفهوم و دسته بندی معماری ها و جایگاه معماری نرم افزار در آن1-1 مقدمه
1-2 تاریخچه معماری
1-3 مفهوم و تعریف معماری
1-4 چارچوبهای معماری
1-4-1 چارچوب معماری Zachman
1-4-2 چارچوب معماری FEAF
1-4-3 چارچوب معماری C4ISR
1-5 چارچوبها و متدولوژیها
1-6 دستهبندی معماریها
1-6-1 معماری سیستم، معماری نرمافزار
1-6-2 معماری سازمان
1-6-3 معماری کسب و کار
1-6-4 معماری اطلاعات
1-6-5 معماری سیستمهای کاربردی
1-6-6 معماری داده
1-6-7 معماری تکنولوژی
1-7 معماریهای دیگر
فصل دوم: مفهوم معماری نرم افزار و مقایسهای تحلیلی بر تعاریف آنها2-1 مقدمه
2-2 مفهوم معماری نرمافزار
2-3 تعاریف معماری نرمافزار
2-4 دلایل وجود تعاریف مختلف برای معماری نرمافزار
2-4-1 وجود دیدگاهها و رویکردهای متفاوت
2-4-2 کیفی بودن شناسه "سطح بالا بودن" در مفهوم معماری
2-4-3 تفاوت در کلمات مورد استفاده در تعاریف
2-5 ارائه جدول اجزاء تشکیل دهنده تعاریف
2-5-1 اجزاء معماری نرمافزار و منطق انتخاب اجزاء
2-5-2 ارتباطهای بین اجزاء معماری نرمافزار
2-5-3 مجموعه اجزاء معماری نرمافزار و ارتباط بین آنها
2-6 تعریف و مقایسه پارمترهای متناظر در چارچوب
2-6-1 رابطه، ارتباط، تعامل، اتصال
2-6-2 اجزاء نرمافزاری، موئلفه، زيرسيستم
2-6-3 خصوصيت، واسط، رفتار
2-6-4 ساختار، سازماندهی، چارچوب
فصل سوم: مفهوم، تعریف و سنجش مشخصههای کیفی در معماری نرمافزار3-1 مقدمه
3-2 مفهوم کیفیت نرمافزار و مشخصههای کیفی
3-3 تعریف کیفیت در نرمافزار و مشخصههای کیفی
3-4 Observable via Execution
3-5 Not Observable via Execution
3-6 معرفی برخی از صفات کیفی نرمافزار بر اساس دستهبندی [Bass 03]
3-7 صفات دسته اول: صفات کیفی سیستمی
3-7-1 Availability
3-7-2 Performance
3-7-3 Security
3-7-4 Functionality
3-7-5 Usability
3-7-6 Modifiability
3-7-7 Portability
3-7-8 Reusability
3-7-9 Integrability
3-7-10 Testability
3-8 صفات دسته دوم: صفات کیفی کسب و کار
3-8-1 Time to Market
3-8-2 Cost and benefit
3-8-3 Projected lifetime of the system
3-8-4 Targeted Market
3-8-5 Rollout schedule
3-8-6 Integration with legacy systems
3-9 صفات دسته سوم: صفات کیفی معماری
3-9-1 Conceptual Integration
3-9-2 Correctness and Completeness
3-9-3 Buildability
3-10 Trade-Off موجود بین صفات کیفی
فصل چهارم: سبکها و الگوهای معماری نرمافزار و نحوه ارزیابی و انتخاب آنها4-1 مقدمه و تاریخچه
4-2 تعریف سبک معماری
4-2-1 تعاریف مختلف سبک معماری نرمافزار
4-3 معرفی برخی سبکهای متداول
4-3-1 سبکهای متمركز روي داده
4-3-2 سبکهای جريان داده
4-3-3 سبکهای ماشين مجازي
4-3-4 سبکهای فراخواني و بازگشت
4-3-5 سبکهای موئلفههای مستقل
4-3-6 سبكهاي چند ريختي
4-4 الگوهای معماری نرمافزار
4-5 سازماندهي الگوها
4-5-1 الگوهاي پيادهسازي
4-5-2 الگوهاي طراحي
4-5-3 الگوهاي معماري
4-6 الگوها و سبکها
4-7 ارزیابی و انتخاب یک سبک معماری نرمافزار
4-7-1 پارامترهای ارزیابی سبکها
4-7-2 جدول ارزیابی سبکها
4-7-3 تکمیل جدول ارزیابی سبکها
4-7-4 ارائه الگوریتم استفاده از جدول
4-7-5 مشکلات موجود
فصل پنجم: طرح مشکل موجود، سوابق، راهکارها و کارهای انجام شده5-1 مقدمه
5-2 طرح مشکل موجود در سبکهای معماری نرمافزار
5-3 دستهبندیهای سبکهای معماری
5-3-1 دستهبندیهای موضوعی
5-3-2 دستهبندی سبکهای معماری بر اساس [Clements 02-1]
5-3-3 دستهبندیهای سیستمی
فصل ششم: ارائه یک استاندارد برای سازماندهی سبکهای معماری نرمافزار6-1 مقدمه
6-2 ورودی و خروجیهای یک استاندارد سازماندهی سبکها
6-3 بررسی جنبههای موجود برای ارائه یک استاندارد سازماندهی
6-3-1 دستهبندیهای سیستمی
6-3-2 دستهبندیهای موضوعی
6-3-3 روشهای ارزیابی سبکهای معماری نرمافزار
6-3-4 روشهایی استاندارد برای مستند کردن و جمعبندی سبکها
6-4 اجزاء استاندارد سازماندهی سبکها
6-4-1 دستهبندی پیشنهادی برای کلیه سبکهای معماری نرمافزار
6-4-2 کاتالوگ مستند سازی کلیه سبکهای معماری نرمافزار
6-5 معرفی فرایند ایجاد استاندارد سازماندهی سبکها
6-6 فاز اول: تهيه استانداردهاي مورد نياز
6-6-1 قدم اول: ارائه یک استاندارد برای دستهبندی انواع سیستمهای نرمافزاری
6-6-2 قدم دوم: ارائه یک استاندارد برای دستهبندی انواع سبکهای معماری نرمافزار
6-6-3 قدم سوم: ارائه یک استاندارد برای مستند کردن هر سبک معماری نرمافزار
6-6-4 قدم چهارم: ارائه یک استاندارد برای دستهبندی انواع مشخصههای کیفی
6-7 فاز دوم: تهيه دستهبندي استاندارد و قالب استانداردِ کاتالوگ سبکها
6-7-1 قدم اول: ارائه يک قالب دستهبندي استاندارد براي سبکهاي معماري نرمافزار
6-7-2 قدم دوم: ارائه يک قالب استاندارد براي کاتالوگ کليه سبکهاي معماري نرم افزار
6-8 فاز سوم: جمعآوري و مستند کردن سبکهاي موجود و ارائه روشهاي ارزيابي
6-8-1 قدم اول: اضافه کردن سبکهای دستهبندیهای موضوعی به استاندارد
6-8-2 قدم دوم: اضافه کردن سبکهای دستهبندیهای سیستمی به استاندارد
6-8-3 قدم سوم: تهيه يا ارائه مدل ارزيابي براي سبکهاي هر نوع سبک/نوع سيستم
6-9 فاز چهارم: ارائه طرحهاي کاربرد، توسعه و سازگاري استاندارد
6-9-1 قدم اول: ارائه طرح استانداردِ ارائه سبکهای جدید
6-9-2 قدم دوم: ارائه طرحها و قوانين توسعه استانداردهاي موجود
6-10 جمعبندی کلی استاندارد ارائه شده
فصل هفتم: مدلسازی فرایندهای استاندارد ارائه شده، بر اساس UML7-1 مقدمه
7-2 فرایند مدلسازی فرایند
7-3 مدل کردن منابع کسب وکار
7-4 مدل کردن اهداف کسب وکار
7-5 تعیین Actor های کسب وکار
7-6 مدل جریانهای کاری موجود در استاندارد
7-7 جریانهای کاری فاز اول
7-7-1 فاز اول- قدم اول
7-7-2 فاز اول- قدم دوم
7-7-3 فاز اول- قدم سوم
7-7-4 فاز اول- قدم چهارم
7-8 جریانهای کاری فاز دوم
7-8-1 فاز دوم- قدم اول
7-8-2 فاز دوم- قدم دوم
7-9 جریانهای کاری فاز سوم
7-9-1 فاز سوم- قدم اول
7-9-2 فاز سوم- قدم دوم
7-9-3 فاز سوم- قدم سوم
7-10 جریانهای کاری فاز چهارم
7-10-1 فاز چهارم- قدم اول
7-10-2 فاز چهارم- قدم دوم
7-11 مدل خروجیهای کسب و کار
فصل هشتم: خلاصه، نتیجهگیری و کارهای آینده8-1 مقدمه
8-2 خلاصه و نتیجهگیری
8-3 کارهای آینده
8-4 در نهایت
منابع و مراجع
فهرست جدولهافهرست شکلها
برچسب ها:
معماری نرم افزار مهندسی نرم افزار سبک های معماری مقایسه تحلیلی rup software engineering software architecture مقایسه معماری های نرم افزار تحقیق ارزیابی کیفی نرم افزار توسعه و سازگاری نرم افزاری جریان های کاری نرم افزاری مقایسه سبک های معم