国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

在軟件工程課程實(shí)踐中強(qiáng)化過程思維與過程控制

2006-03-24 04:00黃國(guó)興
計(jì)算機(jī)教育 2006年3期
關(guān)鍵詞:文檔軟件過程

周 勇 黃國(guó)興

摘要本文強(qiáng)調(diào)將過程思維與過程控制應(yīng)用于軟件工程教學(xué)實(shí)踐,分析并總結(jié)了實(shí)踐結(jié)果,表明這一方法對(duì)課程教學(xué)有顯著作用。

關(guān)鍵詞過程思維過程控制課程實(shí)踐軟件工程

1 問題的提出

今天,越來越多的國(guó)內(nèi)軟件開發(fā)企業(yè)認(rèn)識(shí)到軟件過程的重要性。導(dǎo)致軟件項(xiàng)目失敗的原因除了技術(shù)、工具等因素以外,更多的是由于缺乏過程規(guī)范。軟件開發(fā)需要團(tuán)隊(duì)的努力,如果缺少過程規(guī)范,團(tuán)隊(duì)就可能遵循不同的過程。更普遍的情況則是團(tuán)隊(duì)根本就沒有任何經(jīng)過定義的過程。

正如Watts Humphrey認(rèn)為的那樣,“為了解決軟件問題,重要的第一步就是將整個(gè)軟件開發(fā)任務(wù)看作一個(gè)可控的、可度量的以及可改進(jìn)的過程?!?/p>

將已有的軟件過程運(yùn)用于實(shí)踐或在實(shí)踐中改進(jìn)現(xiàn)有軟件過程,需要軟件工程師在學(xué)習(xí)期間接受不同方面的教育,概括來說,一個(gè)合格的軟件工程師,他需要具備以下基本素質(zhì):

(1)了解一個(gè)或多個(gè)開發(fā)過程。

(2)對(duì)于自己從事的開發(fā)過程有詳細(xì)的了解。

(3)建立起一套改進(jìn)過程的機(jī)制。

(4)對(duì)過程改進(jìn)作出計(jì)劃。

(5)找出上述計(jì)劃所需的資源。

(6)執(zhí)行上述計(jì)劃。

(7)持續(xù)改進(jìn)過程。

在上述活動(dòng)中,需要度量和評(píng)估。同時(shí),還要給軟件工程師們?cè)谄鋸?fù)雜的工作中提供智能化的工具。

傳統(tǒng)的計(jì)算機(jī)學(xué)科教學(xué)中,強(qiáng)調(diào)數(shù)學(xué)基礎(chǔ)和按部就班的理論學(xué)習(xí),而伴隨著以程序設(shè)計(jì)語言為引導(dǎo)的編程實(shí)踐活動(dòng)通常是以學(xué)生個(gè)體為單位進(jìn)行的,它并沒有充分教授學(xué)生從事軟件開發(fā)所必需的方法和技巧。

現(xiàn)在比較流行的軟件工程教學(xué)方法,是在授課過程中伴隨個(gè)體或小組項(xiàng)目開發(fā)。但是,無論是教師還是學(xué)生往往把注意力集中在任務(wù)、工作、人員或者結(jié)構(gòu)之上,而不是集中在過程之上,在項(xiàng)目開發(fā)中采用的還是一貫的基于任務(wù)的思維方式,即將工作劃分為最小的組件再將它們分配給指定人員的方式。

我們?cè)诮虒W(xué)實(shí)踐項(xiàng)目中強(qiáng)調(diào)以軟件過程為中心,讓學(xué)生了解并實(shí)際看到自己的開發(fā)過程,這一開發(fā)過程通常會(huì)貫穿軟件工程實(shí)踐領(lǐng)域,包括計(jì)劃、分析、設(shè)計(jì)、實(shí)施、測(cè)評(píng)以及修改等一系列需要專門技術(shù)的復(fù)雜活動(dòng)。

認(rèn)知科學(xué)的研究表明,開發(fā)方法與技巧的掌握,涉及以下三個(gè)方面。

(1)明確各類指示和實(shí)踐活動(dòng)。

(2)在一個(gè)相關(guān)的環(huán)境中運(yùn)用此類技巧。

(3)采用結(jié)構(gòu)化的方式開展此類活動(dòng)。

