日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

中山大学软件所软件工程(中山大学软件研究所 李磊)

發(fā)布時(shí)間:2023/12/19 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 中山大学软件所软件工程(中山大学软件研究所 李磊) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

中山大學(xué)軟件所軟件工程
——中山大學(xué)軟件研究所 李磊 二○○六年十月

明顯,軟件市場是絕對(duì)存在的,并且是“方興未艾”,但是另一方面,多數(shù)軟件公司生存都是困難的。CMM(軟件成熟度模型)的提出并沒有使的這一局面得到根本的變化。如果說CMM提出軟件開發(fā)要透明化的問題,則我們研究的“復(fù)雜應(yīng)用軟件開發(fā)方法及其平臺(tái)”試圖回答如何透明化的問題。這一答案可(部分地)解決市場絕對(duì)存在和公司生存困難的悖論。

一、前言

人們常說“軟件誰都會(huì)做,但是誰都做不好”。
軟件公司的潮起潮落也說明了這一點(diǎn)。
成功的軟件公司通常都不太像軟件公司,例如,盛大,新浪等,而真正的軟件公司通常都是舉步艱難的公司,或者在歷史上留下悲壯的一頁。
為什么?
這些公司同樣都有過良好的市場機(jī)會(huì),但是也都同樣地缺少關(guān)鍵的條件:知道如何可以可*地把軟件做好。
學(xué)術(shù)界還不能說已經(jīng)找到了可以可*地“把軟件做好”的方法,因?yàn)樵诮裉鞂W(xué)術(shù)界還在討論著原始的問題:軟件是工程結(jié)果,還是藝術(shù)結(jié)果。
自從CMM(Capability Maturity Model,能力成熟度模型)被提出以后,人們認(rèn)為軟件工程的問題已基本解決,但事實(shí)并非如此。

CMM的核心思想是“軟件開發(fā)過程透明化”,但是它沒有搞清楚“軟件開發(fā)過程”和“過程透明化”是兩個(gè)事情。我們認(rèn)為只有存在可操作的“軟件開發(fā)過程”,才可能有“過程透明化”的事情成立。
CMM對(duì)于“過程透明化”的敘述是完全和深入的,但是對(duì)于可操作的“軟件開發(fā)過程”的敘述是平凡的。目前學(xué)術(shù)和企業(yè)界已經(jīng)認(rèn)識(shí)到這一點(diǎn),并且《計(jì)算機(jī)世界》,《軟件學(xué)報(bào)》和國際上的許多學(xué)術(shù)論文都有論述。
總之,可*地“把軟件做好”和使“軟件公司盈利”還都是一個(gè)開放的問題。

二、軟件公司盈利

軟件公司盈利一定要解決如下問題:

1、確定一個(gè)可盈利的市場――定位

2、可*地“把軟件做好”――信譽(yù)

3、較低的軟件開發(fā)維護(hù)成本――盈利

4、公司知識(shí)積累――根本

如果解決了上述4個(gè)問題,并不能保證成為一個(gè)成功的軟件公司,但是如果只要有一條不能滿足,則一定不會(huì)成為一個(gè)一個(gè)成功的軟件公司。

確定一個(gè)可盈利的市場――定位
應(yīng)當(dāng)由公司回答。

可*地“把軟件做好”――信譽(yù)
似乎每個(gè)公司都有答案,但是又似乎都沒有答案。

軟件開發(fā),維護(hù)成本――盈利
是老板想的事,連CMM中都沒有論述。

公司知識(shí)積累――根本
公司立足之本。

三、把軟件做好

就象手工能夠造出好的汽車但是形成不了汽車工業(yè)一樣,手工也能造出好的軟件但無法形成軟件產(chǎn)業(yè)。原因是手工也能造的軟件成本太高。軟件生產(chǎn)工業(yè)化是降低成本的必然之路。軟件生產(chǎn)工業(yè)化必須解決采用工業(yè)化方法。

● 把問題搞清楚

● 把事情做出來

為了“把問題搞清楚”,我們研究了主謂賓需求分析方法。
主謂賓需求分析方法是指把軟件的使用者當(dāng)作主語,所做的操作當(dāng)作謂語和產(chǎn)生的“負(fù)作用”當(dāng)作賓語的一種分析方法。其思想來源于機(jī)械制圖中的視圖方法,并且結(jié)果是:

1.給出了需求獲取及分析標(biāo)準(zhǔn)過程。

