免费一看一级欧美-免费一区二区三区免费视频-免费伊人-免费影片-99精品网-99精品小视频

曙海教育集團
全國報名免費熱線:4008699035 微信:shuhaipeixun
或15921673576(微信同號) QQ:1299983702
首頁 課程表 在線聊 報名 講師 品牌 QQ聊 活動 就業(yè)
 

軟件設計培訓

 
   班級規(guī)模及環(huán)境--熱線:4008699035 手機:15921673576( 微信同號)
       每期人數(shù)限3到5人。
   上課時間和地點
上課地點:【上?!浚和瑵髮W(滬西)/新城金郡商務樓(11號線白銀路站) 【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院 【北京分部】:北京中山學院/福鑫大樓 【南京分部】:金港大廈(和燕路) 【武漢分部】:佳源大廈(高新二路) 【成都分部】:領(lǐng)館區(qū)1號(中和大道) 【沈陽分部】:沈陽理工大學/六宅臻品 【鄭州分部】:鄭州大學/錦華大廈 【石家莊分部】:河北科技大學/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協(xié)同大廈
最近開課時間(周末班/連續(xù)班/晚班):2020年3月16日
   實驗設備
     ☆資深工程師授課
        
        ☆注重質(zhì)量 ☆邊講邊練

        ☆合格學員免費推薦工作
        ★實驗設備請點擊這兒查看★
   質(zhì)量保障

        1、培訓過程中,如有部分內(nèi)容理解不透或消化不好,可免費在以后培訓班中重聽;
        2、培訓結(jié)束后,授課老師留給學員聯(lián)系方式,保障培訓效果,免費提供課后技術(shù)支持。
        3、培訓合格學員可享受免費推薦就業(yè)機會。

課程大綱

在課程中要逐一解決的問題:
1、員工無法接手遺留系統(tǒng),原因是代碼雜亂,可讀性差?
2、團隊成員沒有設計模式知識與經(jīng)驗,無法實施敏捷開發(fā)?
3、系統(tǒng)難以重構(gòu),不利于產(chǎn)品的重用與二次開發(fā)?
4、開發(fā)效率得不到保障,因為詳細設計人員不能理解架構(gòu)文檔與詳細設計方案?
5、設計方案難于應對需求變更?
6、設計的系統(tǒng)架構(gòu)缺乏可擴展性、可維護性和可測試性,不能合理地重用
7、架構(gòu)、設計、開發(fā)三個環(huán)節(jié)中各個角色不能理解設計意圖,很難溝通
內(nèi)容
第一單元:?
面向?qū)ο笤O計:?
角色、職責與協(xié)作
職責驅(qū)動設計面向?qū)ο笤O計的核心驅(qū)動力是對象的職責,合理的職責分配是卓越軟件設計的前提。只有合理地分辨對象的職責,才能夠定義良好的對象,并實現(xiàn)符合系統(tǒng)一致性的對象協(xié)作關(guān)系。?
1、職責的層次?
通過職責層次模型對需求進行分析,識別出業(yè)務價值、業(yè)務功能與業(yè)務實現(xiàn)。職責層次的分解可以有效地幫助設計者辨別職責。?
(1)職責層次的識別?
(2)職責層次與軟件架構(gòu)層次之間的關(guān)系?
(3)職責與概念、規(guī)約與實現(xiàn)?
(4)案例分析:分析郵件服務器代碼暴露的問題,在可重用性、代碼可維護性、可擴展性等諸多方面著手,剖析代碼壞味道。通過分辨職責層次,來改善設計。并提出需求變更,從而引入對Observer模式、Strategy模式、Simple Factory模式、Mediator模式與Chain Of Responsibility模式的對比與分析;?
(5)實戰(zhàn)演練:設計一個作業(yè)調(diào)度框架,它能夠根據(jù)指定的時間觸發(fā)作業(yè),執(zhí)行自定義任務。

2、職責的分類?
職責并不等于功能,也不等同于行為或方法。分析職責,應從對象的認知與行為入手。