針對(duì)上述三個(gè)方面,我們?cè)诮虒W(xué)實(shí)踐中采用了項(xiàng)目驅(qū)動(dòng)、基于過程、小組開發(fā)。其中,項(xiàng)目驅(qū)動(dòng)對(duì)應(yīng)于明確各類指示和實(shí)踐活動(dòng),小組開發(fā)對(duì)應(yīng)于在一個(gè)相關(guān)的環(huán)境中運(yùn)用此類活動(dòng),基于過程對(duì)應(yīng)于采用結(jié)構(gòu)化的方式開展此類活動(dòng)。另外,我們?cè)诮虒W(xué)實(shí)踐中強(qiáng)調(diào)過程思維和過程控制,有別于一般的小組項(xiàng)目實(shí)踐。

2 強(qiáng)調(diào)過程思維和過程控制

在傳統(tǒng)計(jì)算機(jī)學(xué)科的教學(xué)中,經(jīng)常會(huì)忽視軟件過程,這一點(diǎn)從許多的計(jì)算機(jī)學(xué)科的教學(xué)計(jì)劃及教學(xué)大綱中反映出來,一般地,學(xué)生們總是先寫代碼,然后再補(bǔ)寫文檔,對(duì)學(xué)生的調(diào)查表明很多學(xué)生在開發(fā)時(shí)根本不寫書面的設(shè)計(jì)文檔(如圖1所示)。我們?cè)谡n程實(shí)踐中,強(qiáng)化了學(xué)生們的過程思維。

從某種意義上說,過程思維反映了人類的大腦對(duì)知識(shí)與經(jīng)驗(yàn)的保存及其使用的方式。根據(jù)加涅提出的學(xué)習(xí)過程的基本模式,學(xué)習(xí)是人的傾向性或能力的變化,這種變化要能保持一定時(shí)間,且不能單純歸于生長(zhǎng)過程。所謂的“知識(shí)”就保存在神經(jīng)元之間的相互連接中,開始時(shí)是一種“弱連接”,即我們所說的“弱記憶”,當(dāng)我們獲取了知識(shí)并且在實(shí)踐中加以運(yùn)用的話,上述連接就會(huì)得到加強(qiáng),從而形成所謂的“強(qiáng)記憶”。只要你擁有了針對(duì)于某一特定領(lǐng)域的知識(shí)和經(jīng)驗(yàn)后,再遇到相同的情況,就會(huì)自動(dòng)運(yùn)用頭腦中保存的有關(guān)知識(shí),這時(shí)你所作出的反應(yīng)就像是自動(dòng)完成的,過程的執(zhí)行將是自然而然的事。可以說,正是由于多次相同的經(jīng)歷和不斷的訓(xùn)練,才導(dǎo)致了我們對(duì)知識(shí)的掌握,對(duì)過程的駕輕就熟。

過程思維和傳統(tǒng)的思維方式大不相同,采用這種方法會(huì)導(dǎo)致明顯不同的結(jié)果。這一點(diǎn)對(duì)于所有團(tuán)隊(duì)成員都具有相同的目標(biāo)并且在采用過程思維時(shí)尤其突出。過程思維會(huì)使大家保持行為的一致,從而實(shí)現(xiàn)整體能力的提升,獲得更佳的效果。這在強(qiáng)調(diào)團(tuán)隊(duì)精神的軟件開發(fā)中顯得尤其重要。

因此,我們?cè)谡n程實(shí)踐中,要求學(xué)生在以小組為單位的軟件開發(fā)活動(dòng)中,采用以過程為中心的方法,即要求他們的開發(fā)活動(dòng)基于過程。這里所涉及的軟件過程在課程的理論部分已經(jīng)明確闡述過,需要學(xué)生們?cè)陧?xiàng)目開發(fā)中加以實(shí)踐,做到融會(huì)貫通。

