第一章
1、軟件的概念:軟件是一種邏輯實體,而不是具體的物理實體
軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。
其中:程序--按事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)--使程序能正常操操縱信息的數(shù)據(jù)結構;文檔--與程序開發(fā)、維護和使用有關的圖文材料。
2、軟件的特點:軟件的生產(chǎn)與硬件不同;軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。軟件對硬件和環(huán)境有著不同程度的依賴性。這導致了軟件移植的問題。軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。軟件是復雜的,而且以后會更加復雜。軟件工作牽涉到很多社會因素。軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。
3、軟件的分類:
1.基于軟件功能:系統(tǒng)軟件(OS,DBMS)、 支撐軟件(各種軟件開發(fā)包等)、 應用軟件(各種MIS系統(tǒng))。
2.基于軟件工作方式: 實時處理軟件、分時軟件、交互式軟件、批處理軟件。
3.基于軟件規(guī)模:微型軟件、小型軟件、中型軟件、大型軟件、甚大型軟件、超大型軟件。
4、系統(tǒng)開發(fā)的生命周期:系統(tǒng)開發(fā)生命周期(Software Development Life Cycle,SDLC)是指這樣的一個過程,包括:理解信息系統(tǒng)對業(yè)務需求的支持,設計系統(tǒng),構建系統(tǒng),以及把系統(tǒng)移交給用戶。計劃、分析、設計、實現(xiàn)。
各階段的任務及結束標志
計劃階段是理解為什么要創(chuàng)建信息系統(tǒng)和確定項目團隊將如何來開發(fā)它的基本過程。計劃階段由2個步驟組成:
1)在項目啟動期間,要確定系統(tǒng)給組織帶來的業(yè)務價值。主要通過技術可行性、經(jīng)濟可行性、組織可行性分析來完成。
2)項目批準后,進入項目管理。
分析:分析階段說明此系統(tǒng)由誰來用,用作什么,在哪里用,以及什么時候用這些問題。在此階段,項目團隊調(diào)查現(xiàn)有系統(tǒng),確定可改進的地方,以及開發(fā)新系統(tǒng)的方案。主要步驟如:
1)開發(fā)分析策略來指導項目團隊工作。
2)收集需求。
3)分析結果,系統(tǒng)方案和模型組合成系統(tǒng)建議書。
設計:設計階段確定系統(tǒng)將如何運行,涉及硬件、軟件和網(wǎng)絡基礎設施;將要使用的用戶界面,窗口、窗體和報表;所需的專用程序、數(shù)據(jù)庫和文檔。具體步驟如下:
1)創(chuàng)建設計策略。
2)開發(fā)系統(tǒng)的基本架構設計,描述要用到的軟、硬件和網(wǎng)絡設施。
3)開發(fā)數(shù)據(jù)庫和文檔規(guī)格。
4)開發(fā)程序設計規(guī)格,定義需要編寫的程序和每個程序確切要做的事情。
實現(xiàn)階段是SDLC的最后階段,是系統(tǒng)實際構建階段。主要步驟如下:
1)系統(tǒng)構建。
2)系統(tǒng)安裝。
3)建立系統(tǒng)的支持計劃。
5、系統(tǒng)開發(fā)方法:結構化和面向對象
結構化:(1)、瀑布式開發(fā)
每個階段都是在前一階段完成的基礎之上才進行。
優(yōu)點: 系統(tǒng)中編程之前就已確定; 項目進行期間變動不大。
缺點: 編程之前需要充分的設計; 需求的變動無法及時得到解決。
(2)、并行開發(fā):在概要設計完成之后分成多個子系統(tǒng),然后分別進行設計和實現(xiàn),最后再組合成一個系統(tǒng)。
優(yōu)點: 提高了項目開發(fā)的效率。
缺點: 子項目間可能會相互影響; 項目中加入了子項目的集成。
(3)、快速應用開發(fā)(Rapid Application Development,RAD)是指結構化方法的基礎上創(chuàng)建,用于解決結構化方法中的編程之前需要充分設計和在開發(fā)過程中需求變更無法得到及時響應的缺點,使用RAD,可以使系統(tǒng)的部分功能更快的開發(fā)并提交給用戶。
遵循RAD的方法主要有:過程為中心,數(shù)據(jù)為中心,面向對象。
(4)、敏捷開發(fā)(Agile Development)是一種新興的開發(fā)方法,它是以編程為中心,注重簡化過程,強調(diào)迭代式的開發(fā)。
遵循敏捷開發(fā)的方法主要有:極限編程(eXtremeProgramming,XP),Scrum和動態(tài)系統(tǒng)開發(fā)方法(Dynamic Systems Development Method,DSDM)。
開發(fā)方法的選擇主要考慮以下因素:
用戶需求的清晰度、技術的屬性程度、系統(tǒng)復雜度、系統(tǒng)可靠性、項目的時間進度要求、項目的進度可見性。
6、文檔項目文檔包括所有的可交付物,有關該項目的歷史記錄。常見的文檔:可行性研究報告;各種計劃、需求分析、系統(tǒng)各種設計、程序代碼,測試腳本,數(shù)據(jù)庫腳本等,各種分析報告。
1、軟件的概念:軟件是一種邏輯實體,而不是具體的物理實體
軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。
其中:程序--按事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)--使程序能正常操操縱信息的數(shù)據(jù)結構;文檔--與程序開發(fā)、維護和使用有關的圖文材料。
2、軟件的特點:軟件的生產(chǎn)與硬件不同;軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。軟件對硬件和環(huán)境有著不同程度的依賴性。這導致了軟件移植的問題。軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。軟件是復雜的,而且以后會更加復雜。軟件工作牽涉到很多社會因素。軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。
3、軟件的分類:
1.基于軟件功能:系統(tǒng)軟件(OS,DBMS)、 支撐軟件(各種軟件開發(fā)包等)、 應用軟件(各種MIS系統(tǒng))。
2.基于軟件工作方式: 實時處理軟件、分時軟件、交互式軟件、批處理軟件。
3.基于軟件規(guī)模:微型軟件、小型軟件、中型軟件、大型軟件、甚大型軟件、超大型軟件。
4、系統(tǒng)開發(fā)的生命周期:系統(tǒng)開發(fā)生命周期(Software Development Life Cycle,SDLC)是指這樣的一個過程,包括:理解信息系統(tǒng)對業(yè)務需求的支持,設計系統(tǒng),構建系統(tǒng),以及把系統(tǒng)移交給用戶。計劃、分析、設計、實現(xiàn)。
各階段的任務及結束標志
計劃階段是理解為什么要創(chuàng)建信息系統(tǒng)和確定項目團隊將如何來開發(fā)它的基本過程。計劃階段由2個步驟組成:
1)在項目啟動期間,要確定系統(tǒng)給組織帶來的業(yè)務價值。主要通過技術可行性、經(jīng)濟可行性、組織可行性分析來完成。
2)項目批準后,進入項目管理。
分析:分析階段說明此系統(tǒng)由誰來用,用作什么,在哪里用,以及什么時候用這些問題。在此階段,項目團隊調(diào)查現(xiàn)有系統(tǒng),確定可改進的地方,以及開發(fā)新系統(tǒng)的方案。主要步驟如:
1)開發(fā)分析策略來指導項目團隊工作。
2)收集需求。
3)分析結果,系統(tǒng)方案和模型組合成系統(tǒng)建議書。
設計:設計階段確定系統(tǒng)將如何運行,涉及硬件、軟件和網(wǎng)絡基礎設施;將要使用的用戶界面,窗口、窗體和報表;所需的專用程序、數(shù)據(jù)庫和文檔。具體步驟如下:
1)創(chuàng)建設計策略。
2)開發(fā)系統(tǒng)的基本架構設計,描述要用到的軟、硬件和網(wǎng)絡設施。
3)開發(fā)數(shù)據(jù)庫和文檔規(guī)格。
4)開發(fā)程序設計規(guī)格,定義需要編寫的程序和每個程序確切要做的事情。
實現(xiàn)階段是SDLC的最后階段,是系統(tǒng)實際構建階段。主要步驟如下:
1)系統(tǒng)構建。
2)系統(tǒng)安裝。
3)建立系統(tǒng)的支持計劃。
5、系統(tǒng)開發(fā)方法:結構化和面向對象
結構化:(1)、瀑布式開發(fā)
每個階段都是在前一階段完成的基礎之上才進行。
優(yōu)點: 系統(tǒng)中編程之前就已確定; 項目進行期間變動不大。
缺點: 編程之前需要充分的設計; 需求的變動無法及時得到解決。
(2)、并行開發(fā):在概要設計完成之后分成多個子系統(tǒng),然后分別進行設計和實現(xiàn),最后再組合成一個系統(tǒng)。
優(yōu)點: 提高了項目開發(fā)的效率。
缺點: 子項目間可能會相互影響; 項目中加入了子項目的集成。
(3)、快速應用開發(fā)(Rapid Application Development,RAD)是指結構化方法的基礎上創(chuàng)建,用于解決結構化方法中的編程之前需要充分設計和在開發(fā)過程中需求變更無法得到及時響應的缺點,使用RAD,可以使系統(tǒng)的部分功能更快的開發(fā)并提交給用戶。
遵循RAD的方法主要有:過程為中心,數(shù)據(jù)為中心,面向對象。
(4)、敏捷開發(fā)(Agile Development)是一種新興的開發(fā)方法,它是以編程為中心,注重簡化過程,強調(diào)迭代式的開發(fā)。
遵循敏捷開發(fā)的方法主要有:極限編程(eXtremeProgramming,XP),Scrum和動態(tài)系統(tǒng)開發(fā)方法(Dynamic Systems Development Method,DSDM)。
開發(fā)方法的選擇主要考慮以下因素:
用戶需求的清晰度、技術的屬性程度、系統(tǒng)復雜度、系統(tǒng)可靠性、項目的時間進度要求、項目的進度可見性。
6、文檔項目文檔包括所有的可交付物,有關該項目的歷史記錄。常見的文檔:可行性研究報告;各種計劃、需求分析、系統(tǒng)各種設計、程序代碼,測試腳本,數(shù)據(jù)庫腳本等,各種分析報告。