3、對象的角色?
角色、職責與協(xié)作是三位一體的關(guān)系,角色是發(fā)起職責的對象,職責則應該是對象之間的協(xié)作。不同角色的對象,履行的職責是不同的。?
(1)信息持有者:信息的格式;是否需要持久化;信息源的改變,是否需要更新;處理信息的方式;?
(2)構(gòu)造者:構(gòu)造者與構(gòu)造對象的關(guān)系;構(gòu)造的方式;聚合與合成;?
(3)服務提供者:主動告知,被動告知;獨立的行為;提供有業(yè)務價值的行為;?
(4)協(xié)調(diào)者:如何委派和轉(zhuǎn)發(fā)請求;如何通知其他對象要做的工作;如何通知狀態(tài)的變化;?
(5)控制者:控制者與被控制者的關(guān)系;控制的決策與邏輯;驅(qū)動其他對象;收集與決策有關(guān)的信息;?
(6)案例:處理HTTP請求與應答,體現(xiàn)信息持有者角色;JMS對Queue的創(chuàng)建體現(xiàn)構(gòu)造者角色;稅務報告的生成體現(xiàn)服務提供者角色;服務定位器體現(xiàn)協(xié)調(diào)者角色;內(nèi)容驗證器體現(xiàn)控制者角色;

4、職責與封裝的關(guān)系?
缺乏合理的封裝,就會缺少正確的領(lǐng)域?qū)ο?,從而導致領(lǐng)域信息散亂分布到系統(tǒng)各個方法,使得概念不夠清晰,導致職責混亂。

5、模塊級的職責分配?
(1)問題分析:模塊之間職責的分配,在面臨三種問題時,應該如何應對?通過對具體問題的分析,討論模塊之間的職責分配,以及對高內(nèi)聚、松耦合的理解。同時,該問題分析還將引入Template Method模式;?
(2)問題分析:錯誤的職責分配帶來的循環(huán)依賴問題,以及對包的復用原則的違背,提出解決辦法;?
(3)模塊重用:對eBay模塊的分析,以及對某大型系統(tǒng)架構(gòu)的演進,提出模塊重用的方式;

6、原則與模式?
(1)單一職責原則:分析該原則的核心思想,關(guān)注對象的變化點;?
(2)案例分析:功能引擎中對功能對象的加載,如何體現(xiàn)職責分離帶來的好處;通過對案例分析引入Proxy模式;?
(3)專家模式:專家模式的核心思想是信息的持有者是操作該信息的專家;?
(4)案例分析:報表參數(shù)的處理方式,如何通過識別設計違背了專家模式,并依據(jù)專家模式對設計進行改進,從而巧妙地利用多態(tài)消除代碼壞味道,并進而通過引入Adapter模式處理模塊之間的依賴關(guān)系;?
(5)自治對象:分析了自治對象的特征,分別包括:最小完備,穩(wěn)定空間,自我履行與獨立進化。
(6)案例分析:用戶狀態(tài)機,給出了某金融系統(tǒng)中復雜的用戶狀態(tài)遷移,體現(xiàn)的復雜授權(quán)、登錄等業(yè)務邏輯,并由此引入State模式來簡化設計,體現(xiàn)自治對象的特征。
第二單元?
面向?qū)ο笤O計:?
抽象與變化
擴展式設計合理的職責分配并不能完全保證軟件設計的卓越,因為需求變化是軟件開發(fā)的常態(tài),因此設計必須在一定程度滿足變化,保證系統(tǒng)的可擴展性。?
1、抽象的意義?
抽象的關(guān)鍵在于尋找多個對象(或行為)具有的共同特征,并對特性進行泛化。泛化的特征可以暴露在外,從而隔離內(nèi)部的實現(xiàn)。?
(1)用例分析:對用例和參與者的泛化;遵循的原則;?
(2)案例分析:授權(quán)框架的設計,體現(xiàn)了對共同特征的提取,合理引入Chain Of Responsibility模式與Template Method模式;?
(3)案例分析:項目管理模型的抽象,通過對多種項目管理過程進行分析,對各種模型概念進行分類,并抽象出模型的共同特征,從而簡化模型;

2、識別變化?
要保證設計的可擴展性,主要過程是識別變化點,然后對變化進行封裝。?
(1)變化點:常見的變化點包括業(yè)務規(guī)則、算法策略、外部服務、硬件支持、命令請求、協(xié)議標準、數(shù)據(jù)格式、業(yè)務流程、系統(tǒng)配置、界面表現(xiàn);?
(2)案例分析:電子商務系統(tǒng)的Invoice業(yè)務規(guī)則,引入Specification模式;CIMS系統(tǒng)的機器加載策略,引入Strategy模式;短信服務,引入Facade模式與Adapter模式;人力資源系統(tǒng)考勤模塊,引入Gateway模式;?
(3)案例分析:CQRS框架,對命令處理邏輯的包裝,引入Decorator模式,并通過分析變化點,引入另一種替代Decorator模式的設計。

3、依賴解耦?
處理變化的關(guān)鍵是要解除對具體對象的依賴。?
(1)表驅(qū)動法?
(2)配置與反射?
(3)IoC容器?
(4)慣例優(yōu)于配置

