Python初步認(rèn)識(shí)軟件工程

2018-07-24 16:45 更新

1.軟件工程無(wú)處不在

2.軟件開(kāi)發(fā)介紹

軟件已經(jīng)深入到我們生活的方方面面,了解軟件工程,了解軟件工程的屬性。

  • 軟件=程序+數(shù)據(jù)+文檔
  • 程序;計(jì)算機(jī)接受我們給出的指令,運(yùn)行時(shí)候能提供所要求的功能與性能。
  • 數(shù)據(jù):程序能夠適當(dāng)?shù)牟僮餍畔⒌臄?shù)據(jù)結(jié)構(gòu)
  • 文檔:描述程序的研制過(guò)程、方法和使用的圖文資料。

3.軟件開(kāi)發(fā)本質(zhì)特征

軟件開(kāi)發(fā)具有復(fù)雜性、一致性、可變性、不可見(jiàn)性。

  • 軟件開(kāi)發(fā)是一種人類(lèi)高度抽象的活動(dòng),軟件是復(fù)雜的,像那些高級(jí)云計(jì)算,Google、Amazon、阿里云 所需要的服務(wù)器超過(guò)100萬(wàn)臺(tái),里面的數(shù)據(jù)調(diào)用非常復(fù)雜。

  • 軟件不可能獨(dú)立的存在,它需要依附一定的硬件、網(wǎng)絡(luò)、操作系統(tǒng),一個(gè)軟件的應(yīng)用的調(diào)用很有可能會(huì)同時(shí)用到幾個(gè)服務(wù)器共同執(zhí)行,這幾個(gè)服務(wù)器的地址甚至都不在一起。軟件與不同服務(wù)器之間的接口是需要統(tǒng)一的。

  • 軟件是需要不斷快速更新?lián)Q代的,因?yàn)橛脩?hù)的需求不斷的再變。

  • 軟件是一種看不到摸不到的邏輯實(shí)體,沒(méi)有形體,在開(kāi)發(fā)過(guò)程程序員只能看到程序代碼,并不能直接看到軟件開(kāi)發(fā)后的效果,所以給開(kāi)發(fā)管理增加了很大的困難。

4.軟件開(kāi)發(fā)產(chǎn)生與發(fā)展

  • 1956-1967 史前時(shí)代 軟件開(kāi)發(fā)沒(méi)有方法可循,軟件的設(shè)計(jì)實(shí)在開(kāi)發(fā)人員頭腦中的隱藏過(guò)程,60世紀(jì)中期發(fā)生過(guò)軟件危機(jī)。

  • 1968-1982 瀑布過(guò)程模型 1968提出“軟件工程”概念,使用結(jié)構(gòu)化開(kāi)發(fā)方法,瀑布式軟件生命周期模型成為典型。

  • 1983-1995 質(zhì)量標(biāo)準(zhǔn)體系 提出了面向?qū)ο箝_(kāi)發(fā)方法,軟件過(guò)程改進(jìn)運(yùn)動(dòng),CMM/ISO9000/SPICE等質(zhì)量標(biāo)準(zhǔn)體系。

  • 20世紀(jì)90年代至今 敏捷開(kāi)發(fā)方法流行起來(lái),快速迭代、增量開(kāi)發(fā),配以更緊密的團(tuán)隊(duì)協(xié)作,能有效應(yīng)對(duì)需求變化。

5.軟件工程

為了增加軟件的質(zhì)量、提高開(kāi)發(fā)速度,人們開(kāi)始采用搞工程的方法來(lái)搞軟件開(kāi)發(fā)。 這里面包含三方面,開(kāi)發(fā)過(guò)程、開(kāi)發(fā)方法策略、開(kāi)發(fā)工具。

5.1 開(kāi)發(fā)過(guò)程

  1. 首先開(kāi)發(fā)商拿到用戶(hù)需求,然后根據(jù)用戶(hù)需求寫(xiě)軟件需求規(guī)格說(shuō)明,看看用戶(hù)具體需要哪些功能,談好每個(gè)功能具體價(jià)格,簽字畫(huà)押,然后開(kāi)工。
  2. 開(kāi)發(fā)商做好軟件 設(shè)計(jì)模型、體系結(jié)構(gòu)、詳細(xì)設(shè)計(jì)文檔,把設(shè)計(jì)圖給軟件工程師。
  3. 軟件工程師按照設(shè)計(jì)圖寫(xiě)代碼,不同的程序員寫(xiě)不同的模塊,最后將模塊進(jìn)行匯總為一個(gè)統(tǒng)一的軟件。
  4. 軟件做好后,交給測(cè)試工程師進(jìn)行測(cè)試,最后出報(bào)告。(單元測(cè)試、集成測(cè)試、用戶(hù)測(cè)試)

5.2 開(kāi)發(fā)方法

從下到上有四步,面向過(guò)程,面向?qū)ο?,面向服?wù)。所謂的面向,就是為了解決系統(tǒng)在從簡(jiǎn)單到復(fù)雜過(guò)程中,大家采用的解決方法。

知乎李黃河的回答

  • 小企業(yè)-大企業(yè)-集團(tuán)-跨國(guó)集團(tuán)
  • 小企業(yè)(簡(jiǎn)單的面向?qū)ο缶幊?,?shù)據(jù)庫(kù)+服務(wù)端+瀏覽器)
  • 大企業(yè)(面向組件,把一個(gè)個(gè)比較獨(dú)立的業(yè)務(wù)模塊約定好接口,開(kāi)發(fā)成組件。以后再有類(lèi)似的功能模塊,直接調(diào)用這個(gè)組件,即節(jié)省開(kāi)發(fā)成本,又容易維護(hù)。)
  • 集團(tuán)(SOA,單點(diǎn)登陸,有了portal,有了搜索服務(wù),有了知識(shí)庫(kù))
  • 跨國(guó)集團(tuán)(雙機(jī),熱備,負(fù)載均衡,以前用的IBM的主機(jī)+Oracle數(shù)據(jù)庫(kù)+EMC的存儲(chǔ),再后來(lái)買(mǎi)更貴的性能更好的。慢慢的你發(fā)現(xiàn),企業(yè)掙的錢(qián)都他媽的給了IOE。你開(kāi)始考慮分布式,開(kāi)始考慮使用開(kāi)源產(chǎn)品。)去ioe01 去ioe02

5.3 開(kāi)發(fā)策略

  • 不重復(fù)造輪子(庫(kù)函數(shù)、類(lèi)庫(kù)、文檔模板、網(wǎng)頁(yè)模板、設(shè)計(jì)模式、組件、框架)
  • 將一個(gè)復(fù)雜大問(wèn)題,拆分為若干簡(jiǎn)單小問(wèn)題,最后在組裝。
  • 將軟件看做生命,功能從簡(jiǎn)單到復(fù)雜,小步快跑,快速迭代。
  • 各個(gè)軟件質(zhì)量特征看總體性?xún)r(jià)比。

5.4 開(kāi)發(fā)工具

5.5 開(kāi)發(fā)人員素質(zhì)要求

  • 良好讀寫(xiě)代碼的能力
  • 較強(qiáng)責(zé)任感,自我提升,自我反省總結(jié),要對(duì)自己寫(xiě)的代碼負(fù)責(zé)任,要對(duì)自己的代碼所造成的用戶(hù)體驗(yàn)* 負(fù)責(zé)任。
  • 職業(yè)道德:對(duì)代碼品質(zhì)的保證,對(duì)公司秘密的保護(hù)等等 容易與人交流
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)