0 4 開發簡介

2022-03-04 08:43:27 字數 3020 閱讀 7155

原文出自

在我們編寫並執行第乙個程式之前,我們應該更多的了解關於程式開發的一些內容.下面簡單的給出了具體步驟:

定義要解決的問題

設定解決方案

編寫程式實現解決方案

編譯程式

連線物件檔案

測試和除錯專案

1. 定義要解決的問題

這一步驟是要確定你將要解決什麼問題。將你想要編寫的程式的各種初始想法整合到一起,是一件即簡單又複雜的事。從概念上來講,它是相當簡單的。你所需要做的就是將你的想法很好的定義,為下一步做準備。

2. 確定將如何解決問題

這一步驟的關鍵在於「如何」,如何解決在第一步中整合到一起的問題。這也是在軟體開發過程中最容易被忽略的一步。這個問題的難點在於從解決乙個問題的很多方式中判斷出哪些是好的,哪些是壞的。很多時候,乙個程式設計師會得到乙個想法,然後馬上開始坐下編寫該解決方案的**。這經常回到時產生的解決方案落到乙個壞的範疇。

一般來講,良好的解決方案具有以下特徵:

* 它們通常是直截了當的

* 它們具有良好的編寫規範

* 它們容易被擴充套件(新增沒有在預設範圍內的新的特徵)

* 它們是模組化的

問題主要集中在第三項——它們容易被擴充套件和第四項——它們是模組化的。沒有使用大量的計畫,也有可能生產出直截了當的和具有良好編寫規範的程式,但是擴充套件和模組化的需求在軟體設計中沒有充分的計畫,將會是一項艱鉅的挑戰。

考慮到擴充套件性,當你坐下來開始編寫**的時候,你常常會有這麼個想法「我想要這樣做」,但是你從來不會考慮到明天你也許會有另乙個想法,想要那樣做。研究表明,整個專案中只有20%的時間使用在編寫程式上的。其它的80%的時間用來除錯程式,糾正錯誤,往程式中新增新的特徵。因此,在你編寫**前應該花費更多一點的時間考慮解決問題的最好的方案,以及為以後的工作做怎樣的計畫,這樣能夠顯著的減少你專案途中大量的時間和麻煩。

模組化能夠使得**具有更好的可理解性和可重複利用性。沒有良好模組化的**很難進行除錯和維護,在後期的擴充套件中也具有很大的困難。關於模組化,我們在將來會談論更多。

3. 編寫程式實現解決方案

為了編寫程式,我們需要兩樣東西:首先,我們需要一種程式語言的知識,那時我們編寫這個教程的目的。其次,我們需要乙個編輯器。使用任何乙個你想要的文字編輯器去編寫程式都是可以的,如windows下的notepad和linux下的gedit。但是,我們強烈的建議你使用乙個為了**編輯而設計的編輯器。

1) 行號。當編譯器提供錯誤時,行號是十分有用的。標準的編譯器錯誤會顯示"error, line 64」。沒有顯示行號的編輯器,需找第64行是非常困難的。

2) 語法突出和著色。語法突出和著色改變了你的程式不同部分的顏色,能夠使得你的程式的結構變得更加清晰。

3) 一種清晰的字型。非程式設計類字型往往很難清晰的區別數字0和字母o,或者是數字1,字母l和字母i。良好的程式設計類字型能夠很好的區別這些符號,確保意外的無用。

你的c++程式應該被命名為name.cpp,name指的是你的程式檔案的名稱。注意有些人使用副檔名.cc來取代.cpp,但是我們建議你使用.cpp。

另外需要注意的是,很多複雜的c++專案都有很多.cpp檔案。儘管你將會建立的大多數專案僅僅擁有乙個.cpp檔案,它也可能寫成有很多.cpp檔案的單個專案。

4. 編譯程式

為了編譯乙個專案,我們需要乙個編譯器。編譯器的工作可以分為兩部分:

1) 檢查你的專案,確保它符合c++語言的語法規則。

2) 將你寫的**作為輸入,輸出機器語言的物件檔案。物件檔案標準命名為name.o或name.obj。如果你的專案中有5個.cpp檔案,那麼編譯後將獲得5個物件檔案。

舉例說明,大多數linux和mac os x作業系統具有g++的c++編譯器。使用下面的命令來編譯乙個檔案:

"g++" –c file1.cpp file2.cpp file3.cpp *

將會產生file1.o, file2.o, file3.o三個檔案。-c的意思是「只編譯」,告訴g++只產生.o檔案。

其他的編譯器在linux,windows等作業系統中也適用。我們將在下一節討論安裝編譯器。makefile是乙個高階話題,要討論它們可以寫一整本的書。我們在此不討論它。

5. 鏈結物件檔案

鏈結器將專案的所有物件檔案整合到一起形成單個的可執行檔案。

除了專案的物件檔案,鏈結器還包含了執行時庫的檔案。c++語言本身是非常小和簡單的。但是,它結合了被你的專案利用的可選組建的庫,以及這些元件在執行庫的支援下才能執行。舉個例子來說,如果你想要在螢幕上輸出一些東西,你的程式包含了特殊的命令,用來告訴編譯器,你想要使用i/o庫。

當鏈結器成功鏈結了所有的物件檔案,你將會得到乙個可執行檔案。

g++ –o prog file1.o file2.o file3.o

-o告訴g++我們想要將file1.o,file2.o,file3.o三個檔案執行產生名字為——prog的可執行檔案。

g++ –o prog file1.cpp file2.cpp file3.cpp

這將直接產生名字為——prog的可執行檔案。

6. 測試和除錯專案

這是乙個有趣的,充滿希望的部分!你可以執行你的程式,檢視是否生成與你預期一樣的結果。如果沒有,那麼就需要進行除錯,我們很快會更詳細地討論除錯。

注意步驟3,4,5,6都包含在軟體中。你可以使用獨立的程式實現各個部分,當然也可以使用整合開發環境,它把各個功能就整合到了一起。使用標準的整合環境,你將擁有具有行號和語法高亮的**編輯器。即使你的專案中包含多個原始檔,ide也能夠自動編譯鏈結你的程式生成可執行檔案。當你需要除錯你的程式的時候,你可以使用內建的偵錯程式。而且,ide包括了很多的很有幫助的編輯特徵,比如綜合性幫助,名字自動完成,類繼承瀏覽,和一些版本控制。

在下一節,我們將會討論安裝和使用ides。

敏捷開發簡介

敏捷軟體開發宣言 n 個體和互動 勝過 過程和工具 n 可以工作的軟體 勝過 面面俱到的文件 n 客戶合作 勝過 合同談判 n 響應變化 勝過 遵循計畫 雖然右項也有價值,但是我們認為左項具有更大的價值。敏捷宣言遵循的原則 n 我們最優先要做的是通過盡早的 持續的交付有價值的軟體來使客戶滿意。n 即...

開發spring簡介

1 spring 依賴庫 spring framework 2.0.6 spring framework 2.0.6 dist spring.jar spring framework 2.0.6 with dependencies spring framework 2.0.6 lib jakarta...

Windows Mobile開發簡介

windows mobile開發簡介 簡單介紹windows mobile上的應用軟體開發過程 os windows mobile windows mobile上的應用軟體開發主要用visual c vb,visual c ide用visual studio 2005以上版本。helloworld ...