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