當前位置:編程學習大全網 - 編程語言 - 軟件的特征

軟件的特征

軟件的特點:

1 是壹種邏輯產品,與物質產品有很大的區別。

2 軟件產品的生產主要是研制,生產成本主要在開發和研制,開發研制完成後,通過復制就產生了大量軟件產品。

3 軟件產品不會用壞,不存在磨損,消耗。

4 生產主要是腦力勞動,還末完全擺脫手工開發方式,大部分產品是"定做"的。

5 開發軟件的費用不斷增加,致使生產成本相當昂貴

按軟件的功能劃分-

系統軟件:能與計算機硬件緊密配合在壹起,使計算機系統各個部件、相關的軟件和數據協調、高效率地工作的軟件。如操作系統、數據庫管理系統、設備驅動程序以及通信處理程序等。系統軟件是計算機系統中必不可少的壹個組成部分。

應用軟件:是在特定的領域內開發,為特定目的服務的壹類軟件。如,CAD-CAM 計算機輔助制造-CAI 計算機輔助教學, 專家系統,模式識別,剎車系統

支撐軟件:是協助用戶開發軟件的工具性軟件,其中包括幫助程序人員開發軟件產品的工具,也包括幫助管理人員控制開發的進程的工具。

按規模劃分:

1、微型--只有壹個人,甚至是半時,在幾天之內完成的軟件。寫出的程序不到500行語句。

2、小型--壹個人半年之內完成的2千行以內的程序。例如,數值計算問題或是數據處理問題就是這種規模的課題。這種程序通常沒有與其他程序的接口。

如,有求伯君開發最初的 WPS,單獨完成BASIC 的比爾.蓋茨。

3、中型--5人以內在壹年多時間裏完成的5千到5萬行的程序。這種課題開始出現了軟件人員之間,軟件人員與用戶之間的聯系、協調和配合關系的問題。

4、大型--5人至10人在兩年多的時間裏完成5萬行到10萬行的程序。例如編譯程序、小型分時系統、應用軟件包、實時控制系統等很可能都是這種軟件。

5、甚大型-100人至1000人參加

6、極大型--2000-5000人參加,如,微軟的windows 2000項目就包含了近3000名工程師,他們被分成幾百個小的團隊。

按開發分---軟件產品和軟件項目

軟件產品---指的是不局限於特定領域的、可以被廣大用戶直接使用的軟件系統。如微軟的 Windows,Office等。這類系統的特點是技術含量高,開發時要考到各種不同的用戶需求;

軟件項目--也稱定制軟件,是受某個特定客戶(或少數客戶)的委托,由壹個或多個軟件開發機構在合同的約如我們常說的管理信息系統(MIS)和電子商務系統。這類軟件的特點是領域知識所占的比重較大,相對技術而言工程性更強。例如,軍用防空指揮系統、衛星控制系統等均為這類軟件。

針對這兩種不同類型的軟件,應該有不同的軟件開發方法去指導項目開發過程。

軟件項目的開發,目前比較成熟的軟件開發方法有軟件成熟度模型(CMM)。 這種軟件開發模型試圖將整個軟件開發過程規範化和量化,直到可以對軟件開發過程進行定量的控制和優化。

軟件產品的開發,像微軟公司積累了許多成功的經驗。

軟件生產的發展:

1 程序設計時代:這個階段生產方式是個體勞動,生產工具是機器語言,匯編語言。(1946-1956年)

2 程序系統時代:這個階段生產方式是小集團合作生產,生產工具是高級語言,開發方法仍依靠個人技巧,但開始提出結構化方法。(1956-1968年)

3 軟件工程時代:這個階段生產方式是工程化的生產,使用數據庫,開發工具,開發環境,網絡,分布式面向對象技術來開發軟件。(1968年至今)

軟件危機: 軟件開發技術的進步未能滿足發展的要求。在軟件開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,導致了軟件危機。

軟件危機的表現:

1 經費預算經常突破,完成時間壹再拖延。

2 開發的軟件不能滿足用戶要求。

3 開發的軟件可維護性差。

4 開發的軟件可靠性差。

軟件危機產生原因:

1 軟件規模越來越大,結構越來越復雜。

2 軟件開發管理困難而復雜。

3 軟件開發費用不斷增加。

4 軟件開發技術落後。

5 生產方式落後,仍采用手工方式。

6 開發工具落後,生產率提高緩慢。

軟件工程:用科學的知識和技術原理來定義,開發,維護軟件的壹門學科。

用工程科學的觀點進行費用估算,制定進度,制定計劃和方案。

用管理科學的方法和原理進行生產的管理。

用數學的方法建立軟件開發中的各種模型和算法。

那麽為達到軟件優質高產這個目標,從技術到管理做了大量的努力,從而逐漸已形成了"軟件工程學"這壹新學科。

