軟件工程(成本/效益分析)

一般說來,人們投資于一項事業的目的是為了在將來得到更大的好處。開發一個軟件系統也是一種投資,期望將來獲得更大的經濟效益,經濟效益通常表現為減少運行費用或增加收入。但是,投資開發新系統往往需要冒一定的風險。系統的開發成本可能比預計的高,效益可能比預期低。把錢存到銀行或貸給其他企業也有明顯的經濟效益(利息),而且風險很低。那么,在什么情況下投資開發新系統更劃算呢?

成本/效益分析的目的正是要從經濟角度分析開發一個特定的新系統是否劃算,從而幫助客戶組織的負責人正確低作出是否投資于這項開發工程的決定。

為了對比成本和效益,首先需要估計它們的數量

成本估計

軟件開發成本主要表現為人力消耗(乘以平均工資則得到開發費用)。成本估計不是精確的科學,因此應該使用幾種不同的估計技術以便相互校驗。

1,代碼行技術

代碼行技術是比較簡單的定量估算方法,它把開發每個軟件功能的成本和實現這個功能需要用的源代碼行數聯系起來。通常根據經驗和歷史數據估計實現一個功能需要的源程序行數。當有以往開發類似工程的歷史數據可供參考時,這個方法是非常有效的。

一旦估計出源代碼行數后,用每行代碼的平均成本乘以行數就可以確定軟件的成本。每行代碼的平均成本主要取決于軟件的復雜程度和工資水平

2,任務分解技術

這種方法首先把軟件開發工程分解為若干個相對獨立的任務。在分別估計每個單獨的開發任務的成本,最后累加起來得出軟件開發過程的總成本。估計每個任務的成本時,通常先估計完成該項目需要的人力,再乘以每人每月的平均工資而得出每個任務的成本。

最常用的辦法是按開發階段劃分任務。如果軟件系統很復雜,由若干個子系統組成,則可以把每個子系統再按開發階段進一步劃分成更小的任務。

典型環境下各個開發階段需要使用的人力的百分比大致如下表。當然,應該針對每個開發工程的具體特點,并且參照以往的經驗盡可能準確估計每個階段實際需要使用的人力(包括書寫文檔需要的人力)。

任務人力(%)
可行性研究5
需求分析10
設計25
編碼和單元測試20
綜合分析40
總計100

3,自動估計成本技術

采用自動估計成本技術可以減輕人的勞動,并且使得估計的結果更客觀。但是采用這種技術必須有長期搜集的大量歷史數據為基礎,并且需要有良好的數據庫系統支持。

成本/效益分析的方法

成本/效益分析的第一步是估計開發成本、運行費用和新系統將帶來的經濟效益。上面已經簡單介紹了估計開發成本的基本方法,運行費用取決于系統的操作費用<操作員人數,工作時間,消耗的物資等)和維護費用。系統的經濟效益等于因使用新系統而增加的收入加上使用新系統可以節省的運行費用。因為運行費用和經濟效益兩者在軟件的整個生命周期內都存在,總的效益和生命周期的長度有關,所以應該合理地估計軟件的壽命。雖然許多系統在開發時預期生命周期長達10年以上,但是時間越長,系統被廢棄的可能性也越大,為了保險起見,以后在進行成本/效益分析時一律假設生命周期為5年。

應該比較新系統的開發成本和經濟效益,以便從經濟角度判斷這個系統是否值得投資,但是,投資是現在進行的,效益是將來獲得的,不能簡單地比較成本和效益,應該考慮貨幣的時間價值。

1.貨幣的時間價值

通常用利率的形式表示貨幣的時間價值。假設年利率為i,如果現在存人P元,則n年后可以得到的錢數為:F=P(1+i)"

這也就是P元錢在n年后的價值。反之,如果n年后能收入F元錢,那么這些錢的現在價值是:P= F/(1 + i)"

例如,修改一個包有的庫存清單系統, 使它能在每天送給采購員一份訂貨報表。修改已有的庫存清單程序并且編寫產生報表的程序,估計共需5000元;系統修改后能及時訂貨,這將消除零件短缺問題,估計因此每年可以節省2500元,5年共可節省12500元。但是,不能簡單地把5000元和12 500元相比較,因為前者是現在投資的錢,后者是若干年以后節省的錢。

假定年利率為12%,利用上面計算貨幣現在價值的公式可以算出修改庫存清單系統后每年預計節省的錢的現在價值,如表所示。

將來值(元)(1+i)"現在值(元)累計的現在值(元)
125001.122232.142232.14
225001.251992.984225.12
325001.401779.456004.57
425001.571588.807593.37
525001.761418.579011.94

?

2.投資回收期

通常用投資回收期衡量一項開發 工程的價值。所謂投資回收期就是使累計的經濟效益等于最如投資所需要的時間。顯然投資回收期越短就能越快獲得利潤,因此這項工程也就越值得投資