過程通常體現(xiàn)在三個(gè)方面:第一個(gè)方面是關(guān)于指定過程的定義,通常是將過程所包含的活動(dòng)和程序文檔化;第二個(gè)方面是過程的學(xué)習(xí),通過人們頭腦中學(xué)到的過程知識(shí)來驅(qū)動(dòng)他們的行為;第三個(gè)方面在于過程活動(dòng)的結(jié)果。所以,過程不僅僅是一堆文檔,除了定義過程,對(duì)學(xué)生進(jìn)行過程培訓(xùn)(結(jié)合理論知識(shí)),還需要加強(qiáng)過程的監(jiān)控,通過這種方式確保過程活動(dòng)是按照已定義的過程文檔內(nèi)容來執(zhí)行并確保最終開發(fā)目標(biāo)的實(shí)現(xiàn)。

3 設(shè)計(jì)的方法

我們針對(duì)學(xué)生開展的項(xiàng)目開發(fā),設(shè)定了一個(gè)體系框架,用以支持并控制其開發(fā)過程。這個(gè)框架的設(shè)計(jì)參考了格拉奇和伊利在1980年提出的設(shè)計(jì)過程模式,這一框架在較高的層面列舉了相關(guān)的活動(dòng)內(nèi)容,包括領(lǐng)域知識(shí)、啟發(fā)式的策略、控制的策略、學(xué)習(xí)的策略。

針對(duì)上述認(rèn)知框架,我們總結(jié)了教師的六項(xiàng)基本任務(wù),用以支持和控制基于過程的教學(xué)。

(1)幫助建立任務(wù)模型

針對(duì)具體的領(lǐng)域及其實(shí)際任務(wù),幫助項(xiàng)目小組制定任務(wù)模型(WBS),在開發(fā)活動(dòng)中進(jìn)一步細(xì)化相應(yīng)的子任務(wù)。

(2)提供實(shí)時(shí)指導(dǎo)

教師實(shí)時(shí)地為項(xiàng)目小組提供指導(dǎo)(參加討論會(huì)、專題網(wǎng)站、MSN等),給出提示性意見,評(píng)價(jià)局部成果,隨時(shí)鼓勵(lì)學(xué)生。

(3)提供開發(fā)模板

針對(duì)學(xué)生缺乏開發(fā)經(jīng)驗(yàn)的實(shí)際情況,提供系統(tǒng)開發(fā)的模板,有助于學(xué)生熟悉開發(fā)過程和內(nèi)容,提高文檔的規(guī)范性。

(4)鼓勵(lì)學(xué)生將其學(xué)到的知識(shí)和方法付諸實(shí)施

這種做法將有利于學(xué)生在實(shí)踐中驗(yàn)證有關(guān)理論知識(shí)和方法。

(5)分析學(xué)生開發(fā)過程中反饋的信息

鼓勵(lì)學(xué)生評(píng)審開發(fā)中的關(guān)鍵活動(dòng),分析反饋結(jié)果,對(duì)過程改進(jìn)提出建議和意見。

(6)鼓勵(lì)學(xué)生探索

鼓勵(lì)學(xué)生在開發(fā)過程中創(chuàng)新,培養(yǎng)發(fā)現(xiàn)問題和獨(dú)立解決問題的能力。

為了讓學(xué)生在項(xiàng)目開發(fā)中運(yùn)用軟件過程更加有效,進(jìn)一步地,我們?cè)O(shè)計(jì)了相應(yīng)的角色與機(jī)制的配合,包括:

(1)過程所有權(quán)

由教師按照軟件過程課程所教授的有關(guān)理論,結(jié)合項(xiàng)目實(shí)際,制定一個(gè)標(biāo)準(zhǔn)過程。學(xué)生可以根據(jù)需要提出改進(jìn)這個(gè)過程,但是,需要得到教師的評(píng)估確認(rèn)。

(2)對(duì)過程執(zhí)行情況的監(jiān)控

由教師在項(xiàng)目開發(fā)過程中全程監(jiān)控過程的執(zhí)行情況。

(3)過程使用者的反饋

學(xué)生在執(zhí)行過程中按要求反饋其執(zhí)行情況,教師據(jù)此了解和評(píng)價(jià)學(xué)生的過程執(zhí)行結(jié)果。

(4)評(píng)價(jià)

教師對(duì)最終過程執(zhí)行結(jié)果給出評(píng)價(jià)。

4 實(shí)驗(yàn)

