كارگاه آموزشي معماري نرمافزار esoa.ir

Post on 02-Jan-2016

78 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

كارگاه آموزشي معماري نرم‌افزار www.esoa.ir. دكتر فريدون شمس سيد شروين استادزاده. جلسه اول. فهرست مطالب. يك مثال: عمارت وينچستر مقدمه‌ای بر معماری معماري نرم‌افزار چيست؟ چرخه کاری معماری ساختارها و ديدها صفات کيفيتی. يك مثال: عمارت وينچستر. نمونه‌اي از عدم معماري. - PowerPoint PPT Presentation

TRANSCRIPT

كارگاه آموزشيكارگاه آموزشي

معماري نرم افزار معماري نرم افزارwww.esoa.irwww.esoa.ir

كارگاه آموزشيكارگاه آموزشي

معماري نرم افزار معماري نرم افزارwww.esoa.irwww.esoa.ir

دكتر فريدون شمس

سيد شروين استادزاده

جلسه اول

فهرست مطالب

يك مثال: عمارت وينچستر مقدمه ای بر معماری

معماري نرم افزار چيست؟ چرخه کاری معماری

ساختارها و ديدها صفات کيفيتی

يك مثال: عمارت وينچستر

نمونه اي ازعدم معماري

يك مثال: عمارت وينچستر

ميلي6ون دالر5/5هزين6ه س6اخت = = س66اخت س66ال 38مدت )از

(1922 تا 1884

160تعداد اطاق ها = 2تعداد طبقات =

40تعداد راه پله ها = 3تعداد آسانسور =

467تعداد درب ها = پنجره ه6ا = 10000) 1257تع6داد

