الگوهاي فرايند براي توسعه نرم افزار مبتني بر مؤلفه
DESCRIPTION
Process Patterns for Component-Based Software Development. الگوهاي فرايند براي توسعه نرم افزار مبتني بر مؤلفه. ارئه دهنده : محمّد كاظم غفوريان پست الكترونيك [email protected] دانشگاه علوم وفنون مازندران- بابل- سوّم دي ماه 1388. : 1 پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه. - PowerPoint PPT PresentationTRANSCRIPT
الگوهاي فرايند براي توسعه نرم افزار مبتني بر مؤلفه
ارئه دهنده :محم&د كاظم غفوريان
پست الكترونيك[email protected]
دانشگاه علوم وفنون مازندران- بابل-
1388سو&م دي ماه
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 1:
Process Patterns for Component-Based Software Development
منابع:
[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:
كلي&ات
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 3:
از الگوايجاد الگو چيست؟ تاريخچه اي الگو
الگوهاتعاريفي از
سبك و الگوويژگي الگوهاي معماري نرم افزار
ضعف هاي فرايند عمومي
چابک Agileمتدولوژی های Methodologiesچابک فرايند متدولوژی عمومی مقايسه )فرايند SDLC=Systemو
Development Life Cycle)ارائه فرايند چابک عمومي بهبود يافته فرايند Processالگوهاي Patterns
فرايندي الگوهاي براي Processطبقه بندي Patterns
فاز فرايند Phase Processالگوهای Pattern
نتيجه گيري
الگو چيست ؟
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 4:
الگوه;ا مجم;وعه اي از تج;ارب مهندس;ين م;اهر نرم اف;زار •را شامل مي شوند
الگوها تجارب موفGقE اثبات شده در توسعه نرم افزار را ضبط مي كنند •و به شما كمك مي كنند كه تكنيك هاي طراحي تان را افزايش بدهيد
در • ش;ونده تك;رار خ;اص مس;أله ي;ك م;ورد در الگوه;ا طراحي و يا پياده سازي سيستم نرم افزاري بحث مي كند
الگوها مي توانند معماري نرم افزار را با ويژگي هاي خاصGي بوجود آورند•
مشكالت طراحي از داراي راه حل هايي براي بسياري الگوها •هستند
كه ممكن است دوباره ظاهرشوند
ايجاد الگو
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 5:
دراغلب حوزه هPا ماننPد معمPاري، اقتصPاد، و مهندسPي نرم افPزار نPوعي حPل ( Expert Behavior)رفتPارخبره راه مسPأله- ( جفت بPه فكركPردن
Problem-Solution ،)،ود داردPا وجPدن بPار آمPراي كنPبيعي بPك روش طPاين يهرنوع مسأله يا تعامل اجتماعي است
توجه به نوع مسأله و راه حل آن و در نظرگرفتن برخي فاكتورها منجر به ايجاد الگوها مي شود
( جفت Problem-Solution منجر به تشكيل خانواده اي از مسائل مشابه و راه حل هايي ) براي هر خانواده مي شود كه اين نشانگر يك الگو از مسائل و راه حل ها است
الگوها تاريخچه
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 6:
ا ،،، اف;;راد زی;;ادی روی الگوه;;ای ط;;راحی ک;;ار می کردن;;د، اف;;راد زی;;ادی روی الگوه;;ای ط;;راحی ک;;ار می کردن;;د19901990اوای;;ل ده;;ه اوای;;ل ده;;ه دردر G;;ا ام G;;امچه;ار نف;ر ب;ه ن;ام ه;ای، گام;ا، جاکوبس;ون، هلم و ولس;ایدز بیش;ترین چه;ار نف;ر ب;ه ن;ام ه;ای، گام;ا، جاکوبس;ون، هلم و ولس;ایدز بیش;ترین 19941994دراواخردراواخر::کتابی به نامکتابی به نامبا انتشاربا انتشارتأثیر را تأثیر را
"Design Pattern: Elements of Reusable Object-Oriented Software"،، .داشتند.داشتند
مش;هور ش;دند وبعض;ي ب;ه آن ه;ا گ;روه مش;هور ش;دند وبعض;ي ب;ه آن ه;ا گ;روه Gang-Of-Four = GOFاین چه;ار نویس;نده ب;ه این چه;ار نویس;نده ب;ه گام;;ا هم مي گوين;;د. آن ه;;ا در این کت;;اب اي;;ده اس;;تفاده از الگوه;;ا را در ط;;راحی گام;;ا هم مي گوين;;د. آن ه;;ا در این کت;;اب اي;;ده اس;;تفاده از الگوه;;ا را در ط;;راحی نرم اف;زار ب;ه ک;ار بردن;د. و ی;ک ف;رمت اس;تاندارد را ب;رای مستندس;ازی الگوه;ا ایج;اد نرم اف;زار ب;ه ک;ار بردن;د. و ی;ک ف;رمت اس;تاندارد را ب;رای مستندس;ازی الگوه;ا ایج;اد
(Creational Pattern )الگوهای بوجود آورنده نوع از الگوها را دسته بندی کردند. نوع از الگوها را دسته بندی کردند.2323کردند و کردند و همه الگوها که در این دسته قرار می گیرند در ارتباط با روش های ایجاد اشیاء هستند
الگوهای ساختاری( Structural Patten)این نوع الگوها شرح می دهند چگونه اشیاء و کالس ها می توانند
درساختارهای بزرگتر باهم ترکیب شوند
الگوهای رفتاری( Behavioral Pattern) این نوع الگوها روی ارتباط اشیاء با یکدیگر تمرکز دارند
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 7:
Creational Structural Behavioral
Factory MethodAbstract FactoryBuilderPrototypeSingleton
BridgeCompositeDecoratorFlyweightFaçadeProxy
InterpreterTemplate MethodChain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor
الگوهای بوجود آورنده الگوهای ساختاری الگوهای رفتاری
گروه گاما طراحي _ تقسيم بندي الگو.......
تعاريفي از الگو
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 8:
Christopher Alexander دركتاب The Timeless Way of Building:مي نويسد رابطه اي بين هر الگو يك قاعده سه بخشي است كه:
بيان مي كند. را (Solutionحل راه)يك و (Problem (، يك )مسأله Contextيك )زمينه خاص
مؤلفه الگو( به عنوان يكElement) دنياي واقعي، هر الگو يك رابطه بين يك زمينه خاص، يك سيستم در
خاص&ي از نيروها كه مكررادر اين زمينه اتفاق مي افتند و يك پيكربندي سه بعدي خاص كه اجازه مي دهد اين نيروها خودشان را تجزيه نمايند
دستورالعمل الگو( به عنوان مؤلفه زبان، يكInstruction)است كه نشان مي دهد اين پيكربندي سه بعدي مي تواند بارها و بارها دوباره
سيستم ،هرجا كه زمينه آن را مناسب بداند تا بتواند استفاده شودنيروها را تجزيه كند ش( ي يالگو يكThing )است
كه در دنيPاي واقعي رخ مي دهPد،ويPك قاعPده اسPت كPه بPه مPا مي گويPد كPه را بسازيم و چه زماني بايد آن چگونه
فرايند به عنوان الگو(يكProcess) شي:و هم يك توصيفي از يك فرايندي است كه آن شيي را توليد خواهد كرد
ويژگي الگوهاي معماري نرم افزار
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 9:
مي كند ( را مشخصRecurring design problem يك الگو مسأله طراحي)دوباره ظاهرشونده اي •(Solutionحل )( رخ دهد، ويك راه Specific design situation كه در)موقعيت طراحي مشخصي
( مي دهدPresent نشان)براي آن
(Existing , well-proven design experienceالگوها )تجارب طراحي خوب اثبات شده و موجود •( مي كند.Documentرا )مستند
( مي سازندSpecify مشخص)( و Identify شناسايي)( را Abstraction الگو)تجريدهايي يك •( و ياInstances ( و )نمونه هاSingle classesكالس هاي منفرد )كه اين تجريدها باالي سطح
كامپوننت ها قرار مي گيرند
يك الگو چندين كامپوننت، كالس يا اشيا را تشريح مي كند و مسئوليت ها و روابط بين آن ها و نيز •نحوه همكاري آن ها را با جزئيات بيان مي كند
Design (و فهم عمومي براي )اصول طراحي Vocabularyالگو)واژگان يك •
principleكند (تهيه مي
ويژگي الگوهاي معماري نرم افزار.........
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 10:
الگوها وسيله اي براي مستند نمودن معماري نرم افزار مي باشند •
الگوها ساختن نرم افزار با ويژگي هاي تعريف شده را پشتيباني مي كنند •
الگوها به شما كمك مي كنند كه معماري نرم افزار پيچيده و ناهمگن ايجاد نماييد •
الگوها كمك مي كنند كه بتوانيد پيچيدگي نرم افزار را مديريت نماييد •
درهنگام استفاده از يك الگو براي حل& يك مسأله بايدآن را درهنگام استفاده از يك الگو براي حل& يك مسأله بايدآن را باويژگي هاي خاص&ي استفاده نمودباويژگي هاي خاص&ي استفاده نمود
سبك و الگو
سبك هاي معماري نيز به همان روش الگوها به منظورحل برخي مسائل و ويژگي هاي كيفي تعريف مي شوند•
سبك ها راه حل ها نمي باشند بلكه چارچوبي براي راه حل ها مي باشند•
سبك چيدمان و فضاي مسأله را مشخص مي نمايد و الگو نحوه ارتباطات و الگوريتم ها را مشخص مي سازد•
بنPابراين • مي باشPد، حPل راه فضPاي حPوزه بPه محPدود سPبك يPك انتخPاب پيچيدگي فرايند شكل مناسب را كاهش مي دهد
پيچيPدگي • لPذا بPه حPوزه فضPاي راه حPل نمي باشPد، الگPو محPدود انتخPاب مناسب كاهش پيدا نمي كند y فرايند شكل
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 11: بنابراين نمي توان گفت كه الگو و سبك يكي مي باشندبنابراين نمي توان گفت كه الگو و سبك يكي مي باشند
x ب;ر پاي;ه x ب;ر پاي;ه مت;دولوژی های چاب;ک در اواس;ط ده;ه ن;ود مع;رفی ش;دند و عم;دتا مت;دولوژی های چاب;ک در اواس;ط ده;ه ن;ود مع;رفی ش;دند و عم;دتا
اص;ول و قواع;دی ب;رای ط;راحی، برنامه س;ازی، و تس;ت می باش;ند ک;ه منج;ر اص;ول و قواع;دی ب;رای ط;راحی، برنامه س;ازی، و تس;ت می باش;ند ک;ه منج;ر
به افزايش انعطاف پذيری و کاربری فرايند توسعهبه افزايش انعطاف پذيری و کاربری فرايند توسعه
دارای چاب;ک مت;دولوژی های x اک;ثرا ش;وند. می نرم اف;زاری ه;ای دارای سيس;تم چاب;ک مت;دولوژی های x اک;ثرا ش;وند. می نرم اف;زاری ه;ای سيس;تم
فرايندی سبک وزن می باشندفرايندی سبک وزن می باشند
چابک با)متدولوژی های مختصر Agileآشنايي Methodologies)
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 12:
متدولوژي چابك متعددند، ودر اين جا نام هفت متدولوژی های چابک معروف را ذكرمي كنيممتدولوژي چابك متعددند، ودر اين جا نام هفت متدولوژی های چابک معروف را ذكرمي كنيم
DSDMDSDM. متدولوژي. متدولوژي11
XPXP. متدولوژي. متدولوژي33
Crystal clearCrystal clear. متدولوژي كريستال شفاف. متدولوژي كريستال شفاف66
ScrumScrum. متدولوژي. متدولوژي22
dXdX. متدولوژي. متدولوژي55
Feature Driven Development FDDFeature Driven Development FDD. متدولوژي. متدولوژي77
ASDASD. متدولوژي. متدولوژي44
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 13:
از فعاليت ه;ای موج;ود در فازه;ای ي;ا ع;دم پش;تيبانی و از فعاليت ه;ای موج;ود در فازه;ای خالص;ه مقايس;ه مي;ان پش;تيبانی ي;ا ع;دم پش;تيبانی و خالص;ه مقايس;ه مي;ان پش;تيبانی متدولوژی فرايند چابک متدولوژی فرايند چابک77مختلف مختلف
(( SDLC=System Development Life CycleSDLC=System Development Life Cycle و )فرايند عمومی و )فرايند عمومی
فاز پيش از پروژهفاز پيش از پروژهخالصه سازي و مقايسه فعاليت هاي موجود فرآيندها، خالصه سازي و مقايسه فعاليت هاي موجود فرآيندها،
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 14:
فاز پروژهفاز پروژهخالصه سازي و مقايسه فعاليت هاي موجود فرآيندها، خالصه سازي و مقايسه فعاليت هاي موجود فرآيندها،
از فعاليت ه;ای موج;ود در فازه;ای ي;ا ع;دم پش;تيبانی و از فعاليت ه;ای موج;ود در فازه;ای خالص;ه مقايس;ه مي;ان پش;تيبانی ي;ا ع;دم پش;تيبانی و خالص;ه مقايس;ه مي;ان پش;تيبانی متدولوژی فرايند چابک متدولوژی فرايند چابک77مختلف مختلف
(( SDLC=System Development Life CycleSDLC=System Development Life Cycle و )فرايند عمومی و )فرايند عمومی
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 15:
فاز پس از پروژهفاز پس از پروژهخالصه سازي و مقايسه فعاليت هاي موجود فرآيندها، خالصه سازي و مقايسه فعاليت هاي موجود فرآيندها،
از فعاليت ه;ای موج;ود در فازه;ای ي;ا ع;دم پش;تيبانی و از فعاليت ه;ای موج;ود در فازه;ای خالص;ه مقايس;ه مي;ان پش;تيبانی ي;ا ع;دم پش;تيبانی و خالص;ه مقايس;ه مي;ان پش;تيبانی متدولوژی فرايند چابک متدولوژی فرايند چابک77مختلف مختلف
(( SDLC=System Development Life CycleSDLC=System Development Life Cycle و )فرايند عمومی و )فرايند عمومی
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 16:
درتقابل با ديگر فرايندهای چابکSDLCضعف های موجود درفرايند عمومی
عدم انجام اولويت بندی بر روی نيازمندی های سطح باال در فاز آغازعدم انجام اولويت بندی بر روی نيازمندی های سطح باال در فاز آغاز
عدم وجود برنامه ريزی سطح باال در فاز آغازعدم وجود برنامه ريزی سطح باال در فاز آغاز
ت تنظيم پوياG Gت تنظيم پوياعدم وجود انعطاف پذيری و قابلي عدم وجود انعطاف پذيری و قابلي
ص;ورت ب;ه محص;ول ان;دازی راه ص;ورت ع;دم ب;ه محص;ول ان;دازی راه ع;دم تدريجی در هرتکرار تدريجی در هرتکرار
اليت مرور تکرارGاليت مرور تکرارعدم وجود فعGعدم وجود فع
فعاليت پس از مرگفعاليت پس از مرگ
ارائه فرايند چابک عمومي بهبود يافته
فرايند چابک عمومی بهبوديافته با چهارفاز:فرايند چابک عمومی بهبوديافته با چهارفاز:
آغاز آغاز تکرارهای توسعه تکرارهای توسعه انتشار انتشار مرگ مرگ
از و ب;وده اين فراين;د تولي;د توس;عه، چرخ;ه اص;لی از فازتکراره;ای و ب;وده اين فراين;د تولي;د توس;عه، چرخ;ه اص;لی فازتکراره;ای چند تکرار تشکيل می شودچند تکرار تشکيل می شود
فرايند چابک عمومي بهبود يافته
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 17:
Process Patternsالگوهاي فرايند
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 18:
تنهPا کتPاب ارائه شPده تPاکنون در زمينPه الگوهPای فراينPد شPيئگرا تنهPا کتPاب ارائه شPده تPاکنون در زمينPه الگوهPای فراينPد شPيئگرا ط طتوس& Scott W. Amblerتوس&
کPرده تعريPف بPدين شPکل را فراينPد الگPوی و کPرده ارائPه شده اسPت تعريPف بPدين شPکل را فراينPد الگPوی و ارائPه شده اسPت است:است:
” الگوئی است که ره يافت يا مجموعه ای از عمليات اثبات شده ی مو&فق برای” الگوئی است که ره يافت يا مجموعه ای از عمليات اثبات شده ی مو&فق برای توسعه نرم افزار را تعريف می کند“ توسعه نرم افزار را تعريف می کند“
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 19:
Process Patternsطبقه بندي امبلربراي الگوهاي فرايندي
بPه سPه را فراينPد الگوهPای امبلPر دسته تقسيم كرد
الگوی فرايند وظيفهالگوی فرايند وظيفه Task Process PatternTask Process Pattern
مرحله فرايند مرحلهالگوی فرايند Stage Process Stage Process الگوی PatternPattern
فاز فرايند فازالگوی فرايند Phase Process Phase Process الگوی PatternPattern
درهرفراينPد فازهPا بPه صPورت ترتيPبی و مراحPل درونشPان بPه درهرفراينPد فازهPا بPه صPورت ترتيPبی و مراحPل درونشPان بPه صورت تکراری اجرا مي شوندصورت تکراری اجرا مي شوند
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 20:
Phase Process Pattern الگوهای فرايند فاز
غازآچرخه توليدتحويلخاتمه
امکان سنجیتشکيل تيم
اس;;;;;;;;تخراج نيازمندی
های س;طح باالو اولويت بن;;;دی
شده
آشنايی بادامن;;;;;;ه
مسألهمدل س;;ازي ا
وليةمعم;;;;;;اری
نرم افزار
برن;امه ريزیکلی
اعالم خاتمه پروژه
فعاليت های پس ازمرگ
نگه;;;داری و
پش;;;تيبانی
اس;تقرار
سيستم
تجميع
و تس;;;;ت ارزيابی
محصول
برن;امه ريزبرنامه سازیی
تکرار
مستندسازی
مرور
تستمقب;;ولي
ت
آم;;;;وزش
کاربران
تکميلمس;;تندا
ت
تس;ت نه;ايی در
سطح سيستم
Phase Process PatternPhase Process Pattern متدولوژي الگوهای فرايند فاز متدولوژي الگوهای فرايند فاز
نتيجه گيري
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 21:
مت;دولوژی هفت آن از وبع;د پ;ايه اي، مف;اهيم تعري;ف ابت;دا ارائ;ه اين مت;دولوژی در هفت آن از وبع;د پ;ايه اي، مف;اهيم تعري;ف ابت;دا ارائ;ه اين در
چابک بررسي شد و در ادامهچابک بررسي شد و در ادامه
تقاب;ل مي;ان مراح;ل موج;ود در دوره عم;ر هري;ک از آن ه;ا و فراين;د عم;ومی تقاب;ل مي;ان مراح;ل موج;ود در دوره عم;ر هري;ک از آن ه;ا و فراين;د عم;ومی
ارائه شده توسط امبلر موردارائه شده توسط امبلر مورد
بررس;ی قرارگ;رفت. س;پس ب;ا توج;ه ب;ه نت;ايج بررس;ی ها وکمبوده;ای فراين;د بررس;ی قرارگ;رفت. س;پس ب;ا توج;ه ب;ه نت;ايج بررس;ی ها وکمبوده;ای فراين;د
عم;ومی اين فراين;د را ب;ا اعم;ال ح;داقل تجري;د، توس;عه داده و فراين;د چاب;ک عم;ومی اين فراين;د را ب;ا اعم;ال ح;داقل تجري;د، توس;عه داده و فراين;د چاب;ک
عم;ومی بهبوديافت;ه ارائ;ه گردي;د. در بخش پاي;انی، ب;ر مبن;ای طبقه بن;دی ارائ;ه عم;ومی بهبوديافت;ه ارائ;ه گردي;د. در بخش پاي;انی، ب;ر مبن;ای طبقه بن;دی ارائ;ه
ش;ده توس;ط امبل;ر در زمين;ه الگوه;ای فراين;د ش;يئگرا، الگوه;اي فراين;د چاب;ک ش;ده توس;ط امبل;ر در زمين;ه الگوه;ای فراين;د ش;يئگرا، الگوه;اي فراين;د چاب;ک
در سطح فاز و مرحله مورد بررسی قرار گرفت.در سطح فاز و مرحله مورد بررسی قرار گرفت.
Gر..... Gر.....باتشك باتشك
پردازش الگو براي توسعه نرم افزار مبتني بر مؤلفه 22: