㈠ 如何開發軟體程序
對所要解決的問題進行總體定義,包括了解用戶的要求及現實環境,從技術、經濟和社會因素等3個方面研究並論證本軟體項目的可行性,編寫可行性研究報告,探討解決問題的方案,並對可供使用的資源(如計算機硬體、系統軟體、人力等)成本,可取得的效益和開發進度作出估計,制訂完成開發任務的實施計劃。
2分析
軟體需求分析就是對開發什麼樣的軟體的一個系統的分析與設想。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文檔並最終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模塊,定義子系統或模塊間的介面關系,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或數據結構設計說明書,組裝測試計劃。在任何軟體或系統開發的初始階段必須先完全掌握用戶需求,以期能將緊隨的系統開發過程中哪些功能應該落實、採取何種規格以及設定哪些限制優先加以定位。系統工程師最終將據此完成設計方案,在此基礎上對隨後的程序開發、系統功能和性能的描述及限製作出定義。
㈡ 軟體開發步驟包括哪些過程
軟體開發一般分為五個階段:
㈢ 如何開發軟體
60年代中期開始爆發了眾所周知的軟體危機。為了克服這一危機,在1968、1969年連續召開的兩次著名的NATO會議上提出了軟體工程這一術語,並在以後不斷發展、完善。與此同時,軟體研究人員也在不斷探索新的軟體開發方法。至今已形成八類軟體開發方法。
一、1972年 Parnas方法
二、1978年 SASA方法
三、1975年 面向數據結構的軟體開發方法(至今仍廣泛使用)
四、問題分析法
五、面向對象的軟體開發方法
六、可視化開發方法
一、Parnas方法
最早的軟體開發方法是由D.Parnas在1972年提出的。由於當時軟體在可維護性和可靠性方面存在著嚴重問題,因此Parnas提出的方法是針對這兩個問題的。首先,Parnas提出了信息隱蔽原則:在概要設計時列出將來可能發生變化的因素,並在模塊劃分時將這些因素放到個別模塊的內部。這樣,在將來由於這些因素變化而需修改軟體時,只需修改這些個別的模塊,其它模塊不受影響。信息隱蔽技術不僅提高了軟體的可維護性,而且也避免了錯誤的蔓延,改善了軟體的可靠性。現在信息隱蔽原則已成為軟體工程學中的一條重要原則。
Parnas提出的第二條原則是在軟體設計時應對可能發生的種種意外故障採取措施。軟體是很脆弱的,很可能因為一個微小的錯誤而引發嚴重的事故,所以必須加強防範。如在分配使用設備前,應該取設備狀態字,檢查設備是否正常。此外,模塊之間也要加強檢查,防止錯誤蔓延。
Parnas對軟體開發提出了深刻的見解。遺憾的是,他沒有給出明確的工作流程。所以這一方法不能獨立使用,只能作為其它方法的補充。
二、SASA方法
1978年,E.Yourdon和L.L.Constantine提出了結構化方法,即SASD方法,也可稱為面向功能的軟體開發方法或面向數據流的軟體開發方法。1979年TomDeMarco對此方法作了進一步的完善。
Yourdon方法是80年代使用最廣泛的軟體開發方法。它首先用結構化分析(SA)對軟體進行需求分析,然後用結構化設計(SD)方法進行總體設計,最後是結構化編程(SP)。這一方法不僅開發步驟明確,SA、SD、SP相輔相成,一氣呵成,而且給出了兩類典型的軟體結構(變換型和事務型),便於參照,使軟體開發的成功率大大提高,從而深受軟體開發人員的青睞。
三、面向數據結構的軟體開發方法
Jackson方法
1975年,M.A.Jackson提出了一類至今仍廣泛使用的軟體開發方法。這一方法從目標系統的輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節,就可得到完整的程序結構圖。這一方法對輸入、輸出數據結構明確的中小型系統特別有效,如商業應用中的文件表格處理。該方法也可與其它方法結合,用於模塊的詳細設計。
Jackson方法有時也稱為面向數據結構的軟體設計方法。
Warnier方法
1974年,J.D.Warnier提出的軟體開發方法與Jackson方法類似。
差別有三點:一是它們使用的圖形工具不同,分別使用Warnier圖和Jackson圖;另一個差別是使用的偽碼不同;最主要的差別是在構造程序框架時,Warnier方法僅考慮輸入數據結構,而Jackson方法不僅考慮輸入數據結構,而且還考慮輸出數據結構。
四、問題分析法
PAM問題分析法。PAM(ProblemAnalysisMethod)是80年代末由日立公司提出的一種軟體開發方法。
PAM方法希望能兼顧Yourdon方法、Jackson方法和自底向上的軟體開發方法的優點,而避免它們的缺陷。它的基本思想是:考慮到輸入、輸出數據結構,指導系統的分解,在系統分析指導下逐步綜合。這一方法的具體步驟是:從輸入、輸出數據結構導出基本處理框;分析這些處理框之間的先後關系;按先後關系逐步綜合處理框,直到畫出整個系統的PAD圖。從上述步驟中可以看出,這一方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分解,這個目的就是充分考慮系統的輸入、輸出數據結構。
PAM方法的另一個優點是使用PAD圖。這是一種二維樹形結構圖,是到目前為止最好的詳細設計表示方法之一,遠遠優於NS圖和PDL語言。
這一方法在日本較為流行,軟體開發的成功率也很高。由於在輸入、輸出數據結構與整個系統之間同樣存在著鴻溝,這一方法仍只適用於中小型問題。
五、面向對象的軟體開發方法
面向對象技術是軟體技術的一次革命,在軟體開發史上具有里程碑的意義。
隨著OOP(面向對象編程)向OOD(面向對象設計)和OOA(面向對象分析)的發展,最終形成面向對象的軟體開發方法OMT(LbjectModellingTechnique)。這是一種自底向上和自頂向下相結合的方法,而且它以對象建模為基礎,從而不僅考慮了輸入、輸出數據結構,實際上也包含了所有對象的數據結構。所以OMT徹底實現了PAM沒有完全實現的目標。不僅如此,OO技術在需求分析、可維護性和可靠性這三個軟體開發的關鍵環節和質量指標上有了實質性的突破,徹底地解決了在這些方面存在的嚴重問題,從而宣告了軟體危機末日的來臨。
自底向上的歸納
OMT的第一步是從問題的陳述入手,構造系統模型。從真實系統導出類的體系,即對象模型包括類的屬性,與子類、父類的繼承關系,以及類之間的關聯。類是具有相似屬性和行為的一組具體實例(客觀對象)的抽象,父類是若乾子類的歸納。因此這是一種自底向上的歸納過程。在自底向上的歸納過程中,為使子類能更合理地繼承父類的屬性和行為,可能需要自頂向下的修改,從而使整個類體系更加合理。由於這種類體系的構造是從具體到抽象,再從抽象到具體,符合人類的思維規律,因此能更快、更方便地完成任務。這與自頂向下的Yourdon方法構成鮮明的對照。在Yourdon方法中構造系統模型是最困難的一步,因為自頂向下的「頂」是一個空中樓閣,缺乏堅實的基礎,而且功能分解有相當大的任意性,因此需要開發人員有豐富的軟體開發經驗。而在OMT中這一工作可由一般開發人員較快地完成。在對象模型建立後,很容易在這一基礎上再導出動態模型和功能模型。這三個模型一起構成要求解的系統模型。
自頂向下的分解
系統模型建立後的工作就是分解。與Yourdon方法按功能分解不同,在OMT中通常按服務(Service)來分解。服務是具有共同目標的相關功能的集合,如I/O處理、圖形處理等。這一步的分解通常很明確,而這些子系統的進一步分解因有較具體的系統模型為依據,也相對容易。所以OMT也具有自頂向下方法的優點,即能有效地控制模塊的復雜性,同時避免了Yourdon方法中功能分解的困難和不確定性。
OMT的基礎是對象模型
每個對象類由數據結構(屬性)和操作(行為)組成,有關的所有數據結構(包括輸入、輸出數據結構)都成了軟體開發的依據。因此Jackson方法和PAM中輸入、輸出數據結構與整個系統之間的鴻溝在OMT中不再存在。OMT不僅具有Jackson方法和PAM的優點,而且可以應用於大型系統。更重要的是,在Jackson方法和PAM方法中,當它們的出發點輸入、輸出數據結構(即系統的邊界)發生變化時,整個軟體必須推倒重來。但在OMT中系統邊界的改變只是增加或減少一些對象而已,整個系統改動極小。
需求分析徹底
需求分析不徹底是軟體失敗的主要原因之一。即使在目前,這一危險依然存在。傳統的軟體開發方法不允許在開發過程中用戶的需求發生變化,從而導致種種問題。正是由於這一原因,人們提出了原型化方法,推出探索原型、實驗原型和進化原型,積極鼓勵用戶改進需求。在每次改進需求後又形成新的進化原型供用戶試用,直到用戶基本滿意,大大提高了軟體的成功率。但是它要求軟體開發人員能迅速生成這些原型,這就要求有自動生成代碼的工具的支持。
OMT徹底解決了這一問題。因為需求分析過程已與系統模型的形成過程一致,開發人員與用戶的討論是從用戶熟悉的具體實例(實體)開始的。開發人員必須搞清現實系統才能導出系統模型,這就使用戶與開發人員之間有了共同的語言,避免了傳統需求分析中可能產生的種種問題。
可維護性大大改善
在OMT之前的軟體開發方法都是基於功能分解的。盡管軟體工程學在可維護方面作出了極大的努力,使軟體的可維護性有較大的改進。但從本質上講,基於功能分解的軟體是不易維護的。因為功能一旦有變化都會使開發的軟體系統產生較大的變化,甚至推倒重來。更嚴重的是,在這種軟體系統中,修改是困難的。由於種種原因,即使是微小的修改也可能引入新的錯誤。所以傳統開發方法很可能會引起軟體成本增長失控、軟體質量得不到保證等一系列嚴重問題。正是OMT才使軟體的可維護性有了質的改善。
OMT的基礎是目標系統的對象模型,而不是功能的分解。功能是對象的使用,它依賴於應用的細節,並在開發過程中不斷變化。由於對象是客觀存在的,因此當需求變化時對象的性質要比對象的使用更為穩定,從而使建立在對象結構上的軟體系統也更為穩定。
更重要的是OMT徹底解決了軟體的可維護性。在OO語言中,子類不僅可以繼承父類的屬性和行為,而且也可以重載父類的某個行為(虛函數)。利用這一特點,我們可以方便地進行功能修改:引入某類的一個子類,對要修改的一些行為(即虛函數或虛方法)進行重載,也就是對它們重新定義。由於不再在原來的程序模塊中引入修改,所以徹底解決了軟體的可修改性,從而也徹底解決了軟體的可維護性。OO技術還提高了軟體的可靠性和健壯性。
六、可視化開發方法
可視化開發是90年代軟體界最大的兩個熱點之一。隨著圖形用戶界面的興起,用戶界面在軟體系統中所佔的比例也越來越大,有的甚至高達60~70%。產生這一問題的原因是圖形
界面元素的生成很不方便。為此Windows提供了應用程序設計介面API(Application Programming Interface),它包含了600多個函數,極大地方便了圖形用戶界面的開發。但是在這批函數中,大量的函數參數和使用數量更多的有關常量,使基於Windows API的開發變得相當困難。為此Borland C++推出了Object Windows編程。它將API的各部分用對象類進行封裝,提供了大量預定義的類,並為這些定義了許多成員函數。利用子類對父類的繼承性,以及實例對類的函數的引用,應用程序的開發可以省卻大量類的定義,省卻大量成員函數的定義或只需作少量修改以定義子類。
Object Windows還提供了許多標準的預設處理,大大減少了應用程序開發的工作量。但要掌握它們,對非專業人員來說仍是一個沉重的負擔。為此人們利用Windows API或Borland C++的Object Windows開發了一批可視開發工具。
可視化開發就是在可視開發工具提供的圖形用戶界面上,通過操作界面元素,諸如菜單、按鈕、對話框、編輯框、單選框、復選框、列表框和滾動條等,由可視開發工具自動生成應用軟體。
這類應用軟體的工作方式是事件驅動。對每一事件,由系統產生相應的消息,再傳遞給相應的消息響應函數。這些消息響應函數是由可視開發工具在生成軟體時自動裝入的
㈣ 軟體開發的一般流程是什麼_
軟體開發流程分為: 需求確認——概要設計——詳細設計——編碼——單元測試——集成測試——系統測試——維護
軟體開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟體一般是用某種程序設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟體的一部分。
軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法、軟體的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。
軟體開發方面的工作。具體可分為以下方面:
1可視化編程掌握程序設計方法及可視化技術,精通一種可視化平台及其軟體開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。 就業方向:企業、政府、社區、各類學校等可視化編程程序員。
2 WEB應用程序設計 具有美工基礎和網頁動畫設計能力,掌握互動式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網路開發工程師認證。 就業方向:企業、政府、社區、各類學校等WEB應用程序員。
3軟體測試掌握軟體測試的基本原理、方法和組織管理,精通軟體測試工具。獲取ATA軟體測試工程師或Delphi初級程序員或Java初級程序員認證。 就業方向:企業、政府、社區、各類學校等軟體測試員。
4 資料庫管理 能應用關系範式進行資料庫設計,精通SQL語言,勝任資料庫伺服器管理與應用工作。獲取Oracle資料庫管理或SQL Server資料庫應用或Windows XP應用認證。 就業方向:企業、政府、社區、各類學校等部門的中、大型資料庫管理員。
5 圖形圖像製作 精通國際上流行的圖形/圖像製作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。 就業方向:廣告製作公司、建築設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。
㈤ 怎麼樣開發一個軟體
一般而言開發一款軟體,大致需要這三個大模塊:需求分析、代碼編寫、軟體測試。
首先,分析用戶需求,進行客戶調研。
這個過程是開發一款軟體的關鍵性步驟,需要准確把握用戶的需求。若需求不夠明確。那麼後期的工作都將白費。因此在這階段,需要多與用戶溝通,認真分析用戶的需求,將各個功能合理劃分,最終才能開發出一款符合用戶需求的軟體。
開發一款軟體,在開發過程中大致劃分為以上這些步驟。每個階段都是在上一個階段的基礎上完成的,這些步驟是不可逆的。第一階段的需求分析是開發軟體的重中之重,相當於地基,所以相對耗時較長。
㈥ 怎樣編寫軟體程序
堅持最重要了,還要有目標,今天我想要坐什麼樣的東西。要實現什麼樣的功能。確定下來在去實現他,這樣進步才快,還有基礎要打牢。變成語法語句要記牢,活用。
㈦ 怎樣開發軟體
想要開發軟體你就一定要懂開發語言啊,比如說java,c++等的一些軟體開發語言,這些技術知識你必須掌握,這樣你才可以自己開發東西啊,至於大家都喜歡的你就要做市場調查了,其實只要大部分人喜歡就可以了,不會是人人都會認同你的~呵呵,這個社會不會有絕對的事!
㈧ 如何自己編程序做軟體
萬事開頭難,首先,要有扎實的基礎知識,推薦先學 c語言,搞清楚基本概念,比如 變數,函數,類,數據類型等等,再下點功夫研究下數據結構,前者是所有編程語言的構成基石,後者是演算法,就是如何用編程語言去解決實際問題。不要相信什麼速成教程,不要被當下眾多流行的編程語言搞得不知如何下手,安下心花功夫把基礎打牢。
第二,推薦學習下java語言,建議看看 《java編程思想》這本書,這是本著名的java編程教學書籍,網上有 pdf下載。
第三,熟悉一下關系型資料庫,當前三大主流關系型資料庫 包括 mysql, oracle,sqlserver,你可以挑一個專門學習下,主要學習關系型數據中的 基本概念,比如 表,視圖,存儲過程,函數,以及 關系型資料庫 語言,在網上搜相關書籍學習下就可以了,mysql 安裝較為簡單,而且使用廣泛,免費,跨平台,推薦安裝,以它為藍本學習。
第四,學習下 html ,js,css ,這些是做網頁的基礎,這些你可以 上 菜鳥教程 等網站學習,當然,這些網站教的比較淺,要想深入研究,最好還是找相關書籍好好學一下。
有了這些知識,你可以嘗試做個小系統,比如論壇,圖書管理系統什麼的。 前端頁面 用 html 設計,css美化,js 做數據載入,java 做後台,接收發送數據從(到)前端頁面, 操作資料庫 ,mysql作為資料庫用來存放數據。
然後,你可以研究一些專業性的框架做一些真正的可用的軟體開發了,前端比如,angularjs,vue ,react,後端 如 java spring ,hibernate , 這時候,你要做的就是上官網,看幫助文檔了。
計算機發展的速度是非常快的,新技術層出不窮,但不管怎樣,基礎的東西是不會變的,所以,花時間把基礎打牢,然後多做項目實踐,這樣才能成功。