中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

軟件開發(fā)所經(jīng)歷的生命周期

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

總的來說,軟件開發(fā)都會經(jīng)歷一下生命周期

  • 分析需求:分析問題領(lǐng)域,了解用戶的需求
  • 軟件設(shè)計(jì):設(shè)計(jì)軟件的總體架構(gòu),把整個(gè)軟件系統(tǒng)劃分成大大小小的多個(gè)子系統(tǒng),設(shè)計(jì)每個(gè)子系統(tǒng)的具體結(jié)構(gòu)
  • 軟件編碼:用選定的編程語言來編寫軟件功能,實(shí)現(xiàn)軟件設(shè)計(jì)階段所勾畫出來的軟件藍(lán)圖
  • 軟件測試:測試軟件是否實(shí)現(xiàn)特定的功能,以及軟件的運(yùn)行性能
  • 軟件部署:為用戶安裝軟件系統(tǒng),幫助用戶正確的使用軟件
  • 軟件維護(hù):修復(fù)軟件中存在的BUG,當(dāng)用戶的需求發(fā)生變化時(shí)(增加新的功能,或更改現(xiàn)有功能的實(shí)現(xiàn)方式)修改相應(yīng)的軟件模塊

為了提高軟件的開發(fā)效率,降低軟件的開發(fā)成本,一個(gè)良好的軟件系統(tǒng)應(yīng)具備以下特點(diǎn)

  • 可重用性:減少軟件的重復(fù)代碼,避免重復(fù)編程
  • 可擴(kuò)展性:當(dāng)軟件系統(tǒng)的需求必須放生更改時(shí),可以方便的在現(xiàn)有架構(gòu)的基礎(chǔ)上構(gòu)建新的子系統(tǒng),也不需要改變軟件系統(tǒng)的現(xiàn)有結(jié)構(gòu)且不影響其它以存在的子系統(tǒng)
  • 可維護(hù)性:當(dāng)軟件系統(tǒng)的某個(gè)功能需要更改時(shí)只需修改相關(guān)子系統(tǒng)的少量代碼即可,而不需要修改軟件系統(tǒng)中的多個(gè)子系統(tǒng)。

如何才能使軟件系統(tǒng)具備以上特點(diǎn)呢?加入吧整個(gè)軟件系統(tǒng)分解成多個(gè)小的子系統(tǒng),每個(gè)子系統(tǒng)之間相對獨(dú)立把這些子系統(tǒng)像最積木一樣靈活的組裝起來構(gòu)成整個(gè)大的軟件系統(tǒng)。這樣設(shè)計(jì)出來的軟件肯定能獲得以上的優(yōu)良特性。軟件系統(tǒng)中的子系統(tǒng)具備以下特性:

  • 結(jié)構(gòu)穩(wěn)定性:軟件設(shè)計(jì)階段把一個(gè)軟件系統(tǒng)劃分成更小的子系統(tǒng)時(shí),設(shè)計(jì)合理,是系統(tǒng)的結(jié)構(gòu)健壯能適應(yīng)用戶變化的需求
  • 可擴(kuò)展性:當(dāng)軟件必須增減新的功能時(shí),能夠在現(xiàn)有子系統(tǒng)的基礎(chǔ)上創(chuàng)建出新的子系統(tǒng),該子系統(tǒng)繼承了原有子系統(tǒng)的一些特性,并且還具有一些新的特性,從而提高的系統(tǒng)的可重用性及可擴(kuò)展性
  • 內(nèi)聚性:每個(gè)子系統(tǒng)只完成特定的功能,每個(gè)子系統(tǒng)不會有功能的重疊
  • 可組合性:若干個(gè)小的子系統(tǒng)組合起來就成了一個(gè)完整的大系統(tǒng),子系統(tǒng)的可組合性會提高軟件的可維護(hù)性及可重用性 并簡化開發(fā)過程
  • 松耦合:每個(gè)子系統(tǒng)之間相對獨(dú)立,修改一個(gè)子系統(tǒng)不會影響到其它的子系統(tǒng)。

面向?qū)ο箝_發(fā):

咋面向?qū)ο蟮拈_發(fā)方法中把軟件系統(tǒng)看成是各種對象的集合,對象就是最小的子系統(tǒng),一組相關(guān)的對象能夠組合成更復(fù)雜的子系統(tǒng)。面向?qū)ο蟮拈_發(fā)方法具有以下優(yōu)點(diǎn)

  • 把軟件系統(tǒng)堪稱是各種對象的集合,這更符合人類的自然思維方式
  • 軟件需求的改動(dòng)往往是功能的改動(dòng),而功能的執(zhí)行者————對象一般不會有太大的變化這使得按照對象設(shè)計(jì)出來的系統(tǒng)結(jié)構(gòu)比較穩(wěn)定
  • 對象包括屬性(數(shù)據(jù))和行為(方法)把對象的數(shù)據(jù)及方法的實(shí)現(xiàn)方式一起封裝起來,這使得方法以及與之相關(guān)的數(shù)據(jù)不再分離,提高的子系統(tǒng)的相對獨(dú)立性,從而提高的軟件的可維護(hù)性
  • 支持封裝、繼承、多態(tài)和抽象,提高的系統(tǒng)的可重用性、可維護(hù)性和可擴(kuò)展性

對象模型:

在面向?qū)ο蟮姆治龊驮O(shè)計(jì)階段,致力于建立模擬問題領(lǐng)域的對象模型,建立對象模型包括自底向上的抽象過程也包括自頂向下的分解過節(jié)過程。

建立對象模型的第一步使從問題領(lǐng)域入手,徹底搞清用戶的需求,然后建立正確的對象模型,開發(fā)人員需要進(jìn)行一下自低向上的抽象思維

  • 吧問題領(lǐng)域的屬性和行為抽象成具體的對象
  • 把具有相同屬性和行為的對象抽象成類
  • 若多個(gè)類中存在共性(具有相同的屬性和行為)把這些共性抽象到父類中

在自底向上的抽象過程中,為了使子類能更好的繼承父類的屬性和行為,可能需要自頂向下的修改,從而使類體系更加合理。由于這種類體系的構(gòu)造是由具體到抽象,再從抽象到具體,符合人類的思維規(guī)律,因此能更好更快的完成任務(wù)。

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:從架構(gòu)的角度看,如何寫好代碼?

下一篇:前后端分離了,然后呢?