在軟件開發過程中簡單的說(在軟件開發過程中,簡單的說)

軟件開發 1094
本篇文章給大家談談在軟件開發過程中簡單的說,以及在軟件開發過程中,簡單的說對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、軟件開發流程 2、

本篇文章給大家談談在軟件開發過程中簡單的說,以及在軟件開發過程中,簡單的說對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

軟件開發流程

軟件開發流程如下:

1、項目開發目的分析與確定

軟件開發流程的這一階段,主要是在在軟件開發商將開發項目確定下來之后,需要與需求方進行討論,確定需求方對于軟件開發的需要實現目標及其具體需要的功能等等,并確定是否可達成。

2、需求分析

這是軟件開發流程的第二個階段,也是為軟件開發的正常進行確定具體思路的階段。在確定軟件開發可進行后,必須要對客戶需要實現的軟件功能需求進行具體詳細的分析。同時應當考慮在開發過程中可能出現的變化情況,制定需求變更計劃隨時應對特殊情況的發生,保證軟件開發流程的順暢進行。

3、設計

軟件設計要根據上一階段對軟件功能需求分析的結果,來設計軟件系統的框架結構、功能模塊和數據庫等等。分為總體設計和詳細設計兩個部分。

4、編程

軟件開發流程中每上一個階段都是下一個階段的實施進行的基礎。編程也是根據對軟件設計,將軟件設計的各部分需求通計算機程序代碼來實現運行,編程有統一、規范的程序編寫規則,保證軟件程序的易懂性、易維護性。

5、軟件測試

在根據設計將客戶軟件需用編程代碼來實現之后,也就是軟件程序完成之后,需要對編寫的程序,形成整體構架、功能進行單元、組裝、系統三階段的測試,以測試程序編寫的正確性,以及對客戶需求功能滿足的充分性,以此來確定軟件是否達到開發要求,同時也是一個發現問題、糾正問題的過程。

6、軟件交付

軟件開發流程通過以上核心環節完成了軟件開發,接下來就是在軟件開發達到客戶需求之后,開發者將軟件系統交予客戶,并將軟件安裝程序、數據庫的數據字典、《用戶安裝手冊》、《用戶使用指南》、需求報告、設計報告、測試報告等產物交付給客戶。

7、驗收

用戶在接收開發商交付的軟件開發結果,并進行實際操作、測試運行,實現滿意結果之后,對開發出來的軟件進行驗收。

8、維護

定制開發的軟件通常都需要提供售后服務,定期對軟件進行維護,或者根據用戶出現的新需求,進行應用軟件程序的修改,使之不斷滿足客戶實際需求。

軟件開發的概念

是根據用戶要求建造出軟件系統或者系統中的軟件部分的過程。軟件開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟件一般是用某種程序設計語言來實現的。通常采用軟件開發工具可以進行開發。軟件分為系統軟件和應用軟件,并不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。

軟件開發過程一般有幾個階段

軟件開發的生命周期一般分為6個階段:計劃、需求分析、邏輯設計、程序編制、調試、運行和維護

軟件生命周期分為軟件定義、軟件開發及軟件運行維護三個階段:

軟件定義階段

制定計劃:確定總目標;可行性研究;探討解決方案;制定開發計劃。

需求分析:對待開發軟件提出的需求進行分析并給出詳細的定義。

軟件開發階段

軟件設計:分為概要設計和詳細設計兩個部分?

軟件實現:把軟件設計轉換成計算機可以接受的程序代碼

軟件測試:在設計測試用例的基礎上檢驗軟件的各個組成部分

軟件運行維護階段

軟件投入運行,并在使用中不斷地維護,進行必要的擴充和刪改。

關于軟件開發會遇到什么問題及對策

