1.概說
軟體類型,一般可以分為系統軟體與應用軟體。
資訊學習地圖

依操作對象分
依使用模式分
自由軟體,根據自由軟體基金會的定義,是一種可以不受限制地自由使用、複製、研究、修改和分發的軟體。這方面的不受限制正是自由軟體最重要的本質,與自由軟體相對的是非自由軟體(proprietary software),也常被稱為私有軟體、封閉軟體(其定義與是否收取費用無關)。要將軟體以自由軟體的形式發表,通常是讓軟體以「自由軟體授權協議」的方式被分配發佈(或是放置在公共領域),以及公開的軟體原始碼。 自由軟體對全世界的商業發展有巨大的貢獻。 從裝飾性的綢帶的製造者到從事研究的科學家,自由軟體使成千上萬的人的日常工作更加便利, 為了滿足用戶的各種應用需要,它以一種不可思議的速度發展。
自由軟體的主要許可證有GPL許可證和BSD許可證兩種。均透過GNU Project 模式運作。
GNU計劃,又稱「革奴計劃」,是由Richard Stallman在1983年9月27日公開發起的。它的目標是創建一套完全自由的作業系統。Richard Stallman最早是在 net.unix-wizards新聞群組上公佈該消息,並附帶一份《GNU宣言》等解釋為何發起該計劃的文章,其中一個理由就是要「重現當年軟體界合作互助的團結精神」。
GNU GPL通用公共許可證(GNU General Public License)(英文通常以GNU GPL或是直接簡短的以GPL表示),是一個廣泛被使用的自由軟體許可證,最初由理察·斯托曼為GNU計劃而撰寫。此許可證最新版本為「版本3」,2007年6月29日發佈。GNU寬通用公共許可證(GNU Lesser General Public License,一般簡稱LGPL)是改自GPL的另一個版本,其目的是為了應用於一些軟體函式庫。
| 軟體特性比較 | 公共軟體 | 自由軟體 | 免費軟體 | 共享軟體 | 套裝(私有)軟體 |
| 版權 | 無 | GNU/GPL | 有 | 有 | 有 |
| 取得費用 | 無 | 無 | 無 | 試用期滿要註冊 | 付費 |
| 複製 | 可 | 可 | 不可 | 不可 | 不可 |
| 散播 | 可 | 可 | 不可 | 不可 | 不可 |
| 修改 | 可 | 可 | 不可 | 不可 | 不可 |
原始碼 |
不一定 | 有 | 無 | 無 | 無 |
| 範例 | 很少 | Linux |
FreeCAD |
WinRAR | Microsoft Office |
公共軟體若並未釋出原始碼,並不是自由軟體,可能只是免費軟體。(詳見:註解)
相關參考網站:自由軟體基金會(Free Software Foundation),而這是在該網站內一份討論相關軟體分類的文章。
軟體危機Software Crisis
軟體工程內容
| 模組化程式設計Modular | 將複雜系統劃分為具有某種特殊功能的模組,每一模組應儘可能與其他模組無相依關係。使整個系統的後續作業趨於簡單 |
由上而下的程式設計 Top-Down Design |
將整個系統作整體性的考量,下分為細部功能的考量。此一方法通常見於,企業決策單位先決定系統的功能與目標,而將此一決策意旨,逐層傳達與次級單位。此級單位再擬定與該決策相配合的功能,適用於長期策略的制定 |
結構化程式設計 Structure Programming |
意指擅於利用結構化設計的三部:循序結構,選擇結構,重複結構等程式區塊結構,並且少用goto指令破壞結構化設計精神。藉此增加程式的可讀性,保持系統一進一出的基本架構 |
| 良好文件說明Documentation | 好的系統發展過程,必須把系統程式的文件建立好完備的檔案,包含:系統說明,程式說明,程式註解,系統操作,以及使用擴充說明書等資料 |
| 全程複查Walk-Through | 以資深系統設計師與程式設計師對所有程式碼,以及系統運作功能,完整參與設計與解析程式,藉以達到良好的程式設計品質管理 |
程式團隊小組 Programmer Team |
以小組構成系統設計團體,由資深、主設計、助理設計,測試,教育,服務工程師等構成的team,藉以對系統提供完整的後勤支援 |
系統開發方式
系統發展週期
可以分為以下各階段:
在正式介紹程式語言前,我們必須先了解軟體程式設計的意義,以及不同的程式設計方法。包含:結構化程式設計與物件導向程式設計,還有近年來程式設計的主流-視覺化程式設計
一般來說,程式設計的五個步驟: