بخشی از پاورپوینت
اسلاید 1 :
الگوهاي فرايند براي توسعه نرم افزار مبتني بر مؤلفه
اسلاید 3 :
كليّات
الگو چيست؟
ايجاد الگو
تاريخچهاي از الگو
تعاريفي از الگوها
ويژگي الگوهاي معماري نرم افزار
سبك و الگو
ضعفهاي فرايند عمومي
متدولوژیهای چابکAgile Methodologies
مقايسه متدولوژی فرايند چابک و (فرايند عمومیSDLC=System Development Life Cycle)
ارائه فرايند چابک عمومي بهبود يافته
الگوهاي فرايندProcess Patterns
طبقهبندي براي الگوهاي فراينديProcess Patterns
الگوهای فرايند فازPhase Process Pattern
نتيجهگيري
اسلاید 4 :
الگو چيست ؟
الگوها مجموعهاي از تجارب مهندسين ماهر نرمافزار را شامل ميشوند
الگوها تجارب موفّقِ اثبات شده در توسعه نرمافزار را ضبط ميكنند
و به شما كمك ميكنند كه تكنيكهاي طراحيتان را افزايش بدهيد
الگوها در مورد يك مسأله خاص تكرار شونده در طراحي و يا پيادهسازي سيستم نرمافزاري بحث ميكند
الگوها ميتوانند معماري نرمافزار را با ويژگيهاي خاصّي بوجود آورند
الگوها داراي راه حلهايي براي بسياري از مشكلات طراحي هستند
كه ممكن است دوباره ظاهرشوند
اسلاید 5 :
ايجاد الگو
دراغلب حوزهها مانند معماري، اقتصاد، و مهندسي نرمافزار نوعي (رفتارخبره Expert Behavior) فكركردن به جفت ( مسأله- راه حل Problem-Solution)، وجود دارد، اين يك روش طبيعي براي كنار آمدن با هرنوع مسأله يا تعامل اجتماعي است
توجه به نوع مسأله و راه حل آن و در نظرگرفتن برخي فاكتورها منجر به ايجاد الگوها ميشود
جفت (Problem-Solution ) منجر به تشكيل خانوادهاي از مسائل مشابه و راه حلهايي
براي هر خانواده ميشود كه اين نشانگر يك الگو از مسائل و راه حلها است
اسلاید 6 :
تاريخچه الگوها
در اوایل دهه 1990، افراد زیادی روی الگوهای طراحی کار میکردند،امّا دراواخر1994چهار نفر به نام های، گاما، جاکوبسون، هلم و ولسایدز بیشترین تأثیر را با انتشارکتابی به نام:
"Design Pattern: Elements of Reusable Object-Oriented Software"، داشتند.
این چهار نویسنده به Gang-Of-Four = GOF مشهور شدند وبعضي به آنها گروه گاما هم مي گويند. آنها در این کتاب ايده استفاده از الگوها را در طراحی نرمافزار به کار بردند. و یک فرمت استاندارد را برای مستندسازی الگوها ایجاد کردند و 23 نوع از الگوها را دسته بندی کردند.
(الگوهای بوجود آورنده Creational Pattern)
همه الگوها که در این دسته قرار میگیرند در ارتباط با روشهای ایجاد اشیاء هستند
(الگوهای ساختاری Structural Patten)
این نوع الگوها شرح میدهند چگونه اشیاء و کلاسها میتوانند
درساختارهای بزرگتر باهم ترکیب شوند
(الگوهای رفتاری Behavioral Pattern)
این نوع الگوها روی ارتباط اشیاء با یکدیگر تمرکز دارند
اسلاید 7 :
الگوهای بوجود آورنده
الگوهای ساختاری
الگوهای رفتاری
. تقسيم بندي الگو طراحي _ گروه گاما
اسلاید 8 :
تعاريفي از الگو
Christopher Alexander دركتاب The Timeless Way of Buildingمينويسد:
هر الگو يك قاعده سه بخشي است كه رابطهاي بين:
يك (زمينه خاصContext )، يك (مسأله Problem) و يك (راه حل Solution) را بيان ميكند.
الگو به عنوان يك (مؤلفه Element)
در دنياي واقعي، هر الگو يك رابطه بين يك زمينه خاص، يك سيستم خاصّي از نيروها كه مكررادر اين زمينه اتفاق ميافتند و يك پيكربندي سه بعدي خاص كه اجازه ميدهد اين نيروها خودشان را تجزيه نمايند
الگو به عنوان مؤلفه زبان، يك (دستورالعمل Instruction) است
كه نشان ميدهد اين پيكربندي سه بعدي ميتواند بارها و بارها دوباره استفاده شود تا بتواند هرجا كه زمينه آن را مناسب بداند، سيستم نيروها را تجزيه كند
الگو يك (شيي Thing) است
كه در دنياي واقعي رخ ميدهد،ويك قاعده است كه به ما ميگويد كه چگونه و چه زماني بايد آن را بسازيم
الگو به عنوان يك(فرايند Process) و هم يك شي:
توصيفي از يك فرايندي است كه آن شيي را توليد خواهد كرد
اسلاید 9 :
ويژگي الگوهاي معماري نرم افزار
يك الگو مسأله طراحي(دوباره ظاهرشوندهاي Recurring design problem) را مشخص ميكند
كه در(موقعيت طراحي مشخصي Specific design situation) رخ دهد، ويك راه (حل Solution)
براي آن (نشان Present) ميدهد
الگوها (تجارب طراحي خوب اثبات شده و موجود Existing , well-proven design experience)
را (مستند Document) ميكند.
يك الگو(تجريدهايي Abstraction) را (شناسايي Identify) و (مشخص Specify) ميسازند
كه اين تجريدها بالاي سطح (كلاسهاي منفرد Single classes) و (نمونهها Instances) و يا
كامپوننتها قرار ميگيرند
يك الگو چندين كامپوننت، كلاس يا اشيا را تشريح ميكند و مسئوليتها و روابط بين آنها و نيز
نحوه همكاري آنها را با جزئيات بيان ميكند
يك الگو(واژگان Vocabulary )و فهم عمومي براي (اصول طراحي Design principle)تهيه ميكند
اسلاید 10 :
.ويژگي الگوهاي معماري نرم افزار
الگوها وسيلهاي براي مستند نمودن معماري نرمافزار ميباشند
الگوها ساختن نرمافزار با ويژگيهاي تعريف شده را پشتيباني ميكنند
الگوها به شما كمك ميكنند كه معماري نرمافزار پيچيده و ناهمگن ايجاد نماييد
الگوها كمك ميكنند كه بتوانيد پيچيدگي نرمافزار را مديريت نماييد
درهنگام استفاده از يك الگو براي حلّ يك مسأله بايدآن را باويژگيهايخاصّي استفاده نمود
اسلاید 11 :
سبك و الگو
سبكهاي معماري نيز به همان روش الگوها به منظورحل برخي مسائل و ويژگيهايكيفي تعريف ميشوند
سبكها راه حلها نميباشند بلكه چارچوبي براي راه حلها مي باشند
سبك چيدمان و فضاي مسأله را مشخص مينمايد و الگو نحوه ارتباطات و الگوريتمها را مشخص ميسازد
انتخاب يك سبك محدود به حوزه فضاي راه حل ميباشد، بنابراين پيچيدگي فرايند شكل مناسب را كاهش ميدهد
انتخاب الگو محدود به حوزه فضاي راه حل نميباشد، لذا پيچيدگي فرايند شكلِمناسبكاهشپيدا نميكند
بنابراين نميتوان گفت كه الگو و سبك يكي ميباشند
اسلاید 12 :
متدولوژیهای چابک در اواسط دهه نود معرفی شدند و عمدتاً بر پايه اصول و قواعدی برای طراحی، برنامهسازی، و تست میباشند که منجر به افزايش انعطاف پذيری و کاربری فرايند توسعه
سيستم های نرمافزاری می شوند. اکثراً متدولوژیهای چابک دارای فرايندی سبک وزن میباشند
آشنايي مختصر با(متدولوژیهای چابکAgile Methodologies)
متدولوژي چابك متعددند، ودر اينجا نام هفت متدولوژی های چابک معروف را ذكرميكنيم
1. متدولوژيDSDM
3. متدولوژيXP
6. متدولوژي كريستال شفافCrystal clear
2. متدولوژيScrum
5. متدولوژيdX
7. متدولوژيFeature Driven Development FDD
4. متدولوژيASD
اسلاید 13 :
خلاصه مقايسه ميان پشتيبانی و يا عدم پشتيبانی از فعاليتهای موجود در فازهای مختلف 7 متدولوژی فرايند چابک
و (فرايند عمومی SDLC=System Development Life Cycle )
خلاصهسازي و مقايسه فعاليتهاي موجود فرآيندها، فاز پيش از پروژه
اسلاید 14 :
خلاصهسازي و مقايسه فعاليتهاي موجود فرآيندها، فاز پروژه
خلاصه مقايسه ميان پشتيبانی و يا عدم پشتيبانی از فعاليتهای موجود در فازهای مختلف 7 متدولوژی فرايند چابک
و (فرايند عمومی SDLC=System Development Life Cycle )
اسلاید 15 :
خلاصهسازي و مقايسه فعاليتهاي موجود فرآيندها، فاز پس از پروژه
خلاصه مقايسه ميان پشتيبانی و يا عدم پشتيبانی از فعاليتهای موجود در فازهای مختلف 7 متدولوژی فرايند چابک
و (فرايند عمومی SDLC=System Development Life Cycle )
اسلاید 16 :
ضعفهای موجود درفرايند عمومیSDLCدرتقابل با ديگر فرايندهای چابک
عدم انجام اولويتبندی بر روی نيازمندیهای سطح بالا در فاز آغاز
عدم وجود برنامهريزی سطح بالا در فاز آغاز
عدم وجود انعطافپذيری و قابليّت تنظيم پويا
عدم راه اندازی محصول به صورت تدريجی در هرتکرار
عدم وجود فعّاليت مرور تکرار
فعاليت پس از مرگ
اسلاید 17 :
ارائه فرايند چابک عمومي بهبود يافته
فرايند چابک عمومی بهبوديافته با چهارفاز:
آغاز
تکرارهای توسعه
انتشار
مرگ
فازتکرارهای توسعه، چرخه اصلی توليد اين فرايند بوده و از چند تکرار تشکيل میشود
فرايند چابک عمومي بهبود يافته
اسلاید 18 :
الگوهاي فرايندProcess Patterns
تنها کتاب ارائهشده تاکنون در زمينه الگوهای فرايند شيئگرا توسّطScott W. Ambler
ارائه شدهاست و الگوی فرايند را بدين شکل تعريف کرده است:
” الگوئی است که رهيافت يا مجموعهای از عمليات اثبات شدهی موّفق برای
توسعه نرمافزار را تعريف میکند“
اسلاید 19 :
طبقهبندي امبلربراي الگوهاي فراينديProcess Patterns
امبلر الگوهای فرايند را به سه دسته تقسيم كرد
الگوی فرايند وظيفه Task Process Pattern
الگوی فرايند مرحله Stage Process Pattern
الگوی فرايند فاز Phase Process Pattern
درهرفرايند فازها به صورت ترتيبی و مراحل درونشان به صورت تکراری اجرا ميشوند
اسلاید 20 :
الگوهای فرايند فاز Phase Process Pattern
خاتمه
تحويل
چرخهتوليد
آغاز
تشکيل تيم
امکانسنجی
استخراج نيازمندی
هایسطحبالا واولويتبندیشده
آشنايی با
دامنه مسأله
مدلسازياولية
معماری نرمافزار
برنامهريزی
کلی
اعلام خاتمه پروژه
فعاليتهایپسازمرگ
نگهداری و
پشتيبانی
استقرار
سيستم
تجميع
تست و ارزيابی
محصول
برنامهسازی
برنامهريزی
تکرار
مستندسازی
مرور
تست
مقبوليت
آموزش
کاربران
تکميل
مستندات
تست نهايی در
سطح سيستم
متدولوژيالگوهای فرايند فاز Phase Process Pattern