4、擴展式設計?
擴展式設計分為三個步驟,分別為:分離職責各司其職,利用抽象統(tǒng)一接口,引用接口預留空白。擴展式設計可以有效地保證整個系統(tǒng)的可擴展性。
(1)擴展式設計的步驟?
(2)實戰(zhàn)演練:訂單處理,通過三次迭代逐步改進原有設計,并分別遵循專家模式、分離原則與擴展式設計,保證設計在修改最小的前提下滿足需求變化。在設計演進中,討論對設計模式的合理運用,并引入Specification模式;?
(3)案例分析:配置管理框架的設計,該框架能夠支持配置信息的多種存儲形態(tài),包括文件、數(shù)據(jù)庫、LDAP等;支持多種獲取配置的方式,如Web服務,REST服務。配置管理框架的接口需要保證其統(tǒng)一性和一致性,同時在滿足可擴展要求下,提供接口的易用性。?
(4)案例分析:消息隊列規(guī)范的設計。通過分析JMS、MSMQ、RabbitMQ和NServiceBus的設計,理解抽象的含義,例如理解面向接口設計、接口隔離原則、按意圖設計、Facade模式與企業(yè)集成模式。
(5)實戰(zhàn)演練:CIMS基于消息的分布式架構(gòu)。通過對服務的統(tǒng)一抽象,以及對消息處理的職責分配,建立一個協(xié)作合理的分布式架構(gòu)。設計過程中會引入Command模式、Publisher – Subscriber模式、Message Bus模式、Message Translator模式、Lookup模式。
第三單元?
場景驅(qū)動設計:?
利用場景建模
設計過程無論進行怎樣的設計,都不能離開具體的場景。場景驅(qū)動設計的要義是基于場景有針對性地進行設計。場景既是設計的驅(qū)動力,又是設計的約束,從而獲得恰如其分的設計。?
1、場景的目標層次?
(1)概要目標:系統(tǒng)層次的場景劃分,每個概要目標可對應子系統(tǒng)的需求目標。通過概要目標引入領(lǐng)域驅(qū)動設計的Unbounded Context。?
(2)用戶目標:業(yè)務層次的場景劃分,每個用戶目標對應各個子系統(tǒng)所提供的業(yè)務價值,并以服務的形式暴露給調(diào)用者。?
(3)子功能:功能層次的場景劃分,每個子功能都對應于業(yè)務功能,并以領(lǐng)域?qū)ο蠡驒M切關(guān)注點的方式,由服務調(diào)用。?
(4)案例分析:電子商務系統(tǒng)的場景目標劃分,以層次模型的方式表現(xiàn)場景。

2、場景的6W模型?
(1)6W的內(nèi)容:分別為who(對應于角色)、why(對應于業(yè)務價值)、when(對應于對象的協(xié)作)、what(對應于業(yè)務功能)、where(對應于場景邊界)和hoW(對應于業(yè)務實現(xiàn));?
(2)6W模型的設計驅(qū)動力:6W模型的關(guān)鍵是在場景邊界內(nèi),通過場景識別出角色,再以角色為設計入口,運用職責的層次模型識別出業(yè)務價值、業(yè)務功能和業(yè)務實現(xiàn),從而根據(jù)職責模型獲得領(lǐng)域模型,再通過時序圖,處理對象之間的協(xié)作關(guān)系,進一步精煉出更為準確的領(lǐng)域模型。

3、場景驅(qū)動設計演練?
(1)實戰(zhàn)案例:某大型跨國公司的內(nèi)部培訓系統(tǒng),包括培訓計劃制訂,培訓實施以及員工職業(yè)生涯規(guī)劃等功能;?
(2)對整個系統(tǒng)進行分析,識別場景的目標層次;?
(3)劃分需求場景,運用6W模型進行場景驅(qū)動設計;?
場景一:將培訓的Ticket分配給員工。在分配ticket時,需要指定deadline,以及取消票或deadline到期時的Action。同時,將該ticket的狀態(tài)設置為pending;?
場景二:在接收到分配ticket的通知后,并在設定的deadline之前,拒絕該ticket。此時,會自動執(zhí)行事先分配給ticket的取消票的action;?
場景三:根據(jù)設定的trigger周期,定期掃描在當日滿足deadline條件的ticket;如果存在滿足deadline條件的ticket,且ticket的狀態(tài)不為accepted,則需要觸發(fā)事先指定給該ticket的action。?
場景四:無論是nomination,還是接收ticket、取消ticket,或者deadline以及取消執(zhí)行的action,只要是對ticket進行了處理,都需要記錄這次處理ticket的記錄,以便于未來對該票的跟蹤;?
整個演練將完整介紹場景驅(qū)動設計的過程,并結(jié)合前面講解的職責驅(qū)動設計與擴展式設計,確保優(yōu)良的設計。案例會引入對領(lǐng)域建模的考量,識別職責、識別變化點并封裝變化。設計會引入Strategy模式,Bridge模式、Repository模式、State模式以及Interceptor模式等,使設計滿足可重用性、可擴展性。

