مشارکت های مردمی درمناطق اسکان غیر رسمی و نظم و امنیت اجتماعی از دید دختران محله کولی آباد کرمانشاه
ارائه پایان نامه:بهبود روش ارزیابی معماری نرم افزار از...
-
Upload
arash-bande-khoda -
Category
Education
-
view
417 -
download
13
Transcript of ارائه پایان نامه:بهبود روش ارزیابی معماری نرم افزار از...
بهبود روش ارزیابی معماری نرم افزار از دید برون مدیریت سپاریدانشجو: آرش رضوانی
استاد راهنما: دکتر سید رئوف خیامیاستاد مشاور: دکتر امید بوشهریان
41 از 942بهمن
پیشگفتار
تحقیقات پیشین
روش پیشنهادی
نتایج
41 از 3
پیشگفتار
معماری نرم افزار
نتیجه عدم معماریvasa ناو جنگی 1620سال•نرم افزار به سرعت پیچیده و پیچیده تر شده• Dijkstra، Parnas، 68سال• Brooks 70دهه • Dargan & Denning، 94سال•Show & Garlan، 96سال•
41 از 5
معماری در چرخه حیات
41 از 6
معماری یک سیستم نرم افزاری، blue print سیستم
در باالترین سطح انتزاع استکه مولفه های اصلی و مهم ترین محاورات بین آن ها
را توصیف می کند.
41 از 7
41 از 8
دیدگاه ها و ساختارهای معماریViewدیدگاه
نمایشی از یک مجموعه ای منسجم از عناصر معماری است که به وسیله ذینفعان سیستم )معماری( ایجاد شده و خوانده می شود.
Structureساختار مجموعه ای از عناصر و ارتباط بین آن هاست.
در یک نوع ساختار فقط عناصر متعلق به آن نوع ساختار لحاظ می شود.
41 از 9
1+4معماری
41 از 10
جدول ارزش دهی یانگ
مقادیر کیفی مقادیر کمیمطلق 7
خیلی زیاد 6زیاد 5
متوسط 4کم 3
خیلی کم 2ناچیز 1
41 از 11
برون سپاری
دستیابی به سود از طریق منابع خارجی •توسعه، طراحی و برنامه ریزی، مدیریت، آموزش، نگهداری و یا اجرای •هر فعالیتی غیر از فعالیت های اصلی سازمان را می توان برون سپاری •
کرد
41 از 12
تحقیقات پیشین
کیفیت نرم افزارهاي مدلصفات كيفيتي مناسب در يك سيستم
افزاري را نرمنمايد بهتر مشخص مي
هدف اصلی مدل های کیفیت نرم افزار
41 از 14
McCallمدل
41 از 15
41 از 16
41 از 17
ارزیابی معماری نرم افزارتکنیک های پرسشیمبتنی بر پرسشنامه
مبتنی بر لیست های مرجعمبتنی بر سناریو
ATAMروش ALMAروش
تکنیک های اندازه گیریمبتنی بر متریک
مبتنی بر شبیه سازی
41 از 18
هدف اصلی ارزیابی معماری نرم افزار
درک میزان پتانسیل معماری انتخاب شده جهت دستیابی به نیازهای کیفی و شناخت
ریسک های بالقوه می باشد.
41 از 19
ATAM
41 از 20
ALMAسيستمهاي اطالعاتي كاري
قابليت اصالح پذيري و نگهداریسه هدف
پیش بینی هزینه برای اعمال تغییراتمیزان انعطاف پذیری
مقایسه دو معماری مرحله5دارای
41 از 21
ALMA ATAMاصالح پذيري تمامي ويژگيها ويژگيهاي
كيفيتي 2 فعاليت در 9 فعاليت5
فازتعداد
مراحل فرآيند
سيستمهاي كسب و كار
همه سيستمها محدوده كاربردي
مشخص نشده 2 روز، تيم 2نفره ارزيابي و
گروه ذينفعانمنابع زماني/
انسانيپيش بيني اثرات
تغييراتنقاط حساس و
مصالحهاهداف ريز
ارزيابي
41 از 22
23
روش پشنهادی
ارائه چهارچوب و ساختار معماری نرم افزار•چرخه حیات سیستم•استاندارد، الگو، اهداف و محدودیت های حرفه و سیستم• )معماری آقای کورچن( 1+4معماری •ارزیابی معماری نرم افزار•
ISO 9126مدل ارزیابی •معرفی جدول یانگ•ATAMروش ارزیابی معماری نرم •
41 از 24
PLC )product lifeچرخه حیات محصول cycle(
تقسیم به دو بخش•مخاطبین چرخه حیات محصول • ساختار کلی چرخه حیات محصول•ارائه این قسمت در معماری باعث شناخت صالحیت معمار •تعادل بین زمان و هزینه•
41 از 25
مخاطبین چرخه حیات محصول
درج مخاطبین چرخه حیات محصولیک مدیران عامل و معاونین
مدیران تولید و معاونینرئیس گروه های کاری
دو گروه ها و شرکتهای همکار )ارائه دهندگان و فروشندگان سیستم ها(
مشتری های خاص )یا کنترل دقیق(اشخاصی که ارزش افزوده برای محصول خواهند آورد
اشراف کلی به نرم افزار
41 از 26
ساختار کلی چرخه حیات محصول
تولد
بلوغ
مرگ
41 از 27
استاندارد، الگو، اهداف و محدودیت های حرفه و سیستم
اهداف•محدودیت ها•الگو•استاندارد•عملکردهای بسیار مهم سیستم•پیشران های معماری•
41 از 28
ارزیابی معماری نرم افزار
ISO 9126مدل کیفی •مورد جدول ارزش دهی یانگ•ATAMروش ارزیابی معماری نرم افزار •
41 از 29
41 از 30
ATAMمشارکت کنندگان در •ATAM:به مشارکت و همکاری سه گروه نیازمند است که عبارتند از تیم ارزیابی •تصمیم گیرندگان پروژه •ذینفعان معماری•
41 از 31
فاز مشارکت کنندگان زمان معمول فعالیت مراحل پیشنهادات تکمیلیصفر رهبر تیم ارزیابی و
تصمیم گیرندگان کلیدی پروژه
در صورت نیاز اجرا می شود به صورت
غیر رسمی
مشارکت و آماده سازی
آماده سازی و فراهم نمودن مقدمات
یک تیم ارزیاب و تصمیم گیرندگان پروژه
یک روز ارزیابی ATAMنمایش نمایش پیشران های
حرفهدر ساختار مع£ماری ایجاد
شدهنمایش معماری معماری که از برون
سپاری بدست آمدهتعیین روشهای معماری ایجاد درخت سودمندی با استفاده از جدول ارائه
شده در معماری ISO9126مشخص شده
تحلیل روش های مع£مارانه
دو تیم ارزیابی، تصمیم گیرندگان پروژه و
ذینفعان
دو روز ارزیابی )ادامه(
طوفان ذهنی و اولویت بندی سناریوها
با استفاده از جدول ارزش دهی یانگ صفات مقدار کمی پیدا میکنند.
تحلیل روش های مع£مارانه
نمایش نتایج سه تیم ارزیابی و
مشتریان ارزیابییک هفته پیگیری تهیه گزارش نهایی
41 از 32
مرحله پنجم: ایجاد درخت سودمندی خصوصیات کیفی
ایجاد درخت سودمندی•ISO9126استفاده از جداول پیشنهادی •استفاده از جدول ارزش دهی یانگ•
41 از 33
iso9126صفات ویژگی اصلی زیر ویژگی سواالت امتیاز جدول یانگ
نمره7 تا 1امتیاز بین سخ£تی پیاده سازی
سخ£ت و متوسط ،ساده
عملیاتی مناسب بودن
آیا می توان وظیفه های مورد نیاز را اجرا کرد؟
صحیح بودن
آیا نتایج صح£یح£ هستند؟
قابلیت تعامل
آیا سیستم می تواند با دیگر سیستم ها تعامل داشته باشد؟
امنیت آیا سیستم از دسترسی غیرمجاز جلوگیری می کند؟
قابلیت£ اطمینان
تکمیل شدن
آیا با گذشت زمان خطاها حذف شده اند؟
تولرانس خطا
آیا نرم افزار قادر به مدیریت خطاها است؟
قابلیت بازیابی
آیا نرم افزار بعد از این که مشکلی بر£ای آن به وجود آمد،
اطالعات ذخیره نشده را نگهداری می کند و امکان ادامه
کار با نرم افزار وجود دارد؟
کاربری قابلیت فهم آیا کاربر می فهمد که چگونه از سیستم به راحتی استفاده کند؟
قابلیت یادگیری
آیا کاربر می تواند کار کردن با سیستم را یاد بگیرد؟
قابلیت عملیاتی
آیا کاربر می تواند بدون تالش زیاد از سیستم استفاده کند؟
قابلیت جذب کردن
آیا ظاهر برنامه زیبا و جذاب است؟
کارآمدی رفتار زمان آیا سیستم به سرعت به درخواست پاسخ می دهد؟
کاربرد منبع آیا سیستم از منابع به صورت کاربردی استفاده می کند؟
قابلیت نگهداری
قابلیت تحلیل
آیا خطاها به راحتی شناخته شده و رفع می شوند؟
قابلیت تغییر
آیا نرم افزار به راحتی تغییر می یابد؟
قابلیت پایداری
در صورت ایجاد تغییر، آیا نرم افز£ار به کارش ادامه
می دهد؟
قابلیت آزمايش
آیا به راحتی قابل آزمايش است؟
قابلیت حمل
قابلیت سازگاری
آیا می توان نرم افزار را به محیط های دیگر انتقال داد؟
قابلیت نصب
آیا نرم افزار به آساني نصب می شود؟
قابلیت تطبیق
آیا نرم افزار با استانداردهای حمل سازگار است؟
قابلیت جایگزینی
آیا می توان به آساني نرم افزار را به جای
نرم افزارهای دیگر جایگزین کرد؟
41 از 34
فاز مشارکت کنندگان زمان معمول فعالیت مراحل پیشنهادات تکمیلیصفر رهبر تیم ارزیابی و
تصمیم گیرندگان کلیدی پروژه
در صورت نیاز اجرا می شود به صورت
غیر رسمی
مشارکت و آماده سازی
آماده سازی و فراهم نمودن مقدمات
یک تیم ارزیاب و تصمیم گیرندگان پروژه
یک روز ارزیابی ATAMنمایش نمایش پیشران های
حرفهدر ساختار مع£ماری ایجاد
شدهنمایش معماری معماری که از برون
سپاری بدست آمدهتعیین روشهای معماری ایجاد درخت سودمندی با استفاده از جدول ارائه
شده در معماری ISO9126مشخص شده
تحلیل روش های مع£مارانه
دو تیم ارزیابی، تصمیم گیرندگان پروژه و
ذینفعان
دو روز ارزیابی )ادامه(
طوفان ذهنی و اولویت بندی سناریوها
با استفاده از جدول ارزش دهی یانگ صفات مقدار کمی پیدا میکنند.
تحلیل روش های مع£مارانه
نمایش نتایج سه تیم ارزیابی و
مشتریان ارزیابییک هفته پیگیری تهیه گزارش نهایی
41 از 35
مجموعه ای از نقاط مصالحه و حساس شناسایی شده
تصمیمات معماری تاثیرات مشخصی روی خصوصیات کیفی •پایگاه داده پشتیبان یک تصمیم معماری •قابلیت اطمینان مثبت •کارایی بصورت منفی •نقطه مصالحه بین کارآیی و قابلیت اطمینان •تصمیم خطر است یا نه •هزینه کارایی چقدر است•
41 از 36
ATAMخروجی نمایش مختصر از معماری•بیان اهداف حرفه•نیازهای کیفی برحسب مجموعه ای از سناریوها•نگاشت تصمیمات معماری به نیاز کیفی•مجموعه ای از نقاط مصالحه و حساس شناسایی شده•مجموعه ای از خطرات و غیر خطرات•مجموعه ای از موضوعات خطرات•
41 از 37
38
نتایج
شرکت عصر اندیشهاین تحقیقات و روش پیشنهادی به متخصصین شرکت عصر اندیشه •
ارائه شد و مورد تایید افراد خبره در نرم افزار رسید.
41 از 39
پیشنهادات•AHPارزیابی معماری محصول•
41 از 40
سپاسگزاری از
توجه تان
41 از 41
قسمتی از مراجع پایان نامه• B. Biel, T. Grill, and V. Gruhn, “Exploring the benefits of the
combination of a software architecture analysis and a usability evaluation of a mobile application,” J. Syst. Softw., vol. 83, no. 11, pp. 2031–2044, Nov. 2010.
• M. Anvaari and S. Jansen, “Evaluating architectural openness in mobile software platforms,” in Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, 2010, pp. 85–92.
• N. Mead and T. Christian, “An Evaluation of Cost-Benefit Using Security Requirements Prioritization.” Software Engineering Institute Carnegie Mellon University.
• B. Costa, P. F. Pires, F. C. Delicato, and P. Merson, “Evaluating REST architectures—Approach, tooling and guidelines,” J. Syst. Softw., vol. 112, pp. 156–180, Feb. 2016.
• A. Zalewski and S. Kijas, “Beyond ATAM: Early architecture evaluation method for large-scale distributed systems,” J. Syst. Softw., vol. 86, no. 3, pp. 683–697, Mar. 2013.
41 از 42
قسمتی از مراجع پایان نامه.1388س. ر. خیامی, “ارزيابي و تحليل معماري سازماني,” تز دکترا, دانشگاه شیراز, شیراز, •م. پورکمالی انارکی, “روش های ارزیابی معماری نرم افزار,” کارشناسی ارشد, دانشگاه آزاد •
.84/2/24تهران واحد علوم تحقیقات, تهران, و. منتقمی, “روشی برای مقایسه معماری های نرم افزار,” پایان نامه کارشناسی ارشد, •
1387دانشگاه صنعتی شریف, تهران, انتشارات وزارت مسکن و راه و ن. پورمعلم, “مهندسی برو نسپاری در حمل ونقل,” •
1390, تهران, شهرسازی. تهران: گنج نفیس, متریک های نرم افزار ع. علی محمدمالیری, andن. مدیری, ف. دوامی, •
1389.. تهران: معماری نرم افزار در عمل )ویراست دوم( ز. زمانی نژاد, andا. عالیی, م. معراجی, •
.1392طالیی پویندگان دانشگاه, , مهندسی معماری امن نرم افزار in ر. شیروانی, “معماری نرم افزار,” andن. مدیری •
1390تهران: مهرگان قلم, ا. عبدالعلی زاده, “شاخص های ارزیابی کیفیت andا. شریف, ح. گایینی, م. جعفری, •
1390, 22. صفحه p, 54 پیاپی 37فصلنامه شماره نرم افزارهای پژوهشي,” 41 از 43
41 از 44
41 از 45
ساختارهای معماری نرم افزار
41 از 46
41 از 47
ساختار های نرم افزارساختارهای ماژول
ModuleDecompositionتجزیه
Usesاستفاده Layeredالیه ای
Classکالس یا تعمیم
Componentساختارهای مولفه و اتصال and connector
Processفرآیندهای ارتباطی فرآیند یا Concurrencyهم زمانی
Shared Dataمخزن یا داده های مشترک -Clientدهنده سرویس گیرنده-سرویس
Server
Allocationساختارهای تخصیص Deploymentاستقرار
Implementationپیاده سازی Work Assignmentانتساب کار
41 از 48
Moduleساختارهای ماژول
:decompositionساختار تجزیه واحدها، ماژول های هستند" یک زیر ماژول است از " بزرگی در سیستم به وسیله قابلیت اصالح ساختار تجزیه
تضمین این است که احتماال تغییرات در داخل یک تعداد ماژول خواهد بود، ایجاد می کند
پایه ای برای ایجاد سازماندهی از پروژه شامل ساختارمستندسازی، یکپارچگی و طرح های آزمایش استفاده
می شوند.
Moduleساختارهای ماژول
:usesساختار استفاده واحدهای این ساختار ماژول ها، رویه ها و منابع
رابط های ماژول ها هستند. " استفاده می کند از " این ساختار به مهندس سیستم اجازه می دهد که به
راحتی قابلیت جدید را به سیستم اضافه کند که این را امکان پذیر می کند.توسعه تدریجی امر یک
Moduleساختارهای ماژول
:layeredساختار الیه ای یک الیه مجموعه منسجم از وظیفه مندی های یکسان
را نشان می دهد. در واقع اگر رابطه استفادهUses را بتوان در یک
روش مناسب مورد استفاده قرار داد به یک الیه بندی دست پیدا خواهیم کرد.
الیه ها بصورت انتزاعی )ماشین مجازی( طراحیمی شوند که این امر باعث می شود مشخصات الیه
پایین از دید الیه باالتر پنهان باشد
Moduleساختارهای ماژول class orساختار کالس یا تعمیم
generalization: واحدهای این ساختار کالس ها هستند توسط رابطه " ارث بری می کند از " یا " یک
نمونه ای است از" با یکدیگر ارتباط برقرار می کنند. این نوع ساختار از استدالل درباره رفتارهای مشترک
و مشخص کردن تفاوت ها بین کالس های مختلف حمایت می کند.
همچنین ساختار کالس اجازه می دهد که درباره تصمیم گیری استفاده مجدد و افزایش تدریجی
شود.
Component andساختارهای مولفه و اتصال connector
:Processساختار فرآیند یا فرآیندهای ارتباطی واحدها، فرآیندها یا نخ ها هستند به وسیله ارتباط، هم زمانی و یا عملیات انحصاری به
واحدهای دیگر متصل می شوند این نوع ساختار با جنبه های اجرایی سیستم در ارتباط
می باشد. ارتباط در این نوع ساختار "الحاق"است زمینه بررسی )اجرا( کارآیی و ساختار فرآیند در
یک سیستم مورد استفاده قرار قابلیت دسترسی می گیرد.
Component andساختارهای مولفه و اتصال connector
:Concurrencyساختار هم زمانی واحدهای این ساختار مولفه ها می باشد و اتصال ها از نوع
رشته های منطقی هستند. ساختار هم زمانی به تشخیص فرصت های موازی سازی و به
اشتراک گذاری منابع کمک می کند. نیازمندی های ساختار هم زمانی باعث می شود که
شناسایی شوند.اجرای هم زمانی
Component andساختارهای مولفه و اتصال connector
Sharedساختار مخزن یا داده های مشترک Data:
هایی است که این ساختار دربرگیرنده مولفه ها و اتصالبرای ایجاد، ذخیره و دسترسی به داده های مانا مورد
استفاده قرار می گیرند این ساختار نشان می دهند که داده ها چگونه تولید و
مصرف می شوند تضمین کارآیی و یکپارچگی داده ها این ساختار به
کمک می کند.
-Clientساختار سرویس گیرنده-سرویس دهنده Server:
سرویس گیرنده-سرویس دهنده برای سیستم هایمناسب است.
ها و سرویس دهنده ها واحدها در این ساختار سرویس گیرندههستند
اتصال ها قراردادهایی هستند که این واحدها از آن برایبرقراری ارتباط و انجام کار سیستم استفاده می کنند.
کاربرد این ساختار در جداسازی دغدغه ها برای توزیع پذیریفیزیکی و تنظیم بار کاری سیستم است.
Component andساختارهای مولفه و اتصال connector
Allocationساختارهای تخصیص :Deploymentساختار استقرار
عناصر ساختار استقرار موجودیت های نرم افزاری، سخت افزاری ومسیرهای ارتباطی هستند که نشان می دهند چگونه نرم افزار به
عناصر ارتباطی و پردازنده ها انتساب شده است. "رابطه "تخصیص داده شده به "و رابطه "منتقل شده به ،این نوع ساختار به مهندس سیستم کمک می کند که پیرامون کارآیی
یکپارچگی داده ها، قابلیت دسترس پذیری و امنیت سیستم استدالل های الزم انجام دهد.
سیستم های ساختار استقرار یکی از ساختارهای جالب در مورداست.توزیع شده و موازی
Allocationساختارهای تخصیص
:Implementationساختار پیاده سازی این ساختار نشان می دهد چگونه عناصر نرم افزاری به
ساختارهای فایل در طی فرآیند توسعه، به منظور یا محیط کنترل پیکربندی فراهم آوردن یکپارچگی
سیستم نگاشت شده اند این ساختار برای مدیریت فعالیت های توسعه و ساخت
فرآیندها، حیاتی است.
Allocationساختارهای تخصیص Workساختار انتساب کار
Assignment: فعالیت های این ساختار برای تخصیص
به تیم های توسعه پیاده سازی و یکپارچگی مناسب است.
ساختار انتساب کار به عملکرد افراد کمک می کند وحتی مشخص می کند که تجارب مورد نیاز هر تیم
چه چیزی باید باشد تا بتواند کار را خوب تحویل دهد.
که پروژه های بزرگ توزیع شده هم چنین برایکار به تیم های مختلف واگذار می شود این ساختار
کاربرد مناسبی دارد.
ساختارهای مرتبط با یکدیگر- هر کدام از ساختارهای دیدهای مختلفی از سیستم
ارائه می کنند- ساختارهای در اصل مستقل نیستند زیرا عناصر هر
یک به عناصر دیگری وابسته است.در تمام سیستم ها نیاز نیست که از کلیه -
ساختارهای استفاده شودساختار های می توانند در بردارند ساختارهای دیگر -
نیز باشند.انتخاب نوع و تعداد ساختارهای موجود در یک -
معماری رابطه مستقیم با ماهیت سیستم نرم افزاری و حجم و گستردگی آن دارد.
41 از 60
معماری 4+1
41 از 61
1+4معماری بیان کرد هیچ کدام از Kruchten آقای کروچن 95در سال
ساختار با یکدیگر تناقضی ندارند و همه آن ها در جهت برطرف کردن نیازمندی های سیستم هستند ولی بهتر است موارد
کاربردی مهم به منظور انتخاب ساختارها استفاده شود.Logicalدیدگاه منطقی
Processدیدگاه فرآیند Developmentدیدگاه توسعه
Physicalدیدگاه فیزیکی +
Scenariosدیدگاه سناریو
1+4معماری Logicalدیدگاه منطقی
شامل کالس ها و اشیا است که در شئ گرایی جهت دستیابی به حداکثر تجریداستفاده می شود
است.ساختار ماژول در واقع همان
Processدیدگاه فرآیند نحوه هم زمانی و توزیع وظیفه مندی ها را نشان می دهد
مولفه ها و اتصال ها ساختار
1+4معماری Developmentدیدگاه توسعه
سازماندهی ماژول ها، کتابخانه ها، زیرسیستم ها و واحدهای توسعه را نمایش می دهد
را نمایش می دهد.تخصیص ساختاردر واقع
Physicalدیدگاه فیزیکی نحوه نگاشت اجزا را به پردازنده ها و گره های ارتباطی مشخص می کند
استقرار جنبهاست اما بیشتر ساختار تخصیص این ساختار مشابه مدنظر آن است.
Scenariosدیدگاه سناریو
به خودی خود یک دید نیست در واقع همان موارد کاربردی است.
65 of 51
66 of 51
67 of 51
دیدگاه موارد کاربردی یا دیدگاه سناریو£
کل ذینفعان• usecaseتوسطنمای کلی سیستم را ترسیم می کند، •
دیاگرام•use case توصیفگر توالی ارتباطات بین اشیا و که ها
پروسه هاعملیات اصلی سیستم، نقد•سند موارد کاربرد•
68 of 51
دیدگاه منطقی طراحان سیستم •نمودار های کالس••Class diagram Sequenceنمودار •قابلیت های سیستم برای کابران نهایی•در واقع همان ساختار ماژول است. •ماژول هایی که تجزیه عملکردی سیستم •همراه با اشیاء، رویه ها، توابع و ارتباطات بین آن ها•
69 of 51
دیدگاه فرآیندتوزیع•کارایی •مقیاس پذیری• Activity نمودار های•هم زمانی و توزیع وظیفه مندی ها. •وجهه پویای •نیازمندی غیرعملکردی همروندی و همزمانی پردازش ها•دید مولفه و اتصال•
70 of 51
دیدگاه پیاده سازی
برنامه نویسان• Package یاComponent رانمود•توصیف معماری•طراحی داخلی•کامپوننت های نرم افزاری •الیه ها، زیرالیه ها، زیرسیستم ها و نحوه ارتباط بین آن ها •مدل پیاده سازی•
71 of 51
دیدگاه فیزیکی یا دیدگاه توسعهمهندس سیستم • مدیریت نرم افزار ،دید یک برنامه نویس• Deployment نمودار های•توپولوژی کمپوننت های نرم افزاری در الیه فیزیکی •ارتباطات فیزیکی بین این کمپوننت ها. •ساختار تخصیص، اما بیشتر جنبه استقرار •توپولوژی استقرار •نحوه نگاشت نرم افزار در محیط فیزیکی •
و سخت افزار می پردازد سند استقرار•
72 of 51
41 از 73
41 از 74
سبکهای و الگوها
41 از 75
الگوی معماری نرم افزارالگو•
یک مجموعه از انواع عنصر•یک الیه توپولوژیکی عناصر که ارتباطات و مناسبات مشترک •
آن ها را آشکار می سازد.یک مجموعه محدودیت های معنایی•یک مجموعه از مکانیزم های فعل و انفعالی که تعیین می کند •
عناصر چونه از طریق توپولوژی های مجاز هماهنگ شوندالگو یک راه حل تکرار شونده است•
زمانی به یک راه حل الگو می گوییم که گونه ای انتزاعی از آن •در چندین سیستم مختلف یافت شود
الگو یک راه حل موفق است•
41 از 76
سبک های معماریزبان الگو: به مجموعه ای از الگوها و قوانینی برای ساخت و •
سازماندهی الگوهای جدید از روی الگوهای اولیه گفته می شودسبک ها بیشتر به زبان الگوها شباهت دارن تا به الگوها•بیشتر مواقع یک روش طراحی را که می باید سبک یا الگو نامیده •
شود توافق نداردالگو جزئی و دقیق تر یک راه حل را برای مسئله طراحی پیشنهاد •
میکندسبک ها در حقیقت راه حل نیستند، بلکه چارچوبی برای راه حل ها •
مشخص می کنند
سبک معماری نرم افزار، مجموعه واژگانی متشکل از اجزای •نرم افزار و نوع اتصاالت میان این اجزا را به همراه مجموعه قوانینی
برای ترکیب اجزا و اتصاالت با یکدیگر تعریف می کند
41 از 77
سبکهای مشهور معماری نرم افزار
طبقه بندی شاو و گارالن از سبک های 94معماری نرم افزار
•2003سبک معماری کمنتس Module View Type Decomposition Uses Generalization Layered
• Component and Connector )C&C( View Type Pipe-and-Filter Shared-Data Publish-Subscribe )Blackboard( Client-Server Peer-to-Peer Communicating-Processes
• Allocation View Type Deployment Implementation Work Assignment
سبک متمرکز بر روی داده
سبک جریان داده
Batch/Sequential
Pipe&Filter
سبک ماشین مجازی
سبک برنامه اصلی و زیر روال
سبک سیستم های شیءگرا
سبک سیستم های الیه ای
41 از 87
معماری مرجع41 از 88
معرفی چند معماری مطرح
Main Frameمعماری •File Serverمعماری •Client/Serverمعماری •
Two-Tierمعماری •Three-Tierمعماری •)Service Oriented Architecture )SOAمعماری سرویس گرا •Enterprise Resource Planning ERPبرنامه ریزی منابع انسانی •معماری نرم افزار شیءگرا•
Client Server : Three Tierمعماری ويژگی •
عرضه شده است .1990- مدل فوق در سال
ميانی ديگر بين سرويس گيرنده Tier- در اين مدل از يک ) رابط کاربر( و سرويس دهنده بانک اطالعاتی استفاده می
شود.
- اليه ميانی شامل مجموعه ای از ابزارها برای دستيابی به منابع سيستم ، صرفنظر از نوع پالت فورم است .
- اليه ميانی مسئوليت مديريت پردازش ها را برعهده خواهد گرفت .
Client Server : Three Tierمعماری اليه ميانی مسئوليت تجزيه و يا ترکيب نتايج حاصله از -
ی نظير بانک های اطالعاتی را برعهده دارد. منابع داده
بخش های رابط کاربر ، مديريت پردازش ها و مديريت -بانک های اطالعاتی بخش های سه گانه مدل فوق می
باشند.
اليه ميانی خود می تواند به دو و يا بيش از دو بخش با -(Multi-Tierعملکردهای متمايز تقسيم گردد )
پياده سازی نرم - مدل فوق گزينه ای مناسب برای است .افزار بر روی اينترنت
Client Server : Three Tierمعماری :مزايا •
- افزايش کارآئی ، انعطاف پذيری ، قابليت استفاده مجدد و توان پشتيبانی
- ارتقاء کارآئی همزمان با افزايش تعداد کاربران- مخفی نمودن پيچيدگی ها ی موجود با توجه به
ماهيت پردازش های توزيع شده از ديد کاربران- ارائه امکانات الزم به برنامه نويسان بمنظور طراحی
و پياده سازی نرم افزار ها با يک رويکرد مشابه - ارائه امکانات الزم به برنامه نويسان بمنظور تبعيت
از روش های يکسان برای دستيابی به داده ها
Client Server : Three Tierمعماری
41 از 95
بهبود روش ارزیابی معماری نرم£ افزار
و روش پیشنهادیروش ارزیابی معماری نرم افزار
ATAM ISO 9126و مدل کیفیتی
ATAMروش ارزیابی معماری نرم افزار
ATAMروش ارزیابی معماری نرم افزار
مبتني بر سناريو •تحليل معماري مبتني بر مصالحه •كامالً جدا از روشهاي قبلي توسعه يافت •تحليل صفات كيفيتي خاص براساس معماري ، هدف•جنبه های کیفی را با جزئیات بررسی می کند•1998 به عنوان يك مدل مارپيچي ازريابي در سال •
ATAMروش ارزیابی معماری نرم افزار
قابليت اصالح پذيري، قابليت حمل، قابليت توسعه و •قابليت تجمع
فرآيند تكرار پذير ارزيابي •توانایی معماری نرم افزار با در نظر گرفتن چندین •
صفات کیفیتی رقابتیارزیابی صفات کیفیتی•وابستگی صفات کیفیتی•
ATAMمشارکت کنندگان در
•ATAM:به مشارکت و همکاری سه گروه نیازمند است که عبارتند از تیم ارزیابی •تصمیم گیرندگان پروژه •ذینفعان معماری•
99 of 51
تیم ارزیابی سه یا پنج نفر•هر عضو دارای نقش های از تیم •معماران سیستم، انتخاب شوند.•تیم توسعه ی •مشاور از خارج سازمان•
100 of 51
تصمیم گیرندگان پروژه
توسعه و تکمیل پروژه •اجازه اعمال تغییرات در معماری•مدیریت پروژه•نمایندگانی از مشتری•معمار نقش خاصی در ارزیابی معماری •
101 of 51
ذینفعان معماری
تبلیغ کار •توانایی در ترویج قابلیت تغییرپذیری، امنیت، قابلیت •
دسترسی باالتوسعه دهندگان، آزمایش کنندگان، یکپارچه سازها، •
نگهدارندها، مهندسی کارایی، کاربران، سازندگان سیستم
نقش ذینفعان،اهداف خصوصیات کیفی خاص در •معماری برای موفقیت سیستم را بیان کنند.
102 of 51
فاز مشارکت کنندگان زمان معمول فعالیت مراحل پیشنهادات تکمیلیصفر رهبر تیم ارزیابی و
تصمیم گیرندگان کلیدی پروژه
در صورت نیاز اجرا می شود به صورت
غیر رسمی
مشارکت و آماده سازی
آماده سازی و فراهم نمودن مقدمات
یک تیم ارزیاب و تصمیم گیرندگان
پروژه
یک روز ارزیابی ATAMنمایش نمایش پیشران های
حرفهدر ساختار معماری
ایجاد شدهنمایش معماری معماری که از برون
سپاری بدست آمدهتعیین روشهای
معماری
ایجاد درخت سودمندی با استفاده از جدول ارائه شده در معماری
ISO9126 مشخص شده
تحلیل روش های معمارانه
دو تیم ارزیابی، تصمیم گیرندگان پروژه و
ذینفعان
دو روز ارزیابی )ادامه(
طوفان ذهنی و اولویت بندی سناریوها
با استفاده از جدول ارزش دهی یانگ صفات مقدار کمی پیدا میکنند.
تحلیل روش های معمارانه
نمایش نتایج سه تیم ارزیابی و
مشتریان ارزیابییک هفته پیگیری تهیه گزارش نهایی
103 of 51
ATAMروش ارزیابی معماری نرم افزار
چهار فاز•فاز اول هماهنگی تیم ارزیاب با تصمیم گیرندگان پروژه•فاز دوم بررسی معماری در شش مرحله•فاز سوم ادامه بررسی و ارزیابی معماری•فاز چهارم نتیجه گیری•
104 of 51
ATAMمرحله اول: نمایش
ATAMرهبر ارزیابی ارائه •تشریح فرایند و مر£احل •پاسخ به سواالت مطرح شده•ارائه خروجی•
105 of 51
مرحله دوم: نمایش پیشران های )محرک( حرفه
عملکردهای بسیار مهم سیستم•محدودیت های سیاسی، اجتماعی، مدیریتی و تکنیکی •
مربوط به سیستماهداف حرفه و زمینه های مرتبط به سیستم•ذینفعان اصلی•پیشران های معماری•
106 of 51
مرحله سو£م: نمایش معماری
ارائه ي معماري •در حد لزوم وارد جزئيات•محدوديت هاي فنّي احتمالی•اهداف مرتبط با نرم افزار•
107 of 51
مرحله چهارم: تعیین روش های معماری
تحلیل معماری از طریق درک روش های معماری •الگوهای معماری، بسیار کارآمد هستند.•الگوی الیه بندی قابلیت حمل را از طریق تحت تاثیر قرار •
دادن کارایی به ارمغان می آورد الگوی مخزن داده، قابلیت گستردگی برای •
مصرف کنندگان و تولیدکنندگاه داده به ارمغان می آورد.مطالعه و بررسی معماری•فهرست برداری الگوها و استانداردهایی•
108 of 51
مرحله پنجم: ایجاد درخت سودمندی خصوصیات کیفی
ایجاد درخت سودمندی•ISO9126استفاده از جداول پیشنهادی •استفاده از جدول ارزش دهی یانگ•
109 of 51
iso9126صفات ویژگی اصلی زیر ویژگی سواالت امتیاز جدول یانگ
نمره7 تا 1امتیاز بین سختی پیاده سازی
سخ£ت و متوسط ،ساده
عملیاتی مناسب بودن
آیا می توان وظیفه های مورد نیاز را اجرا کرد؟
صحیح بودن
آیا نتایج صحیح£ هستند؟
قابلیت تعامل
آیا سیستم می تواند با دیگر سیستم ها تعامل داشته باشد؟
امنیت آیا سیستم از دسترسی غیرمجاز جلوگیری می کند؟
قابلیت اطمینان
تکمیل شدن
آیا با گذشت£ زمان خطاها حذف شده اند؟
تولرانس خطا
آیا نرم افزار قادر به مدیریت خطاها است؟
قابلیت بازیابی
آیا نرم افزار بعد از این که مشکلی بر£ای آن به وجود آمد،
اطالعات ذخیره نشده را نگهداری می کند و امکان ادامه
کار با نرم افزار وجود دارد؟
کاربری قابلیت£ فهم آیا کاربر می فهمد که چگونه از سیستم به راحتی استفاده کند؟
قابلیت یادگیری
آیا کاربر می تواند کار کردن با سیستم را یاد بگیرد؟
قابلیت عملیاتی
آیا کاربر می تواند بدون تالش زیاد از سیستم استفاده کند؟
قابلیت جذب کردن
آیا ظاهر برنامه زیبا و جذاب است؟
کارآمدی رفتار زمان آیا سیستم به سرعت به درخواست پاسخ می دهد؟
کاربرد منبع آیا سیستم از منابع به صورت کاربردی استفاده می کند؟
قابلیت نگهداری
قابلیت تحلیل
آیا خطاها به راحتی شناخته شده و رفع می شوند؟
قابلیت تغییر
آیا نرم افزار به راحتی تغییر می یابد؟
قابلیت پایداری
در صورت ایجاد تغییر، آیا نرم افزار به کارش ادامه
می دهد؟
قابلیت آزمايش
آیا به راحتی قابل آزمايش است؟
قابلیت حمل
قابلیت سازگاری
آیا می توان نرم افزار را به محیط های دیگر انتقال داد؟
قابلیت نصب
آیا نرم افزار به آساني نصب می شود؟
قابلیت تطبیق
آیا نرم افزار با استانداردهای حمل سازگار است؟
قابلیت جایگزینی
آیا می توان به آساني نرم افزار را به جای
نرم افز£ارهای دیگر جایگز£ین کرد؟
قابلیت کلی پذیرش آیا نرم افزار با قوانین و مقررات سازگار است؟
110 of 51
Functionality عملیاتی بودنعملیاتی مناسب بودن معماری نرم افزار میزان دامنه جستجوی مفهومی
ضبط و نگهداری فرآیندهای پژوهشی کاربرارائه گزارش های مختلف همچون چاپ کاغذی یا چاپ
دیجیتالیخروجی گرفتن از داده های متنوع نرم افزار عالوه بر داده های اصلی )مثل: پاورقی ها، تصاویر، فهرست ها(
امکانات فنی برخورداری از یک موتور جستجوی قوی و سریع دارای امکانات رتبه بندی جواب ها، نمایش های مختلف جواب،
، Stop Wordsجستجو در تمام محتواها، ساماندهي امکان جستجوي کلمات با اِعراب، امکان جستجو بر
اساس ريشه کلمات و يا ريشه و کلمه خاصمتفرقه درصد مقبولیت نزد کاربران
قابلیت همکاری
معماری نرم افزار ارتباط یک نرم افزار با نرم افزارهای مرتبط پژوهشی و دفتری
امکانات فنی به اشتراک گذاري اطالعات کاربران و محققانصحیح بودن -
صحتمعماری نرم افزار توان و دقت عمليات جستجو
امنیت امنیت درصد امنیت اطالعات برنامه و استفاده از الگوریتم های رمزگذاری داده ها
امنیت برنامه و جلوگیری از دسترسی غیر مجازدارا بودن سیستم مدیریت کاربران
111 of 51
Reliabilityقابلیت اطمینان
قابلیت اطمینان
تکمیل شدن-
قابلیت بلوغ
امكانات فني
رفع اشكاالت سيستم به مرور زمان
معماری نرم افزار
امکان رفع باگ ها و نواقص و اضافه کردن قابليت به آن از طريق
patch ها وdllهاي الحاقي
تولرانس
خطا-رواداري
خطا
امکانات فنی
توانايي در مديريت خطا و تضمين عملكرد صحيح نرم افزار
بررسی کیفیت
حداقلی باگ های برنامه
قابلیت بازیابی
معماری نرم افزار
بازگشت به وضعیت امن در هنگام بروز اشکال
112 of 51
Usability
کاربری قابلیت فهم رابط کاربران ارائه پیام ها یا رفتار مناسب بر اساس کارکرد کاربرگروه بندی درست منوهای برنامه
اطالع رسانی به کاربر هنگام انجام پردازش خاص همچون جستجواطالع رسانی نسبت به وضعیت جاری در طول زمان اجرای برنامه
آموزش ها و...hintاطالع رساني مناسب راجع به امكانات سيستم با استفاده از منوها، معماری نرم افزار
میزان تبعیت برنامه از عرف سایر نرم افزارها )راهبري كاربر در صفحات برنامه، كليدهاي ميانبر و...(
قابلیت یادگیری
آموزش دارا بودن راهنمای موضوعیوجود کتابچه راهنما برای برنامه ها
وجود راهنمای برخط یا داخل برنامه برای کاربران و درصد راهنمایی آن نسبت به صورتک ها و فهرست ها و وجود دمو آموزشی و تبلیغاتی و آزمایشی، امکان جستجو در راهنمای کاربر، وجود پیوند به راهنما در هر صفحه
قابلیت عملیاتی-
قابلیت استفاده
امکانات فنی پشتیبانی برنامه از زبان فارسیفراهم آوردن محيط هاي پ ژوهشي متعدد جهت آسان كردن تحقيق كاربران
معماری نرم افزار
امکانات اصلی برنامه در معرض دید کاربر
رابط کاربران میزان تسهیالت ویژه برای افراد ناتوانایجاد تمایز بین محتوای مهم و غیر مهم
ناوبری: عدم لزوم به مهارت کاربران برای ناوبری، قابلیت بازگشت به صفحه قبل و مرحله قبل، وجود پیوند برای رفتن به یک سطح باالتر در هر می باشد، مشخص بودن مکان کاربر در هر 3صفحه، وجود پیوندي براي بازگشت به صفحه اصلی برنامه از تمامی صفحات، حداکثر عمق برنامه
صفحهامکان ناوبری بدون ماوس
وجود ابزار ناوبری یکسان در تمام صفحاتسهولت دسترسی کاربر به پاسخهای مورد نظر
تعداد کلیک مورد نیاز تا رفع نیازهای اطالعاتی مخاطبTABمناسب بودن چگونگي عملکرد
سهولت دسترسی کاربر به پاسخهای مورد نظرتعداد زبان های پشتیبانی شده در برنامه
معماری نرم افزار
حفظ آخرین وضعیت برنامه جهت بارگذاری در اجرای بعدیOfficeعدم وابستگی به ابزارهای جانبی مثل
امکان دسترسیهای متنوع به متون با توجه به نیاز کاربروجود رابطه بین حوزه های اطالعاتی مختلف با یکدیگر
سفارشی کردن عملکرد برنامهامکانات اصلی برنامه در معرض دید کاربر
قابلیت جذب کردن- قابلیت
جذب کاربر
رابط کاربران تنوع و استفاده درست و مناسب از کنترل ها )لیست، چک لیست، رادیوباتن و...(تعداد فونت و رنگ )پیش فرض( و تنظیمات متداول و سفارشی کردن قابلیت هایی مثل: فونت، رنگ، سایز و انتخاب قلم های خوانا و با اندازه
مناسب برای متن ها و عنوان ها و عدم ایجاد مشکل توسط رنگ ها در خوانایی متنمیزان استفاده از اِلمان های بومی و مذهبی در رابط های کاربری
زیبایی رابط کاربر با استفاده از اصول هنري و زيبايي شناختيتناسب وضعیت چیدمان صورتک ها و آیتم ها در صفحات )پیچیدگی و کیفیت جداول، استفاده مؤثر از الیه ها، استفاده از فضا، استفاده از تقسیم
کننده ها و جداکننده ها(هماهنگی رابط کاربر در کل برنامه و وجود یک قالب ثابت در تمام برنامه
Efficiencyکارآمدیکارآمدی رفتار
زمانمعماری نرم افزار
پاسخ گويي سريع به جستجوي كاربر
کاربرد منبع
رابط کاربران میزان پیکربندی رابط کاربری از خارج برنامه
به صورت منبع (Resource)
امنیت میزان استفاده صحیح و مناسب از...
(Buffering & cashing)
قابلیت استفاده در شبکه
امکانات فنی ممانعت از توقف اجرا به دلیل پردازش خاص
معماری نرم افزار
استفاده بهينه از تمام محيط ميز كار
Maintainability قابلیت نگهداریقابلیت نگهداری قابلیت
تحلیلامكانات فني شناسايي صحيح خطاهاي احتمالي
و اطالع£ رساني مناسب به كاربرقابلیت تغییر مع£ماری
نرم افزارمیزان توسعه پذیری برنامه )مانند
(Add-Insامکان اضافه شدن فراهم بودن امکان نصب
مجموعه اي از کتب و منابع مختص يک موضوع توسط کاربر
امكانات فني ارائه راهكارهاي مناسب و متنوع جهت به روزرساني نرم افزار
قابلیت گ£رفتن اطالعات کاربران و تأثیرپذیری برنامه از نظرات
کاربرانقابلیت پایداری
مع£ماری نرم افزار
نسخه پذیری و پشتیبانی از نسخه های مختلف
كاركرد صحيح نرم افزار بع£د از به روزرساني برنامه اجرايي و يا
اطالعاتقابلیت
آزمايش- آزمون پذیری
امكانات فني دارا بودن امکان آزمايش برنامه
115 of 51
Portabilityقابلیت حمل قابلیت
حملقابلیت
سازگاریمعماری نرم افزار
قابلیت انعطاف برنامه ها با انواع محيط ها
قابلیت نصب
معماری نرم افزار
سهولت مراحل نصب و فعال سازی نرم افزارها و استفاده )عدم وابستگی
به نوع سیستم عامل ها و نرم افزارهای جانبی یا مدیریت آن در
صورت وابستگی(قابلیت تطبیق
معماری نرم افزار
میزان استعداد تبدیل به قالب های XMLاستاندارد مانند
امکانات فنی تنوع در حامل برنامه به منظور استفاده از استانداردها و مزیت های
حامل) گویایی - استاندارد (قابلیت
جایگزینیامکانات فنی امکان جایگزینی برنامه های دیگر با
این برنامه
116 of 51
مرحله ششم: روش های تحلیل معماری
تحليل رويكردهاي معماري •بررسی سناریو•سناريو از مقدار و چگونگي پشتيباني •نقاط خطرات و غير خطرات•نقاط حساسيت و مصالحه ی •انتهای فاز اول•
117 of 51
مرحله هفتم: طوفان ذهنی )جرقه زنی( و اولویت بندی سناریوها
سناریوهای اولیت بندی درخت سومندی•سناریوها اولیت بندی •ترکیب سناریو مشابه و رای دادن به آنها•رای هر ذینفع سی درصد به سناریو•آزادی در انتخاب رای•
118 of 51
مرحله هشتم: تحلیل روش های معماری
سناریوهای مهم •معمار •تصمیمات معماری •
119 of 51
مرحله نهم: نمایش نتایج
روش های معماری مستند شده•مجموعه ای از سناریوها و اولویت بندی•درخت سودمندی•خطرات کشف شده•غیر خطرات مستند شده •نقاط حساس و نقاط مصالحه یافت شده•
120 of 51
ATAMخروجی
نمایش مختصر از معماری•بیان اهداف حرفه•نیازهای کیفی برحسب مجموعه ای از سناریوها•نگاشت تصمیمات معماری به نیاز کیفی•مجموعه ای از نقاط مصالحه و حساس شناسایی شده•مجموعه ای از خطرات و غیر خطرات•مجموعه ای از موضوعات خطرات•
121 of 51
مجموعه ای از نقاط مصالحه و حساس شناسایی شده
تصمیمات معماری تاثیرات مشخصی روی خصوصیات کیفی •پایگاه داده پشتیبان یک تصمیم معماری •قابلیت اطمینان مثبت •کارایی بصورت منفی •نقطه مصالحه بین کارآیی و قابلیت اطمینان •تصمیم خطر است یا نه •هزینه کارایی چقدر است•
122 of 51
مجموعه ای از خطرات و غیر خطرات
تصمیم معماری منجر به نتایج نامطلوب •غیر خطر تصمیم معماری امن •خطرات شناسایی شده •مبنایی کاهش خطر معماری •اگر با این خطرات برخورد نشود• تهدید اهداف حرفه پروژه•
123 of 51
ATAMمحاسن روش
از معماریسهامدارانفهم واضح •ارتباط بين سهامدارانافزایش •بهبود و تکمیل مستندات معماری•نتایج برگرفته از سناریو•ارضای صفات کیفی و وظیفه غیرعملکردی سیستم•
124 of 51
41 از 125
پیوست برای معماری نرم افزار
41 از 126
ذینفعان سیستممعمار
عوامل تاثیرگذار بر معماری نرم افزار
ذینفعان
سازمان توسعه دهنده
تجربیات و پیش زمینه معماری
محیط فنی
Keyboard
interface
control
CashDisperns
er
Cardinterfa
ce
معماری نرم افزار یک برنامه یا سیستم محاسباتی،ساختار یا ساختارهای آن سیستم محاسباتی است
که خصوصیات قابل رویت از بیرون عناصر و ارتباطات بین آن ها را نشان می دهد
تعاریف دیگری از معماریمعماری طراحی سطح باال است•
معماری ساختار کلی سیستم است•
معماری مولفه ها و اتصال ها است•
41 از 132
متشکرم به امید ترویج بیشتر آگاهی و علم
استفاده از این مستندات مفید و رایگان است
خرجش فقط یک صلوات بر محمد و آل محمد
اللهم صلی علی محمد و آل محمد و عجل فرجهم
برای سالمتی آقا امام زمان از سمت اهل بیت پیامبر مهربانی ها
ذکات علم ترویج آن است
بنده محتاج رحمت خدا
41 از 133