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