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