我們選擇了同一年級(jí)同一班級(jí)的兩門軟件工程專業(yè)課程進(jìn)行對(duì)比實(shí)驗(yàn),課程為三年級(jí)的“軟件開發(fā)實(shí)踐”和“軟件過程”。我們采用的教學(xué)方法就是在課程中配套進(jìn)行小組項(xiàng)目開發(fā),以小組為單位獨(dú)立完成既定的項(xiàng)目,要求參照軟件過程的理論和方法,強(qiáng)調(diào)團(tuán)隊(duì)合作,提倡編寫完整的開發(fā)文檔。

實(shí)驗(yàn)流程如圖1所示,兩個(gè)樣本集合分別代表了自由的小組開發(fā)(軟件過程)和受控制的小組開發(fā)(軟件開發(fā)實(shí)踐),以此檢驗(yàn)不同的開發(fā)效果。

實(shí)驗(yàn)的結(jié)果如表1、表2和表3所示。實(shí)驗(yàn)結(jié)果分析如圖2、圖3所示。

5 結(jié)論

從學(xué)生調(diào)查的反饋結(jié)果可以看出,在小組開發(fā)過程中強(qiáng)調(diào)過程思維,并讓教師參與過程控制,大大提高了學(xué)生小組開發(fā)的有效性和規(guī)范性,其項(xiàng)目開發(fā)的結(jié)果評(píng)價(jià)也得到了明顯的提高。對(duì)于受控的開發(fā)小組,其開發(fā)過程中相關(guān)活動(dòng)的參與率較高,而對(duì)于自由的開發(fā)小組方式,其開發(fā)過程中相關(guān)活動(dòng)的參與率較低。

進(jìn)一步地,我們希望能改進(jìn)我們的控制方法,如果能夠建立一個(gè)統(tǒng)一的教學(xué)控制平臺(tái),在這個(gè)平臺(tái)上將項(xiàng)目任務(wù)發(fā)布、項(xiàng)目控制、項(xiàng)目評(píng)審、項(xiàng)目資源以及項(xiàng)目討論集成起來,將有效地提高學(xué)生項(xiàng)目小組的開發(fā)效率,加強(qiáng)過程控制,改進(jìn)軟件過程,從而大大促進(jìn)軟件工程專業(yè)課程的教學(xué)質(zhì)量。(本文獲“2005年全國(guó)青年教師計(jì)算機(jī)教育優(yōu)秀論文評(píng)比”二等獎(jiǎng))

參考文獻(xiàn)

1 Humphrey, W. S.Why Should You Use A Personal Software Process? Software Engineering Notes 20(3), July 1995 :33~36

2 尹俊華等.教育技術(shù)學(xué)導(dǎo)論.北京:高等教育出版社

3 Reder, L. and R. Klatzky . The Effect of Context on Training: Is Learning Situated? CMU/CS-94-TR-187, School of Computer Science, Carnegie Mellon University,1994

4 Moore, M. & C. Potts. (1994) Learning by Doing: Goals and Experiences of Two Software Engineering Project Courses. In J. L. Dìaz-Herrera. (ed.), Software Engineering Education: 7th SEI CSEE Conference. New York: Springer-Verlag:151~164

5 Sami Zahran , Software Process Improvement: Practical Guidelines for Business Success. Pearson Education, 1998

猜你喜歡
文檔軟件過程
淺談Matlab與Word文檔的應(yīng)用接口
有人一聲不吭向你扔了個(gè)文檔
輕松編輯PDF文檔
描寫具體 再現(xiàn)過程
有趣的識(shí)花軟件
Word文檔 高效分合有高招
在這個(gè)學(xué)習(xí)的過程中收獲最大的是哪些,為什么?
即時(shí)通訊軟件WhatsApp
圓滿的過程
豐富多彩的Android軟件
化州市| 鸡东县| 深泽县| 威信县| 安丘市| 讷河市| 永靖县| 兰溪市| 黄冈市| 石柱| 梨树县| 博罗县| 巴塘县| 赫章县| 尼玛县| 罗平县| 宜章县| 应城市| 宁阳县| 湖州市| 沈阳市| 泊头市| 平谷区| 思南县| 如东县| 英超| 丰顺县| 青河县| 鄂托克前旗| 曲周县| 胶州市| 台北县| 三门峡市| 大港区| 翁牛特旗| 乐安县| 项城市| 临高县| 达孜县| 雷山县| 廉江市|