قطعه شيشه(

47تعداد بخاري = 17تعداد دودكش =

بخ6ار، كان6ال = گرم6ايي سيس6تم هواي گرم، بخاري

تع6داد درب ه6ايي ك6ه ب6ه ج6ايي ب6از 950نمي شود =

يك واقعيت

و بل66وكي س66ازه هاي اگ66ر اك666666ثر زيرس66666اخت هاي نرم اف6666زاري سيس6666تم هاي آنه6ا ب6ا معادل ه6اي را ام6روزي در س6اختمان ج6ايگزين ك6نيم ب6ه عم66ارت نظ66ير عمارت ه66ايي رس66يد. خ66واهيم وينچس66تر عمارت ه6ايي ك6ه ه6ر چن6د هزين6ه و زم6ان زي6ادي ص6رف س6اخت آنه6ا ش6ده اس6ت، ولي چ6ون ب6ر بن6ا اس6اس معم6اري مشخص6ي را الزم اثربخش6ي نش6ده اند،

ندارند.

LANs/Building Networks

ATM

Modem & ISDN

IntranetConnections

LabNetBackbone

ESnet

Ins ti tu tiona l ly owned

Si te300

Ext ernal Connect i ons

Poor Desi gn

Internet

Sec ureNet

InternetConnection

OUTnet

Sec uri ty( M onit or , Fir ewall)

Poor Connect i on t o Backbone

Poor Perf ormance

Shared ComputingResources,

Data , Information

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فني

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فنينيازمن6ديهاي ب6ه توج6ه عدم

واقعي

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فنينيازمن6ديهاي ب6ه توج6ه عدم

واقعيزمان غير معقول

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فنينيازمن6ديهاي ب6ه توج6ه عدم

واقعيزمان غير معقولهزينه غير معقول

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فنينيازمن6ديهاي ب6ه توج6ه عدم

واقعيزمان غير معقولهزينه غير معقول

مختلفي نس6ل هاي حض6ور از سبك ها و سيستم ها

نکاتی درباره عمارت وينچستر

راه66برد ي66ك وج66ود عدم مشخص

عدم وجود نقشه فنينيازمن6ديهاي ب6ه توج6ه عدم

واقعيزمان غير معقولهزينه غير معقول

مختلفي نس6ل هاي حض6ور از سبك ها و سيستم ها

غير قابل توسعه

معماري چيست؟

اراي6ه يع6ني معم6اري ي6ك از ف6ني توص6يفي نش66ان ك66ه سيس66تم دهن6ده س6اختار اج6زاء آنه6ا، بين ارتب6اط آن، قواع66د و اص66ول و ح6اكم ب6ر ط6راحي آن، و تكام6ل آنه6ا در گ6ذر

زمان باشد.

مفاهيم اوليه

مقدمه اي بر

معماري نرم افزار

ساخت يك النه سگ

مي تواند توسط يك نفر ساخته شود.نيازمنديها:

كمترين مدل سازي• فرآيند ساخت ساده• ابزارهاي ساده•

ساخت يك خانه

مي تواند توسط يك تيم ساخته شود.نيازمنديها:

مدل سازي• فرآيندهاي خوش ساخت• ابزارهاي قدرتمند•

ساخت يك آسمانخراش

چه زمانی معماری الزم است؟

ابعاد بزرگ

چه زمانی معماری الزم است؟

ابعاد بزرگپيچيدگی زياد

چه زماني معماري الزم است؟

ابعاد بزرگپيچيدگی زياد

نيازمندي خاص

چه زماني معماري الزم است؟

ابعاد بزرگپيچيدگی زياد

نيازمندي خاصطول عمر زياد

چه زماني معماري الزم است؟

ابعاد بزرگپيچيدگی زياد

نيازمندي خاصطول عمر زياد

براب6ر در پ6ذيری انعط6اف تغييرات

مفاهيم اوليه

معماري نرم افزارچيست؟

تعريف معماري

معماري يعني ه6نر ي6ا علم س6اخت ه6ر ن6وع عم6ارت ك6ه م6ورد اس6تفاده

بشر قرار گيرد. عمل يا فرآيند ساخت

كار وابسته به معماري؛ ساختار، ساخت و ساز ساختمان يا ساختار عمومي

ي6ك ي6ا ك6امپيوتر ي6ك مفه6ومي س6اختار و كلي سازمان سيس6تم ك6امپيوتري از دي6د اس6تفاده ي6ا ط6راحي آن؛ ي6ك

عينيت بخش از آن- به نقل از فرهنگ نامه آكسفورد

)ادامه(تعريف معماري

معم6اران ك6ه اس6ت ك6اري نرم اف6زار معم6اري نرم افزار انجام مي دهند.

- Beck

)ادامه(تعريف معماري

معم6اري )ي6ا ط6راحي( ك6ه داراي ي6ك عناص6ر ي6ك مجموع6ه از شكل مشخص باشند.

- Perry and Wolf, 1992.

يك معماري سيستم نرم افزار تشكيل شده از ...از مجم6وعه اي و ارتباط6ات، مولفه ه6ا و قي6دهاي، نرم اف6زاري

سيستمينيازمنديهاي ذينفعان سيستم مجموعه اي از

قي6دها، اص6ولي و ارتباط6ات، مولفه ه6ا، اين ده6د نش6ان ك6ه را س6هامداران ني6ازم6ن6ديهاي ك6ه مي كن6د را 6تعري6ف سي6س6تمي

برآورده مي سازد.- Boehm et al., 1995.

)ادامه(تعريف معماري

سيس6تم ي6ك ي6ا برنام6ه ي6ك نرم اف6زار معم6اري ي6ا س6اختارهايي از سيس6تم اس6ت س6اختارمحاس6باتي

خصوص6يات قاب6ل مش6اهده نرم اف6زاري، عناص6رك6ه بين آنه6ا را ش6امل ارتباط6ات آن عناص6ر، و از ب6يرونمي شود.

- Clements et al., 1997.

)ادامه(تعريف معماري

بخشهاي مشترك در تعريف معماري

معماري مولفه هاي اصلي را نشان مي دهد.نش6ان را آنه6ا بين تعام6ل و مولفه ه6ا )س6اختارهاي( ارتباط6ات معم6اري

مي دهد. معم6اري اطالع6ات محت6وايي درب6اره مولفه ه6ا را ك6ه مرب6وط ب6ه تعام6ل آنه6ا

نباشد، حذف مي كند. رفتار مولفه ها بخشي از معماري است.

ه6ر سيس6تمي داراي ي6ك معم6اري اس6ت، ح6تي اگ6ر تنه6ا از ي6ك مولف6ه تش6كيل شده باشد.

معماري اصول پشت پرده هر مولفه و ساختار را بيان مي كند. تعاريف معماري نمي گويند يك مولفه چيست؟

معم6اري ن6يز منف6ردي هيچ س6اختار نيس6ت. منف6رد ي6ك س6اختار معم6اري نيست.

)ادامه(تعريف معماري

معماري نرم افزار با موارد زير نيز سروكار دارد : وظيفه مندي

قابليت استفاده قابليت استفاده مجدد

پايداري قابليت درك

قيدها و محدوديت هاي فن آوري و اقتصادي زيبايي شناسي

معماري، طراحي، و پياده سازي

پياده س6ازي را مش6خص معم6اري مف6اد ط6راحي و مي كند.

CODE

Implementation

Design

Architecture

Analysis

مثالي از معماري

آيا اين نمودار يك معماري است؟

Control

KeyboardInterface

Cash Dispenser

CardInterface

مثالي از معماري

چه نكات مبهمي در نمودار قبل وجود داشت؟

وظيف6ه، واح6د، )فرآين6د، كالس، ش6يء، عناص6ر م6اهيت پردازنده، ...(

مسووليت عناصربك6ارگيري، درخواس6ت، )فراخ6واني، ارتباط6ات ن6وع

