درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی به ًام خدا هقدههای بز طزاحی -رٍش CRC فهزست هطالب تزوش هْن 2 ..................................................................................................................... ًشاحی چیؼت؟ 2 ............................................................................................................... فشایٌذ ػوَهی ًشاحی 3 ..................................................................................................... ًشاحی ثذ 4 ................................................................................................................. سٍؽ 7 ................................................................................................................... CRC اجشای 9 .............................................................................................................. CRC ًىبت هْن 11 ............................................................................................................... هثبل ثشای سٍؽ 11 ................................................................................................. CRC ًوَداس والع دس 13 .................................................................................................... UML UMLچیؼت؟ 13 ......................................................................................................... ًوَداس والع 14 ........................................................................................................... اكَل حبون ثش ًشاحی والػْب 21 ............................................................................................. اكل ثبصِثؼتِ(ثبص ثَدى دس ػیي ثؼتگی) 21 ................................................................................. اكل یىتبیی ٍظیفِ والع 22 ............................................................................................. اكل جبیگضیٌی لیؼىَف 22 ................................................................................................ اكل ٍاسًٍگی ٍاثؼتگی 23 ................................................................................................. اكل تفىیه ٍاػٌِ ّب 24 ................................................................................................. درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی تذکز ههن ایي هؼتٌذ ثِ ػٌَاى ساٌّوبی ًشاحی ٍ پیبدُػبصی ثشای داًـجَیبى دسع ثشًبهِػبصی پیـشفتِ تْیِ ؿذُ اػت ٍ فشایٌذ اسایِ ؿذُ دس آى هجتٌی ثش ّیچ هتَدٍلَطی سػوی تَلیذ ًشمافضاس ًیؼت .ولیِ هٌبلت هٌشح ؿذُ دس ایي هؼتٌذ ؿبهل ػبدُػبصی دس حل هَسد ًیبص ثشای دسع جبسی ثَدُ اػت .لٌفي ثشای جضئیبت هشثَى ثِ سٍؽّب ٍ ًوَداسّب ثِ وتبةّبی هشجغ یب دسعّبی هشثَى ثِ آىّب هشاجؼِ ًوبییذ طزاحی چیست؟ ًشاحی ثخؾ اص فشایٌذ ایجبد ًشمافضاس اػت وِ ثِ تْیِ یه ًمـِ ٍ ًشح اص ًشمافضاسی وِ ثبیذ پیبدُػبصی ؿَد ،اختلبف داسدٍ .سٍدی فشایٌذ ًشاحی تَكیف هشثَى ثِ ًیبصهٌذیّبی ًشمافضاس(دس ایي دسع ؿشح هؼئلِ یب پشٍطُ) ٍ خشٍجی آى تَكیف اجضای ًشمافضاس(دس ایي دسع والعّبٍ ،یظگیّب ٍ هتذّبیـبى ٍ سٍاثي ثیي آىّبػت). دس یه جولِ هیتَاى گفت وِ تَكیف ًیبصهٌذیّبی یه ًشمافضاس دسثبسُ چیؼتی ًیبص ثشای آى ًشمافضاس ٍ تَكیف ًشاحی ًشمافضاس ،چگًَگی ثشآٍسدى آى ًیبصّب سا ثیبى هیوٌذً .شاحی سا هیتَاى ثِ سٍؽّبی هختلفی هؼتٌذ وِ دس ایي دسع ّذف هؼتٌذػبصی آى ثب هذلّبی ً ٍ CRCوَداس ػبدُؿذُ والع اص ًوَداسّبی UMLاػت. دلت ًوبییذ وِ اػتفبدُ اص صثبى ؿیگشا ثشای ایجبد ساُحل ًشمافضاسی ،ؿشى وبفی ثشای ؿیگشا ثَدى ًشمافضاس ًیؼت .ثلىِ ایي ًحَُ ًشاحی ٍ پیبدُػبصی اػت وِ هـخق هیوٌذ اص اكَل ؿیگشایی سػبیت ؿذُ اػت یب خیش. درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی فزایٌد عوَهی طزاحی گبم ّبی صیش یه فشایٌذ ػوَهی دس حذ هٌبلجی وِ دس ایي هؼتٌذ اسایِ ؿذُ اػت ٍ هتٌبػت ثشای هحتَای ایي دسع سا اسایِ هیدّذ .تَجِ ًوبییذ وِ ایي فشایٌذ تٌْب ؿبهل ثخؾ ًشاحی تب پیبدُػبصی ثَدُ ٍ جضئیبت هشثَى ثِ لجل یب ثؼذ اص ایي هشاحل سا دس ًظش ًگشفتِ اػت. -1ؿٌبػبیی سفتبس ػیؼتن ؿٌبػبیی سفتبس ػیؼتن خَد یه هَهَع هفلل ثِ ًبم هٌْذػی ًیبصهٌذیّب ٍ تحلیل ًیبصهٌذیّب اػت. تَكیف سفتبس ػیؼتن ثبیذ ثِ صثبى هـتشی ثیي اػتفبدُوٌٌذگبى ػیؼتن ٍ هٌْذػبى تَلیذوٌٌذُ ػیؼتن ًَؿتِ ؿَد. دس حذ ایي دسع هٌظَس اص ایي لؼوت تَكیف هؼئلِ یب پشٍطُای اػت وِ ثِ ػٌَاى ػَال هٌشح هیؿَد. -2پبالیؾ ًیبصهٌذیّب ّ ذف اص ایي گبم تَكیف ػٌبسیَّبیی گبمثِگبم ثشای اػتفبدُ اص ػیؼتن اػت .ایي ػٌبسیَّب دس ػیي ایي وِ سفتبس دسػت ًشمافضاس سا ثتَاًٌذ تَكیف هیوٌٌذ ثلىِ ثشای اسصیبثی دسػتی سفتبس ًشمافضاس ثؼذ اص پیبدُػبصی هیتَاًٌذ ثِ وبس سًٍذ. خشٍجی ایي وبس هؼتٌذ تَكیف ًیبصهٌذیّبی ًشمافضاس اػت .یه فشایٌذ سفت ٍ ثشگـتی دسیبفت ثبصخَسد ثیي تْیِوٌٌذُ ایي هؼتٌذ ٍ اػتفبدُوٌٌذُ ػیؼتن هیتَاًذ ثشای حلَل تَافك ٍ دیذ ٍاحذ اص ًشمافضاس ثیي تَلیذوٌٌذُ ٍ اػتفبُوٌٌذُ آى ثؼیبس هفیذ ثبؿذ. -3ؿٌبػبیی والعّبی ًشمافضاس دس ایي هشحلِ والعّبی اكلی ٍ سفتبسّبی هْن ّش وذام ؿٌبػبیی هیؿًَذ. اػتفبدُ اص سٍؽ CRCدس ایي هشحلِ آغبص هیؿَد(.ثشای جضئیبت ثخؾ سٍؽ CRCهشاجؼِ ًوبییذ). -4ؿشٍع هؼتٌذػبصی ًشاحی ایي هشحلِ ؿبهل والعّبیی اػت وِ دس لبلت هذلّبی CRCدس گبم هشحلِ ًْبیی آى ٍ پغ اص چٌذ تىشاس پبالیؾ اػتخشاج ؿذُاًذ. درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی -5هؼتٌذػبصی ًشاحی دس ایٌجب هٌظَس هؼتٌذػبصی والعّب دس لبلت ًوَداس والع اػت .دس ایي هشحلِ سٍاثي ثیي والعّب ٍ ؿىل ساثٌِ ثِ كَست دلیكتش تَكیف هیؿَد .سٍاثي پذسفشصًذی هَسد ًیبص ؿٌبػبیی ٍ هؼتٌذػبصی هی- ؿَد. -6پیبدُػبصی والعّب دس ایي هشحلِ ًوَداس والع ثِ والعّبی جبٍا تجذیل هیؿَد ٍ جضئیبت ثیـتشی ثؼتِ ثِ ًیبص ثِ آىّب اهبفِ هیؿَد .والعّبیی جذیذی ثؼتِ ثِ التوبئبت پیبدُػبصی هَسد ًیبص ثبؿذ وِ ثبیذ ًَؿتِ ؿًَذ. طزاحی بد ًشاحیای خَة اػت وِ ػبدُ ،وَتبُ ٍ هختلش ،لبثل فْن ،لبثل تغییش ٍ لبثل ثبصثىبسگیشی 1ثبؿذ ٍ پیبدُػبصی آى ثِ ػبدگی كَست گیشد. ًجك لبػذُ ولی وِ هیتَاى چیضّب سا اهذاد آًْب ؿٌبخت یه ساُ تَكیف ًشاحی خَة ،تَكیف ًشاحی ثذ اػت .هؼوَال ًـبًِ یه اتفبق ثذ دس ًشمافضاس سا ثَی ثذ 2هیًبهٌذ .3ثِ ػجبست دیگش فْشػت صیش سا هیتَاى اص ثَّبی ثذ ًشاحی اسایِ داد. -1ػفت ٍ ػخت ثَدى ًشاحی( :)Rigidityتغییش ػیؼتن ػخت اػت صیشا ّش ثبس وِ یه ثخـی تغییش هیوٌذ ثبیذ ثخؾّبی دیگش ًیض تغییش وٌذ تب ثب تغییش جذیذ ػبصگبس ثبؿذ .ایي صًجیشُ تغییش ثِ كَست ثبصتبةّبی ثیاًتْب دس ػیؼتن هٌتـش هیؿَد(تغییش هٌتـشؿًَذُ). -2ؿىٌٌذُ ثَدى ًشاحی( :)Fragilityتغییش دس یه لؼوت ػیؼتن هَجت اص وبس افتبدى ثخؾّبی دیگشی وِ سثي هؼتمیوی ثِ ثخؾ تغییش یبفتِ ًذاسًذ ،هیؿَد. Reusability Bad Smell 3 سیـِ ایي اكٌالح ثِ وتبة هؼشٍف ًَ refactoringؿتِ هبستیي فبٍلش ٍ وٌت ثه ثشهیگشددً .مل لَلی اص هبدس ثضسي وٌت ثه وِ هیگفت ٍلتی ثَی ثذی هیؿٌَی ٍلت ػَم وشدى وٌِْ ثچِ اػت ،الْبم ثخؾ ایي اكٌالح ثَد ثِ ایي هؼٌب وِ ٍلتی ًـبًِّبیی اص ًشاحی یب ثشًبهِ ًَیؼی ثذ سا هیثیٌی ٍلت ثبصًَیؼی() refactoring اػت .ؿبیذ ثتَاًذ دلیل چٌیي ًگبّی سا ثِ هؼئلِ ویفیت ًشاحی یب پیبدُػبصی ،لبثل فْن ثَدى ٍ هلوَعتش ثَدى تَكیف ٍیظگیّبی ثذ ٍ خٌبّبی ًشاحی ٍ پیبدُػبصی دس همبثل تَكیف خـه ،اًتضاػی ٍ غیشلبثل فْن ًشاحی یب پیبدُػبصی خَة ثشای ثشًبهًَِیؼبى داًؼت. 1 2 ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا -3غیشلبثل جبثجبیی ثَدى ًشاحی( :)Immobilityثؼیبس ػخت اػت وِ ثتَاى یه هَلفِ ػیؼتن سا ثشای ثبصثىبسگیشی اص ول ػیؼتن جذا وشد ٍ جبی دیگشی هَسد اػتفبدُ هجذد لشاس داد. -4گشاًشٍی صیبد ًشاحی( :)Viscosityگشاًشٍی دس هبیؼبت ثِ همبٍهت هبیغ دس ثشاثش ؿىلپزیشی گفتِ هیؿَد .ثِ ػٌَاى هثبل گشاًشٍی ػؼل ثیـتش اص گشاًشٍی آة اػت .دس ًشاحی ًشمافضاس هٌظَس گشاًشٍی ،هیضاى همبٍهت ًشاحی دس ثشاثش افضٍدُ ؿذى وذ جذیذ یب تغییش وذ لجلی اػت .اگش دس ًشاحی افضٍدى وذ جذیذ ثِ ػیؼتن هؼتلضم تغییش صیبدی ٍ تلحیح صیبد خٌبّبی ایجبد ؿذُ ثبؿذً ،شاحی گشاًشٍی صیبدی داسد. -5پیچیذگی ثیفبیذُ( :)Needless Complexityؿبیذ ثؼیبسی ػبختوبى دادُّب یب الگَسیتنّبی پیچیذُ دس ًشاحی پیـجیٌی ؿذُ اػت وِ دس حبل حبهش ًیبصی آىّب ًیؼت .ؿبیذ ًشاح ایي ؿیَُ حل هؼئلِ سا جبلتتش، ّیجبىاًگیضتش یب َّؿوٌذاًِتش داًؼتِ اػت اهب دس تَكیف ًیبصهٌذیّبی ّیچ دلیل هَجْی ثشای ایي پیچیذگی ثِ كشاحت ٍجَد ًذاسد. -6ثشًبهًَِیؼی ثشای آیٌذُ(ً :)Future Programmingشاحی ٍ ثشًبهِ ًَیؼی ًِ ثشای ًیبصهٌذیّبی اهشٍص ثلىِ ثشای ًیبصهٌذیّبی آیٌذُ ایٌىِ ثِ كشاحت لیذ ًـذُاًذ ثلىِ ًشاح یب ثشًبهِ ًَیغ پیؾثیٌی هیوٌذ وِ هوىي اػت دس آیٌذُ پیؾ ثیبیذ اًجبم ؿذُ اػت .دلت وٌیذ وِ ایي ٍیظگی حبلت خبكی اص ٍیظگی لجلی اػت ٍ ثشخی اٍلبت ثشای پیچیذگی ثیفبیذُ تَجیْبتی اص هٌظش ثشًبهًَِیؼی ثشای آیٌذُ آٍسدُ هیؿَد. ًىتِ جبلت آى اػت وِ ایي ٍیظگی ثب ٍیظگی اٍل یؼٌی ػفت ٍػخت ثَدى ًشاحی دس توبد اػت ٍ هثل ثؼیبسی هَلؼیتّبی هٌْذػی ،تلوین دسػت ًِ تجؼیت اص لَاػذ لٌؼی ولی ثلىِ تـخیق دسػت ًمٌِ تؼبدل هٌبػت ثیي دٍ لبػذُ ولی هتوبد اػت. -7تىشاس ثیفبیذُ( :)Needless Repetitionثِ ًظش هیسػذ وِ ثخؾّبی هختلف وذ تَػي دٍ ثشًبهِ ًَیغ هتفبٍت ٍ ثب اػتفبدُ اص ًَ copy/pasteؿتِ ؿذُ اػت. ً -8شاحی ثشای اػتثٌبٌّ :گبم ًشاحی سفتبس هَسد اًتظبس ػیؼتن ٍ ػبختبس هَسد ًیبص آى ثشای ًِ حبلتّبی ػوَهی اػتفبدُ اص ػیؼتن ثلىِ هَاسد اػتثٌب ٍ خبف هذ ًظش لشاس گشفتِ اػت .ایي هؼئلِ ثشای ًشاحی ػبختوبى هبًٌذ آى اػت وِ ثشای سٍثشٍی ٍسٍدی ػبختوبى ثِ جبی پلىبى ًفشسٍ ،ػٌح ؿیجذاس ػشین(ثشای اػتفبدُ اص ٍیلچش) پیؾ- ثیٌی ؿَد ٍ پلىبى ونػشهی دس وٌبس ػٌح ؿیجذاس پیبدُؿَد. -9دٍختي وتٍؿلَاس ثشای تىوِ :ایي هؼئلِ خلَكب ثشای ثشًبهًَِیؼبى ٍ ًشاحبى جَاى ثؼیبس پیؾ هیآیذ .دس ٌّگبم ًشاحی ثخؾ یب ثخؾّبیی اص ػبهبًِ ٍ یب جٌجِّبیی اص ًشاحی وِ ثیـتشیي اثْبم یب پیچیذگی یب تبصگی سا اص ًظش ًشاح داسًذ ثِ كَست خَدآگبُ یب ًبخَدآگبُ ثِ ػٌَاى هشوض ًشاحی دس ًظش گشفتِؿذُ اػت ٍ ثمیِ اجضا حَل ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا آًْب ٍ دس خذهت آًْب ًشاحی هیؿًَذ .دس چٌیي ًشاحیّبیی استجبًبت غیشهشٍسی ٍ والعّبی لبدسهٌلك( 4)Omnipotentثؼیبس دیذُ هیؿًَذ. -10اثْبم دس ًشاحیً :ویتَاى اص خَد ًشاحی ثِ ّذف آى اص یه ػبختبس یب استجبى پیثشد .جٌجِ یب هٌظشی وِ ًشاح ثش اػبع آى الذام ثِ افضاس ثخؾّب ٍ یب ثشلشاسی استجبًبت وشدُ اػت یِ كَست ٍاهح ٍ ثبثت ًیؼت ٍ گبّی دسگیش تٌبلن اػت .ثِ ػٌَاى هثبل دس ػبختبس پذسفشصًذی جٌجِای اًتضاع 5وِ ػلؼلِ هشاتت ثش اػبع آى تـخیق دادُ ؿذُ اػت ،دس ػٌَح هختلف ثب ّن ػبصگبس ًیؼت .هثبل صیش ٍهؼیتی اص چٌیي ؿشایي سا دس ٌّذػِ ًـبى هیدّذ. ًوَداس والع UMLثِ هب ووه هیوٌذ تب پیؾ اص پیبدُػبصی ثتَاًین ًشاحی اًجبم ؿذُ سا ثشای پیذا وشدى ثَّبی ثذ ًشاحی هَسد اسصیبثی لشاس دّین ٍ ثب دیگشاى دس خلَف آى كحجت وٌین. 4 والعّبی لبدس هٌلك ثِ ػٌَاى یه پبدالگَ( )Antipatternؿٌبختِ هیؿًَذ .پبدالگَّب الگَّبی تىشاسی ّؼتٌذ وِ ّوَاسُ ثبیذ اص آًْب اجتٌبة وشد .والع لبدس هٌلك ثِ والعّبیی گفتِ هیؿًَذ وِ ٍظبیف ،سفتبسّب ٍ ٍیظگیّبی صیبد ،هتٌَع ٍ ػوَهب ثیسثي ثِ ّوی داسًذ .ایي والعّب استجبًبت صیبدی ثب دیگش والعّب ایجبد هیوٌٌذ. تغییش دس چٌیي والعّبیی ػوَهب هٌتـش هیؿًَذ ٍ خَد ایي والعّب ّن دس هؼشم اًتـبس تغییشات دیگشاى ّؼتٌذ .چٌیي والعّبیی ثِ كَست ػتبسُ(والػی ٍ استجبًبت صیبد) یب والػی ثب سفتبسّبی هفلل دس ًوَداس والع ثِ چـن هیآیٌذ. 5 Abstraction ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا رٍش CRC سٍؽ ، Class Responsibility Collaboratorسٍؿی ثشای تَفبى رٌّی ثِ هٌظَس ؿٌبػبیی والعّبی ًشاحی اػت .ایي سٍؽ تَػي ٍاسد وبًیٌگبم(6هجذع هفَْم ٍیىی) ٍ وٌت ثىتًَ(7یؼٌذُ هؼشٍف ؿیگشایی) دس اثتذا ثِ ػٌَاى یه سٍؽ آهَصؿی هؼشفی ؿذ اهب ثؼذّب ثیـتش هَسد تَجِ ًشاحبى لشاس گشفت .ایي سٍؽ هجتٌی ثش ایجبد هذلّبی CRCثشای ًشاحی اػت. هذل CRCؿبهل ػِ ثخؾ ًبم والعٍ ،ظبیف والع ٍ ّوىبس والع اػت. هٌظَس اص والع ّوبى هفَْم والع دس ؿیگشایی اػت وِ تجشیذی اص ًَع دػتِای اص اؿیبی هـبثِ هیثبؿذ. هٌظَس اص ٍظبیف والع چیضی اػت وِ والع هیداًذ یب وبسی اػت وِ ثبیذ اًجبم دّذ. ّ وىبس والع ؿبهل اػبهی دیگش والعّبیی اػت وِ والع هَسد ًظش ثشای اًجبم ٍظبیف خَد ثِ تؼبهل ثب اًْب احتیبج داسد. دس ایي سٍؽ اًالػبت هشثَى ثِ ّش والع دس وبستّبیی ثِ ؿىل صیش ًَؿتِ هیؿَد: 6 Ward Cunningham 7 Kent Beck ههدی عیٌعلی چٌذیي هثبل پش ؿذُ ثشای وبستّبی CRCسا هیتَاًیذ دس صیش ثجیٌیذ: درس بزًاههساسی پیشزفته به سباى جاٍا درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی اجزای CRC ثشای اًجبم سٍؽ CRCگبمّبی صیش ثِ كَست تىشاسی ٍ افضایـی اًجبم هیؿَد .هٌظَس اص تىشاسی ثَدى ایي اػت وِ ثؼذ اص دٍس وبهل اجشا دٍثبسُ اص گبم اٍل ثبیؼتی ؿشٍع وشد ٍ هٌظَس اص افضایـی آى اػت وِ خشٍجی دٍسّبی لجلی اجشا ثِ ػٌَاى ٍسٍدی دس دٍس جبسی اػتفبدُ هیؿًَذ ٍ ًتیجِ وبس اص تىویل ٍ پبالیؾ تذسیجی خشٍجی حبكل هیؿَد. .1پیذا وشدى والعّب :فشایٌذ پیذا وشدى والع دس ٍالغ ثخـی اص وبس تحلیل اػت وِ ٍظیفِ هـخق وشدى اجضای اكلی ػبصًذُ ًشمافضاس سا ثش ػْذُ داسد .ػبدُ تشیي سٍؽ ؿٌبػبیی والعّب توشوض ثش اػبهی هٌشح ؿذُ دس فوبی هؼئلِ اػت .اص اػبهی والع ثبیذ ػبدٍُ ،اهح ٍ ثِ كَست هفشد ثبؿذ. .2هـخق وشدى ٍظبیف :پغ اص هـخق ؿذى والعّبی ثبیؼتی دس خلَف ّش وذام اص آًْب ثِ ایي دٍ ػَال پبػخ داسد .ایي والع چِ اًالػبتی سا ثبیؼتی ًگْذاسی وٌذ ٍ چِ ٍظبیفی سا ثش ػْذُ داسد. ثشخی اص اٍلبت ٍظبیف والعّبی اص خذهبتی وِ ثبیذ ثِ والعّبی ّوىبس خَد اسایِ دٌّذ هـخق هیؿَد .ثِ ػجبست دیگش ثبیؼتی ثِ دیگش وبستّبی وِ والع جبسی ثِ ػٌَاى ّوىبس آٍسدُ ؿذُ اػت ،دلت وشد ٍ هـخق ًوَد وِ والع جبسی ثشای ایٌىِ ثتَاًذ ٍظبیف خَد دس لجبل آى والعّب سا اًجبم دّذ چِ اًالػبتی سا ثبیذ ًگْذاسی وٌذ ٍ چِ ٍظبیفی سا ثبیذ ثش ػْذُ ثگیشد. .3هـخق وشدى ّوىبس :اغلت یه والع ثشای اًجبم ٍظبیف خَد توبهی اًالػبت سا دس اختیبس ًذاسد .ثلىِ ثبیذ اص ّوىبسی دیگش والعّبی ثشای اًجبم ایي وبس اػتفبدُ وٌذّ .وىبسی ثیي والعّبی ثِ یىی اص ایي دٍ كَست اًجبم هیؿَد :دسخَاػت اًالػبت یب دسخَاػت ثشای اًجبم وبسی. ثشای هـخق وشدى ّوىبسّبی یه والع ّویـِ هیتَاى ایي ػَال سا پشػیذ :آیب والع ثِ تٌْبیی هیتَاًذ توبهی ٍظبیف هـخق ؿذُ ثشای آى سا اًجبم دّذ؟ اگش پبػخ ایي ػَال هٌفی اػت یىی اص دٍ حبلت صیش پیؾ هیآیذ. دس حبل حبهش والػی ٍجَد داسد وِ هیتَاًذ ٍظیفِ هَسد ًیبص والع جبسی سا اًجبم دّذ یب ایٌىِ هی- تَاى چٌیي ٍظیفِای سا ثشای آى والع تؼشیف وشد. ثبیذ والع یب والعّبی جذیذی ؿٌبػبیی وشد ٍ ٍظیفِ هَسد ًیبص سا ثِ آى والع یب والعّب ٍاگزاس ًوَد. ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا .4وبستّب سا ثِ اؿتشان ثگزاسیذ :ثشای ثْجَد دسن توبهی وؼبًی وِ دس ًشاحی دسگیش ّؼتٌذ وبستّب ثبیذ سٍی یه هیض ثِ ؿىل هشتجی چیذُ ؿذُ ثبؿٌذّ .ش دٍ وبستی وِ ثب یىذیگش ّوىبسی هیوٌٌذ ثبیذ وٌبس ّن چیذُ ؿًَذ ٍ وبستّبیی وِ استجبًی یِ یىذیگش ًذاسًذ جذا اص ثبؿٌذ. ایي فشایٌذ ثبیؼتی چٌذیي ثبس ثِ كَست تىشاسی ثش سٍی وبستّب تىشاس ؿًَذ .تب صهبًی وِ هٌوئي ؿَیذ وِ ّوِ تغییش جذیذی هَسد ًیبص ًیؼت. پغ اص اتوبم وبس هیتَاى ثِ سٍؽّبی هختلف ًشاحی اًجبم ؿذُ سا اسصیبثی ًوَد وِ سٍؽّبی صیش اص آى جولِ ّؼتٌذ: ٍ .1ظبیف ًَؿتِ ؿذُ ثشای تهته والعّب سا هشٍس وٌیذ .دسخلَف ّش ٍظیفِ اص خَد ثپشػیذ وِ آیب ّوِ اًالػبتی وِ ثشای اًجبم ایي ٍظیفِ هَسد ًیبص اػت ثشای والع دس ًظش گشفتِ ایذ؟ آیب ّوِ والعّبی ّوىبسی وِ ثشای اًجبم ایي ٍظیفِ هَسد ًیبص اػت ثِ ػٌَاى ّوىبس والع دس وبست روش ؿذُ اػت؟ .2دس خلَف تهته اًالػبتی وِ ثبیؼتی ثشًبهِ ثشای اًجبم وبس خَد ًگْذاسی وٌذ اص خَد ػَال ثپشػیذ ٍ هٌوئي ؿَیذ وِ والػی ثشای ًگْذاسی ٍ هذیشیت آى اًالػبت پیؾثیٌی وشدُ ایذ. .3ػٌبسیَّبی اكلی اػتفبدُ اص ثشًبهِ سا دس ًظش ثگیشد ٍ فشایٌذ گبمثِگبم اًجبم آىّب سا دس ًظش ثگیشیذ .حبل ثشای تهته گبمّب ػَاالت صیش سا اص خَد ثپشػیذ: .aآیب تهته گبمّب ثِ ػٌَاى ٍظیفِ والػی پیـجیٌی ؿذُ اػت؟ .bآیب استجبًبت الصم ثشای اًجبم ّش گبهی ثیي والعّب ثِ ػٌَاى ّوىبس ٍجَد داسد؟ ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا ًکات ههن دلت وٌیذ وِ والعّبی ؿٌبػبیی ؿذُ دس سٍؽ CRCؿبهل ًؼخِ اٍلیِ اص والعّبی ؿٌبػبیی ؿذُ ّؼتٌذ ٍ هوىي اػت دس هشحلِ ثؼذی یؼٌی سػن ًوَداس والع دس UMLوالعّبی ون یب صیبد ؿًَذ .ثِ ػٌَاى هثبل سٍاثي پذسفشصًذی دس هذل ً CRCـبى دادُ ًوی ؿَد دس حبلی وِ دس هذل والع UMLثبیؼتی ثِ كَست دلیك هـخق ؿًَذ. دلت وٌیذ وِ والعّبی ؿٌبػبیی ؿذُ دس هذل CRCیب حتی والعّبی هذٍى ؿذُ دس هذل والع UMLدس ٍالغ والعّبی ًشاحی ّؼتٌذ ٍ ثبص هوىي اػت وِ دس پیبدُػبصی ثِ دالیل هختلف ًیبص ثِ والعّبی دیگشی ًیض ثبؿذ وِ ونون ثب تىویل ؿذى ساُ حل ؿوب ثشای هؼئلِ اسایِ ؿذُ خَد سا ًـبى هیدٌّذ .ثِ ػٌَاى هثبل ؿوب والػی احتیبج داسیذ وِ هتذ mainثشًبهِ جبٍا دس ثبؿذ ثشًبهِ اص آًجب آغبص ؿَد .چٌیي والػی الضاهب اص تَكیفبت اسایِ ؿذُ دس تَكیف هؼئلِ لبثل اػتخشاج ًیؼت. دس یه پشٍطُ ثضسي ٍالؼی ػوال ػِ ًؼخِ والع ثِ ًبمّبی والعّبی تحلیلً ،شاحی ٍ پیبدُػبصی ؿٌبػبیی ٍ پیبدُػبصی هیؿًَذ وِ ثیـتش ثِ جٌجِ تىبهلی ثَدى گبمثِگبم ایجبد ساُحل ًشمافضاسی ثشای یه هؼئلِ اؿبسُ هی- وٌذ وِ ؿبهل گبمّبی پبیِ تحلیلً ،شاحی ٍ پیبدُػبصی اػت .جضئیبت هشثَى ثِ آىّب خبسج اص هحتَای ایي آهَصؽ اػت .لٌؼب ثشای هؼبئلی وِ ؿوب دس دسع ثشًبهِػبصی پیـشفتِ ثب آىّب هَاجِ هیؿَیذ ،هشاحل ٍ جضئیبت اسایِ ؿذُ دس ایي هؼتٌذ ثشای فشایٌذ ًشاحی وبفیؼت. هثال بزای رٍش CRC كَست هؼئلِ یه ثشًبهِ هذیشیت صهبًجٌذی والعّبی ثشای ثشپبیی هذیشیت اسایِّب(ػویٌبس) دس یه دٍسُ فـشدُ سا دس ًظش ثگیشیذّ.ش ػویٌبس ثب ؿشوت یه اػتبد ٍ چٌیي داًـجَ ثشگزاس هیؿَد .ثشای ّش ػویٌبس یه گضاسؽ ػویٌبس( )Transcriptتْیِ هی- ؿَد وِ ؿبهل ًوشُ هتَػي داًـجَیبى دس ػویٌبس اػت .دس پبیبى ّش ػویٌبس اص داًـجَیبى اسصیبثی هیؿَد ٍ ًوشُای ثشای داًـجَ دس ًظش گشفتِ هیؿَد .ثبیؼتی ثشای ّش ػویٌبس یه یه والع( )Roomاختلبف دادُ ؿَد .والعّب هوىي اػت وِ دس ػبختوبىّبی هختلفی لشاس داؿتِ ثبؿٌذ. ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا ساُ حل ثِ ًظش هیسػذ وِ ثشای هؼئلِ فَق ػجبستّبی داًـجَ ،اػتبد ،ػویٌبس،گضاسؽ ػویٌبس ،والع ٍ ػبختوبى ًـبىگشّبی هٌبػجی ثشای اػبهی والعّب ثبؿذ .اگش فشایٌذ سا چٌذیي ثبس اجشا ًوبییذ ثِ والعّبی دیگشی ًیض هیسػیذ وِ دس اثتذا چٌذاى ثذیْی ًیؼتٌذ. ؿىل صیش ٍهؼیت وبستّب سا ثؼذ اص چٌذیي ثبس اجشا وشدى فشایٌذ ً CRCـبى هیدّذ .لٌفب ثِ چیٌؾ وبستّب دلت وٌیذ. درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی ًوَدار کالس در UML ّیچ سٍؿی ثشای ًشاحی ثذٍى اثضاس ٍ صثبى هؼتٌذػبصی وبهل ًیؼت .ایي ثخؾ ثِ تَهیح ًوَداس والع UMLثِ ػٌَاى صثبى هؼتٌذػبصی ًشاحی هیپشداصین. UMLچیست؟ UMLیه صثبى ًـبًِگزاسی 8گشافیىی وـیذى ًوَداس 9ثشای ًـبىدادى هفبّین هختلف ًشمافضاس اػت.اص ایي صثبى هیتَاى ثشای وـیذى ًوَداسّبیی ثشای تَكیف فوبی هؼئلًِ ،شاحی ًشمافضاسی ٍ حتی جضئیبت ًشمافضاس پیبدُػبصی ؿذُ اػتفبدُ وشد. ًوَداسّبی UMLثش اػبع اػتبًذاسد ًؼخِ 2آى ؿبهل ً 13وَداس اػت وِ هْوتشیي آًْب ػجبستٌذ اص: Class Diagram, Usecase Diagram, State Diagram, Activity Diagram Sequence Diagram, Package Diagram, Deployment Diagram ثشای سػن ًوَداسّبی Umlهیتَاًیذ اص اثضاسّبی صیش اػتفبدُ وٌیذ: ًبم IBM Rational Rose Enterprise Architect Visual Paradigm Umlet پیًَذ دػتشػی تَهیحبت اثضاس سػوی ٍ UML www.ibm.com/software/rational/uml/products/ ووی لذیوی اثضاس وبهل ٍ پیچیذُ www.sparxsystems.com.au/products/ea/ اثضاس وبهل ٍ پیچیذُ http://www.visual-paradigm.com/ اثضاس ػبدُ ٍ ثبصهتي http://www.umlet.com/ ثشای ًوَداسّبی والع ایي دسع اػتفبدُ اص ًشمافضاس Umletتَكیِ هیؿَد. 8 Notation 9 Diagram ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا ًوَدار کالس ًوَداس والع ثشای ًـبىدادى والعّبٍ ،یظگیّب ٍ استجبًبت آىّبػت .هٌظَس اص استجبًبت ثیي والعّبی استجبًبت ایؼتب ثیي اًَاػی اػت وِ والعّب آىّب سا ًوبیٌذگی هیوٌٌذ ًِ ساثٌِ پَیب ثیي اؿیبیی وِ اص آىوالعّب ػبختِ هیؿًَذ .ثِ ػٌَاى هثبل ساثٌِ دٍػتی سٍاثي ایؼتب ثیي والعّب ٍ ساثٌِ پَیب ثیي اؿیب ثِ دٍ كَست صیش ًـبى دادُ هیؿَد. دس ایي ًوَداس ّش والع ثب یه هؼتٌیل ًـبى دادُ هیؿَد وِ ًبم والع دسٍى آى ًَؿتِ ؿذُ اػت .ثِ ػٌَاى هثبل دس ؿىل صیش دٍ والع دیذُ هیؿًَذ. ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا ّش والع هیتَاًذ ٍیظگیّبیی 10داؿتِ ثبؿذ وِ ثب خٌی صیش ًبم والع هـخق هیؿَدٍ .یظگیّبی والع دس ٍالغ جضئیبت اًالػبتی اػت وِ والع ًگْذاسی هیوٌذ .ثِ ػٌَاى هثبل ًوَداس صیش ًـبى دٌّذُ والع داًـجَ اػت. وذ جبٍای ًوَداس فَق ثِ ؿشح صیش اػت: حبل اگش سفتبسّبیی ثِ والع داًـجَ اهبفِ وٌین ،ؿىل ًوَداس والع آى ثِ ؿشح صیش هیؿَد. 10 Attributes ههدی عیٌعلی وذ جبٍای هؼبدل ًوَداس فَق ثِ كَست صیش اػت: ؿىل صیش تَكیفی اص یه ًوَداس والع ثشای یه والع تٌْب سا ًـبى هیدّذ: درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا ثشای ًـبى دادى سٍاثي ثیي والعّب یه یه خي ػبدُ اص ثیي آىّب اػتفبدُ هیؿَد .ثِ ػٌَاى هثبل ؿىل صیش ساثٌِ ثیي داًـجَ ٍ سؿتِ سا ًـبى هیدّذ. وذ جبٍای هشثَى ثِ ایي استجبى دس والع داًـجَ ثب حزف هتذّبی ایي والع ثِ ؿىل صیش اػت: ثش سٍی خي هشثَى ثِ ساثٌِ ثیي والعّب هیتَاى چٌذی 11ساثٌِ سا هـخق وشد .ثِ ػٌَاى هثبل ثشای ساثٌِ ثیي داًـجَ ٍ سؿتِ وِ دس ثبال ًـبى دادُ ؿذُ اػتّ ،ش داًـجَ هیتَاًذ یه یب دٍ سؿتِ داؿتِ ثبؿذ ٍ ّش سؿتِای هیتَاًذ ّیچ یب چٌذ داًـجَ داؿتِ ثبؿذ. Multiplicity 11 درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی ثخؾ هشثَى ثِ ٍیظگیّبی والع اص لبلت صیش پیشٍی هیوٌذ: ٍ visibilityیظگی دس ٍالؼی هحذٍدُ دػتشػی ثِ ٍیظگی سا هـخق هیوٌذ وِ ؿبهل هَاسد صیش اػت: نشانه در Class Diagram کلید واژه جاوا - private توضیحات دػتشػی خلَكی والع ~ # protected public دػتشػی تٌْب دس ثؼتِ جبسی دػتشػی دس ثؼتِ جبسی ٍ فشصًذاى دػتشػی ػوَهی + هتذّب ٍ والعّبی اػتبتیه ثِ كَست ًَ Underlinedؿتِ هیؿًَذ. سٍاثي ثیي والعّب ً associationبهیذُ هیؿًَذ وِ ثِ كَست یه پبسُ خي ٍ یب یه ثشداس ًـبى دادُ هیؿًَذ .پیىبى ثشداسی سٍی یه ساثٌِ جْت ساثٌِ سا ًـبى هیدّذ .اگش تٌْب پبسُ خي دٍ والع سا ثْن هتلل وٌذ ،ثِ هؼٌبی ساثٌِ دًٍشفِ اػتً .مؾ ساثٌِ سا هیتَاى سٍی پبسُخي ساثٌِ ًَؿت. ثِ ػٌَاى هثبل ًوَداس صیش سا دس ًظش ثگیشیذ: ایي ًوَداس ًـبى هیدّذ وِ : ّ ش داًـجَیی تٌْب یه سؿتِ داسد. ّ ش سؿتِای هیتَاًذ هبل ّیچ یب چٌذ داًـجَ ثبؿذ. هیتَاى هفَْم ساثٌِ سا دس لبلت یه فؼل ثش سٍی پبسُخي ساثٌِ ًَؿت. ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا دس والع داًـجَ فیلذی اص ًَع سؿتِ ٍجَد داسد ٍلی دس والع سؿتِ فیلذی اص ًَع فْشػتی اص داًـجَّب ٍجَد ًذاسد. دس حبلی وِ ثشای ًوَداس صیش دس والع داًـجَی فیلذی اص ًَع سؿتِ ٍجَد داسد ٍ دس والع سؿتِ فیلذی اص ًَع اسایِ یب لیؼتی اص داًـجَیبى آى سؿتِ ٍجَد داسد. ثشای ًـبى دادى ساثٌِ پذسفشصًذی اص یه پیىبى تَخبلی اص ػوت والع فشصًذ ثِ والع پذس اػتفبدُ هیؿَد. دس ًوَداس ثبال والعّبی داًـجَ ٍ هذسع فشصًذ والع ؿخق ّؼتٌذ. ههدی عیٌعلی ؿىل صیش ًوًَِای اص ًوَداس والع هفللتشی سا ًـبى هیدّذ: درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا اصَل حاکن بز طزاحی کالسها ٍلتی وِ ثِ یه هذل ًوَداس والع ًگبُ هیوٌین دًجبل چِ چیضی ّؼتین؟ چگًَِ یه ًشاحی خَة سا هیتَاى اص ًشاحی ثذ تـخیق داد؟ ایي ثخؾ دس خلَف هؼیبسّبیی كحجت هیوٌذ وِ هیتَاًذ ثشای ایي وبس اػتفبدُ وشد. اصل باسِبسته(12باس بَدى در عیي بستگی) ّش والػی ثبیذ ثشای تَػؼِ ثبص ثبؿذ ٍ ثشای دػتىبسی( )modificationثؼتِ ثبؿذ. ؿبیذ ثتَاى گفت وِ ایي اكل هْنتشیي اكل ًشاحی والعّبع ٍ دیگش اكلّب ثیبىّبی دیگش یب تبویذاتی ثش جٌجِّبی هختلف ایي اكل اػت. هؼٌبی ایي اكل ػبدُ اػت .ثبیذ ثتَاًذ هحیي ػولىشد یه والع سا ثتَى ًیبص ثِ تغییش دس پیبدُػبصی داخلی یه والع تغییش داد(ثبصثىبسگیشی)ّ .وچٌیي ثبیذ ثتَاى سفتبسّبی جذیذی ثِ والع افضٍد یب پیبدُػبصی سفتبسّبی لجلی سا ثذٍى تغییش ٍاػٌِ خبسجی آى سفتبسّبی تغییش داد ،ثذٍى آًىِ خللی دس اػتفبدُ دیگش والعّبی ٍاثؼتِ ثِ ایي والع اص آى ایجبد ؿَد. هثبل صیش سا دس ًظش ثگیشیذ .فىش وٌیذ وِ والع وبسهٌذ تب وٌَى ثشای رخیشُػبصی وبسهٌذاى اص فبیلّب اػتفبدُ هیوشد. اوٌَى اهىبى اتلبل ٍ رخیشُ ػبصی دس دادگبى( )Databaseفشاّن ؿذُ اػت .ثب ًشاحی صیش ٍ سػبیت ایي اكل ثذٍى ایٌىِ تغییشی دس والع وبسهٌذ ایٌجبد ؿَد ،هیتَاًذ اص اهىبى جذیذ اػتفبدُ وٌذ .صیشا وِ ثِ والع concreteثلىِ ثِ یه والع abstractثشای ٍظبیف رخیشُػبصی ٍاثؼتِ اػت. )Open Closed Principle(OCP 12 درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی اصل یکتایی ٍظیفه کالس 13 ّش والع ثبیذ ًَسی ًشاحی ؿَد وِ تٌْب یه دلیل ثشای تغییش آى ٍجَد داؿتِ ثبؿذ. ثبیؼتی والعّبی ًَسی ًشاحی ؿًَذ وِ تٌْبی یه هَلفِ هـخق اص فوبی ساُ حل سا وِ ثش اػبع جٌجِ هـخلی ؿٌبػبیی ؿذُ اػت ،سا ًوبیٌذگی وٌٌذً .جبیذ یه والع جٌجِّب ٍ ٍظیفِّبی غیشهشتجي ثب هفَْهی وِ ثش اػبع آى ؿٌبػبیی ؿذُ اػت سا ثش ػْذُ ثگیشد. ثِ ػٌَاى هثبل اگش دس یه فوبی هؼئلِ والع داًـجَ ؿٌبػبیی ؿذُ اػت .اگش لشاس ثبؿذ یه فبیل Xmlحبٍی اًالػبت داًـجَ خَاًذُ ؿَد ٍ ثش اػبع آى یه ؿی داًـجَ ػبختِ ؿَدً ،جبیذ هتذ هشثَى ثِ خَاًذى فبیل Xmlدس خَد والع داًـجَ پیؾثیٌی ؿَد .والع داًـجَ ٍظیفِ هذیشیت دادُّب ٍ سفتبس هفَْم داًـجَ سا ثش ػْذُ داسد ًِ چیض دیگش .دس غیش ایٌلَست دس كَست ًیبص ثِ پـتیبًی لبلت فبیل دیگشی هبًٌذ ، JSONثبیذ والع داًـجَ ّن تغییش وٌذ وِ ثؼیبس ثذ اػت. اصل جایگشیٌی لیسکَف 14 ثبیذ ثتَاى والع فشصًذ سا جبیگضیي والع پذس وشد ثذٍى اًىِ اػتفبدُوٌٌذگبى اص والع پذس ثب هـىلی هَاجِ ؿًَذ. ایي اكل دس ٍالغ یه گًَِ خبكی اص اكل OCPاػت .اص ایي سٍ ًمن LSPثِ ًمن OCPهٌجش هیؿَد ٍ ػىغ ایي گضاسُ كحیح ًیؼت. ایي اكل وِ دس جبٍا اهوبی هتذّبی دس فشصًذاى ثبیؼتی اص لَاػذ خبكی ًؼجت ثِ هتذ پذس پیشٍی وٌذ اص ایي اكل ًـبت هیگیشد .ثِ ػٌَاى هثبل دػتشػی دس هتذ فشصًذ ًویتَاًذ هحذٍدتش اص دػتشػی هتذی وِ overrideهیوٌذ ثبؿذ صیشا دس ایي كَست اهىبى جبیگضیٌی سفتبس پذس ثب سفتبس فشصًذ سا ثشای اػتفبدُوٌٌذگبى ثب هـىل هَاجِ هیوٌذ. اكل لیؼىَف ثش اػبع اػتَاس اػت وِ ّش فشاخَاًی هتذی یه پیؾؿشى ٍ 15پغؿشى 16داسد وِ دس كَست ثشآٍسدُ ثَدى پیؾؿشى لجل اص فشاخَاًی ،ثؼذ اص فشاخَاًی پغؿشى ثشلشاس خَاّذ ثَد .ثش اػبع لیىَف ّش فشاخَاّی هتذ پیبدُػبصی overrideؿذُ اص فشصًذ سٍاثي ثیي پیؾؿشى ٍ پغؿشى فشاخَاًی هتذ پذس سا سػبیت هیوٌذ. )Single Responsibility Principle(SRP )Liskov Substation Principle(LSP 13 14 درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی پیبدُػبصی overrideدس فشصًذ ًویتَاًذ پیؾؿشًی لَیتشی اص پیؾؿشى هتذ پذس داؿتِ ثبؿذ ٍ ّوچٌیي ًویتَاًذ پغؿشى هؼیفتشی اص والعپذس داؿتِ ثبؿذ .ثشای هثبل ثبال حك دػتشػی هتذ پذس جض پیؾؿشى هتذ پذس اػت ٍلی هتذ فشصًذ ًویتَاًذ حك دػتشػی هحذٍدتشی اص چیضی وِ هتذ پذس اججبس هیوٌذ ،داؿتِ ثبؿذ. ّش چٌذ وِ دس خلَف ثشخی لَاػذ هبًٌذ هثبل فَق وبهپبیلش هیتَاًذ اص ثشلشاسی اكل لیؼىَف هٌوئي ؿَد ٍلی دس خلَف پیبدُػبصی داخلی هتذّبی جبٍا یب ّش صثبى دیگشی ًویتَاًذ ثشًبهًَِیغ سا هججَس وٌذ وِ اكل لیؼىَف سا سػبیت ًوبیذ .ثلىِ خَد ثشًبهًَِیغ ثبیذ ٌّگبم اػتفبدُ اص ساثٌِ پذسفشصًذی ثِ ایي ًىتِ تَجِ وٌذ. اصل ٍارًٍگی ٍابستگی 17 والعّب ثبیذ ثِ ٍاػٌِ ثیشٍى یىذیگش ٍاثؼتِ ثبؿٌذ ًِ ثِ جضئیبت پیبدُػبصی یه دیگش ٍاػٌِّبی ثیشًٍی ًجبیذ ثِ جضئیبت پیبدُػبصی ٍاثؼتِ ثبؿذ ثلىِ جضئیبت پیبدُػبصی ثبیذ ثِ ٍاػٌِّبی ثیشًٍی ٍاثؼتِ ثبؿذ. ایي اكل ّن ثبص یه ثیبى دیگش حبلت خبكی اص اكل OCPاػت ٍ دسٍالغ ساّی سا ًـبى هیدّذ وِ اص ًشیك آى هیتَاى اص ثشلشاسی OCPاًویٌبى حبكل وشد .ثِ صثبى ػبدُ ایي اكل اػتفبدُ اص ٍاػٌِّب 18سا ثشای وبّؾ ٍاثؼتگی ًبثجب تـَیك هیوٌذ ساُ دسػت اػتفبدُ اص آىّب سا ًـبى هیدّذ. ثِ ٍاثؼتگی ثِ ٍاػٌِّب ثِ جبی ٍاثؼتگی ثِ پیبدُػبصیٍ 19اثؼتگی هجشد 20هیگَیٌذ .اػتفبدُ اص ٍاثؼتگی هجشد تمشیجب ّشجبیی وِ ثشًبهِ ًَیغ احؼبع هیوٌٌذ هوىي اػت وِ پیبدُػبصی دس هؼشم تغییشات آیٌذُ ثبؿذ ،تَكیِ هیؿَد .دس هثبل هشثَى ثِ OCPدیذین وِ دس ٍالغ اػتفبدُ اص ٍاثؼتگی هجشد ثَد وِ اهىبى تغییش فشاّن ًوَدُ ثَدّ .ش چٌذ وِ ًجبیذ دس اػتفبدُ اص ایي اكل صیبدُسٍی وشد یؼٌی تجذیل ّوِ ٍاثؼتگیّبی پیبدُػبصی ثِ ٍاثؼتگی هجشد دس كَستی وِ دس افشاى- گشایبًِ ثبؿذً ،تیجِای جض افضٍدى وبس ثشًبهًَِیغ ٍ پیچیذُوشدى ثیَْدُ ثشًبهِ ًخَاّذ داؿت. 15 Precondition Postcondition 17 )Dependency Inversion Principle(DIP 18 Interfaces 19 Concrete Coupling 20 Abstract Coupling 16 درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی ثِ ایي هَلؼیتّبیی وِ ثشًبهًَِیغ دس اػتفبدُ اص اكَل ًشاحی افشاى هیوٌذ ثب افضٍدى گضیٌِّبی اهبفِ ٍ هَلفِّبی صیبد هَجت پیچیذگیای ًبثجب دس ثشًبهِ هیؿَد ،ثیؾًشاحی 21هیگَیٌذ. اصل تفکیک ٍاسطهها 22 چٌذیي ٍاػي خبف ثْتش اص یه ٍاػي ػوَهی ثشای یه والع اػت. ثِ ػجبست دیگش اص ًشف اػتفبدُ وٌٌذگبى ٍاػيّب ،ثْتش اػت اػتفبدوٌٌذگبى ٍاػيّب ثِ ٍاػيّبیی ٍاثؼتِ ؿًَذ وِ اص ّوِ هتذّبی اًْب اػتفبدُ هیوٌٌذ. دس اكل لجلی دس خلَف اّویت ٍاثؼتگی هجشد ٍ هضیتّبی اػتفبدُ اص ٍاػٌِّب كحجت ؿذ .توبهی هضایبی فَق صهبًی هوىي اػت وِ ٍاػٌِّبی تؼشیف ؿذُ تب حذ هوىي خبف هٌظَسُ ًشاحی ؿذُ ثبؿٌذ ثب ثِ ػجبست دیگش اكل یىتبیی ٍظیفِ والع یب SRPدس آىّب سػبیت ؿذُ ثبؿذ. اهىبى اػتفبدُ اص ٍساثت چٌذگبًِ ثشای ٍاػٌِّب دس جبٍا وِ اهىبى تؼشیف ٍاػٌِّبی پذس گًَبگَى ثشای یه والع سا فشاّن وشدُ اػت ،هیتَاًذ دس سػبیت ایي اكل ووهوٌٌذُ ثبؿذ. Over Design )Interface Segregation Principle(ISP 21 22 ههدی عیٌعلی درس بزًاههساسی پیشزفته به سباى جاٍا هثبل هشثَى ثِ OCPدس خلَف ٍاثؼتگی هجشد سا دس ًظش ثگیشیذ .اگش ثشای رخیشُػبصی دس فبیل ثِ تجذیل فبیل ٍ Xml JSONثِ ؿی وبهٌذ احتیبج هیداؿتین ٍ چٌیي ٍیظگیّبیی سا دس ٍاػٌِ ٍ EmployeeDBاسد هیوشدین ،دیگش ًوی- تَاًؼتین پیبدُػبصی جذیذی اص آى ثشای پـتیجبًی دادگبى اسایِ دّین. ثشای سػبیت ایي اكل ثبیؼتی ًشاحی صیش سا اًجبم داد. درس بزًاههساسی پیشزفته به سباى جاٍا ههدی عیٌعلی هٌابع 1. Object oriented programming with java, Kirk Knoernschild, Addison Wesley,2001 2. Object oriented programming with java , ADVANCED TOPICS, EUGENE AGEENKO,2003, http://cs.joensuu.fi/pages/intra/ageenko/OOP_with_Java.pdf 3. UML for Java Programmers, Robert C Martin, Prentice-Hall,2002 4. Refactoring: Improving the Design of Existing Code, Martin Fowler , Kent Beck and others, Addison-Wesley Professional,1999 5. CRC method page on agilemodeling: http://www.agilemodeling.com/artifacts/crcModel.htm
© Copyright 2025 Paperzz