软件工程之他见——鲍周晓
MSRA的高級(jí)軟件工程已經(jīng)開始兩周了,聽著鄒欣老師介紹一通,什么心理學(xué)管理學(xué)全都囊括在內(nèi);再自己這本書那本書的翻看一通,忽然發(fā)現(xiàn)原來(lái)軟件工程和我想象中的不完全是那么一回事。于是立馬Google一番,發(fā)現(xiàn)維基百科中的定義是:軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科,它涉及到程序設(shè)計(jì)語(yǔ)言,數(shù)據(jù)庫(kù),軟件開發(fā)工具,系統(tǒng)平臺(tái),標(biāo)準(zhǔn),設(shè)計(jì)模式等方面。這才恍然大悟,原來(lái)軟件工程不僅僅是說(shuō)怎么用編程語(yǔ)言寫出一個(gè)軟件,除了程序員之外,系統(tǒng)分析員、軟件設(shè)計(jì)師、系統(tǒng)架構(gòu)師、測(cè)試員都是不可或缺的重要部分。
很可惜的是,我是學(xué)EE的,在科大沒有學(xué)過(guò)軟件工程,沒有接觸過(guò)什么真正意義上的系統(tǒng)級(jí)別的軟件設(shè)計(jì)(這里順便建議一下6系可以開開這種工程實(shí)踐意義較強(qiáng)的課程~~連數(shù)學(xué)系都開Software Engineering~⊙﹏⊙b汗)。Cube里面就有一個(gè)數(shù)學(xué)系的女生很哈皮地說(shuō)她學(xué)過(guò)軟件工程,于是便有了這篇“之他見”,更確切的,“之她見”。
首先,是分組和選題。大家六人一組,然后討論出一個(gè)比較感興趣比較想做的項(xiàng)目開始計(jì)劃,他們選擇的是做出一個(gè)網(wǎng)上的科大畢業(yè)生通訊錄系統(tǒng),可以通過(guò)輸入自己的用戶名和密碼來(lái)登錄進(jìn)系統(tǒng)內(nèi),然后可以進(jìn)行一系列的相關(guān)操作。
確定要做的項(xiàng)目之后,接下來(lái)就是學(xué)習(xí)一些關(guān)于軟件工程的基本方法,將所學(xué)的方法和步驟應(yīng)用到選擇的題目上去,包括市場(chǎng)調(diào)查、需求分析和可行性報(bào)告。通過(guò)調(diào)查現(xiàn)有的各種不同的SNS社區(qū)的情況、他們實(shí)現(xiàn)的功能什么的來(lái)對(duì)接下來(lái)自己要做的有一個(gè)大概的了解和概念;同時(shí)向身邊的朋友同學(xué)以及其他社交圈內(nèi)的人調(diào)研是否有必要設(shè)計(jì)出這樣一個(gè)網(wǎng)上信息查詢系統(tǒng);最后再大致分析一下這個(gè)項(xiàng)目整體的可行性,以及一個(gè)關(guān)于這個(gè)項(xiàng)目要的計(jì)劃。當(dāng)然,這里只是一個(gè)初步的設(shè)計(jì),對(duì)今后的方向有一個(gè)大概的了解就行。具體的設(shè)計(jì)什么的是下一步——概要設(shè)計(jì)的內(nèi)容。
前面的基礎(chǔ),項(xiàng)目的 可行性條件都具備了之后,就要開始設(shè)計(jì)整個(gè)工程了。這里面涉及到的就是和全局、局部有關(guān)的概念:要首先將軟件或者項(xiàng)目預(yù)期完成的功能決定好,然后進(jìn)行概要設(shè)計(jì)。根據(jù)整個(gè)project的內(nèi)容,把它劃分為多個(gè)模塊,再具體去考慮各個(gè)模塊各自的功能。針對(duì)他們的project,一共分成了三個(gè)主要模塊:登錄、注冊(cè)、信息查找。登錄就是用戶輸入自己的用戶名和密碼去和已有的用戶數(shù)據(jù)庫(kù)中的各條匹配,如果匹配成功,則進(jìn)入用戶的個(gè)人主頁(yè),若匹配失敗,則重新登錄;注冊(cè)則是原來(lái)不存在于數(shù)據(jù)庫(kù)中的用戶新建個(gè)信息項(xiàng),然后轉(zhuǎn)到新建的個(gè)人主頁(yè),同時(shí)將該用戶的信息添加到數(shù)據(jù)庫(kù);信息查找則是用戶輸入想要查找對(duì)象的一些信息,系統(tǒng)根據(jù)這些信息區(qū)數(shù)據(jù)庫(kù)中匹配,根據(jù)訪問(wèn)權(quán)限的設(shè)定來(lái)實(shí)現(xiàn)訪問(wèn)或者返回自己的主頁(yè)。
完成了前面這些之后,整個(gè)系統(tǒng)的基本結(jié)構(gòu)就架構(gòu)好了^_^,可以開始畫數(shù)據(jù)流圖了。簡(jiǎn)單地說(shuō),數(shù)據(jù)流圖就是把上面這一堆亂七八糟的結(jié)構(gòu)功能的構(gòu)想用箭頭連接起來(lái),簡(jiǎn)明扼要利于分析。當(dāng)然啦,畫數(shù)據(jù)流圖的時(shí)候也有講究:從最大的系統(tǒng)開始座位第0層數(shù)據(jù)流圖,畫的是整個(gè)系統(tǒng)的基本結(jié)構(gòu)框圖;接下來(lái)細(xì)分到具體的網(wǎng)上登錄系統(tǒng);最后就是要實(shí)現(xiàn)的登錄、注冊(cè)和查詢、信息修改的流程。從那些圖可以一目了然,工程的這個(gè)模塊要干什么什么,那個(gè)模塊要干什么什么之類的,很清晰,也利于后面編程的實(shí)現(xiàn)。
實(shí)現(xiàn)整個(gè)系統(tǒng)當(dāng)然必不可少的就是coding啦~~coding只是整個(gè)的一部分而已,而且我也沒辦法說(shuō)清楚如何如何去編程,畢竟高手牛人還是很多滴~~ 總之呢,編出系統(tǒng)之后并沒有完事,還有一項(xiàng)要做的就是用戶測(cè)試。你畢竟做出了一個(gè)系統(tǒng)嘛,不給人家用用看怎么能夠判斷它好不好呢?給一批科大畢業(yè)生體驗(yàn)一下這個(gè)系統(tǒng)之后,根據(jù)得到的反饋信息來(lái)評(píng)價(jià)這個(gè)系統(tǒng)的整體性能,然后進(jìn)一步做一些修改和完善。其實(shí)寫一個(gè)用戶手冊(cè)出來(lái)告訴大家這個(gè)系統(tǒng)該怎么用之類的還是很必要的,可以做一下。
大致的她在軟件工程這門課上所做的就是這些了。她說(shuō),在軟件工程這門課上還是可以學(xué)到很多東西的,當(dāng)然啦,這些東西根據(jù)你所做的project還是有所不同的。像他們的這個(gè)網(wǎng)上信息查詢系統(tǒng),她就學(xué)會(huì)了用PHP,CSS,HTML, MYSQL,還有其他一些如何設(shè)計(jì)一個(gè)工程、如何一步步實(shí)現(xiàn)、如何進(jìn)行用戶測(cè)試以及相應(yīng)的調(diào)整。在我看來(lái),這是一個(gè)系統(tǒng)性的學(xué)習(xí),交叉性學(xué)科的任務(wù)。除了寫程序,我們?cè)谲浖こ讨衅鋵?shí)還有很多方面可以學(xué)習(xí)和運(yùn)用,經(jīng)驗(yàn)教訓(xùn)的累積也會(huì)在將來(lái)的工作實(shí)踐中成為一筆寶貴的財(cái)富。
哈哈,最后總結(jié)一下,軟件工程還是很強(qiáng)大的,學(xué)好了還是很有用的。希望我們可以在鄒欣老師的帶領(lǐng)和指導(dǎo)下領(lǐng)略到這門獨(dú)特的藝術(shù)~~
?
轉(zhuǎn)載于:https://www.cnblogs.com/codingcrazy/archive/2010/11/27/1889907.html
總結(jié)
以上是生活随笔為你收集整理的软件工程之他见——鲍周晓的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 鲍鱼数据集数据分析和可视化,线性回归预测
- 下一篇: 使用线性回归,岭回归,Lasso回归预测