380 likes | 667 Views
سيستم هاي تصميم يار پيشرفته (فصل 1،2، و 3 ). تعريف معماري. معماري شرحي از ساختار يک سيستم است. ”معماري نرم افزار يک برنامه و يا يک سيستم محاسباتي، ساختاري از ساختارها است که شامل مؤلفه هاي نرم افزار، ويژگي هاي خارجي و قابل مشاهده اين مؤلفه ها، و روابط بين آنها است“.
E N D
سيستم هاي تصميم يار پيشرفته (فصل 1،2، و 3 )
تعريف معماري • معماري شرحي از ساختار يک سيستم است ”معماري نرمافزار يک برنامه و يا يک سيستم محاسباتي، ساختاري از ساختارها است که شامل مؤلفههاي نرمافزار، ويژگيهاي خارجي و قابل مشاهده اين مؤلفهها، و روابط بين آنها است“ • معماري اولين فرآوردهاي است که به شناسايي ويژگيهاي کيفي و نحوه دستيابي به آن کمک ميکند • شرحي از اجزاء سيستم و ارتباطات آنها را نيز بيان ميکند
چرخه حيات معماري • به تأثيراتي که معماري از محيط ميپذيرد و تأثيراتي که بر محيط ميگذارد که نوعي چرخه را ايجاد ميکند، چرخه حرفه معماري يا ABC گفته ميشود. • بازخورداز طرف طراحان به تحليلگران و بالعکس • در سازمان سهامداران از ساختار سيستم تأثير ميپذيرند
تأثيرات معماري بر سهامداران • بازارياب: ظاهر زيبا، زمان کم عرضه به بازار، هزينههاي کم، امکان برابري و رقابت با رقبا • کاربر نهايي: رفتار سيستم ، کارايي، امنيت، قابليت اطمينان، قابليت عملکرد، قابليت استفاده، قابليت دسترسي، امکان خصوصيسازي ساده، واسط کاربر زيبا و قابل فهم و ساده • مشتري : هزينه کم، تحويل بموقع، مصالحه بين هزينه و قابليت استفاده ، کارايي، قابليت اطمينان، سازگاري با Platform هاي مختلف، استفاده مناسب از حافظه، استفاده مناسب از شبکه، تغييرپذيري امکان تعامل با ساير سيستمها
تأثيرات معماري بر سهامداران • مدير سيستم : // • معمار : درک صحيح نيازهاي سيستم وسهامداران، ايجاد مصالحه بين نيازهاي سهامداران،امکان استدلال و آوردن دليل براي تصميمات گرفته شده از جمله قبول يا رد يک خواسته سهامدار و سبک انتخابي و ... در برابر سهامداران، امکان استفاده از طرحهاي موفق در آينده، بکارگيري آموختهها در کارهاي عملي همچون انتخاب و تغيير سبکها، امکان برنامهريزي و زمانبندي و محدود کردن تصميمات جهت سادگي و سرعت در تصميمگيري
تأثيرات معماري بر سهامداران • نگهداري کننده نرم افزار: تغييرپذيري ، قابليت حمل • توليدکننده نرمافزار : توجه به محدوديتهاي حاصل از نيازهاي غير وظيفهمندي، امکان تست و يکپارچهسازي مؤلفهها، قابليت استفاده مجدد، کليه ويژگيهاي کيفي تعيينشده بعد از ايجاد تعديل و مصالحه بين نيازمنديها • مدير توليد نرمافزار : نقطه نظرات توليدکننده نرمافزار و بازارياب + بکارگيري کليه کارمندان و برنامهنويسان متناسب با مهارتهاي آنان و به صورت يکنواخت، مديريت کلي روند و فرآيندهاي توليد، هزينههاي کم، تا حد امکان
کاربرد معماري براي سهامداران • معمار: مذاکرات و ايجاد مصالحه بين نيازمنديهاي مطرح شده، مباحثه در مورد منابع مورد نياز براي برآورده ساختن ويژگيهاي زمان اجراي مورد نياز و نحوه تخصيص بودجهها . • توليد کننده : مباحثه در مورد منابع مورد نياز ، ايجاد و برآوردن اجبارها و اضطرارها و فعاليتهاي جزئي پياده سازي و جلوگيري از محدوديتهاي غير ضروري و غير مجاز بر روي فعاليتهاي توليد و استانداردسازي نيازهاي غير وظيفهمندي به صورت مستندات، ايجاد پايهاي براي ارزيابي تبعيت پياده سازي سيستم از طرحهاي ارائه شده
کاربرد معماري براي سهامداران • نگهداري کننده نرمافزار: تعيين تيمهاي توسعه، طراحي و اختصاص منابع پروژه، رديابي ميزان پيشرفت پروژه
چرخه حيات معماري در معماري بايستي اصل تجريد رعايت شود. به اين معني که آنچه که از ديد معماري و در جهت ايجاد سيستم اهميت دارد را شرح و بررسي نماييم.
فرآيندهاي نرمافزاري و چرخه حرفه معماري • ايجاد شرح حرفه براي سيستم • درک نيازمنديها • ايجاد و يا انتخاب معماري • ارائه و يا صحبت در مورد معماري • تحليل و ارزيابي معماري • پيادهسازي سيستم بر مبناي معماري • کسب اطمينان از اينکه سيستم متناسب با معماري پيادهسازي شده است
چه چيزي در کيفيت معماري تأثيرگذار است؟ • معماري بايستي حاصل کار يک معمار و يا گروه محدودي معمار که فردي را به عنوان مدير انتخاب کردهاند باشد. • معماري بايستي فهرست دقيقي از نيازمنديها با ذکر اولويتها و ويژگيهاي کيفي که بايستي در نظر داشته باشد را در دست داشته باشد. • بايستي معماري به درستي مستند شده باشد و براي اين مستندسازي از علائم مورد توافق سهامداران استفاده کند تا کليه سهامداران امکان درک آن را داشته باشند. • معماري بايستي مورد تأييد سهامداران قرار بگيرد. • معماريبايستي قبل از آنکه دير شود با استفاده از معيارهاي کمي(مانند توان عملياتي) و بازنگريهاي رسمي در مورد اهداف کيفي(مانند قابليت نگهداشت) تحليل شود.
چه چيزي در کيفيت معماري تأثيرگذار است؟ • معماري بايستي از ماژولهاي خوشتعريفي که هريک وظيفهمنديهايي را انجام ميدهند تشکيل شده باشد. • ماژولهاي بايستي حتيالامکان مستقل باشند. • ماژولها بايستي اصل مخفيسازي اطلاعات و کپسولسازي را رعايت کنند. • معماري نبايستي به ويرايش خاصي از محصول وابسته باشد. • ماژول توليدکننده داده بايستي از ماژول مصرفکننده داده مستقل باشد. • جهت دستيابي به اجراي موازي بايستي در طراحي فرآيندها و نخها دقت شود. • فرآيندها بايستي به صورتي شفاف طراحي شوند به نحوي که نحوه اختصاصدهي آنها به پردازندهها به راحتي و حتي در زمان اجرا قابل تغيير باشد.
فرآيند کنترل MODP MODR MODN معماري نرمافزار چيست؟ • اين نمودار هيچ توضيحي در مورد ساختار اين مؤلفهها نميدهد. • هيچ توضيحي در مورد زمان اجراي آنها نميدهد. • هيچ توضيحي در مورد اينکه آيا اين مؤلفهها با فرآيندها و برنامههاي سيستم خوانايي دارد يا خير نميدهد. • اينکه آيا اين مؤلفهها ماژول، شئ، وظيفه، روال، فرآيند، و يا برنامه توزيعشده هستند نميدهد. • روابط بين اين مؤلفهها بيان نميکند که آيا اين مؤلفهها يکديگر را کنترل ميکنند، يا اينکه با يکديگر تعامل ميکنند، داده ردوبدل ميکنند، و يا اينکه از يکديگر استفاده ميکنند يا خير. • اينکه آيا اين مؤلفهها با يکديگر همگام کار ميکنند يا خير. • انوع مکانيزم ارتباطي آنها با يکديگر چگونه است. • آيا اين مؤلفهها در لايه يکساني قرار ميگيرند و يا اينکه در لايههاي مختلفي قرار دارند. • معماري در وضعيت بلادرنگ چگونه عمل ميکند. • نحوه جريان داده و کنترلها در سيستم چگونه است.
تعريف جامع معماري "معماري نرمافزار يک سيستم محاسباتي و يا يک برنامه عبارت است از ساختار و يا ساختارهايي از سيستم که شامل مؤلفههاي نرمافزاري، ويژگيهاي آشکار اين مؤلفهها، و روابط بين آنها ميشود
مدل مرجع معماري مرجع معماري نرمافزار معماري سيستم سبک معماري سبکهاي معماري، مدلهاي مرجع، و معماري مرجع • سبک معماري : يک سبک معماري شرحي از نوع مؤلفه و کنترلها و تبادل اطلاعات در زمان اجراي معماري است. • مدل مرجع : يک مدل مرجع شامل طبقهبندي از وظيفهمنديهايي است که جريان داده بين اين بخشها را نيز نمايش ميدهد. مدل مرجع حاصل شکست يک صورت مسأله به بخشهايي است که با همکاري يکديگر مشکلي را حل ميکنند. • معماري مرجع : معماري مرجع، مدل مرجعي است که به مؤلفههاي يک نرمافزار و جريان داده بين آنها نگاشت يافته است.
چرا معماري نرمافزار مهم است ؟ • برقراري ارتباط بين سهامداران : معماري نرمافزار ديد سطح بالا و تجريديافته و عمومي را از سيستم ارائه ميکند که بيشتر سهامداران امکان درک و مباحثه در مورد آن را با يکديگر دارند. • تصميمات طراحي سريع : معماري نرمافزار تصميمات سريعي در مورد طراحي سيستم ارائه ميکند و در اين تصميمات کليه چرخه حيات معماري را حتي تا فاز استقرار و نگهداشت در نظر ميگيرد. علاوه بر اين امکان تحليل صحيح سيستم را برآورده ميکند. • تجريد قابل انتقالي از سيستم : معماري نرمافزار مدلي کوچک و هوشمند از سيستم و مؤلفههاي آن و نحوه ارتباط اين مؤلفهها ارائه ميکند که قابل انتقال بين سيستمها است و در واقع ميتوان از آن در سيستمهايي با نيازمنديهاي مشابه استفاده کرد.
چرا معماري نرمافزار مهم است ؟ • مجموعه تصميمات طراحي را به صورتي سريع اعلام ميدارد • يک معماري اضطرارهاي پيادهسازي را تعريف ميکند • معماري ساختار سازماني را تحميل ميکند • معماري ويژگيهاي کيفي سيستم را شرح داده و دسترسي به آن را امکانپذير ميکند • پيشبيني ويژگيهاي سيستم با مطالعه معماري
چرا معماري نرمافزار مهم است ؟ • معماري به استدلال و مديريت تغييرات کمک ميکند • معماري به نمونهسازي تکاملي کمک ميکند • معماري به عنوان يک مدل قابل استفاده مجدد و انتقال • خط توليد يک معماري را به اشتراک ميگذارد • سيستم ميتواند با استفاده از مؤلفههاي بزرگ و از قبل توسعهيافته خارجي ساخته شود • معماري توسعه مؤلفههاي مبتني بر الگو را امکانپذير ميکند • معماري ميتواند پايهاي براي آموزش باشد
ساختارهاي معماري • ساختارها شامل مجموعه اي از مؤلفه ها و روابط بين آنها است • ساختار از هدف، محدوديت ها و راهنماي شرايط عمومي تشکيل شده است. • اينکه معمار از چه ديدي بخواهد سيستم را مورد بررسي قرار دهد تعيين کننده ساختار انتخابي است. • معماري با بررسي سيستم از ديدهاي مختلف و مستندسازي آن ايجاد مي شود. • در واقع معماري از پارامترهاي متعامد تشکيل شده است.
ساختارهاي معماري • ساختار ماژول : اجزاء اين ساختار ماژولها هستند که در واقع اجزاء پياده سازي هستند. ماژولها در واقع روشي مبتني بر کد را براي در نظر گرفتن سيستم فراهم مي کند. ساختار ماژول وضعيت زمان اجراي سيستم را مشخص نمي کند و تنها مسئوليت هاي هر ماژول و ارتباط هر ماژول با ساير ماژول ها را شرح مي دهد. • ساختار مؤلفه ها و اتصالات : ساختار زمان اجراي سيستم را نمايش مي دهد و اينکه مؤلفه هاي مهم اجرايي کدام ها هستند و چگونه با يکديگر تعامل دارند.
ساختارهاي معماري • ساختار اختصاص دهي : ارتباط مؤلفه هاي نرم افزاري را با اجزاء خارجي بيان مي کند. اينکه کدام پردازنده هر جزء را اجرا مي کند، اطلاعات هر جزء نرم افزاري در حين توسعه، تست، و ساخت در کجا ذخيره مي شود و غيره را بيان مي دارد.
ساختارهاي معماري • ساختار تجزيه • ساختار کاربرد • ساختار لايه • ساختار کلاس • ساختار فرآيند • ساختار همزماني • ساختار داده هاي اشتراکي • ساختار سرويس دهنده/ سرويس گيرنده • ساختار استقرار • ساختار پياده سازي • ساختار اختصاص کار
ساختار تجزيه • اجزاء آن شامل ماژول ها سازماندهي شده به صورت سلسله مراتب است و در واقع نحوه تقسيم هر ماژول را به ماژول هاي کوچکتر نمايش مي دهد. • روابط از نوع ارث بردن و به اشتراک گذاري داده هاي محرمانه است. جهت تنظيم و سازماندهي پروژه هاي سازماني استفاده مي شود. • ماژول ها فرآورده هاي خاص خود از جمله کد، طرح آزمايش، و واسط مربوطه را دارا هستند. • در اين ساختار ممکن است نام اجزاء نام بخش هاي سازماني باشد. • اين ساختار بر تغييرپذيري سيستم تأثير بسياري دارد.
ساختار کاربرد • اجزاء اين ساختار مي تواند ماژول ها، روال ها و يا منابع متناسب با هر ماژول باشد. • اجزاء با رابطه کاربر به يکديگر متصل مي شوند. • در اين ساختار، اجزاء طبق قوانين تعريف شده يکديگر را به کار مي گيرند. • اين ساختار به مهندس سيستم در جهت توسعه تدريجي سيستم کمک مي کند و علاوه بر اين امکان بررسي روابط صحيح مؤلفه ها را مي دهد.
ساختار لايه اي • اين ساختار در واقع وظيفه مندي ها را در قالب ارتباطات به صورت لايه اي تعريف مي کند. • در ساختار لايه اي واقعي، لايه n تنها مي تواند از خدمات لايه n-1 استفاده کند. اين ساختار براي ارائه تجريد استفاده مي شود که در واقع هر لايه نيازي به نحوه پياده سازي لايه پايين تر ندارد. • درواقع اين لايه ارتباط تنگاتنگي با ساختار کاربرد دارد و نوعي کنترل را بر آن مي گذارد.
ساختار کلاس • اجزا ء در اين ساختار کلاس ها هستند و روابط از نوع inherits-fromو ياis- an-instance-ofاست. • اين ساختار به شناسايي صفات مشترک و شناسايي تفاوت ها و پياده سازي تفاوتهاي جزئي در قالب زير کلاسها کمک مي کند. • اين ساختار به پياده سازي تدريجي نرم افزار و همچنين قابليت استفاده مجدد کمک مي کند.
ساختار فرآيند • اين ساختار در ارتباط مستقيم با ديدگاههاي ماژول و مفهومي است و جنبههاي پويا و زمان اجراي سيستم را در نظر ميگيرد. • در اين ساختار بخشها شامل فرآيندها و نخها است. • روابط از نوع Synchronizes-with، Can't run- without ، Can't run -with ، preempt و غيره است.
ساختار همزماني • اين ساختار به تشخيص فرصتهاي موازي سازي و به اشتراک گذاري منابع کمک مي کند. • بخش ها در اين ساختار مؤلفه ها هستند و ارتباطات از نوع رشته هاي منطقي است. • يک نخ منطقي مجموعه اي از محاسبات پشت سر هم است که مي تواند به نخي جداگانه واگذار شود. • اين ساختار به شناسايي همگام سازي فرآيندها کمک مي کند.
ساختار داده اشتراکي • اين ساختار داده هايي که مورد توليد، ذخيره سازي و يا دسترسي قرار مي گيرند را شامل مي شود. • اين ساختار بيان مي دارد که داده ها چگونه توسط مؤلفه هاي در حال اجرا ايجاد و استفاده مي شوند. • اين ساختار به اطمينان از کارايي و جامعيت داده کمک مي کند.
ساختار سرويس دهنده/ سرويس گيرنده • چنانچه سيستم به عنوان مجموعه اي از گروه هاي سرويس گيرنده و سرويس دهنده طراحي شود، اين ساختار مناسب است. مؤلفه ها از نوع سرويس دهنده ها و سرويس گيرنده ها هستند و ارتباطات از نوع پروتوکلها و پيغام هايي هستند که اين مؤلفه ها براي انجام کار خود ارسال مي کنند. • اين ساختار براي قابليت تغيير، توزيع پذيري فيزيکي، و تقسيم کار به صورت متوازن در جهت افزايش کارايي مناسب است.
ساختار استقرار • نحوه نگاشت نرم افزار به پردازنده هاي سخت افزار و اجزاء ارتباطي نمايش مي دهد. • اجزاء نرم افزار، سخت افزار، و کانال هاي ارتباطي است. • روابط از نوع اختصاص-مي يابد و مهاجرت-مي کند-به است. • اين ديدگاه به مهندس سيستم تحليل کارايي و جامعيت داده دسترس پذيري و امنيت را ممکن مي کند. • اين ساختار بخصوص براي سيستم هاي موازي و يا توزيع شده کاربرد دارد.
ساختار پياده سازي • اين ساختار نحوه نگاشت نرم افزار به ساختارهاي فايل را در طي توسعه، يکپارچه سازي و يا کنترل پيکربندي نمايش مي دهد. • اين ساختار براي تنظيم و مديريت فعاليت هاي توسعه و فرآيندهاي ساخت مناسب است.
ساختار اختصاص کار • اين ساختار در جهت اختصاص فعاليت هاي پياده سازي و يکپارچه سازي به تيم هاي توليد مناسب است. • اين ساختار به کنترل عملکرد افراد کمک مي کند. • اين ساختار به خصوص در پروژه هاي گسترده اي که کار به تيم هاي مختلفي واگذار مي شود مناسب است و حتي نحوه ارتباط اين تيم ها را نيز بيان مي کند.
ديدگاه 4+1 • منطقي : شامل کلاس ها و اشياء که در o.o در جهت دستيابي به حد اکثر تجريد استفاده مي شود. (ساختار ماژول ها) • فرآيند : نحوه سازگاري و توزيع وظيفه مندي ها را نمايش مي دهد. (ساختار مؤلفه ها و اتصالات) • توسعه : شرح سازمان دهي ماژول ها و زير سيستم ها را در حين توسعه نمايش ميدهد. (مشابه ساختار اختصاص دهي) 4 + 1
ديدگاه 4+1 • فيزيکي : نحوه نگاشت اجزاء را به پردازنده ها و نودهاي ارتباطي مشخص مي کند. اين ساختار مشابه ساختار اختصاص دهي است اما بيشتر جنبه استقرار را در نظر مي گيرد. (ساختار اختصاص دهي) • سناريو : به خودي خود ديد معماري نيست. (use case) 4 + 1