它包含以下主要內容:

1、軟件開發方法:軟件工程的方法提供了建造軟件在技術上需要"如何做"。 方法涵蓋了壹系列的任務:需求分析、設計、編程、測試和維護。

是在60年代後期才逐步形成了壹種軟件開發方法,在不同的軟件開發階段對應有不同的方法,例如在軟件的設計階段有"結構化分析與設計"方法,在軟件測試階段有"黑盒"與"白盒"測試技術,等等。

象目前又有壹種更新的技術"面向對象的程序設計方法"。在這壹方法中,數據和數據的操作是被封閉在壹個個稱為"對象(Object) "的統壹體中,對象之間則是通過"消息"(message")進行相互聯系的。

從而使由軟件所描述的系統與客觀世界的系統在結構上十分相似,不僅提高了軟件的可修改性與可維護性,同時也提高了軟件的可重用性,那麽這些都是工程多年來所追求的目標。從結構程序設計到面向對象程序設計,是程序設計方法的又壹次飛躍。

2、軟件工具:所謂工具,在這裏泛指是開發壹切幫助開發軟件的軟件。為了提高軟件設計的質量和生產效率,現已經發展了許多的幫助開發和維護軟件的軟件 。例如,我們要用某種語言來開發壹個應用軟件,這就要涉及到 "編輯程序、編譯程序、連接程序等,另外在軟件測試階段還要用到 "測試數據產生器、排錯程序、跟蹤程序、靜態分析工具和覆蓋監視工具等。也就是說在不同的時期要用到不同的軟件開發工具。目前,軟件工具發展迅速,許多用於軟件分析和設計的工具正在建立,其目標 就是要實現軟件生產自動化。

3、軟件工程環境:軟件方法和工具是軟件開發的兩大支柱,她們之間密切相關。軟件方法提出了明確的工作步驟和標準的文檔格式,這是設計軟件工具的基礎,而軟件工具的實現又將促進軟件方法的推廣和發展。

"環境"壹詞,對不同用戶有著不同的含義。對最終用戶(end user)而言,環境就是他們運行程序所使用的計算機系統。這類用戶對環境的要求,主要是運行可靠,操作方便,容易學習和使用。而對於軟件開發人員來說,則就不同了,可以說環境就是他們進行軟件開發活動動的舞臺。(例如,Algo-60,或者 資料管理系統(DbaseII DbaseIII),例如界面只能采用菜單來完成各種功能)

象現在生產數據庫管理的軟件的環境有:大型數據庫軟件 Sybase ,還有能幫助進行程序設計的 PB 軟件)

4、軟件工程管理學:大家知道,對於壹個企業來說,如果只有先進的設備和技術,而沒有完善的管理,是不可能獲得應有的經濟效益的(例如海爾的海爾文化就是企業管理的象征),(例如微軟企業文化宗旨的壹句話)

軟件生產也是壹樣的,如果管理不善,是不可能高質量、按時完成任務的。

"軟件工程管理就是對軟件工程生存期內的各階段的活動進行管理。軟件工程管理的目的是為了能按預期的時間和費用,成功地完成軟件的開發和維護任務。

軟件工程管理學的內容包括軟件費用管理、人員組織、工程計劃管理、軟件配置管理等各項方面的內容。

顯然,軟件工程管理也可借助計算機來實現。供經理人員估算成本、指定進度、生成報告等管理工具都已經在許多公司使用了。壹個理想的軟件工程環境,應該同時具備 支持開發和支持管理兩個方面的工具。

以上簡介了軟件工程學的主要組成成分--軟件工程方法學、軟件工程環境以及軟件工程管理的基本內容臺和作用。它們即包括計算機科學家的研究成果,也概括了廣大軟件工作者的時間經驗。還必須指出,軟件開發技術可區分為形式化方法與非形式化方法兩大分支。前者以形式化的程序變化和嚴整為主要內容,目的在於達到程序設計的自動化,多用於計算機應用人員。本課程主要討論的是工程化的軟件開發技術。

軟件工程目標:付出較低開發成本;達到要求的功能;取得較好的性能;開發的軟件易於移植;只需較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟件可靠性高。

軟件工程內容:研究內容包括開發技術和開發管理兩個方面。

開發技術主要研究 :軟件開發方法,開發過程,開發工具和環境。采集者退散

開發管理主要研究 :軟件管理學,軟件經濟學,軟件心理學。

軟件工程需要解決的問題:軟件的費用,可靠性,可維護性,軟件生產率和軟件的重用。

  • 上一篇:斯托裏·馬斯格雷夫的生平
  • 下一篇:公司海報設計公司怎麽樣-海報設計哪家好
  • copyright 2024編程學習大全網