調研:當確定做之后,我們就要與客戶交流,進行需求分析,但由于客戶表達不清、需求自身經常變動或分析人員理解有誤,都會導致需求分析困難。所以,前期的調研及 開發過程中的及時溝通及匯報時很有必要的;但這是可能就會遇到一些問題,比如:前期我是想這樣實現的,但我又想以另一種形式實現,這時。就會涉及到已經開 發完成的模塊進行修改,造成工作量的增大,所以,要注意的是,提前考慮好或需要變動要及時與工程師溝通,看是否可以進行修改,若沒問題則工程師修改,若工 程量很大,甚至涉及到整個架構了,則盡量不修改以其他形式實現。偉創軟件在開發過程中經常遇到這樣的問題,所以建議大家多溝通。

2

開發過程中:每個工程師都希望能再前期就能將功能梳理完畢,但是這種事情基本是不可能的,在開發過程中會出現這樣那樣的變動,偉創OA就經常出現這樣的情況,但這并不是不可控的,只要軟件還沒有開發完成,與工程師協商是沒有問題的,若是已經開發完了,要改動,就有可能會涉及整個底層架構,加大周期及工作量。

3

測試:測試的目的在于發現盡可能多的錯誤,而不是為了說明程序中沒有錯誤。公司內部人員進行的測試,就是已知各模塊的結構進行單步調試,主要是看模塊接口是否正確,輸出結果是否正確,請用戶過來試用,發現在試用中出現的一些問題,提交測試報告。

軟件開發過程中會遇到哪些問題

4

需求分析很重要,要先明確需求,然后要在設計的時候一邊編程一邊根據需求的改變而改變,越早修改,代價越小。

軟件開發過程中會遇到哪些問題

END

注意事項

以完全定制為例列舉,若是通用模板型的就沒有此種問題了

軟件開發的流程都有哪些步驟呢?

軟件開發是指一個軟件項目的開發,如市場調查,需求分析,可行性分析,初步設計,詳細設計,形成文檔,建立初步模型,編寫詳細代碼,測試修改,發布等。

軟件是怎么樣開發出來的

第一個步驟是市場調研,技術和市場要結合才能體現最大價值。

第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操作手 冊。

用戶視圖 是該軟件用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這里面包含了 很多操作方面的流程和條件。

數據詞典 是指明數據邏輯關系并加以整理的東東,完成了數據詞典,數據庫的設計就完成了一半多。

用戶操作手冊是指明了操作流程的說明書。

請注意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟件設計之前完成,完成這些,就為程序研發提供了約束和準繩,很遺憾太多公司都不是這樣做的,因果顛倒,順序不分,開發工作和實際需求往往因此產生隔閡脫節的現象。

需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需求說明 書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方(客戶或公司市場部門)能夠有真正的溝通和了解。

第三個步驟是概要設計,將系統功能模塊初步劃分,并給出合理的研發流程和資源要求。

作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常采用這種方法是因為涉及的研發任務屬于新領域,技術主管人員一上來無法給出明確的詳細設計說明書,但是 并不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼后,根據評測結果和 經驗教訓的總結,還要重新進行詳細設計的步驟。

第四個步驟是詳細設計,這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把 具體的模塊以最’干凈’的方式(黑箱結構)提供給編碼者,使得系統整體模塊化達到最 大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格的講詳細 設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求分析到概要 設計到完成詳細設計說明書,一個軟件項目就應當說完成了一半了。換言之,一個大型軟 件系統在完成了一半的時候,其實還沒有開始一行代碼工作。

那些把作軟件的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。

第五個步驟是編碼,在規范化的研發流程中,編碼工作在整個項目流程里最多不會超過1/ 2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提 高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都 出現過。

編碼時的相互溝通和應急的解決手段都是相當重要的,對于程序員而言,bug永 遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不發補丁的時候 嗎?從來沒有!

第六個步驟是測試

測試有很多種:

按照測試執行方,可以分為內部測試和外部測試

按照測試范圍,可以分為模塊測試和整體聯調

按照測試條件,可以分為正常操作情況測試和異常情況測試

按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試

以上都很好理解,不再解釋。