2.過程中的每一步基本是演繹產(chǎn)生的(避免構(gòu)造產(chǎn)生)。

3.每一個(gè)視角都是單純的,和不同階段的語言都是統(tǒng)一的。

4.每一步的結(jié)果都是可檢驗(yàn)的。

5.從自然語言到形式化描述是逐漸過度的。

等等。

同時(shí)方法不僅提供了工程化的需求獲取及描述的方法,并且具有可演繹性。這為驗(yàn)證結(jié)果一致和完全性奠定了基礎(chǔ),同時(shí)可演繹性為需求整理,例如:流程重組和表單優(yōu)化提供了便利。
具體的主謂賓將由專門的課程講解。
為了“把事情做出來”,我們研究了兩個(gè)平臺(tái):應(yīng)用軟件裝配平臺(tái)和全局流程集成平臺(tái)。

應(yīng)用軟件裝配平臺(tái)
應(yīng)用軟件開發(fā)的生產(chǎn)線組織方法是一種理想的方法,也是組織者希望的方法,但這是困難的。
中大軟件所研究的應(yīng)用程序裝配平臺(tái)可以部分地實(shí)現(xiàn)軟件開發(fā)的生產(chǎn)線組織,因?yàn)槠脚_(tái)可以使得:
1、每個(gè)程序員生產(chǎn)的只是一個(gè)標(biāo)準(zhǔn)部件。
2、標(biāo)準(zhǔn)部件組裝成的部件。
3、再把部件裝配成程序。
同時(shí),平臺(tái)根據(jù)說明性定義的:
1、流程自動(dòng)地調(diào)度用戶界面,從而實(shí)現(xiàn)動(dòng)態(tài)業(yè)務(wù)流程。
2、操作(或數(shù)據(jù))權(quán)限,自動(dòng)地組織菜單,從而實(shí)現(xiàn)動(dòng)態(tài)操作(或數(shù)據(jù))許可。
3、部件間信息交換規(guī)則,自動(dòng)地實(shí)現(xiàn)部件間的信息交換,從而實(shí)現(xiàn)了部件的可交換性。
從而實(shí)現(xiàn)了:
1、每個(gè)程度員編寫程序都是“單純的”。
2、程序員不必掌握應(yīng)用系統(tǒng)的業(yè)務(wù)知識(shí)。
3、每個(gè)程序員的工作都是可計(jì)量的。
平臺(tái)相當(dāng)于生產(chǎn)線上的工裝設(shè)備。只有合適的設(shè)備才能實(shí)現(xiàn)工業(yè)化生產(chǎn),否則軟件工程化就是一句空話,例如CMM。
應(yīng)用軟件裝配平臺(tái)適用于以操作為中心并且流程性不強(qiáng)的復(fù)雜應(yīng)用系統(tǒng),例如信息管理為中心的業(yè)務(wù)系統(tǒng)。
試驗(yàn)結(jié)果令人鼓舞。

全局流程集成平臺(tái)
在“計(jì)算機(jī)就是網(wǎng)絡(luò)”的今天,計(jì)算機(jī)應(yīng)用系統(tǒng)(如:信息,業(yè)務(wù)或者數(shù)據(jù)分析系統(tǒng))都已不再是獨(dú)立的系統(tǒng),否則就是所說的“信息孤島”。為了消除信息孤島通常采用的是數(shù)據(jù)耦合方法,或說設(shè)計(jì)成一個(gè)“大系統(tǒng)”。有研究指出,應(yīng)用軟件同應(yīng)用問題的復(fù)雜性不是線性增長的。明顯當(dāng)問題的復(fù)雜程度超過了人腦正常可控制的程度,這時(shí)計(jì)算機(jī)應(yīng)用系統(tǒng)的失敗是難以避免的。
全局流程集中平臺(tái)(GPID)通過把“大系統(tǒng)”分散并且承認(rèn)“信息孤島” 的合理性的方法,用松耦合的方法使得分散的系統(tǒng)或者“信息孤島”有效的整合,例如:
1、全局信息交換
2、全局流程調(diào)度
3、全局流程整合
4、全局流程同步
來解決這一問題。
在GPID中,全局信息的交換規(guī)則,全局流程的調(diào)度策略及交換信息的轉(zhuǎn)換方法和流程同步都是說明性定義的,因此是靈活的。
全局的流程集成平臺(tái)理解為通信中的交換機(jī)。難以想象如果沒有交換機(jī),通信系統(tǒng)將會(huì)是多少復(fù)雜和難以控制的。軟件間的關(guān)聯(lián)也是同理,因此GPID也被稱為“軟件交換機(jī)”。
全局流程集成平臺(tái)適用于以流程為中心并且流程性強(qiáng)的復(fù)雜應(yīng)用系統(tǒng),例如:帶有各種審批性質(zhì)的業(yè)務(wù)系統(tǒng)。
由于這兩個(gè)平臺(tái)沒有集成進(jìn)任何業(yè)務(wù)系統(tǒng)的知識(shí),因此它們可以被看作是開發(fā)平臺(tái)。當(dāng)開發(fā)平臺(tái)集成進(jìn)某業(yè)務(wù)系統(tǒng)的知識(shí)時(shí),就可構(gòu)造出高效的應(yīng)用開發(fā)平臺(tái)。

