ارائه پایان نامه:بهبود روش ارزیابی معماری نرم افزار از...

Post on 07-Jan-2017

415 Views

Category:

Education

13 Downloads

Preview:

Click to see full reader

TRANSCRIPT

بهبود روش ارزیابی معماری نرم افزار از دید برون مدیریت سپاریدانشجو: آرش رضوانی

استاد راهنما: دکتر سید رئوف خیامیاستاد مشاور: دکتر امید بوشهریان

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

top related