總之,測試同樣是項目研發中一個相當重要的步驟,對于一個大型軟件,3個月到1年的外部測試都是正常的,因為永遠都會又不可預料的問題存在。

完成測試后,完成驗收并完成最后的一些幫助文檔,整體項目才算告一段落,當然日后少不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟件的運營 狀況并持續修補升級,直到這個軟件被徹底淘汰為止。

什么是軟件開發的核心問題

按照軟件工程鼻祖,《人月神話》作者 Brooks 在“沒有銀彈——軟件工程中的根本和次要問題”一章中闡述的思想,軟件開發的核心問題就是如何從概念上對一個復雜的業務系統進行建模。這個建模是含義廣泛的,不僅僅包括對象建模,還包括數據建模、算法建模等等一系列的內容??偠灾且日业浇鉀Q復雜問題的突破口(先要搞明白需要做什么,然后再考慮如何做)。至于采用什么表示方法(簡單文本、UML 圖、E-R 圖)、采用什么高級語言、是否一定要用面向對象、使用什么開發工具都是次要的問題。

軟件開發方法

軟件開發方法(Software Development Method)是指軟件開發過程所遵循的辦法和步驟。

軟件開發活動的目的是有效地得到一些工作產物,也就是一個運行的系統及其支持文檔,并且滿足有關的質量要求。軟件開發是一種非常復雜的腦力勞動,所以經常更多討論的是軟件開發方法學,指的是規則、方法和工具的集成,既支持開發,也支持以后的演變過程(交付運行后,系統還會變化,或是為了改錯,或是為了功能的增減)。

關于組成軟件開發和系統演化的活動有著各種模型(參見軟件生存周期,軟件開發模型,軟件過程),但是典型地都包含了以下的過程或活動:分析、設計、實現、確認(測試驗收)、演化(維護)。

有些軟件開發方法是專門針對某一開發階段的,屬于局部性的軟件開發方法。

特別是軟件開發的實踐表明,在開發的早期階段多做努力,在后來的測試和維護階段就會使費用較大地得以縮減。因此,針對分析和設計階段的軟件開發方法特別受到重視。其它階段的方法,從程序設計發展的初期起就是研究的重點,

已經發展得比較成熟(參見程序設計,維護過程)。除了分階段的局部性軟件開發方法之外,還有覆蓋開發全過程的全局性方法,尤為軟件開發方法學注意的重點。

對軟件開發方法的一般要求:當提出一種軟件開發方法時,應該考慮許多因素,包括:

①覆蓋開發全過程,并且便于在各階段間的過渡;

②便于在開發各階段中有關人員之間的通信;

③支持有效的解決問題的

④支持系統設計和開發的各種不同途徑;

⑤在開發過程中支持軟件正確性的校驗和驗證;

⑥便于在系統需求中列入設計、實際和性能的約束;

⑦支持設計師和其他技術人員的智力勞動;

⑧在系統的整個生存周期都支持它的演化;

⑨受自動化工具的支持。此外,在開發的所有階段,有關的軟件產物都應該是可見和可控的;軟件開發方法應該可教學、可轉移,還應該是開放的,即可以容納新的技術、管理方法和新工具,并且與已有的標準相適應。

參考:

淺談軟件開發中的人,過程與技術

無意間看到一篇 茹炳晟老師寫的文章,受益很深。本文轉載自:茹炳晟聊軟件研發公眾號。

核心觀點

人是軟件開發的執行者。過程是軟件開發的體制。技術是軟件開發的精髓。三者缺一不可,卻是以人這個根本原動力為核心的。

在業界,一種普遍的看法是:人、過程和技術構成了軟件開發的“鐵三角”。然而,三者孰重孰輕,歷來多有分歧。本文擬以此為論題,從科學技術哲學的角度談一下我的看法。

三者中,過程與技術蘊意頗深,容后再述。我們先看看人:

人:軟件開發的執行者