سيگنال، ارسال داده، كنترل، زيركالس، ...( مفهوم طرح بندي

عمليات زمان اجراي سيستم

مثالي از معماري

چه بخشهايي در نمودار قبل جا مانده است؟

ماهيت هر يك از عناصر چيست؟ مسووليت هر يك از عناصر چيست؟ مفهوم هر يك از ارتباطات چيست؟

مفهوم هر يك از طرح بندي ها چيست؟

z ب6دانيم ه6ر عنص6ر چيس6ت و ج6ز در م6واقعي ك6ه م6ا دقيق6اچگون6ه ب6ا ديگ6ر عناص6ر همك6اري دارد ت6ا ي6ك وظيف6ه سيس6تم

انجام شود، نمودار قبلي هيچ استفاده اي ندارد.

نظراتي درباره معماري

معماري تنها بر روي كاغذ است. معماري همان طراحي است.

معماري همان زيرساخت است. معماري همان ساختار است.

فن آوري مورد عالقه من يك معماري است. معماري نتيجه كار تنها يك معمار است.

داده نم6ايش خ6روجي ن6وع ي6ك توس6ط مي توان6د معم6اري .)تك ديدي است(شود

معماري سخت افزار مقدم بر معماري نرم افزار است. معماري قابل ارزش يابي و يا اعتبارسنجي نيست.

معماري يك علم است. معماري يك هنر است.

چرخه كاري معماري

چه مواردي بر معماري تاثير مي گذارند؟

چه مواردي از معماري تاثير مي گيرند؟

چه كساني بر معماري تاثير دارند؟

مشتريان و كاربران نهايي

نيازمن6ديها )+ ص6فات كيفي6تي مث6ل ك6ارايي، ق6ابليت نگهداشت، ...(

محدوديت هاي بودجه اي محدوديت هاي زماني

ي6ك رع6ايت مث6ل س6ازمان خ6اص قواع6د رع6ايت فن آوري خاص

سازمان توسعه

موارد كاري سرمايه گذاري و استهالك زيرساخت ها

كاهش هزينه ها ساده بودن پياده سازي

موارد سازماني استفاده از ساختار سازماني موجود

استفاده بهينه از كارمندان

محيط فن آوري

z نرم افزاره6ا تحت وب گ6رايش غ6الب ام6روزي )مثالباشد(

ي6ك از z تص6ميم در اس6تفاده )مثال فن آوري موج6ود هزين6ه ب6ه بس6تگي توزيع ش6ده ي6ا متمرك6ز سيس6تم