例如,修改庫存清單系統兩年以后可以節省4225.12元,比最初的投資(5000元)還少774. 88元,第三年以后將再節省1779.45元。774. 88/1 779.45=0.4,因此,投資回收期是2.44年。

投資回收期僅僅是一項經濟指標 ,為了衡量- 項開發工程的價值,還應該考慮其他經濟指標。

3.純收入

衡量工程價值的另一項經濟 指標是工程的純收人,也就是在整個生命周期之內系統的累計經濟效益(折合成現在值)與投資之差。這相當于比較投資開發一個軟件 系統和把錢存在銀行中(或貸給其他企業)這兩種方案的優劣。如果純收人為零,則工程的預期效益和在銀行存款一樣,但是開發一個系統要冒風險,因此從經濟觀點看這項工程可能是不值得投資的。如果純收人小于零,那么這項工程顯然不值得投資。

例如,上述修改庫存清單系統,工程的純收人預計是

9011. 94-5 000=4011. 94(元)

4.投資回收率

把資金存人銀行或貸給其他企業能夠獲得利息,通常用年利率衡量利息多少。類似地也可以計算投資回收率,用它衡量投資效益的大小,并且可以把它和年利率相比較,在衡量工程的經濟效益時,它是最重要的參考數據。

已知現在的投資額,并a已經估計出將來每年可以獲得的經濟效益,那么,給定軟件的使用壽命之后,怎樣計算投資回收率呢?設想把數量等于投資額的資金存人銀行,每年年底從銀行取回的錢等于系統每年預期可以獲得的效益,在時間等于系統壽命時,正好把在銀行中的存款全部取光,那么,年利率等于多少呢?這個假想的年利率就等于投資回收率。根據上述條件不難列出下面的方程式:

P=F/(1+j)+F2/(1+j)*+.+F./(1+j)”

其中,P是現在的投資額;F:是第i年年底的效益(i=1,2.,n);n是系統的使用壽命;j是投資回收率。

解出這個高階代數方程即可求出投資回收率(假設系統壽命n=5)。

例如,上述修改庫存清單系統,工程的投資回收率是41%~42%。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534320.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux基礎(用戶身份和文件權限)

用戶身份與能力 Linux是一個多用戶、多任務的操作系統&#xff0c;具有很好的穩定性與安全性&#xff0c;在幕后保障Linux系統安全則是一系列復雜的配置工作。 Linux系統的管理員之所以是root&#xff0c;并不是因為它的名字叫root&#xff0c;而是因為該用戶的身份號碼即UID…

Centos 8 RHEL 8 破解root密碼

https://blog.csdn.net/u014042047/article/details/107309890/

TensorFlow實驗(1)

實驗1-2 搭建深度學習開發環境 1&#xff09;安裝Anaconda 2&#xff09;創建虛擬環境&#xff1a; 3&#xff09;激活環境 4&#xff09;安裝tensorflow 5)安裝jupyter notebook 安裝完成之后&#xff0c;運行第一個程序“Hello,World” 要求&#xff1a;詳細安裝步驟&…

TensorFlow實驗(2)

實驗3-4 數據結構-張量 1&#xff09;已知兩個張量[1,3,5,7]和[2,4,4,8],編寫一個模型&#xff0c;計算兩個張量的加法&#xff0c;輸出結果&#xff0c;并在tensorboard中顯示 2&#xff09;已知張量[1,2,3,4,5,6,7,8,9,10,11,12]有12個元素&#xff0c;利用tf.reshape()將其…

Linux基礎(文件權限續篇)

文件的特殊權限 在復雜多變的生產環境中&#xff0c;單純設置文件的rwx權限無法滿足我們對安全和靈活性的需求&#xff0c;因此便有了SUID,SGID,SBIT的特殊權限位。這是一種對文件權限進行設置的特殊功能&#xff0c;可以與一般權限同時使用&#xff0c;以彌補一般權限不能實現…

Linux基礎(存儲結構和磁盤劃分)

一切從“/”開始 在Linux系統中&#xff0c;目錄、字符設備、塊設備、套接字、打印機等都被抽象成了文件&#xff0c;一切皆為件 與windows操作系統不同&#xff0c;Linux系統內不存在C/D/E/F盤等&#xff0c;一切文件都是從根&#xff08;/&#xff09;目錄開始的 Linux系統…

軟件工程(需求分析)

需求分析 為了開發出真正滿足用戶需求的軟件產品&#xff0c;首先必須知道用戶的需求。對軟件需求的深人理解是軟件開發工作獲得成功的前提條件&#xff0c;不論人們把設計和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望.給開發者帶來煩惱。 需求分析是軟…

TensorFlow構建二維數據擬合模型(1)

知識圖譜 TensorFlow運行機制 TensorFlow是基于計算圖的深度學習編程模型 Tensor表示張量&#xff0c;其實質上是某種類型的多維數組 Flow表示基于數據流圖的計算&#xff0c;實質上是張量在不同節點間的轉化過程。 在TensorFlow中&#xff0c;計算圖中的節點稱為OP&…

