بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
[1] Ambler, S. W., The Agile System Development Lifecycle (SDLC), Published on the Web at: http://www.ambysoft.com/essays/agileLifecycle.html, 2006, visited in: November 2007.
[2] Ramsin R., The Engineering of an Object-Oriented Software Development Methodology. PhD thesis, Y. ORK. UK. Department of Computer Science. April 2006.
[3] Ambler, S. W., More Process Patterns: Delivering Large-Scale Systems Using Object Technology. Cambridge University Press, 1999.
[4] Craddock, A., DSDM and Scrum: FAQ's - The similarities, differences and potential inter-operability issues, published on the Web at:
http://www.dsdm.org/news/article.asp?id=27, 2006, visited in: December 2007.
[5]R. A. Jeff Garland, Large-Scale Software Architecture, 2003.
[6]L. B. Paul Clements, Rick Kazman, Software Architecture in Practice, Addison Wesely, April 2003
اسلاید 2 :
در اوایل دهه 1990، افراد زیادی روی الگوهای طراحی کار میکردند،امّا دراواخر1994چهار نفر به نام های، گاما، جاکوبسون، هلم و ولسایدز بیشترین تأثیر را با انتشارکتابی به نام:
"Design Pattern: Elements of Reusable Object-Oriented Software"، داشتند.
این چهار نویسنده به Gang-Of-Four = GOF مشهور شدند وبعضي به آنها گروه گاما هم مي گويند. آنها در این کتاب ايده استفاده از الگوها را در طراحی نرمافزار به کار بردند. و یک فرمت استاندارد را برای مستندسازی الگوها ایجاد کردند و 23 نوع از الگوها را دسته بندی کردند.
v (الگوهای بوجود آورنده Creational Pattern)
همه الگوها که در این دسته قرار میگیرند در ارتباط با روشهای ایجاد اشیاء هستند
v (الگوهای ساختاری Structural Patten)
این نوع الگوها شرح میدهند چگونه اشیاء و کلاسها میتوانند
درساختارهای بزرگتر باهم ترکیب شوند
v (الگوهای رفتاری Behavioral Pattern)
این نوع الگوها روی ارتباط اشیاء با یکدیگر تمرکز دارند
اسلاید 3 :
- الگوها مجموعهاي از تجارب مهندسين ماهر نرمافزار را شامل ميشوند
- الگوها تجارب موفّقِ اثبات شده در توسعه نرمافزار را ضبط ميكنند
و به شما كمك ميكنند كه تكنيكهاي طراحيتان را افزايش بدهيد
- الگوها در مورد يك مسأله خاص تكرار شونده در طراحي و يا پيادهسازي سيستم نرمافزاري بحث ميكند
- الگوها ميتوانند معماري نرمافزار را با ويژگيهاي خاصّي بوجود آورند
- الگوها داراي راه حلهايي براي بسياري از مشكلات طراحي هستند
كه ممكن است دوباره ظاهرشوند
اسلاید 4 :
دراغلب حوزهها مانند معماري، اقتصاد، و مهندسي نرمافزار نوعي (رفتارخبره Expert Behavior) فكركردن به جفت ( مسأله- راه حل Problem-Solution)، وجود دارد،اين يك روش طبيعي براي كنار آمدن با هرنوع مسأله يا تعامل اجتماعي است
v توجه به نوع مسأله و راه حل آن و در نظرگرفتن برخي فاكتورها منجر به ايجاد الگوها ميشود
v جفت (Problem-Solution ) منجر به تشكيل خانوادهاي از مسائل مشابه و راه حلهايي
براي هر خانواده ميشود كه اين نشانگر يك الگو از مسائل و راه حلها است
اسلاید 5 :
در اوایل دهه 1990، افراد زیادی روی الگوهای طراحی کار میکردند،امّا دراواخر1994چهار نفر به نام های، گاما، جاکوبسون، هلم و ولسایدز بیشترین تأثیر را با انتشارکتابی به نام:
"Design Pattern: Elements of Reusable Object-Oriented Software"، داشتند.
این چهار نویسنده به Gang-Of-Four = GOF مشهور شدند وبعضي به آنها گروه گاما هم مي گويند. آنها در این کتاب ايده استفاده از الگوها را در طراحی نرمافزار به کار بردند. و یک فرمت استاندارد را برای مستندسازی الگوها ایجاد کردند و 23 نوع از الگوها را دسته بندی کردند.
v (الگوهای بوجود آورنده Creational Pattern)
همه الگوها که در این دسته قرار میگیرند در ارتباط با روشهای ایجاد اشیاء هستند
v (الگوهای ساختاری Structural Patten)
این نوع الگوها شرح میدهند چگونه اشیاء و کلاسها میتوانند
درساختارهای بزرگتر باهم ترکیب شوند
v (الگوهای رفتاری Behavioral Pattern)
این نوع الگوها روی ارتباط اشیاء با یکدیگر تمرکز دارند
اسلاید 6 :
Christopher Alexander دركتاب The Timeless Way of Buildingمينويسد:
v هر الگو يك قاعده سه بخشي است كه رابطهاي بين:
يك (زمينه خاصContext )، يك (مسأله Problem) و يك (راه حل Solution) را بيان ميكند.
v الگو به عنوان يك (مؤلفه Element)
در دنياي واقعي، هر الگو يك رابطه بين يك زمينه خاص، يك سيستم خاصّي از نيروها كه مكررادر اين زمينه اتفاق ميافتند و يك پيكربندي سه بعدي خاص كه اجازه ميدهد اين نيروها خودشان را تجزيه نمايند
v الگو به عنوان مؤلفه زبان، يك (دستورالعمل Instruction) است
كه نشان ميدهد اين پيكربندي سه بعدي ميتواند بارها و بارها دوباره استفاده شودتا بتواندهرجا كه زمينه آن را مناسب بداند، سيستم نيروها را تجزيه كند
v الگو يك (شيي Thing) است
كه در دنياي واقعي رخ ميدهد،ويك قاعده است كه به ما ميگويد كه چگونهو چه زماني بايد آنرا بسازيم
v الگو به عنوان يك(فرايند Process)و هم يك شي:
توصيفي از يك فرايندي است كه آن شيي را توليد خواهد كرد
اسلاید 7 :
- يك الگو مسأله طراحي(دوباره ظاهرشوندهاي Recurring design problem) را مشخص ميكند
كه در(موقعيت طراحي مشخصي Specific design situation) رخ دهد، ويك راه (حل Solution)
براي آن (نشان Present) ميدهد
- الگوها (تجارب طراحي خوب اثبات شده و موجود Existing , well-proven design experience)
را (مستند Document) ميكند.
- يك الگو(تجريدهايي Abstraction) را (شناسايي Identify) و (مشخص Specify) ميسازند
كه اين تجريدها بالاي سطح (كلاسهاي منفرد Single classes) و (نمونهها Instances) و يا
كامپوننتها قرار ميگيرند
- يك الگو چندين كامپوننت، كلاس يا اشيا را تشريح ميكند و مسئوليتها و روابط بين آنها و نيز
نحوه همكاري آنها را با جزئيات بيان ميكند
- يك الگو(واژگان Vocabulary )و فهم عمومي براي (اصول طراحي Design principle)تهيه ميكند
اسلاید 8 :
- الگوها به شما كمك ميكنند كه معماري نرمافزار پيچيده و ناهمگن ايجاد نماييد
- الگوها ساختن نرمافزار با ويژگيهاي تعريف شده را پشتيباني ميكنند
- الگوها كمك ميكنند كه بتوانيد پيچيدگي نرمافزار را مديريت نماييد
- الگوها وسيلهاي براي مستند نمودن معماري نرمافزار ميباشند
اسلاید 9 :
- سبكهاي معماري نيز به همان روش الگوها به منظورحل برخي مسائل و ويژگيهايكيفي تعريف ميشوند
- سبكها راه حلها نميباشند بلكه چارچوبي براي راه حلها مي باشند
- سبك چيدمان و فضاي مسأله را مشخص مينمايد و الگو نحوه ارتباطات و الگوريتمها را مشخص ميسازد
- انتخاب يك سبك محدود به حوزه فضاي راه حل ميباشد، بنابراين پيچيدگي فرايند شكل مناسب را كاهش ميدهد
- انتخاب الگو محدود به حوزه فضاي راه حل نميباشد، لذا پيچيدگي فرايند شكلِمناسبكاهشپيدا نميكند
اسلاید 10 :
متدولوژیهای چابک در اواسط دهه نود معرفی شدند و عمدتاً بر پايه اصول و قواعدی برای طراحی، برنامهسازی، و تست میباشند که منجر به افزايش انعطاف پذيری و کاربری فرايند توسعه
سيستم های نرمافزاری می شوند. اکثراً متدولوژیهای چابک دارای فرايندی سبک وزن میباشند
متدولوژي چابك متعددند، ودر اينجا نام هفت متدولوژی های چابک معروف را ذكرميكنيم
- متدولوژيDSDM
- متدولوژيScrum
- متدولوژيXP
- متدولوژيASD
- متدولوژيdX
- متدولوژي كريستال شفافCrystal clear
- متدولوژيFeature Driven Development FDD