版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件系統(tǒng)開發(fā)(kāifā)的工程化思想江蘇大學(xué)(dàxué)工商管理學(xué)院陳永泰共二十七頁主要(zhǔyào)內(nèi)容軟件危機(jī)(wēijī)軟件工程瀑布模型原型法面向?qū)ο蠓椒▽W(xué)共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(一)軟件(ruǎnjiàn)危機(jī)Intheearlydays:
“Software”=“Placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.User
ComputerLate1950’s:ComputerbecamecheaperandmorecommonHighlevellanguageswereinventedEarly1960s:
Veryfewlargesoftwareprojectsweredonebysomeexperts.ProgrammerUser
Computer
easier共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(二)
Middletolate1960s:Trulylargesoftwaresystemswereattempted.例:美國IBM公司在1963年至1966年開發(fā)的IBM360機(jī)的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。......據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。......這個項目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計工作正像這樣一個泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會陷入這樣的困境(kùnjìng)......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項目的典型事例為人們所記取。SoftwareCrisis!共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(二)問題(wèntí)出在哪里?
項目沒有被很好地理解
計劃不周,最終導(dǎo)致進(jìn)度拖延沒有充分的文檔資料軟件可靠性缺少度量的標(biāo)準(zhǔn),質(zhì)量無法保證軟件難以維護(hù)、不易升級共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(三)解決問題的想法
Bettermanagement
Differentteamorganizations
Betterlanguages&tools
Uniformcodingconventions
必須意識到:“軟件(ruǎnjiàn)”編程,它有自己的生命周期。大型軟件系統(tǒng)的開發(fā)與其它工程項目如建造橋梁、制造飛機(jī)、輪船等的開發(fā)是同理的?!败浖こ獭?SoftwareEngineering)NATOConference,Garmisch,Germany,1968.共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(四)結(jié)構(gòu)化開發(fā)(kāifā)--瀑布模型維護(hù)開發(fā)定義DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(五)瀑布模型的特點(diǎn)順序性、依賴性推遲程序的物理(wùlǐ)實現(xiàn)質(zhì)量保證的觀點(diǎn)——階段文檔與評審的要求,利于盡早發(fā)現(xiàn)錯誤共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(六)快速(kuàisù)原型法適用于用戶驅(qū)動的系統(tǒng)(即需求模糊或隨時間變化的系統(tǒng))PrototypeFeedbackModification共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(七)拋棄(pāoqì)原型法(throw-awayprototype)Brooks(1975):“Doittwice.”Version1:atrialtoverifyrequirements,andtogetenoughfeedback.Version2:producedfollowingawaterfallmodel.共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(八)演化原型法(evolutionaryprototype)螺旋模型(thespiralmodel):Boehm(1988)漸增模型(theincrementalmodel):Gilb(1988)Thewaterfallmodelisstillfollowed,butforeachseparateincrement.注:演化原型法與傳統(tǒng)方法最大的不同(bùtónɡ),在于它是一種高度迭代的動態(tài)方法,系統(tǒng)的初始版本很早就交付用戶試用。共二十七頁ReviewCommitmentPartitionRiskanaly-sisPrototype1Simulations,models,benchmarksRequirementsplan,life-cycleplanConceptofoperationPrototype2RiskanalysisSoftwarerequirementsRequirementsvalidationDevelop-mentplanRiskanalysisPrototype3SoftwareproductdesignDesignvalidationandverificationIntegrationandtestplanRiskanalysisOperationalprototypeDetaileddesignUnittestCodeIntegrationandtestAcceptancetestImplementationPlannextphasesDevelop,verifynext-levelproductDetermineobjectives,alternatives,constrainsEvaluatealternatives,identify,resolverisksCumulativecostProgressthroughstepsThespiralmodel共二十七頁杭州北京Post-officeMessageSendbymethodObjectAttributes:location;employee;……Methods:send;sell;……我想把郵局(yóujú)搬到我家門口,多加幾個郵遞員,24小時都開門……對不起,本郵局不提供(tígōng)此類服務(wù)唉,那就先送束花吧——
Post_office.Send(request,payment)軟件系統(tǒng)開發(fā)的工程化思想(九)
---面向?qū)ο蠓椒▽W(xué)(OOM)共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十)面向?qū)ο蠓椒ǖ膸讉€(jǐɡè)概念對象Object=數(shù)據(jù)Attribute+操作Method注意:Object內(nèi)部的attributes不允許外部用戶直接改動,只有當(dāng)它提供了相應(yīng)的服務(wù)method時,用戶才能通過發(fā)送message來提請它執(zhí)行。共二十七頁軟件系統(tǒng)開發(fā)的工程化思想(sīxiǎng)(十一)OOM的特點(diǎn)盡可能模擬人類習(xí)慣的思維方式,即問題域與求解域在結(jié)構(gòu)上盡可能一致。與傳統(tǒng)方法相反,OOM以數(shù)據(jù)或信息為主線,把數(shù)據(jù)和處理結(jié)合構(gòu)成統(tǒng)一體——對象。這時程序不再是一系列工作在數(shù)據(jù)上的函數(shù)集合,而是相互協(xié)作又彼此(bǐcǐ)獨(dú)立的對象的集合。共二十七頁軟件系統(tǒng)開發(fā)的工程化思想(sīxiǎng)(十二)OOM的四要素:對象(object):世界由對象組成。類(class):對象可劃分為類;單個對象可視為某一類(yīlèi)的實例(instance)。繼承(inheritance):類可分層,下層子類與上層父類有相同特征,稱為繼承。消息(message):對象間只能通過發(fā)送消息進(jìn)行聯(lián)系,外界不能處理對象的內(nèi)部數(shù)據(jù),只能通過消息請求它進(jìn)行處理(如果它提供相應(yīng)消息的話)。共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十三)例:classPost_office{private:loc_typelocation;emp_typeemployee;……public:voidsend(req_typerequest,money_typepayment);voidsell(intgoods,money_typepayment);……};
main(){Post_officeMy_PO;req_typeMy_request;money_typeMy_payment;……My_PO.Send(My_request,My_payment);……}共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十四)OOM的主體思想以object為核心,強(qiáng)調(diào)對現(xiàn)實概念的模擬而不強(qiáng)調(diào)算法?!懊嫦?qū)ο蠓椒▽W(xué)的基本原則,是按照人們習(xí)慣的思維方式(fāngshì)建立問題域的模型,開發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)”。
Class:由特殊到一般的歸納(induction)
Inheritance:由一般到特殊的演繹(deduction)共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十五)OOM的主體思想以object模擬實體,需求變化不會引起結(jié)構(gòu)的整體變化,因為實體相對穩(wěn)定,故系統(tǒng)也相應(yīng)穩(wěn)定一個class所有的instances都可重用它的代碼;由inheritance派生出的新的class可重用其父類的代碼,并且可以修改、擴(kuò)充而不影響(yǐngxiǎng)其父類的使用。穩(wěn)定性好:軟件功能需求的變化不牽動全局,只需局部修改;Class獨(dú)立性強(qiáng):只要修改不涉及class的對外接口,則內(nèi)部修改完全不影響外部調(diào)用;Inheritance和多態(tài)性(polymorphism)使其很容易被修改和擴(kuò)充;容易理解、容易測試、調(diào)試。共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十六)OOM的基本概念Object:=ID+Method+Attribute+Message
以數(shù)據(jù)為中心,不設(shè)與數(shù)據(jù)無關(guān)的操作;
Object主動處理而不被動地等待被處理,外部只能通過message請求操作;
具有(jùyǒu)黑盒性:外部操作時,無須知道該object內(nèi)部的數(shù)據(jù)結(jié)構(gòu)及算法;
具有并行性:不同object各自獨(dú)立地處理自身數(shù)據(jù),彼此間僅通過傳遞message完成通信;
模塊獨(dú)立性好:內(nèi)聚強(qiáng)、耦合松共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十七)OOM的基本概念Class:具有相同數(shù)據(jù)和相同操作的一組對象;Instance:某個class描述的具體對象;Message:=object_ID.method_ID(parameter(s));Method:object能做的操作,亦稱為service、responsibility,在
class中須定義相應(yīng)的代碼;Attribute:object
的固有數(shù)據(jù);Inheritance:子類自動(zìdòng)共享父類的attributes和methods,而不必重復(fù)定義。共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十八)Class中國人中國人Attributes中國人Methods張山(instance)
Class中國人張山的AttributesClass杭州人
(子類)杭州人Attributes杭州人Methods
Class中國人李士(instance)中國人李士的Attributes杭州人李士的Attributes
Class杭州人例共二十七頁軟件系統(tǒng)開發(fā)(kāifā)的工程化思想(十九)若杭州人的methods中有與中國人的同名,則李士執(zhí)行該method時以杭州人為準(zhǔn),不執(zhí)行中國人中定義的同名method。傳遞性(transitivity):AB、BCAC
一個class繼承了上層全部classes的一切性質(zhì)(xìngzhì)。一個子類只有一個父類稱為單繼承(singleinheritance),一個子類可有多個父類稱為多重繼承(multipleinheritance).修改與擴(kuò)充可以很容易地通過派生子類來完成。
講官話,這叫做“低層性質(zhì)override高層性質(zhì)”講土話,這叫做“縣官不如現(xiàn)管”共二十七頁FemaleChineseScholarI注意:multipleinherit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)學(xué)之眼模板
- 醫(yī)藥生物行業(yè)安全生產(chǎn)工作總結(jié)
- 舞蹈秘境:身心之旅
- 幼兒園環(huán)境教育的研究與實踐計劃
- 《知識產(chǎn)權(quán)法總論》課件
- 舞臺設(shè)計工程師工作總結(jié)
- 2024員工三級安全培訓(xùn)考試題及參考答案【A卷】
- 2023年-2024年項目部安全管理人員安全培訓(xùn)考試題及答案原創(chuàng)題
- 員工因病辭職報告-15篇
- 歷史學(xué)應(yīng)用研究報告
- MOOC 計量經(jīng)濟(jì)學(xué)-西南財經(jīng)大學(xué) 中國大學(xué)慕課答案
- 無人機(jī)測試與評估標(biāo)準(zhǔn)
- 2024版國開電大法學(xué)本科《國際經(jīng)濟(jì)法》歷年期末考試總題庫
- 2023-年2月山東公務(wù)員錄用考試《申論B》考試真題
- 中國人壽保險培訓(xùn)
- 2024年國家電投五凌電力限公司招聘歷年高頻考題難、易錯點(diǎn)模擬試題(共500題)附帶答案詳解
- 陪診服務(wù)培訓(xùn)課件模板
- 兒童食物過敏的流行病學(xué)調(diào)查與風(fēng)險因素分析
- 云邊有個小賣部詳細(xì)介紹
- 2023南頭古城項目簡介招商手冊
- 鄉(xiāng)鎮(zhèn)權(quán)責(zé)清單
評論
0/150
提交評論