一、軟件生命周期
? ? ? ? 軟件生命周期分為5個:獲取過程、供應(yīng)過程、開發(fā)過程、運(yùn)行過程、維護(hù)過程,具體如下:
二、軟件開發(fā)方法
2.1 形式化方法
? ? ? ? 該方法的思想是利用形式化語言,嚴(yán)格定義需求,并用數(shù)據(jù)推演的方法證明需求的性質(zhì)。形式化規(guī)格包含了嚴(yán)格的語法定義以及一系列數(shù)據(jù)推演規(guī)則。
? ? ? ? 2.1.1凈室軟件工程
? ? ? ? 凈室軟件工程是形式化方法的一種實現(xiàn),它用盒結(jié)構(gòu)規(guī)約進(jìn)行分析和建模,并將正確性驗證作為發(fā)現(xiàn)和排錯的主要機(jī),使用統(tǒng)計測試來驗證軟件可靠性。
2.2 逆向工程
? ? ? ? 維護(hù)次數(shù)增加會導(dǎo)致軟件結(jié)構(gòu)混亂,可維護(hù)性降低,束縛軟件發(fā)展。因此需要對就軟件進(jìn)行再工程,提高其可維護(hù)性。
? ? ? ? 2.2.1 再工程
? ? ? ? 再工程是對現(xiàn)有系統(tǒng)重新開發(fā)的過程,包括逆向工程(反工程)、新需求考慮(軟件重構(gòu))、正向工程三個步驟。
? ? ? ? 2.2.2 逆向工程
? ? ? ? 逆向工程是分析程序,力求比源代碼更高的抽象層次上建立程序表示的過程。
????????逆向工程應(yīng)該能夠抽象出 過程設(shè)計模型(實現(xiàn)級)、程序和數(shù)據(jù)結(jié)構(gòu)信息(結(jié)構(gòu)級)、對象模型、數(shù)據(jù)和控制流模型(功能級)、UML狀態(tài)和部署圖(領(lǐng)域級)。領(lǐng)域級層次最高,實現(xiàn)級層次最低。層次越高,離代碼越遠(yuǎn),難度越大。
? ? ? ? 2.2.3 軟件重構(gòu)
? ? ? ? 軟件重構(gòu)是對源代碼和數(shù)據(jù)進(jìn)行修改,使其易于修改和維護(hù),以適應(yīng)將來的變更。通常重構(gòu)不修改軟件體系結(jié)構(gòu),而是關(guān)注模塊細(xì)節(jié)。
三、軟件開發(fā)模型
? ? ? ? 軟件開發(fā)模型有:瀑布模型、增量模型、螺旋模型、噴泉模型、V模型、構(gòu)建組裝模型、敏捷方法和統(tǒng)一過程等。
3.1 開發(fā)模型概述
? ? ? ? 3.1.1 瀑布模型
? ? ? ? 瀑布模型也稱為生命周期法,它僅適用于需求明確或變更非常少的項目。分6個階段,自上而下執(zhí)行,如下所示:
? ? ? ? 3.1.2 演化模型(原型模型)
? ? ? ? 演化模型根據(jù)客戶需求快速畫出原型,再基于原型進(jìn)行開發(fā)上線。再針對客戶的需求或建議對原型修改,再進(jìn)而開發(fā),重復(fù)這一過程,最終獲得信息版本。適合需求不明確的項目。
? ? ? ? 3.1.3 快速原型模型
? ? ? ??快速原型模型是出了第一版原型,開發(fā)出版本后就拋棄原型,直接對產(chǎn)品迭代開發(fā)。
? ? ? ? 3.1.4 增量模型
????????增量模型融合了瀑布模型的基本成分(重復(fù)的應(yīng)用)和原型實現(xiàn)迭代的特征。第一個發(fā)布的應(yīng)用往往是核心應(yīng)用,其它功能的應(yīng)用后續(xù)迭代發(fā)布。
? ? ? ? 3.1.5 螺旋模型
? ? ? ? 瀑布模型將瀑布與演化模型結(jié)合,軟件開發(fā)為一系列的增量迭代發(fā)布,每次迭代都包含制定計劃、風(fēng)險分析、實施工程和客戶評估4個方面,與其它模型(比如增量模型)相比,它強(qiáng)調(diào)了風(fēng)險分析。
????????3.1.6?V模型????
? ? ? ? v模型是在快速開發(fā)模型演變而來,注重質(zhì)量,每個開發(fā)階段都有對應(yīng)的測試。具體如下所示:
? ? ? ? 3.1.7 噴泉模型? ? ? ??
? ? ? ? 主要支持面向?qū)ο蟮拈_發(fā)方法,有無間歇迭代的特點。無間隙是指分析、設(shè)計、編碼之間不存在明顯的邊界。
? ? ? ? 3.1.8 智能模型
? ? ? ? 基于支持的軟件開發(fā)模型,它綜合了若干模型,并把專家系統(tǒng)(規(guī)則知識庫)結(jié)合在一起。
? ? ? ? 3.1.9 迭代模型
? ? ? ? 每次迭代包含一次完整的流程,且每次迭代會產(chǎn)生一個可以發(fā)布的產(chǎn)品,該產(chǎn)品是最終產(chǎn)品的子集。
? ? ? ? 3.1.10 變換模型
? ? ? ? 基于形式化說明語言和程序變換的軟件開發(fā)模型。不斷明確原型和形式化的規(guī)格說明,直到生成計算機(jī)可以接受的目標(biāo)代碼。
? ? ? ? 3.1.11 構(gòu)件組裝模型
? ? ? ? 基于構(gòu)件軟件開發(fā)(CBSD)利用模塊化方法,將系統(tǒng)模塊化,在一定構(gòu)件模型的支持下,副總構(gòu)件庫中的一個或多個構(gòu)件,高效高質(zhì)量的構(gòu)造應(yīng)用。它的本質(zhì)是演化型的,開發(fā)過程是迭代的。核心就是制造可復(fù)用構(gòu)件提升開發(fā)效率。比如構(gòu)造公共組件或API等。
3.2 快速應(yīng)用開發(fā)
? ? ? ? 快速應(yīng)用開發(fā)(RAD)比傳統(tǒng)的生命周期發(fā)快的多,它是瀑布模型的一個高速變種,通過基于構(gòu)件的開發(fā)方法獲得快速開發(fā)。該方法核心就是創(chuàng)建可復(fù)用構(gòu)件(公共組件,比如使用或改造開源的組件,開發(fā)公共API包等),進(jìn)而加快進(jìn)度。
3.3 統(tǒng)一過程
? ? ? ? 統(tǒng)一過程(UP)是一個通過通用框架,可以用于種類廣泛的軟件系統(tǒng)、不同的應(yīng)用領(lǐng)域、不同的組織類型、不同的性能水平和不同的項目規(guī)模。比如UML建模,建立的邏輯模型生成物理模型后可以生成不同數(shù)據(jù)庫的SQL,適配不同的項目數(shù)據(jù)源。其優(yōu)點是兼容性強(qiáng)。
? ? ? ? RUP是用例驅(qū)動,以架構(gòu)為中心,迭代增量式開發(fā)過程(方法論)。每次迭代分為4個步驟:初始、細(xì)化、構(gòu)建、交付。具體細(xì)節(jié)如下:
????????可以看出統(tǒng)一過程比較費時費力,對于小組織和項目來說,統(tǒng)一過程費力不討好。
3.4 敏捷方法
? ? ? ? 敏捷方法強(qiáng)調(diào)程序員團(tuán)隊和業(yè)務(wù)之間的緊密協(xié)作、面對面溝通、頻繁交付新版本、緊湊而自我組織型團(tuán)隊等。可以理解盡可能為面對面溝通,快速了解需求開發(fā)交付。
? ? ? ? 敏捷開發(fā)的方法有:極限編程(XP)、自適應(yīng)軟件開發(fā)、水晶方法、特性驅(qū)動開發(fā)等。
? ? ? ? 開發(fā)者關(guān)注點:短平快會議、小版本發(fā)布、較少的文檔、合作為重、客戶直接參與、自動化測試、結(jié)對編程、適應(yīng)性計劃調(diào)整。
? ? ? ? 管理者關(guān)注點:測試驅(qū)動開發(fā)、持續(xù)集成、重構(gòu)。
? ? ? ? 敏捷方法主要適用于小規(guī)模軟件或小團(tuán)隊開發(fā),不適合所有項目,因為其設(shè)計時間少,匆匆上線容易引起架構(gòu)等問題,加之文檔少,規(guī)模大了都理不清或記不起關(guān)鍵需求或代碼實現(xiàn),交接也困難。
四、系統(tǒng)規(guī)劃與問題定義
? ? ? ? 系統(tǒng)規(guī)劃步驟有:1、對現(xiàn)有系統(tǒng)進(jìn)行初步調(diào)查;2、分析和確定系統(tǒng)目標(biāo);3、分析子系統(tǒng)的組成和基本功能;4、擬定系統(tǒng)的實施方案;5、進(jìn)行系統(tǒng)的可行性研究;6、制定系統(tǒng)建設(shè)方案。
4.1 項目的提出與選擇
? ? ? ? 4.1.1 項目的立項目標(biāo)和動機(jī)
? ? ? ? 企業(yè)對于信息系統(tǒng)的建設(shè)有多種動機(jī),可歸結(jié)為4種模式:基礎(chǔ)性研究、進(jìn)行應(yīng)用研發(fā)(比如研發(fā)辦公軟件售賣)、提供技術(shù)服務(wù)(比如提供定制開發(fā)或集成或咨詢)和產(chǎn)品使用者(比如對現(xiàn)有產(chǎn)品改造)。
? ? ? ? 4.1.2 項目立項價值判斷
? ? ? ? 企業(yè)最終需要達(dá)成的目標(biāo)才是價值的體現(xiàn),比如:獲取利潤、占有市場份額、提高影響力、社會效益等。需要思考目標(biāo)并確定開發(fā)邊界等。
? ? ? ? 4.1.3 項目的選擇和確定
? ? ? ? 需要多方面考慮,比如:選擇有核心價值的項目、評估選擇的項目、對項目優(yōu)先級排序、評估項目的實施方式、平衡選擇合適的方案。
4.2 初步調(diào)查
? ? ? ? 初步調(diào)查的對象有:(1)企業(yè)高管,了解他們的目標(biāo)以及系統(tǒng)邊界、資金、工期等;(2)IT部門負(fù)責(zé)人,了解現(xiàn)有系統(tǒng)、取得的效果和存在的問題;(3)業(yè)務(wù)部門領(lǐng)導(dǎo),征求他們對新信息系統(tǒng)的意見以及功能要求。
? ? ? ? 初步調(diào)查的內(nèi)容:(1)用戶提出新系統(tǒng)建設(shè)的緣由,對新系統(tǒng)的需求和目標(biāo);(2)企業(yè)的基本狀況,包括企業(yè)性質(zhì)、規(guī)模、人員等;(3)管理方式和基礎(chǔ)數(shù)據(jù)管理狀況;(4)現(xiàn)有系統(tǒng)狀況。
4.3?可行性分析
? ? ? ?一般要從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三方面考慮。其中操作可行性指法律和操作使用可行性,法律指涉及的合同、侵權(quán)等問題,操作使用指行政管理、人員素質(zhì)等是否滿足要求。
? ? ? ? 最終需要出可行性研究報告,它分析了項目的要求、目標(biāo)和環(huán)境,提出了幾種可選方案(評價矩陣),并從技術(shù)、經(jīng)濟(jì)、法律等方面進(jìn)行了分析。
4.4?成本效益分析
????????成本是信息系統(tǒng)周期內(nèi)各階段所有投入之和。而受益是信息系統(tǒng)建成后所有產(chǎn)出之和。? ? ? ?
????????4.4.1 成本
? ? ? ? 按投資時間分類,可分為:基礎(chǔ)性建設(shè)投資、其他一次性投資、非一次性投資。
? ? ? ? 按成本性態(tài)分類,可分為:固定成本、變動成本、混合成本。
? ? ? ? 4.4.2 收益
? ? ? ? 收益可分為有形收益和無形收益。
????????有形收益:也稱為經(jīng)濟(jì)收益,可以分為一次性經(jīng)濟(jì)收益和非一次性經(jīng)濟(jì)收益。一次性經(jīng)濟(jì)收益主要體現(xiàn)在應(yīng)用系統(tǒng)使用價值提升而引起的收益,也可以是其他方面的收入,比如多余設(shè)備出售回收等。非一次性經(jīng)濟(jì)收益則是信息系統(tǒng)生命周期內(nèi),運(yùn)行系統(tǒng)按月按年能用貨幣數(shù)目表示的收益,比如信息系統(tǒng)使用提升了工作效率,節(jié)約了人員工資等。
? ? ? ? 無形收益:比如服務(wù)質(zhì)量的提高,會使企業(yè)形象改善等,進(jìn)而搶占市場份額等。
? ? ? ?4.4.3 盈虧臨界分析?
? ? ? ? 利潤=(銷售單價-單位變動成本)×銷售量-總固定成本? ? ?
????????盈虧臨界點銷售量=總固定成本/(銷售單價-單位變動成本)
? ? ? ? 盈虧臨界點銷售額=總固定成本/(1-總變動成本/銷售收入)
? ? ? ? 以上公式比較復(fù)雜,較難理解,可以看下面這個說明:
? ? ? ? 銷售額=固定成本+可變成本+利潤,其中利潤為0時,銷售額為盈虧臨界銷售額,即:盈虧臨界銷售額=固定成本+可變成本??勺兂杀緯S著銷售額(量)的變化而變化,它們的比值一般是固定的。
????????這里舉例計算,數(shù)據(jù)如下,求盈虧臨界點時的銷售額:
????????這里求臨界銷售額,即利潤為0時的銷售收入。這里可以看出當(dāng)銷售額為800時,固定成本130+150=280,利潤120,則可變成本400。這里得到比例:可變成本/銷售額=400/800=0.5,即可變成本占銷售額的一半!
? ? ? ? 根據(jù)公式 臨界銷售額=固定成本+可變成本,而這里可變成本為銷售額的一半,即 銷售額=280+0.5×銷售額,得出銷售額=560。
? ? ? ?4.4.3 凈現(xiàn)值分析
? ? ? ? 單利:每年都按本金計算利息,已取得的利息不再計算利息。F=P×(1+i×n),其中P為本金,i為利率,n為年限,F(xiàn)為P在n年后的價值。
? ? ? ? 復(fù)利:以本金與累計利息紙盒為基數(shù)計算利息:F=P×(1+i)^n。F為本金P在n年后的價值。
? ? ? ? 現(xiàn)值:未來的錢在現(xiàn)在的價值,比如利率10%,一年后的110就相當(dāng)于現(xiàn)在的100!??
? ? ? ? 凈值:
????????由于有利率的存在,會導(dǎo)致我們手里的錢會貶值或升值!具體計算如下題,求折現(xiàn)后的成本和收入。
?這里從靜態(tài)看沒啥問題,2年投入500,5年后收入1000。動態(tài)計算折現(xiàn)就有問題了,我們都以年初和年末按照F=P×(1+i)^n,利率=10% 來折現(xiàn)來看看成本和收入。
? ? ? ? 甲方案第一年投入350,第二年需要投入150,實際若150存銀行1年的話,出來的是不止150,同理,第二年投入150,那么準(zhǔn)備資金是不需要150的,根據(jù)F=P×(1+i)^n,其中i=0.1,n=1,F(xiàn)=150,得出P=150/1.1=136.4,成本為:350+136.4=486.4。即只要第一年準(zhǔn)備486.4即可,先付350,剩余136.4存銀行吃利息,第二年增值成為150后付第二年的款。
? ? ? ? 同理,得乙方案成本為:300+200/1.1=481.8,丙方案成本為:400+100/1.1=490.9。
? ? ? ? 利潤也是一樣,需要把每年的利息算進(jìn)去,甲方案利潤為:150×1.1^3+200×1.1^2+250×1.1+400=1116.65。同理得乙方案利潤:1105.1,丙方案利潤為:1143.7。
????????最后純利潤為:甲方案是630.25,乙方案是623.3,丙方案是652.8。顯然,丙方案盈利是最高的。文章來源:http://www.zghlxwxcb.cn/news/detail-466735.html
? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-466735.html
到了這里,關(guān)于系統(tǒng)分析師:七、軟件工程(含系統(tǒng)規(guī)劃)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!