軟體工程 之 畫扇面

2022-01-11 21:35:32 字數 2690 閱讀 6767

軟體工程的歷史雖然說只有短短的四十多年時間

(1968

年提出),

但是軟體工程的主體

– 人類

– 已經出現在世界上好些年了。

人還是那些人,事兒還是那些事兒

,好的,壞的,可笑的模式同樣會出現。

我看到同學們在分析前面的學生的軟體專案的時候,

(link1

, link2

)我不禁想起乙個相聲

– 畫扇面。

我們不妨拿它和軟體工程做個比較

:畫扇面

做軟體工程團隊專案

相聲是一門說學逗唱的藝術… 甲

: 我剛買了一把紙扇乙:

哦,拿來看看,一把白紙扇

… 上面空空如也太可惜,拿不出手啊。

如果能畫上畫就更好了。

我這幾天也沒什麼事

, 我就給你免費畫畫!

軟體工程講究的是需求分析

, 專案管理

, 開發

, 測試和維護…甲

: 我覺得咱們團隊專案做乙個好用的小工具就好了

,我已經做好了乙個原型。乙:

這想法固然好

,但是我們這麼些個程式設計高手

, 就做這麼小的乙個工具

, 未免拿不出手。我們要把它搞大!甲:

太好了,您能畫什麼? 乙

: 畫個美女圖怎麼樣

? 美女出浴圖

, 或美女春遊圖都可以考慮。甲:

我激動ing…甲:

那我們做什麼呢?乙

: 我們擴充套件一下

, 把所有工具都實現了,一統天下。幾種工具結合起來!甲

: 我激動

ing…

過了幾天

, 甲問

: 我那美女畫好了麼?乙

: 喔,美女

, 畫好了!你看這美女的小臉蛋兒

, 眼睛稍稍大了點…但是

, 我不如給你改成張飛算了!都是人體

,我可以很快重構一下

, 我畫張飛最拿手了,過幾天就好。

過了幾周…甲

: 通過調研才發現

, 這麼多工具都有自己獨特的需求

, 不同需求互相衝突,不好協調, 怎麼辦? 乙

: 我們可以做成乙個通用的工具,統一需求

, 解決使用者從頭到尾的問題。

過了幾天... 

甲問:

我那張飛?

乙:張飛?!

喔對的,

張飛也畫得差不多了, 嗯

, 你看這張飛的鬍子,

這身軀…

是粗了點

… 要不咱們畫成山水,這張飛,這張飛...  馬上就可以變成一塊怪石!

甲:  大熱天的我等這扇子... 我容易嗎... 

過了幾周… 甲

: 通用的工具聽上去很好

,但是太通用了

, 不好掌握,我們到底要實現哪些具體功能呢?乙

: 我們可以做成乙個開放式的平台!這樣所有人都可以做乙個外掛程式

, 來實現這個平台的一些功能!而且別人還可以用我們這乙個通用的框架開發任意別的軟體。你想想 -任意軟體啊! 甲:

我激動,不過我們軟工課快要結束了, 要交作業啊

…過了幾天, 甲

: 我那山水? 乙

: 啊,山水

…我也畫好了。

你看那巨石,很巨大

, 很給力吧

… 構圖有點那啥

… 容我再改改。甲:

您什麼時候畫好

? 這夏天都快過了! 

乙: 嗯,  我的山水畫還是有些宋人風格的... 假以時日...     如果你急著要用扇子,  

這樣吧,我把扇面全塗黑了

,

你再找人往上寫金字好了!

過了幾周… 甲

: 專案發布時間到了

, 我們的平台還沒有,工具還沒連起來,怎麼辦?乙

: 咱們可以把專案開源到網上

, 另外也許有很多開源的朋友閒的沒事,

可以給我們的**寫一些注釋等等。這是我們對開源運動作的巨大貢獻, 輸出價值觀, 這可不是每個程式設計師都能做到的啊。

甲: 那期末怎麼交差啊?

乙: 趕緊寫 ppt! 

很多學生學了一些程式語言, 讀了一些技術部落格, 一般都豪情萬丈.  他們做乙個專案恨不得展現自己平生所學, 再加上前沿技術, 做乙個轟動性的創新。 這固然值得鼓勵, 但是經驗顯示, 這些往往都不能成功。

我們看看成功的例子, 他們是怎麼開始的, 例如linux 剛開始的時候: 

i'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) at clones...  (

source

)

我們還看到管理學大師 peter drucker 的忠告 –

those entrepreneurs who start out with the idea that they'll make it big – and in a hurry – can be guaranteed failure. (source

)

軟體工程之軟體工程管理

乙個好的工程需要配套的管理體系,軟體工程也不列外。軟體工程就我的理解就是對軟體工程的各個階段都一定規範,俗話說 不以規矩,不能成方圓 而這個規矩就由管理來充當。乙個軟體工程管理需要軟體專案計畫 成本估算 進度計畫 風險分析和人員的組織形式 或調動 一 在軟體專案計畫中,專案的任務是研究專案的效能 功...

軟體工程之軟體工程的概述

最近在學軟體工程,但工程分為好多種,那麼怎樣認識這些工程,什麼是軟體?什麼是工程?軟體工程和其他工程的區別又是什麼?軟體 程式設計的最終結果是軟體。軟體是使用者與硬體之間的介面介面。使用者主要是通過軟體與計算機進行交流。軟體是計算機系統設計的重要依據。為了方便使用者,為了使計算機系統具有較高的總體效...

軟體工程之怎麼理解軟體工程

軟體工程學習第二篇,什麼是軟體工程?隨著軟體規模越來越大,複雜度不斷增加,在軟體專案開發和維護的過程中逐漸暴露出來了一些問題,如 軟體產品質量低劣 維護工作量大 成本不斷上公升,進度不可控 程式人員無限度的增加 增加人員並沒有按時交付 軟體危機 這一概念被提了出來。而軟體工程是為了研究和克服軟體危機...