對于人在軟件開發中的作用,我的第一印象是:人是軟件開發的執行者。這一印象雖不為眾多“人本位者”所樂見,在我看來卻是中肯的。

“執行者”這個稱謂,看似貶低了人的作用,實則不然。須知,執行者不僅包括被認為是業內藍領的程序員和測試人員,還應該包括榮為白領的項目經理、系統分析師、系統架構師、系統設計師等等。君不見大大小小的各類公司站在前臺的一號人物,名何?CEO是也。CEO即首席執行官,或稱執行總裁。雖則首席,雖則總裁,也只是一個執行者而已。在公司中,大到CEO,小到普通職員,都是所謂的“勞方”,都是公司意志的執行者。(公司意志即是資本的意志,其間種種,不在本文論題之內,略過不言。)

同樣的,當討論領域是軟件開發時,上述所有的開發人員都只是軟件開發的執行者,執行的是軟件項目的意志。何謂軟件項目的意志?很簡單的兩個字——需求。這是有大背景的。目下的經濟為市場經濟,市場經濟的特點就是以需求為中心。需求是生產之母,這是市場的鐵律,也是市場化的軟件開發的鐵律。所以,軟件項目的意志只能是需求,在此意志下的所有技術活動(即軟件開發)只能是執行這一意志,那么軟件開發人員就都是執行者了。

當然也有人會提出:“你太片面了,除了軟件開發者,還有一類人——提出需求的利益關系人,不也是人嗎?所以人不僅僅是執行者,更是主宰者!”遇到這個問題,我們首先要明確現在所論述的領域,是軟件開發,而不是軟件項目,兩者有聯系,但是也有區別。就軟件開發而言,一切都是從需求開始的,至于提出需求的人,只是被看作需求的來源,是需求分析師們交流的對象,而非開發的一部分。換句話說,如果給軟件開發劃一條邊界,需求提出人在邊界之外,只有軟件開發人員才在邊界之內,也只有他們才是軟件開發中的人!

作為執行者,人的作用是巨大的。所有的開發,沒有了人都是空談。人的素質如何、人的狀態如何,人與人的關系如何,都直接決定了軟件開發的成敗。這樣的例子比比皆是,就不一一道來了。這里就拿軍隊作為比喻。如果將軟件開發比做打仗,那么開發者們就是軍隊中的軍官和士兵,哪怕軍紀再嚴明、武器再先進,只要軍官差勁,士兵孱弱,那么這支軍隊就注定失敗了。反之,游擊隊也能打敗正規軍,小米加步槍也能打敗飛機大炮,人的作用可見一斑。

當然,人再重要,也只是“鐵三角”的一個頂點。在軟件開發中,過程同樣不能忽視,這是因為:

過程:軟件開發的體制

過程是軟件開發的體制。此言一出,必遭不滿。唯過程論者一定會跳出來痛批我的偏見。然而我仍不知悔改,自以為這種說法是最貼切的。

不滿大多是沖著“體制”這兩個字來的。在當今的中國大地上,“體制”這兩個字帶著濃厚的貶義色彩。政府部門腐敗叢生,答曰:“這是體制問題”;造導彈的不及賣茶葉蛋的,答曰:“這是體制問題”;中超造反,世界杯淘汰,依舊答曰:“這是體制問題”。不管大事小事,難事易事,出了問題只要推給體制就萬事大吉了。反正千錯萬錯都是體制的錯,因此你沒錯我也沒錯。體制不能改也改不了(真要改了誰做替罪羊???),所以錯誤的體制永遠存在,屬不可抗力,非人力所能及。

這里不討論中國的國情,只是借此理解“體制”兩字的分量。其實,說得通俗些,體制就是固化下來的行事規則與經驗。因為曾經取得過成功,并且也吸取了一定的教訓以規避失敗,因此在相同的情況下,體制會帶來更大的成功概率,并形成權威,使后來者減少扯皮,提高效率。