Qt圖形界面編程入門(標簽與槽機制習題分享)

標簽對象初始顯示0&#xff0c;每次單擊標簽對象后&#xff0c;其顯示內容就加1&#xff0c;依次變為1、2、3等。 #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QPushButton> //包含命令按鈕類 #include "MyLabel.h"class Dialo…

js中執行到一個if就停止的代碼_Node 中如何引入一個模塊及其細節

在 node 環境中&#xff0c;有兩個內置的全局變量無需引入即可直接使用&#xff0c;并且無處不見&#xff0c;它們構成了 nodejs 的模塊體系: module 與 require。以下是一個簡單的示例const fs require(fs)const add (x, y) > x ymodule.exports add雖然它們在平常使用…

二級MS Office公共基礎知識錯題本(1)

1&#xff0c;順序程序具有順序性、封閉性和可再現性的特點&#xff0c;不具備并發性 2&#xff0c;為了降低算法的空間復雜度&#xff0c;主要應減少輸入數據所占的存儲空間以及額外空間&#xff0c;通常采用壓編存儲技術。 3&#xff0c;樹的總的結點數為樹中所有結點的度數…

c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任務資源

P.8: 勿泄漏任務資源原因隨著時間的推移&#xff0c;即使是資源的緩慢增長也會耗盡這些資源的可用性&#xff0c;這對于長時間運行的程序特別重要&#xff0c;但也是負責任的編程行為的基本部分。糟糕的例子void f(char* name){ FILE* input fopen(name, "r"); // .…

數據規范化、實體-聯系圖、狀態轉換圖、層次方框圖、Warnier圖、IPO圖及驗證軟件需求

數據規范化 軟件系統經常使用各種長期保存的信息&#xff0c;這些信息通常以一定方式組織并存儲在數據庫或文件中&#xff0c;為減少數據冗余&#xff0c;避免出現插入異常或刪除異常&#xff0c;簡化修改數據的過程,通常需要把數據結構規范化。 通常用“范式(normal forms)”…

python和c混合編程 gil,如何在python中使用C擴展來解決GIL

I want to run a cpu intensive program in Python across multiple cores and am trying to figure out how to write C extensions to do this. Are there any code samples or tutorials on this?解決方案You can already break a Python program into multiple processes.…

Linux基礎(iptables與firewalld防火墻)

iptables 在早期的Linux系統中&#xff0c;默認使用的是iptables防火墻管理服務來配置防火墻。盡管新型的fierwalld防火墻管理服務已經被投入使用多年&#xff0c;但是大量的企業在生產環境中依然出于各種原因而繼續使用iptables。 策略與規則鏈 防火墻會從上至下的順序來讀…

虛擬跳線軟件干什么用的_瘋狂刷單!用違法軟件生成虛擬手機號,“騎手”半年“刷單”牟利60余萬,百米內竟有萬筆訂單 | 申晨間...

來源&#xff1a;新聞晨報 記者&#xff1a;吳藝璇借助違法軟件生成虛擬手機號碼&#xff0c;利用平臺審核漏洞大量注冊用戶&#xff0c;大量“刷單”騙取平臺的返現和購物補貼&#xff0c;半年內瘋狂刷1.8萬余單&#xff0c;累計牟利60余萬元。近日&#xff0c;在市公安局刑偵…

軟件工程(總體設計①設計過程)

經過需求分析&#xff08;https://blog.csdn.net/weixin_45626468/article/details/115324885&#xff09;階段的工作&#xff0c;系統必選“做什么”已經清楚了&#xff0c;現在是決定“怎樣做”的時候了。 總體設計的基本目的就是回答“概況地說&#xff0c;系統應該如何實現…

ygo游戲王卡組_ACG大科普(7)游戲王

大家是否在小時候接觸過一種卡片類似這種的 這就是今天的主角游戲王。 背景 1996年&#xff0c;《游戲王》漫畫開始在集英社《周刊少年Jump》連載。 1998年&#xff0c;Bandai推出以《游戲王》原作中登場的集換卡牌游戲“M&W”為題材的集換卡牌。 采用Bandai的卡片自動販賣…

Qt圖形界面編程入門(基本窗口及控件)

基本窗口類QWidget QWidget是所有窗體部件的基類&#xff0c;例如對話框類&#xff0c;主窗體類&#xff0c;以及其他諸如按鈕&#xff0c;編輯框&#xff0c;標簽等等都是由QWidget派生得到&#xff0c;QWidget擁有的方法往往都可以在其他子類中使用。 窗體的幾何尺寸分為包…

背景se_盤點那些RPG手游中主角的背景故事,越悲情越強大

RPG游戲一直以代入感超強的游戲方式來吸引玩家&#xff0c;用超越現實的藝術手段把玩家帶入到虛擬的游戲世界&#xff0c;讓玩家擔任不同的社會角色來去經歷不同的虛擬故事&#xff0c;體驗多種人生經歷&#xff0c;想要扮演任何角色都是有可能的。當然在RPG游戲中也有好壞之分…