4、軟件設計?
整個設計過程是由場景來驅(qū)動,通過角色識別職責,然后遵循高內(nèi)聚原則對對象進行封裝。合理的封裝還必須保證對象之間的協(xié)作是松耦合。其中,可通過識別變化點,利用抽象對變化進行封裝。卓越的軟件設計還需要不斷地演進,保證設計達到卓越的途徑是識別壞味道,然后通過重構(gòu)對代碼進行改進;還可以運用探索式設計,對職責進行合理的分配。?
(1)常見的壞味道:包括過長方法、過大的類、特性依戀、霰彈式修改、消息鏈、并行的繼承體系、中間人等;?
(2)探索式方法:包括方法分組、觀察隱藏方法、尋找可以更改的決定、尋找內(nèi)部關(guān)系、尋找主要職責、草稿式重構(gòu)與關(guān)注當前工作。

android開發(fā)板
linux_android開發(fā)板
fpga圖像處理
端海培訓實驗設備
fpga培訓班
 
本課程部分實驗室實景
端海實驗室
實驗室
端海培訓優(yōu)勢
 
  備案號:備案號:滬ICP備08026168號-1 .(2024年07月24日)....................
友情鏈接:Cadence培訓 ICEPAK培訓 EMC培訓 電磁兼容培訓 sas容培訓 羅克韋爾PLC培訓 歐姆龍PLC培訓 PLC培訓 三菱PLC培訓 西門子PLC培訓 dcs培訓 橫河dcs培訓 艾默生培訓 robot CAD培訓 eplan培訓 dcs培訓 電路板設計培訓 浙大dcs培訓 PCB設計培訓 adams培訓 fluent培訓系列課程 培訓機構(gòu)課程短期培訓系列課程培訓機構(gòu) 長期課程列表實踐課程高級課程學校培訓機構(gòu)周末班培訓 南京 NS3培訓 OpenGL培訓 FPGA培訓 PCIE培訓 MTK培訓 Cortex訓 Arduino培訓 單片機培訓 EMC培訓 信號完整性培訓 電源設計培訓 電機控制培訓 LabVIEW培訓 OPENCV培訓 集成電路培訓 UVM驗證培訓 VxWorks培訓 CST培訓 PLC培訓 Python培訓 ANSYS培訓 VB語言培訓 HFSS培訓 SAS培訓 Ansys培訓 短期培訓系列課程培訓機構(gòu) 長期課程列表實踐課程高級課程學校培訓機構(gòu)周末班 端海 教育 企業(yè) 學院 培訓課程 系列班 長期課程列表實踐課程高級課程學校培訓機構(gòu)周末班 短期培訓系列課程培訓機構(gòu) 端海教育企業(yè)學院培訓課程 系列班
主站蜘蛛池模板: 一级欧美一级日韩片 | 国产精品亚洲精品影院 | www青青草原| 向日葵视频在线免费观看 | 精品卡一卡2卡三卡免费 | 欧美一区二区三区综合色视频 | 精品国产一区二区三区免费看 | 国产亚洲午夜精品a一区二区 | 日本高清乱码中文字幕 | 幸福宝草莓视频 | 亚洲一区二区三区国产精品 | 日皮毛片 | 九九热精品在线 | 亚洲一级毛片在线播放 | 欧美婷婷六月丁香综合色 | 99久久精品免费看国产情侣 | 国产福利在线观看永久视频 | 国产免费精彩视频 | 天堂亚洲国产日韩在线看 | 成人看片黄a在线看 | 久久99精品国产一区二区三区 | 午夜免费观看_视频在线观看 | 天堂在线观看视频观看www | 欧美日韩性视频一区二区三区 | 麻豆合集| 国产精品国产三级农村妇女 | 污污成人一区二区三区四区 | 亚洲另类网 | 日韩精品一区在线观看 | hitomi在线播放 | 亚洲成人精品久久 | 综合精品一区 | 美女隐私下部无遮挡免费视频 | 久在草视频 | 免费能直接在线观看黄的视频 | 国产成人尤物精品一区 | 我的大乳女友小萱h文 | 最近韩国日本免费免费版 | 亚洲aav | 成人影片在线免费观看 | 欧美日韩精品国产一区在线 |