所以,體制不僅不是貶義詞,相反蘊涵了大大的褒義(只是被用濫了,變成了大反派。)?,F在看看軟件開發中的過程,與體制的含義正是完全吻合。因此,合適的過程,指導人們正確地完成各種開發活動,一步步邁向成功的彼岸;而不合適的過程,則把軟件開發推入無底深淵。

把過程看成軟件開發的體制,不僅僅是因為兩者在現象上是一致的,更重要的是在我們對待它的態度上也要有所借鑒?,F在有不少開發人員,在遇到開發中的問題時,往往就會把責任推到過程上,然后感嘆一句:“有CMM(一種軟件過程改進的評價標準,其對應的方法論是RUP)就好了?!苯又椖拷浝聿粎捚錈?,桌子一拍,大叫:“要有CMM!”于是,便有了CMM。如此折騰一年后,終于通過了CMM認證,依舊遇到開發問題,開發人員仍有的說:“要填這么多表格,太費時間了;我們不該使用RUP,改XP(一種強調迅速應變的軟件開發方法論,美其名曰極限編程)就好了?!比缓箜椖拷浝頃烆^轉向,閉目養神,道:“那就改XP吧?!庇谑?,便改了XP。誰知還是出問題。這時開發人員倒不抱怨了,因為項目已經宣告失敗,項目經理也被撤職了。這個不是笑話,而是筆者親眼所見的。

由此可見,過程不能被神話,更不能被亂用。世界上不存在放之四海而皆準的過程,而只有因地制宜、因人制宜地選擇合適的過程,并在執行過程中不斷地改進該過程,才有可能取得成功;相反,則只能失敗,不做他想。

體制二字,真實地體現了過程在軟件開發中的地位。然而,光有人與過程還是不夠的,最后一個關鍵的因素是:

技術:軟件開發的精髓

要說明技術在軟件開發中的作用,就得先說說為什么要有軟件開發。軟件開發,顧名思義,就是要開發軟件。那軟件是什么?可執行的程序?可帶來利潤的產品?都對,但都不夠全面。從根本上而言,軟件,是技術的載體,是被定制的技術,是技術針對某項特定需求的應用。

軟件中沉淀著技術,這是顯然的,否則別人為什么要買你的軟件呢?當然軟件中不僅僅沉淀著技術,還包括開發的人力成本、機械成本、時間成本等。但是技術是其中的精髓,也是此軟件不同于彼軟件的根本所在。

軟件的競爭力,不在于它的規模,不在于它花費的各種成本,而在于它的功能及非功能特性,而在于這些功能及非功能特性之中蘊涵的技術。比如說,Microsoft為什么能統治PC機的操作系統市場?不是人,不是管理,而是技術,將圖形用戶界面與操作系統和二為一的Windows技術。在Microsoft之前,并非沒有好的圖形用戶界面(Apple的Macintosh是這方面的先驅),也并非沒有好的操作系統(DEC、IBM等的Unix異常強大)。

但是,只有Microsoft將圖形用戶界面技術與操作系統技術結合了起來,應用到Windows中,形成了其特有的Windows技術,從而異軍突起,開創了Microsoft帝國。更有甚者,當Dos內核的Windows95/98無法完全滿足市場需求時,Microsoft不惜撤換整個開發組,改用Unix技術重新開發Windows(Microsoft稱其為NT,即新技術),于是WinNT、Win2000、WinXP等等在新千年中依舊輝煌??梢?,Windows的發展史就是技術在軟件過程中作用的最好詮釋。

當然,軟件開發中的技術不僅僅是指沉淀在軟件中的技術,還包括開發技術本身。如開發環境、管理方式、過程工具等等,都是開發技術的應用領域??梢哉f,軟件技術及開發技術,就是軟件開發的精髓所在。