پردازنده ها و سرعت خطوط ارتباطي دارد(

پيش زمينه معمار

معم6اران كارش6ان را ب6ا توج6ه ب6ه مجموع6ه تجربي6ات گذشته شان انجام مي دهند.

جدي6د معم6اري در آن تك6رار ب6اعث موف6ق تجرب6ه مي شود.

تجرب6ه ن6اموفق ب6اعث ع6دم اس6تفاده از آن در معم6اري جديد مي شود.

تاثيرات بر معماري

معماري بر روي سازمان توسعه تاثير دارد

ساختار و منابع سازماني واحد هاي كاري

زمانبندي بودجه

اهداف سازماني تخصص در زمينه ساخت يك نوع از سيستم ها

موفقيت در بازار ارزيابي بازار

دارايي هاي خط توليد

معماري بر روي نيازهاي مشتريان تاثير دارد

دانش مشتريان ارتقاء سيستم، انطباق پذيري، ...

معماري بر روي تجربه معمار و محيط فن آوري تاثير دارد

ت6اثير معم6ار تجرب6ه روي ب6ر ي6ك سيس6تم س6اخت خواهد داشت.

z، ي6ك سيس6تم ي6ا ي6ك معم6اري ب6ر روي محي6ط معم6والفن آوري تاثير دارد.

چرخه كاري معماري

فعاليتهای چرخه كاري معماري

ايجاد يک مورد کاری برای سيستمفهم نيازمنديها

ايجاد يا انتخاب معماریتعامل با معماری

تحليل يا ارزيابی معماریپياده سازی بر مبنای معماری

حصول اطمينان از انطباق محصول با معماری

ساختارها و ديدهاي معماري

تعريف

س6اختار ي6ك مجموع6ه از عناص6ر همگن ب6ه هم6راه ارتب6اط بين آنه6ا است6. بر6اي ه6ر سا6خ6تار6 6مي 6توان م6وارد6 6زير 6را 6مشخص6 كر6د.

نوع عناصر نوع ارتباطات

مجموعه اي از قيدهاي نحوي معني نمودار

اصول، قواعد، و راهبردها براي چه هدفي قابل استفاده است؟

دي6د نمايش6ي از معم6اري نرم اف6زار ب6ر پاي6ه ي6ك س6اختار اس6ت ك6ه تو6س6ط 6معم6ار6 ترس6ي6م ش6ده 6و دي6نفع6ان آن ر6ا مي خوانن6د. )نم6ونه اي

از يك ساختار( معماري نرم افزار توسط تعدادي ديد مستند مي شود.

IEEE)چارچوب مفهومي معماري Std. 1471-2000)

ماموريت

محيطسيستم معماري

صاحب نقش- ذينفع

توصيف معماري

عقالنيت)منطق(

دغدغه ديدگاه ديد

كتابخانهديدگاه مدل

..*1انجام مي دهد

تاثير دارد بر

قرار دارد در

..*1دارد

دارد يك

مهم است براي 1*..

تعيين هويت ..*1مي كند

توصيف مي شود با 1*.. حمايت

مي كند

شركت مي كند در

جمع شده 1*..

شركت مي كند در1*..شامل

1*..

مشخص مي كند1*..

سازمان مي يابد..*1 با

انتخاب مي كند1*..

مطابق

انتخاب مي شود از 0 .. 1

روشي را براي تبيين ايجاد مي كند

استفاده مي شود ..*1تا پوشش دهد

دارد1*.. تبيين مي كند

1*..

طبقه بندي ساختارها

(Module) ساختارهاي ماژول 1.

اتصال 2. و مولفه ساختارهاي (Component & Connector)

(Allocation) ساختارهاي تخصيص 3.

هستند.متعامداين طبقه بندی ها

- ساختارهاي واحد1

)واحدهاي پياده سازي(ماژول ها عناصر: مشخص مي كند :

مسووليت وظيفه اي ماژول هارا آنه6ا از اس6تفاده اج6ازه م6اژول ك6ه عناص6ري س6اير

دارد. روابط عام و خاص

دي6د اين ب6راي نرم اف6زار اج6رای زم6ان عملي6ات اهميتي ندارد.

ساختار تجزيه1-1

سلسله مراتبي عناصر: ماژول ها به شكل ب6ه اش6تراك مي گ6ذارد ، زيرواح6دي از ... ارتباط6ات:

با ... مفيد براي ...

تخصيص منابع پنهان سازي اطالعات

محصور سازي كنترل پيكربندي

ساختار استفاده1-2

عناص6ر: ي6ا روال ه6ا، ماژول ه6ا ب6ه ، مرب6وط من6ابع واسط ماژول ها

استفاده مي كند از ... ارتباطات: مفيد براي ...

مهندسي گسترش

ساختار اليه اي1-3

زيرنوعي از ساختار استفاده است. )مجم6وعه اي همگن از وظيفه من6دي اليه ه6ا عناص6ر:

مرتبط(ارتباط6ات: ... از مي كن6د ح6الت اس6تفاده )در

اي6ده آل، ه6ر الي6ه تنه6ا از الي6ه قب6ل از خ6ود اس6تفاده مي كند(.

مفيد براي ... ماشين مجازي

ساختار كالس1-4

كالس ها عناصر: نمونه اي از ... است، وراثت ارتباطات:

مفيد براي ... طراحي شيءگرا

- ساختارهاي مولفه و ارتباط2

اص6لي )واح6دهاي اج6را زم6ان مولفه ه6اي عناص6ر: محاس6به( و اتص6االت )ابزاره6اي ارتب6اطي بين مولفه ها(

مشخص مي كند: مولفه هاي اجرايي اصلي و چگونگي تعامل بين آنها

انباره هاي داده مشترك اصلي چه بخشي از سيستم تكرار شده است؟

جريان داده در سيستم چه بخش هايي بصورت موازي مي توانند اجرا شود؟

س6اختار سيس6تم در حين اج6را چگون6ه مي توان6د تغي6ير كند؟

ساختار مشتري/خدمتگزار2-1

خدمتگزار، مشتري عناصر: ارتباط6ات: ... ب6ا برق6رار مي كن6د وابس6ته ،ارتب6اط است به ...

مفيد براي ... عمليات توزيع شده

جداسازي موارد بااهميت تعادل بار

ساختار پردازه2-2

نخ ها يا پردازه ها عناصر: قب6ل از ... ،م6وازي اج6را مي ش6ود ب6ا ... ارتباط6ات:

اجرا مي شود مفيد براي ... تحليل كارايي

تحليل زمانبندي

ساختار توازي2-3

نخ هاي منطقي عناصر: اجرا مي شود بر روي ... ارتباطات:

مفيد براي ... اتصال

انشعاب

ساختار داده مشترك يا 2-4انباره

عناص6ر: داده، انب6اره داده، توليدكنن6ده مص6رف دادهكننده

مصرف داده،توليد داده ارتباطات: مفيد براي ...

يكپارچگي داده كارايي

تغييرپذيري

- ساختارهاي تخصيص3

محي6ط از عناص6ري ب6ا را نرم اف6زار بين ارتب6اط خارجي نشان مي دهد.

مشخص مي كند: پردازن6ده اي ك6ه ه6ر ي6ك از عناص6ر نرم اف6زاري را اج6را

مي كند.نرم اف6زاري را در هنگ6ام از عناص6ر ي6ك ف6ايلي ك6ه ه6ر

توسعه نگهداري مي كند. انتساب نرم افزار به تيم توسعه

ساختار استقرار3-1

عناص66ر: وس66خت افزار، نرم اف66زار مس66يرهاي ، ارتباطي

ارتباط6ات: ... ب6ه داده ش6ده مه6اجرت ، تخص6يص به ...

مفيد براي ... تحليل كارايي

تحليل دسترس پذيري تحليل امنيت

ساختار پياده سازي3-2

)مثل ماژول(واحد منطقي عناصر: هر پياده سازي مي كند ... ارتباطات:

مفيد براي ... كنترل پيكربندي يكپارچه سازي

فعاليت هاي آزمون

ساختار انتساب كار3-3

)مثل ماژول(واحد منطقي عناصر: هر انتساب داده مي شود به ... ارتباطات:

مثالي از كاربرد مديريت پروژه

بهنرين استفاده از تخصص ها

طبقه بندي ساختارها

صفات كيفيتي

طبقه بندي سنتي نيازمنديها

وظيفه اي غيروظيفه اي

نرم اف6زاري ابت6دا نرم اف6زار: در مت6داول افس6انه ي6ك س6اخته6 ش6ود ك6ه 6نيازمن6ديهاي وظيفه ا6ي را ب6رآو6رده 6كن6د، س6پس نيازمن6ديهاي غ6يروظيفه اي ب6ه آن اف6زوده ي6ا تزري6ق

شود.پ6ايين اتالف من6ابع و كيفيت ب6ه س6مت اي6ده م6ا را اين

سوق مي دهد. باي6د تمرك6ز ب6ر روي كيفيت را از هم6ان ابت6دا آغ6از ك6رد

)در سطح معماري(

وظيفه مندي و معماري

تئ6وري نظ6ر از كيفي6تي ص6فات و وظيفه من6دي از س66طحي ه66ر ب66ا نمي ت66وان هس66تند. متعام66د

وظيفه مندي به همه صفات كيفيتي دست يافت.مختل6ف ش6كل هاي ب6ه مي ت6وان را وظيفه من6دي

بدست آورد )چندان به معماري مربوط نيست(ب6ه وظ6ايف س6ازماندهي ب6ا دارد قص6د معم6اري

صفات كيفيتي دست پيدا كند.

معماري و كيفيت

دس6تيابي ب6ه كيفيت باي6د در تم6ام مراح6ل ط6راحي )از جمل6ه معماري(، پياده سازي، و استقرار مد نظر قرار گيرد.

جنبه ه6اي هم و معم6اري ب6ه مرب6وط جنبه ه6اي هم كيفيت z نامربوط به معماري دارد. مثال

دس6ترس پ6ذيري: انتخ6اب از بين عناص6ر در براب6ر پش6تيباني از عم6ل بازگشت

كارايي: مقدار ارتباط بين مولفه ها در برابر الگوريتم ها

ص6فات كيفي6تي مس6تقل نيس6تند و نباي6د بص6ورت مج6زا ب6ه آنه6ا دست يافت.

همبستگي مثبت )مثل تغييرپذيري و قابليت ساخت( همبستگي منفي )مثل قابليت اطمينان و امنيت(

طبقه بندي صفات كيفيتي

دس66ترس پذيري، سيس66تمي: كيفي66تي ص66فات و آزمون پ66ذيري، ام66نيت، ك66ارايي، تغييرپ66ذيري،

قابليت استفادهz مدت زمان بازاريابي صفات كيفيتي كاري: مثال

z يكپارچگي مفهومي صفات كيفيتي معماري: مثال

طبقه بندي صفات كيفيتي سيستمي

قاب6ل مش6اهده از طري6ق اج6را )مث6ل ك6ارايي و امنيت( غيرقاب6ل مش6اهده از طري6ق اج6را )مث6ل تغييرپ6ذيري و

آزمون پذيري(

z مس6تقل )متعام6د( هس6تند . اگرچ6ه اين دو گ6روه ك6امالگروه6 دو6م بر روي 6اولي تاثير غ6يرمستقيم د6ارد.

مهم هس6تند، ن6يز غيرقاب6ل مش6اهده كيفي6تي ص6فات گاهي حتي مهم تر !!!

صفات كيفيتي سيستمي

دسترس پذيري )وابسته به قابليت اطمينان( تغييرپ6ذيري )ش6امل ق6ابليت حم6ل، ق6ابليت اس6تفاده

مجدد، مقياس پذيري( كارايي امنيت

آزمون پذيريانطب6اقي و ق6ابليت اس6تفاده )ش6امل ق6ابليت خ6ود

قابليت انطباق كاربر(

top related