四、軟件開發(fā),維護(hù)成本

如果每一個(gè)軟件項(xiàng)目的開發(fā)過程都是一個(gè)重新研發(fā)的過程,則軟件的開發(fā)成本是不可能降低的。
如果應(yīng)用軟件沒有一個(gè)可維護(hù)的結(jié)構(gòu),則軟件的維護(hù)成本也是不可能降低的。
盡可能的減少對(duì)所有人的依賴。
說明性程序設(shè)計(jì)是減少軟件開發(fā)和維護(hù)成本的基本方法。
說明性程序設(shè)計(jì)并不是新的概念,其基本思想是“做什么”和“怎么做”相分離,例如:SQL , PROLOG等。

在工業(yè)化生產(chǎn)中,適當(dāng)?shù)姆止な墙档蜕a(chǎn)成本的主要方法,例如:可重復(fù)的簡單工作可由生產(chǎn)工人完成。對(duì)于軟件生產(chǎn)也是如此。說明性程序設(shè)計(jì)可以部分地達(dá)到這一目的。上述兩個(gè)平臺(tái)基本上達(dá)到“做什么”和“怎么做”相分離的目的。
“做什么”對(duì)應(yīng)于業(yè)務(wù)邏輯,通常是可以工業(yè)化的。
“怎么做”對(duì)應(yīng)計(jì)算機(jī)技術(shù),通常是難以工業(yè)化的。
如果“做什么”由軟件“藍(lán)領(lǐng)”完成,則明顯可以降低軟件的開發(fā)成本。
不僅如此,平臺(tái)還實(shí)現(xiàn)了業(yè)務(wù)維護(hù)和計(jì)算機(jī)技術(shù)維護(hù)相分離,明顯可以大大地降低維護(hù)成本。

五、公司知識(shí)積累

為什么工業(yè)制造利潤低,但是仍然可以盈利,其主要原因是公司積累,特別是知識(shí)積累。
軟件公司實(shí)現(xiàn)公司知識(shí)積累是困難的。
軟件公司盈利地模式同制造業(yè)有一點(diǎn)是相同的,那就是重復(fù)。
重復(fù)也可分為業(yè)務(wù)知識(shí)和計(jì)算機(jī)技術(shù)重復(fù)。
軟件所研究的主謂賓需求分析方法不但提出了有效的需求獲取,表達(dá)和分析方法,同時(shí)也定義了需求表達(dá)標(biāo)準(zhǔn),并且是“有效的”。明顯,只有有了“有效的”標(biāo)準(zhǔn),才能談的上公司業(yè)務(wù)知識(shí)積累。這才是公司最大的財(cái)富。
軟件所研究的應(yīng)用軟件裝配平臺(tái)和全局流程集成平臺(tái)不但提供了復(fù)雜應(yīng)用軟件開發(fā)基礎(chǔ),同時(shí)也“凝固”公司的計(jì)算機(jī)技術(shù)(不必每個(gè)人去談什么J2EE)知識(shí)。明顯,這些知識(shí)的重復(fù),可以大大地提高軟件企業(yè)地核心競爭力。

六、結(jié)束語

上述結(jié)果都已經(jīng)過試用,效果令人鼓舞。
學(xué)校本來就是應(yīng)當(dāng)同企業(yè)經(jīng)常交流的,國外就是如此。
此課程是專門對(duì)應(yīng)于軟件所的非正式特殊課程,專門講述的是軟件所的研究成果的。

總結(jié)

以上是生活随笔為你收集整理的中山大学软件所软件工程(中山大学软件研究所 李磊)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。