一言以蔽之,人、過程和技術在軟件開發領域都是不可或缺的?!拌F三角”三字正是名副其實,三者缺一不可。那么到底哪個最重要呢?如果僅僅從軟件開發本身來考慮,恐怕難以給出合適的答案,因為厚此薄彼則必然誤入歧途。那么似乎本文可以到此為止了??勺謹等匀徊粔蛘O?。ê呛?,開個玩笑)所以繼續想——如果撇開軟件開發這一具體領域,就一般意義而言,哪個更重要呢?然后再回到軟件開發領域,就會發現:

再論人:根本原動力

人乃萬物之靈。此話同樣會引起諸多非議。但是,即使最激烈的批評家也不得不承認其中的合理部分:正是人的 情感 、認知和創造能力構建了我們所處的人類 社會 。撇開 情感 不談,人的認知與創造能力也是軟件開發的根本原動力。

在軟件開發中,隨處都是人的身影。軟件開發的執行者是人,這是顯然的了。那么軟件開發的過程呢?過程是靠人來實施、來管理的,這無須說,這充其量只是執行的一部分而已。

這里想說的是過程本身,它是如何來的呢?過程不是憑空產生的,當過程成為一種體制時,它也是靠人通過不斷的創造-使用-改進-再使用-再改進而來的。在過程改進的過程(套用現在的一句行話,這叫做meta-process,即元過程,過程的過程)中,需要的是人,是人在創造著新的過程,是人在推動著過程的改進,是人在使用過程的軟件開發中取得了成功!

這里要說明一句的是,此人非彼人。此處的“人”不是指“鐵三角”一端的人,那是作為一個項目的開發人員、作為軟件開發執行者的人。而是所有致力于軟件開發這一領域的所有人的總和。這個“人”并不處于一次軟件開發的邊界之內,而是在將軟件開發作為整個領域,包含軟件開發的過去、現在和未來,包含無數次軟件開發及無數次對于軟件開發的研究的前提下,處在這個領域中的一個概念,是 歷史 上曾經出現的、現在正在進行著的、以及日后將會置身其中的所有的開發人員和研究人員的總和。人的認知與創造能力,在這個“人”上體現得淋漓盡致。

正是這個人,在最初混亂的軟件開發實踐中發覺了軟件開發過程的重要性,從而逐步創造出各種軟件開發過程,并使用之,從而使軟件開發秩序化;

正是這個人,在使用軟件開發過程的實踐活動中發現了過程所存在的不足之處,于是吸取教訓改進之,從而使軟件開發過程更合理、更有效;

正是這個人,不局限于過去所創造的過程,懷著揚棄的態度不斷地投身于軟件開發中去,從而使不斷進化的軟件開發過程真正成為軟件開發“鐵三角”的一個頂點,為軟件開發、為人類服務。

而我們每一個軟件開發人員,每一個從事軟件開發的研究人員,都是這個人的一部分,都通過自身的活動體現了這個人的作用。所以,我們的整體是具體化的他,而他則是抽象化的我們。

當然,不僅是過程,在技術方面,人所起的作用是類似的。技術作為科學與生產之間的橋梁,其產生、改進、普及直至消亡都離不開人的推動。因此,人是軟件開發中當之無愧的根本原動力,軟件開發的“鐵三角”,包括作為軟件開發執行者的人,作為軟件開發體制的過程以及作為軟件開發精髓的技術,都是以人這個根本原動力為核心的。概括地說,就是“一個核心,三個頂點,一個都不能少”。

那么,當我們認識到人在軟件開發中的核心地位時,應該如何做呢?權以如下文字作為這個問題的答案,以及本文的結尾:

If A thru Z are scored 1 thru 26,

Your knowledge has a score of only 96 (11+14+15+23+12+5+4+7+5);

And your hardwork just scores 98 (8+1+18+4+23+15+18+11);

While your attitude is what determines everything of your life (1+20+20+9+20+21+4+5)。

關于在軟件開發過程中簡單的說和在軟件開發過程中,簡單的說的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

掃碼二維碼
91九色精品无码片一区二区三区