前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的工程預算軟件主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:工程概況難點分析 處理思路及方法
中圖分類號:TU198文獻標識碼: A
隨著科學技術的發展我們身邊到處有著科學的身影,它美化了我們的生活,簡化了我們的工作流程,并且越來越人性化、智能化。廣聯達軟件就是用科學服務基礎建設的一個先進工具。現以“聯邦祥云國際住宅樓”工程為例,對廣聯達系列軟件中,鋼筋算量軟件的繪圖及導圖應用做簡要說明。
一、工程概況
本工程為聯邦祥云國際住宅樓,地點位于石家莊市中華北大街西側、南二環南側、濱河街以西,由石家莊聯邦偉房地產開發集團有限公司開發,該工程總建筑面積有23079.74M2,結構類型為框架剪力墻結構,地下5層,地上20層,采用伐板基礎,抗震等級為二級,設防烈度7度。
二、難點分析
收到圖紙后不要急于畫圖,先將圖紙分為基礎、墻、柱、梁、板、樓梯、節點,便于畫圖方便。然后認真查看結構說明,將我們繪圖所需要的信息記錄下來,例如:結構類型、基礎形式、抗震等級、設防烈度、混凝土標號、節點措施及構造等等。最后分析圖紙難點以及繁瑣構建的建立:其一,圖紙難點在于暗柱的構建類型太多,暗柱的約束邊緣構件太多;其二、繁瑣構件太多如:空調板、挑檐、飄窗、屋頂斜墻、屋頂拱形板等等。
三、處理思路及方法
本工程為框剪結構,單純的采用廣聯達繪圖的方式太慢,結合廣聯達導圖功能的增加及更新使上述難點變的更加容易而且更加快速準確。暗柱的繪制不再是難點。軟件增加了柱大樣識別的功能,我們不用在一個個構件去編輯以前半天能搞定的暗柱構件現在十分鐘就能搞定,但是軟件沒法識別約束邊緣構建的功能,在這有兩種辦法僅供參考(1)將約束邊緣構件的鋼筋輸入到暗柱屬性中的“其他鋼筋”里或者輸入到單構件中即可,(2)根據約束邊緣構件的尺寸及鋼筋信息建立成暗柱繪制到圖中即可解決。繁瑣構件的繪置只能按部就班的繪制。在鋼筋軟件中盡量將非主體構件也繪制上(砌塊墻、門、窗、過梁、構造柱)這樣可以在導入圖形軟件中時軟件會自動區分內外墻自動成為封閉的空間這樣對我們在布置裝修及建筑面積時節省時間,也有利于在鋼筋工程中布置砌體加筋。
將上述繪置好的鋼筋工程導入到圖形軟件中,導入過程中需注意不要將暗柱導入因為暗柱同樣屬于剪力墻構件套取定額同剪力墻一樣,這樣就能節省提量的時間。
四、繪圖與導圖結合處理思路
1、首先新建鋼筋工程將工程信息按照圖紙輸入即可參考下圖:
2、建立樓層表:軟件CAD導圖中提供了識別樓層表的功能步驟為:(1)導入CAD圖紙(2)點擊識別樓層表
(2)拉框選擇需要識別的樓層表點擊右鍵確定后軟件彈出下圖
(3)點擊確定后軟件自動提示工識別樓層數。
3、圖紙整理:由于所有圖紙都在CAD的一個界面上需要將圖紙整理一下,鋼筋2013增加了圖紙整理的功能分為圖紙自動拆分和手動分割。
(1)、自動分割
①導入需要整理的圖紙②點擊圖紙整理③點擊需要分解圖紙的圖框后點擊右鍵圖紙就會根據樓層標高自動拆分。
(2)、手動拆分
①進入CAD導圖界面在圖紙管理處點擊“手動分割”②拉框選擇需要分割的圖紙點擊右鍵確定。
(3)最后輸入圖紙名稱點擊確定即可。
4、剪力墻的識別步驟,識別剪力墻表――提取混凝土墻邊線――提取剪力墻標識――識別墻――自動識別墻。
5、識別柱大樣,由于暗柱在結構中編輯很繁瑣占用的時間較長所以借助識別柱大樣可以節省時間及減少錯誤。具體步驟為:提取柱邊線――提取柱標識――提取鋼筋線――識別柱大樣――自動識別柱大樣。(1)暗柱表如下圖所示
(2)首先提取柱邊線點擊工具欄中的按圖層選擇需要提取的柱邊線,(3)然后提取柱標識點擊工具欄中的按圖層選擇需要提取的柱標識,(4)提取鋼筋線點擊工具欄中的按圖層選擇需要提取的鋼筋線,(5)最后點擊中自動識別柱子,識別完后軟件自動彈出識別柱子的個數后在進入屬性編輯界面校核即可。
6,識別梁步驟,提取梁邊線――提取梁標注(集中標注及原位標注)――識別梁――識別梁及原位標注。(1)梁圖如
(2)首先提取梁邊線點擊工具欄中的按圖層選擇需要提取的梁邊線(3)其次提取梁標注點擊工具欄中下拉單中的自動提取梁標注按圖層選擇需要提取的梁標注
軟件自動區分出集中標注和原位標注。(4)識別梁構件點擊工具欄中的下拉單中的自動識別梁構件軟件后點擊“是”即可(5)識別梁原位標注點擊工具欄中的下拉單中的自動識別原位標注即可,如果識別出的跨數與屬性不同時軟件提供了查改支座進行修改即可。
7、板的繪制可以利用點及直線、矩形布置、自動生成板布置。受力筋可以利用單板、多板、自定義、XY方向的方法布置。
8、節點的布置,以空調板為例詳見下節點圖這個可以用板來定義布置,確定好板的標高,板的繪制可以利用直線也可以利用矩形來繪置如圖
(2)布置板的鋼筋按照單板XY方向布置如下圖
(3)匯總計算空調板的鋼筋即可
9、伐板基礎的布置可以利用CAD繪置,將CAD的軸線與軸線重合然后用直線布置伐板基礎。
10、集水坑布置,在集水坑的定義界面新建集水坑屬性中的信息按照圖紙輸入即可。
11、其他的小構件及樓梯鋼筋可以在單構件中輸入。
總結:
該工程處理的難點是,暗柱以及約束邊緣構件的編輯占了大部分時間。然而,廣聯達軟件提供了識別柱大樣的功能,使處理暗柱編輯大大的節省時間。CAD圖識別的功能在時間、準確度上提高的更加明顯。
第一,軟件規模的工程管理。在進行軟件工程管理前,通常需要先計算出軟件規模以作為軟件工程管理的基準。而目前用以計算軟件規模最常用及公認的方法為功能點分析法,其主要概念是在系統初期的需求訪談階段中,從終端使用者的觀點進行軟件功能性的規模大小的預估。由于功能點分析法的特點是能夠在系統開發的早期,預估軟件功能性的大小,因此適合應用于軟件規模的工程管理。
第二,軟件成本的工程管理。軟件成本工程管理主要在于收集軟件開發過程中完成一個工作項目或一個階段所耗費的實際工作量,并且能夠真實反應實際的成本軟件工程管理值;但除了軟件工程管理值的收集外,尚須有預先估計的成本估計值做為績效衡量指標的基準。因此,軟件成本的估計是軟件成本工程管理工作中首要進行的步驟,而成本預估工作主要取決在人力、工作量和時程(Schedule)等三個項目。由于軟件發展方法與工具以及電腦輔助軟件工程工具的不斷開發與進步,使得軟件成本估計工作更加復雜。
第三,軟件時程的工程管理。軟件時程工程管理主要是量測軟件生命周期中各階段與開發活動所花費的時間,傳統在進行時程評估工作有三方面的問題:人員方面,通過人員衡量時程的方式,通常取決于人員的直覺判斷;工具方面,軟件工程管理工具選擇不當或缺乏相關工具,導致缺少或無法有效反映實際進度,因而無法即時發現問題;計算方式與制度方面,時間軟件工程管理缺少精確的計算方式與制度,無法有效估算時程,造成初期常因無法準確預估時程,導致完工期限往往無法符合約定交期。進行時程工程管理包含下列優點:有效協助管理者進行時程規劃、時程管理和人力的派用;降低失敗風險;大幅減少軟件開發和時程監控里程碑的次數與時間。
第四,軟件生產力的工程管理。生產力是衡量軟件績效的一種重要指標,主要是衡量組織資源投入與產出之間相對效益,針對軟件生產力工程管理的定義為:軟件生產力工程管理指確保軟件工程管理資料的了解,包括原始碼與文件產物。
第五,軟件質量的工程管理。一般而言,軟件質量是指軟件滿足使用者需求能力與特性的程度。有關軟件質量工程管理,利用質量模式評估軟件質量是一種最常使用的方法。質量模式是目前普遍被國際公認為軟件質量模式中最詳細的一種標準。
計算機軟件工程管理的實踐
第一,軟件分解。目前,很多軟件工程管理是以大型軟件為管理對象,由于現今的大型軟件通常是由數個系統協同開發所組成。因此,首先須將軟件分解為多個子系統,以利后續軟件工程管理作業的進行。子系統開發則由不同開發團隊,分散在不同位置負責開發與建置工作。
第二,軟件規模基準化。將大型軟件分解成多個子系統后,為能夠有統一的軟件工程管理基準,采用功能點分析法來對各個子進行軟件規模估計,其輸入資料為各個子的功能規格或需求規格,而輸出資料為功能點數與原始碼行數。
第三,設定群組成員權重。一個大型軟件的工程管理工作通常是由多人共同完成,由于各個成員在中所扮演的角色不同,因此,所評估的軟件工程管理值也有比重的不同,所以需計算各個軟件工程管理成員的權重。軟件工程管理成員權重所采用的指標,可采用學歷權重、經驗權重與角色權重等三個指標,從而計算出群組成員權重值。
第四,成本的軟件工程管理。一是收集與監控成本信息。軟件成本估計值計算以后,接下來便能以此成本估計信息做為成本控管的基準。因此,當軟件活動開始進行時,管理者必須能在執行過程中進行各個子系統的成本信息收集與監控,此時,管理者將能針對整體和子系統進行成本績效控管,以確實掌握軟件的成本狀態。二是衡量成本績效。差異分析法可作為衡量成本與時程績效的作法。運用差異分析法推算出成本差異與時程差異以達成成本與時程的績效控管。因此,當收集到整體和子執行時實際發生的成本值,接著便可將其與原先預估的成本值進行比較,據以獲得整體及子系統的成本績效。
現代社會被描述成一個全球化的時代和信息爆炸的時代,不管是全球化和信息化,它們發生發展的基礎是計算機技術。交通運輸技術的提高使人們更快捷地實現了遠距離的旅行,但是對于大多數人來說,國際間的旅行還存在很多的制約因素。計算機互聯網技術的出現打破了地域的界限,使全球范圍內的信息資源得到傳播和共享。因而,現今的人類社會大部分是建立在計算機技術之上這一說法并不為過。計算機技術不但改變了人們的生活方式,在生產制造領域內也引發了技術和方法的大革新。計算機技術正以其絕對的優勢占領著現代社會的各個角落,一步步地影響著人們的思維方式。
計算機軟件是計算機系統的核心,軟件質量的好壞直接關系計算機系統的運行狀況。在當代軟件已經在多個方面產生了巨大作用,涉及工業、農業、金融業、政府部門、服務業等眾多領域。較為典型的軟件包括嵌入式系統、辦公套件、電子郵件、人機界面、數據庫、操作系統等。這些軟件的應用極大提高了人們的工作效率,豐富了人們的日常生活,對促進經濟和社會的發展作用重大。軟件工程是一種專門針對軟件設計、開發、維護和推廣的科學,它利用工程學的方法對軟件進行構建和維護,以生產出實用性強、安全性高的軟件,實現經濟效益和社會效益的提高。對軟件工程管理的研究可以為軟件行業的整體平穩運行提供借鑒。
一、軟件工程管理的內容
計算機軟件工程在影響人類社會的同時,也受到了社會發展狀況的制約,具體來說,這些影響因素包括三個方面,即軟件的生產力、資源的有效利用情況、軟件能否滿足社會需求。如果不能有效處理這些影響因素,將會對軟件工程的發展產生嚴重的制約,進一步危及信息化的高效運行。因此,要對軟件工程進行科學 有效的管理,使其為社會的發展進步提供動力。軟件工程管理需要專業的機構和人才,同時還需要相應的技術和管理方法。
(一)組織機構
管理職能的實施在很大程度上決定于管理的組織機構設置是否合理。對于缺乏有效管理制度的團隊來說,組織機構只是管理工作人員的集合,在權責上劃分不明,在職能的行使上也會存在很多問題。軟件工程是一種專業化程度很高的科學類別,這就需要有專門的技術型人才擔任組織機構管理人員。此外軟件開發的最終目的是實現軟件的有效利用并獲取經濟效益,因此,組織機構的設置一定要有專門的營銷策劃推廣職能。此外,管理是一個綜合性的系統運作,還要有人事、后勤等基本部門的設置。組織機構的設置還要注意權利的分配和制約關系,深入領會現代管理學原理和方法并加以運用,使軟件工程的管理高效穩定。
(二)工作人員管理
工作人員由于主觀能動性的發揮,成為軟件工程管理的主體,負責各種項目的策劃執行和反饋工作。涉及軟件制作領域的工作專業化程度高,要求比較嚴格,同時要具有很好的團隊協作精神。依據各人員的具體能力和素養安排工作,使其能夠充分發揮自身的作用。此外,在進行工作人員的管理上,還要有有效的激勵機制。激勵機制不單單是簡單的物質獎勵,更重要的是使員工具有社會地位、自身榮譽等方面的認同感,使員工建立起正確的奮斗觀和長遠的職業規劃。由于軟件工程具有更新速度快、適應性強等特點,要對工作人員進行職業素能和市場觀念上的培訓。
(三)用戶管理
用戶是軟件工程的受眾,也是評價軟件開發是否成功和軟件工程管理是否合理的重要尺度。現今我國社會市場化程度逐步加深,市場經濟體制已經初步建立并正在完善,這種背景毫無疑問地加大了相同領域的競爭。軟件工程是我國近些年新興領域,并在很短時間內就取得了很大的發展成果。市場化同樣使該領域內的相關企業競爭加劇,促成了行業內的退出機制。應對這種挑戰的有效措施就是時刻了解市場需求,以市場為導向,開發出人性化、易操作的軟件系統。這些就需要做好用戶管理工作,從用戶群中發掘信息,搜集資料,并進行有效的反饋和改進措施。
(四)檔案資料管理
軟件開發涉及相當多的資料信息,有些還是較為敏感或具有商業價值的保密資料,因此,無論是對技術的提升還是市場的占有都應該重視軟件工程檔案資料的管理工作,為軟件工程的運行提供保障。
二、如何有效實施軟件工程管理
(一)建立完善的計算機軟件工程管理體系
完善的體制的進行管理的先決條件。首先要構建合理的人才體系。計算機軟件工程屬于新高產業,人才是這類行業發展的不竭動力和重要保障,只有將人才的工作積極性調動起來,才能實現軟件工程各個項目的有效開展。其次,要加強學習,對管理人員和技術人員等都要強化相關技術和知識的學習,對行業前沿動態保持關注,加強訓練,使理論與實踐有機結合。
(二)強化計算機軟件工程的風險管理和進度管理
風險管理是管理學的基本內容,也是必備內容。計算機軟件工程管理人員應加強風險管理的學習和實踐,切實樹立起風險意識。在對軟件工程相關信息和外部環境制度研究的基礎上,軟件工程管理人員要能夠運用先進科學的方法做出風險評報告,并且應具有基本的風險處理能力。此外,還要加強對計算機軟件工程的進度管理,合理控制管理成本,提高工程效率和質量。
【關鍵詞】軟件測試;產品;目標;原則;工具
軟件測試是在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。為了有效保證軟件產品開發的效率和質量,減少軟件維護的困難,就必須重視軟件測試。在計算機軟件技術發展迅速的今天,軟件測試逐步走向了自動化,這不僅可以對軟件測試的過程進行有效的把控,還能提升整體測試的水平。在軟件測試工作中有一個重要問題,那就是要促實現知識管理過程與軟件測試過程有效集成,從而促進知識資產在軟件測試組織中的傳播與重用。軟件測試是一項知識密集型活動,為此作為軟件設計師必須充分了解軟件測試的相關知識、技巧,這樣才能充分利用現代化測試技術進行軟件測試。
一、軟件測試的目標
1.軟件測試員的基本目標就是為了發現軟件缺陷。成功的測試是發現了至今為止尚未發現的錯誤的測試。測試并不僅僅是為了找出錯誤,而要通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者發現當前軟件開發過程中的缺陷,以便及時改進。但是目前很多軟件開發團隊不是去找軟件中的缺陷,而只是為了證實軟件中不存在錯誤,可以很好滿足用戶需求。這樣的話,軟件工程師就沒有探索和發現錯誤的熱情,不希望在測試過程中出現問題,這樣就很容易放過軟件中隱藏的錯誤和缺陷。
2.軟件測試員還必須盡早地發現軟件錯誤。測試應該盡早進行,最好在需求階段就開始介入,這樣才能做到早發現、早解決。據相關數字統計資料顯示,軟件缺陷存在時間越長,修復費用將會越高,而且以數十倍在增長,從經濟、效率的角度來看,工作人員也必須盡早發現、解決軟件錯誤。同時還需要在整個軟件開發的過程中都要進行軟件測試,這樣才能盡可能全面地發現軟件中潛在的缺陷,盡早的解決。
3. 軟件測試人員必需確保找出的軟件缺陷得以關閉,而不是要軟件缺陷得以修復。因為在軟件測試工作中,成功的測試是發現了至今為止尚未發現的錯誤,切實站在用戶的角度,將更深層潛在的問題都測試出來。因為時間、風險因素的限制并非所有的軟件缺陷都必須而且能夠得以修復,那么這是就需要軟件測試人員盡可能找到軟件存在的缺陷并關閉缺陷。
二、軟件測試的基本原則
1.軟件測試應該盡早進行,最好在需求分析階段就開始介入。只有這樣才能全方位地發現軟件開發過程中存在的問題,這樣才能做到早發現、早解決。軟件缺陷存在時間越長,修復費用將會越高,而且以數十倍在增長,從經濟、效率的角度來看,工作人員也必須盡早發現、解決軟件錯誤。
2. 程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。當一個程序員完成了設計與編寫程序的建設性工作后,要一夜之間突然改變他的觀點,設法對程序形成一個完全否定的態度,那是非常困難的。所以,大部分程序員都由于不能使自己進入必要的精神狀態就不能有效的測試自己的程序。如果有條件的話,應當由獨立于開發組和客戶的第三方測試組或測試機構來進行軟件測試。
3.設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要制造極端狀態和意外狀態,如網絡異常中斷、電源斷電等。
4.還必須應該充分注意測試中的集群現象。
5.對錯誤結果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
6.制定嚴格的測試計劃。一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內完成也有一個高水平的測試。
7.妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。
三、軟件測試的階段性分析
(一)發現和解決缺陷的階段。在這個階段要盡可能多的發現缺陷。在這個階段,測試工作主要集中于發現缺陷,為此要具備考驗測試設計得能力,發現缺陷之后還要能夠清晰的描述、定級、跟進和驗證,要充分理解業務和架構,發現一類問題能夠舉一反三發現更多類似的問題。
(二)質量管理。為了持續的優化軟件,形成一個良性的循環系統,為此還必須加強對缺陷的分析和考核,有效地梳理和改善研發流程中出現的問題。首先要做質量數據的統計和分析,收集的數據很多,常見的有:外網的缺陷情況,包括事故,及影響的程度;測試階段的缺陷數量,分布,嚴重程度,缺陷的類別等維度;缺陷的橫向跨團隊和系統的對比,縱向的和歷史情況對比;版本的情況,代碼變更行數的情況。其次就是問題的追溯和對于開發的考核,光靠觀念和自覺是不夠的,必需要有一定的反饋機制,這樣才能起到良好的約束作用,通常的考核指標涉及這些方面:編譯失敗次數的考核; 外網事故和缺陷的數量;測試階段的缺陷,特別是基礎功能缺陷和嚴重缺陷,如果剔除其他因素只看開發代碼原因的編譯失敗則更明顯,特別是后面有懲罰機制之后,進一步下降。再次就是對于測試的考核,測試的考核通常考慮下面的指標:漏測:絕對數量或者漏測率;版本的工作量和測試效率;延期的情況。最后就是要推動開發的自測,這通常取決于開發負責人的觀念和態度,有良好的自動化條件效果就會更好。
(三)推動全面的質量提升。首先要管理好整個研發流程;其次就是提交測試前后的一些事情,采用代碼的靜態掃描和 code review;再就是要注意不斷提升測試能力,采用自動化技術和一些輔助手段;還要注重把控環節的質量,了解到不同的組織做法不同,執行的人員可能不同,有開發,運維,專職的版本管理或者測試來做;最后還要提升整體的運營質量。
參考文獻:
[1]史濟民.軟件工程原理方法與應用[M].北京:高等教育出版社,2001.
隨著計算機技術的發展,對軟件的要求不斷提升。軟件不同于一般產品,它是按照順序組織的計算機數據和指令的集合。現代信息化社會,軟件日益發揮著重要作用。軟件從前期研發到后期維護都需要管理和技術上的支持。本文試圖從計算機軟件危機產生,軟件工程的發展過程進行一些思考,希望對以后軟件工程進一步發展提供可借鑒性經驗。
【關鍵詞】
軟件;軟件工程;危機;管理;技術
1 軟件發展危機
1.1 軟件的定義及特點
軟件是按照順序組織的計算機數據和指令的集合。一般軟件被分為系統軟件、應用軟件和編程語言。其中系統軟件為計算機使用提供最基本的功能,最基礎的軟件就是操作系統;應用軟件是在系統軟件的基礎上衍生出來的為用戶提供不同功能的軟件系統,比如說財務系統;教務管理系統等等;編程語言就是設計軟件最基本的開發語言,有Java,C,C++,php等多種語言。
計算機軟件與硬件同樣是支持計算機運行的重要組成部分,但是軟件與硬件有著非常大的區別。軟件不同于硬件;硬件是具體的物理實體,而軟件只是邏輯上的存在,具有很強的抽象性;軟件的生產沒有明顯的制作、加工過程,一旦軟件研發成功,可以廣泛的應用,但硬件有明顯的制作過程,應用范圍具有單一性;軟件在具體使用過程中,不會出現因為使用時間長,機器老化等問題出現狀況;軟件的研發極大程度上依賴于計算機系統,如果計算機系統暫時無法支持,那么就會影響軟件的開發和正常運行;軟件開發復雜性高,開發周期長,成本較大;最后軟件開發還涉及諸多的社會因素。
1.2 軟件危機的出現
上世紀中期,計算機走向了廣泛的民用行業。傳統軟件開發復雜性高,開發周期長,成本較大,可維護性較差這些問題都導致了傳統的軟件開發無法滿足市場需求,因此導致了“軟件危機”。 軟件工程建設是一項復雜的工作,包括了有設計模式的選定、設計標準的設置、程序設計語言的選擇和軟件開發工具的選用等等。尤其是在軟件行業發展還不夠完善的時期,更需要結構化的程序設計方法,將復雜的工作從結構上予以簡化,從而得到簡潔、清晰的程序。軟件工程就是研究利用工程化方法開發和維護有效、實用并且高質量軟件的一項工程。“軟件工程”這一概念在1968年的NATIO會議上第一次被提出,這時就初步明確了將傳統軟件開發的個體化行為轉化為結構化的工程協作。在軟件危機的促使下,形成了一門新型學科——軟件工程,在計算機專業發展的如火如荼的今天,軟件工程雖屬新型學科,但是它在軟件工程管理和技術支持上都有了一定的發展。
2 軟件工程的技術和管理
自上世紀中后期以來軟件危機的爆發后,結構化的軟件工程學科逐漸發展。雖然軟件開發復雜性高,開發周期長,成本較大,可維護性較差這些問題目前還沒有辦法解決,但是從軟件工程的技術層面和軟件工程管理層面來說都有了一定程度上的提升。
2.1 軟件工程的技術層面
軟件工程建設是一項復雜的工作,包括了有設計模式的選定、設計標準的設置、程序設計語言的選擇和軟件開發工具的選用等等。從技術層面來講主要包含了軟件設計方法和軟件開發范型,選定怎樣的方法從正確途徑完成軟件設計和怎樣的范式去開發適應需求的軟件。
在技術上注重軟件的可重復性使用,在借鑒成熟工業產品的開發范式上進行軟件研發,這不僅借助了他人優秀的成果,更避免的不必要的人力資源浪費,可以更好地投入到新產品的開發,提高軟件開發的效率,提升軟件質量。目前關于軟件復用技術主要包括了軟件構件技術、領域工程和軟件體系結構等。
軟件構件技術要能明確辨別構成成分,其中可復用構件包括了需求、文檔、測試計劃、測試用例和數據等其他對開發活動有用的信息。作為軟件復用技術的核心部分需要在現有系統中提取有用構件;了解構件的性質、特征和相互之間的關系以及怎樣對現有構件進行分類查詢等。
軟件可重復性性使用不僅借助了他人優秀的成果,更避免的不必要的人力資源浪費,還可以更好地投入到新產品的開發,所以軟件復用技術在一定領域范圍內更容易取得作用。這就導致了軟件工程的領域工程的出現。
2.2 軟件工程的管理層面
軟件工程是一項復雜的工程,因此軟件工程管理也是非常復雜的,它包括人的管理、組織機構管理和用戶管理三大層面。計算機軟件行業是知識密集、人才密集型行業,因此在整個研發、生產的過程中,人是貫穿始終的重要部分,因此人員的管理非常重要;人的管理是最基礎的,還要加強組織機構管理,組織機構強調的是組織的系統協調性,不是松散的人員組織,創建好的組織機構需要發揮各項人員的優勢,并將優勢整合,促進整體的發展;最后最重要一點是,軟件雖然不同于一般的產品,但它作為一種特殊的產品,它的對象依然是用戶;可以說沒有用戶需求就沒有軟件行業的蓬勃發展,因此用戶管理需要時刻關注用戶的需求。
因此完善軟件工程管理需要建立健全計算機軟件工程管理體系,要從制度上予以規范,讓具體項目執行有度可依,完善激勵措施,獎罰分明,獎罰有度,使得管理工作得以順利高效進行;注重團隊化建設,加強團隊協作性,人才其才,人盡其用,為團隊的發展謀福利;還要專門制定具體項目的進度和風險管理預警機制,結合具體實際,進行監督管理;最后還要充分利用現代信息技術的先進成果,采用精研——軟件工程管理平臺,更好控制項目成本、進度等可調控因素,使得軟件供應和需求雙方能夠共贏。
3 總結
現代信息技術的飛速發展,使得計算機軟件所面臨的環境開始從靜態封閉逐步走向動態、多樣化。現在軟件工程的發展必須努力改變自己去不斷適應這樣的形態,取得自身在技術上的突破,在管理上的創新,這樣才能不斷提高軟件研發效率,大力提升軟件質量。
【參考文獻】
[1]王博然;蘇鋼.軟件工程的歷史與發展趨勢[J].北京工業職業技術學院學報,2008(03)
1 引言(Introduction)
在當前軟件產業迅猛發展的形勢下,社會和企業對軟件人才的要求越來越高,不僅要求畢業生有扎實的專業基礎知識,還要有解決實際問題的思維能力和創新能力。但是,大多數畢業生走向工作崗位后存在理論與實踐結合能力較弱和綜合應用知識能力欠缺問題[1],對實際問題的求解沒有清晰的思路,不能在短時間內勝任企業的工作。因此,我們應重視和加強培養學生解決現實問題的思維能力和綜合應用知識的創新能力。
《高等學校計算機科學與技術專業人才專業能力構成與培養》中指出,計算機專業人才的專業基本能力主要包括計算思維能力、算法設計與分析能力、程序設計與實現能力、系統能力[2]。其中計算思維能力是至關重要的,良好的思維能力是取得成功求解問題的關鍵。本文結合軟件工程課程的特點,重點探討培養學生計算思維能力的問題,分析軟件工程課程知識點與計算思維能力點之間的對應關系,研究如何在軟件工程課程的教學過程中滲透計算思維方法,通過理論教學和實踐教學培養學生的計算思維能力,進而提高學生解決實際問題的能力。
2 計算思維、計算思維能力(Computational thinking,computational thinking ability)
計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為,它包括了涵蓋計算機科學之廣度的一系列思維活動[3]。計算思維是利用計算機解決實際問題的思維方法,它的本質是抽象(Abstract)和自動化(Automation)。典型的計算思維包括一系列廣泛的計算機科學的思維方法:遞歸、抽象、分解、關注點分離、約簡、迭代、預置和緩存、保護、冗余、容錯、回溯、糾錯和恢復等等。
計算思維能力是指人們運用計算思維方法思考的能力。對于計算機專業人才的培養,計算思維能力主要包括問題及問題求解過程的符號表示、邏輯思維與抽象思維、形式化證明、建立模型、實現類計算和模型計算、利用計算機技術等[2]。這些能力的培養需要以課程知識為載體,在教師有意識、有計劃的引導下,在不斷的實踐過程中實施[4]。
3 軟件工程課程知識點與計算思維能力點的關聯 (The relationship between knowledge points of software engineering courses and the ability of computational thinking)
軟件工程是研究軟件開發和軟件管理的一門工程學科,它主要包括技術和管理兩方面的內容。在新建本科院校的計算機類專業,軟件工程課程重點講授軟件技術方面的知識,包括軟件工程基本概念、基本原理和基本方法,強調應用計算機技術解決實際問題的方法和步驟,使學生掌握軟件開發各個階段規范的方法、工具和過程[5]。軟件工程知識體系主要有結構化方法和面向對象方法兩大部分,下面重點分析兩種軟件開發方法涉及的主要知識點與計算思維方法、計算思維能力點的關聯。
3.1 結構化軟件開發方法
結構化軟件開發方法的主要過程是:結構化需求分析(SA)、結構化設計(SD)、結構化編碼測試(SP),其主要特點是按功能分解系統,自頂向下逐步分解,將一個復雜系統分解為簡單子系統,每個階段都要遵循規范的方法和步驟,通過嚴格的評審后才能開始下個階段的工作。各個階段的主要知識點為與計算思維能力點的對應如表1所示。
在結構化方法開發軟件過程中,涉及大量的計算思維方法:在需求分析階段,對實際問題進行簡化、抽取問題的本質,用到約簡、抽象方法;在概要設計階段,將復雜問題分解為若干個簡單問題,用到關注點分離方法;數據庫設計用到抽象和分解的方法;在調試程序的過程中,從發現錯誤的地方,沿程序的控制流往回追蹤分析程序代碼,直到找到錯誤,用到回溯方法等等。在開發軟件的實踐過程中,能夠有效訓練學生的計算思維能力。例如:需求分析階段的數據流圖、實體關系圖、狀態轉換圖,設計階段的層次結構圖、算法流程圖,編碼階段的程序代碼都是分析問題和求解問題的符號表示,分析和設計的過程就是邏輯思維與抽象思維的過程,需求分析過程就是建立模型的過程等等。由此可見,軟件工程的知識點與計算思維的能力點是密切關聯的。
3.2 面向對象軟件開發方法
面向對象軟件開發方法的主要過程是:面向對象需求分析(OOA)、面向對象系統設計(OOD)、面向對象編碼測試(OOP)。與結構化方法相比,面向對象方法的特點是按對象和類分解系統,更符合人類認識問題和解決問題的方法和過程。其主要知識點與計算思維能力點的關聯如表2所示:面向對象的需求分析過程是建立對象模型、用例模型和動態模型的過程,對象分析過程是一個典型的抽象過程;功能分析將系統抽象和分解為若干個用例,是抽象和分解、關注點分離方法的典型應用;面向對象的設計和實現是在需求分析的基礎上多次反復迭代的演化過程,對各個子系統的設計也用到抽象和分解、關注點分離方法。這些計算思維方法的應用對應著問題求解過程的符號表示、邏輯思維與抽象思維、建立模型、實現類計算和模型計算、利用計算機技術等計算思維能力點。在面向對象方法開發軟件過程中,應用到大量的計算思維方法,有效的教學過程能夠讓學生理解、應用計算思維方法,達到訓練學生計算思維能力的目的。
4 培養計算思維能力的策略和方法(The strategies and methods of developing computational thinking ability)
以軟件工程課程知識點為載體,將計算思維訓練融合在教學的各個環節當中,重點從意識、理解、實踐三個層次入手,循序漸進的提高學生應用計算思維方法解決實際問題的能力。
4.1 有意識的教學方法讓學生認識到計算思維的重要性
從我們有關計算思維調研結果來看,大部分學生不了解計算思維的概念,在分析問題和解決實際問題的過程中,不會應用計算思維方法,即使用到一些計算思維方法也是無意識的。因此,在課堂教學和實踐教學過程中,要充分發揮教師的主導作用,教師要將課程知識與實際問題緊密結合,激發學生學習興趣,通過實際案例有意識地、系統地講解計算思維的方法,讓學生認識到計算思維方法在求解實際問題中的重要地位。
4.2 案例教學讓學生理解計算思維方法的應用
在教學過程中,選擇一個學生比較熟悉的應用系統,如學生成績管理系統、圖書管理系統等,以這個系統的開發過程貫穿教學始終,有計劃、有意識地講解計算思維方法在系統開發各個階段的應用,讓學生領悟計算思維方法,理解計算思維方法在實際問題中的應用,通過需求分析訓練學生的抽象思維和建立模型能力,通過系統設計、算法設計訓練學生的邏輯思維能力,通過編寫程序訓練學生用符號表示問題及問題求解過程的能力,通過對實際項目的分析,讓學生理解利用計算機求解問題的典型方法和過程。
4.3 實踐教學讓學生在實踐中應用計算思維方法
軟件工程課程是一門實踐性很強的課程,課程本身實踐環節可分為課程實驗和課程設計兩部分。課堂上的案例教學讓學生建立計算思維的意識,理解計算思維在實際問題中的應用,課程實驗就要讓學生以小組的形式模擬案例開發一個簡單的系統,小組成員分工合作,應用計算思維方法完成需求分析、系統設計、編碼測試過程,實現系統的主要功能。課程設計是在課程結束后進行的綜合性的實踐環節,訓練學生綜合應用知識的能力、應用計算思維解決實際問題的能力和團隊合作能力等。
此外,通過實習實訓、畢業設計等綜合性的實踐環節,通過大學生創新創業項目、程序設計大賽等活動,進一步強化、提升學生的計算思維能力。
5 結論(Conclusion)
計算思維能力的培養不可能通過一門課程完成,需要通過系列課程有意識、有計劃、持續地訓練,需要在不斷的學習實踐中領悟和提升。本文對如何在軟件工程的教學過程中滲透計算思維方法,培養學生計算思維能力做了一些初步的探討,實踐表明,將計算思維方法融入軟件工程課程的教學過程中,提高了學生解決實際問題的能力和計算思維能力,對應用型人才的培養大有裨益。
關鍵詞:軸流風機;并行工程;動態鏈接庫
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)05-1064-03
并行工程以及CIMS(計算機集成制造系統)在設計制造中的應用是現代企業研究的課題。并行工程就是從產品設計開發和制造的過程出發,通過各部門的協同并行工作,來達到生產效率高、產品成本低、保證產品質量和符合用戶實際使用要求的工程項目。并行工程作為一種集成地、并行的設計產品及其相關過程的系統化方法,可以有效地縮短產品開發周期、降低產品成本、提高產品質量。
最近研究表明大多數設計工程師在真正的產品設計上僅花費25%的時間,卻有30%~35%的時間花費在尋找設計所用的數據上,重復勞動現象嚴重。軸流風機葉片計算軟件的開發考慮到上述現象,盡量避免這種現象的出現,使我公司設計人員在軸流風機葉片計算上大大提高了效率和計算的正確率,縮短了產品設計上的時間。
1 背景介紹
我公司(上海鼓風機廠有限公司)屬國營大型企業,國家機械工業重點骨干企業。目前是上海市高新技術企業,全國機械工業技術進步示范企業。公司正在進行并行工程中各項目的開發,已經形成了以PDM為框架的產品并行設計集成系統,將運用已有的PDM集成平臺實現新產品的并行設計。在設計部門計算機和工作站將全面共享PDM系統的產品數據管理功能和過程管理功能。目前已實現CAD/CAE/CAPP與PDM的集成,PDM與ERP的信息傳遞。PDM的實施是集成管理設計部門、工藝部門所生成的產品設計數據,以及對這些產品設計數據在不同設計人員之間的工作流程管理,基本達到產品并行設計的目標。
2 軟件設計目標
設計開發的這一項軸流風機葉片計算軟件是公司并行工程(SBW-CE)中一個關鍵部套設計軟件。它由報價程序通過PDM平臺把數據傳給葉片設計人員,通過計算軸流風機葉片的尺寸、重量、力、力矩、強度值和自振頻率及離心力、由空氣力產生的彎曲應力、由重心距離產生的力矩、回復力矩(平衡重)、平均和上限應力,生成和AUTOCAD相通的接口文件。設計人員利用此文件,與在AUTOCAD中開發的程序配合使用,設計出工程用的葉片圖。充分體現了并行工程中過程并行,實現了過程的重組、集成和優化。
3 需求分析
在設計該軟件之前,公司的工程設計人員主要通過人工查表、手工計算數據,一部分計算雖然也有程序,但在DOS狀態下的,界面不友好,而且已經不適應并行工程項目中的需求,因此有必要重新設計一個高效率的,符合并行工程應用的軟件。
該軟件的使用,將使很多原本手工計算的步驟得到程序自動化,讓設計人員從繁瑣的計算中擺脫出來,而專注于具體風機的設計,使產品實現并行化設計與開發,以此減少出錯率,避免返工。并且提高產品質量,加快設計進程,縮短設計時間,為公司贏得效益。
4 設計環境
本軟件在數據計算程序開發中采用VC6.0語言,人機交互界面程序開發中采用VB6.0語言。
采用上述語言進行開發充分考慮到了VC是一門高效實用的程序設計語言,對于工程數據計算,具有速度快,效率高的特點。而VB對于面向對象性的界面設計運用簡單、易于操作,并且調用VC編制的DLL(動態連接庫)文件也完全沒有問題。實踐證明上述方法是切實可行的。
5 數據模塊圖
6 設計方案
6.1 輸入界面設計
通過Vb設計的界面,使設計人員根據提示輸入工程初始數據,工程初始數據是由報價程序產生,通過PDM平臺(IMAN軟件)傳到設計人員計算機中,或打開已經存盤.302文件得到數據,然后以函數方式把參數傳遞到計算程序內部進行計算。
用戶界面是應用程序的重要組成部分,是用戶與應用程序進行信息交流的地方。一個應用程序的實用性不僅僅取決于它的功能,在很大程度依賴于它的界面,因為對用戶而言,界面就是應用程序,而感覺不到幕后正在執行的代碼。
本軟件界面采用多文檔界面(MDI, Multiple Document Interface)設計,使軟件更加的友好、美觀。
在VB中父窗口就是MDI窗體,子窗口是指MDICHILD屬性為TRUE的普通窗體。我在caption屬性為“軸流風機應用軟件”的父窗口加入菜單可以使用戶更方便、更直觀的選擇命令和選項。菜單條form_QueryUnload(Cancel As Integer, UnloadMode As Integer)事件。通過在這些事件中的編程,完成程序的輸入功能。
【關鍵詞】計算機;軟件工程項目;自動化管理
自動化管理是計算機技術趨于智能化的一種表現和具體應用,以往復雜的、繁瑣的、專業的、需要大量人工進行的工作,可以由計算機代為完成。包括高速公路收費系統、智能交通等多個行業領域均使用了自動化管理手段,計算機軟件工程項目具有較高的操作要求、較為專業的知識需求,對人才、專業性的要求也越發加大,行業發展因此受到限制,將自動化技術應用到計算機軟件工程項目管理中,可以緩解這一局面。
1自動化管理在計算機軟件工程項目中的意義
1.1提升管理效率
傳統的計算機軟件工程項目管理,內容復雜、繁瑣,項目眾多,需要大量人力,自動化管理模式下,借助計算機可以較為方便的完成大部分工作,效率大為提升。從項目被提出開始,涉及到人員的確定、工作的組織、項目研發、資金調配等方方面面工作,傳統模式下,需在總體負責人領導下分層負責,工作進度、問題等也要逐層上報,效率較低,在自動化管理模式下,相當一部分管理內容以計算機設定程序的方式自動運行,只要計算機不出現問題,管理就是有序的,效率因此得到提升。
1.2有利于行業更快速的發展
我國目前的計算機軟件工程項目,從開發到試用、修改,各個環節都缺少人才,這是由于計算機行業出現時間相對較短,引入我國的時間同樣不長,認可度不夠,因此人才也變得稀缺,這限制了行業發展,應用自動化技術,可以有效緩解這一問題。在自動化管理模式下,只需一個經驗豐富的人員設定和調整默認程序,就可以完成多臺計算機的持續高效工作,解決了需求大量人力資源的問題,也就不存在人才不足的情況,行業發展的制約一定程度上被解除,有效提升了發展速度。
1.3有利于行業的規范化
傳統模式下,管理依賴于人員,如果出現人員流動、人員能力較差、態度不夠端正等問題,管理的效果和效率等均會下降,在自動化管理模式下,這一問題得到了避免。自動化管理的依托是信息相關技術,運作在虛擬平臺上進行,通常無需人員干涉,只要程序設定上合理、計算機硬件性能良好,就可以持續進行工作,人員對管理工作的影響被降至相當低的水平,規范化程度得到了明顯提升。
2計算機軟件工程項目的自動化管理
2.1計算機軟件工程項目自動化管理的主要內容
2.1.1研發過程管理軟件研發過程主要包括可行性分析、需求分析、系統設計、編碼,單元測試、系統測試、系統維護六個方面,也是自動化管理的主要內容。可行性分析和需求分析的自動化管理,主要是以現有經驗、未來發展需求為基礎,對研發內容進行可行性、需求相關分析,利用計算機存儲、計算方面的優勢,使分析得以快速的、自動化的進行,省去人工分析計算的麻煩,并提高了結果的可信度。系統設計、編碼工作目前依然主要依靠程序員進行,自動化管理只能在這一階段為人員提供數據庫相關支持。單元測試和系統測試,是指在軟件主體完成后,利用虛擬平臺進行測試,這一階段的自動化管理包括平臺建設、選擇、數據記錄等,在測試過程中,計算機可以根據測試對象自動選擇平臺,并代入相關模型,記錄測試結果,使測試快速、科學的完成。系統維護是指在測試完畢后應用階段的維護,該階段的自動化管理相對較為常見,比如我們日常所用的智能手機、個人計算機,均帶有軟件升級提醒、系統漏洞修復提示等功能,這即是系統維護方面的自動化管理程序以及內容。2.1.2數據管理數據管理是計算機軟件工程項目自動化管理的核心內容之一,貫穿項目全程,對所有的必要數據進行記錄和分析,從而指導實際工作。一般而言,計算機軟件工程項目的研發不可能是一蹴而就的,往往需要大量的進行計算、建模、測試、調整、完善、重建工作,而且以上內容通常需要反復進行,這會生成大量的數據,通過自動化手段對問題環節的數據進行記錄和匯總分析,有利于針對性的進行調整,使工作可以更有效的進行。在項目最終完成時,所有的數據也需進行保留,方便在未來的工作中作為參考資料,調整項目軟件、指導其他項目研發工作。
2.2計算機軟件工程項目自動化管理的問題
在計算機軟件工程項目中,項目的提出到完成往往需要一個過程,如果軟件開發的難度較大、分項目較多,工作量通常也比較大,由于過程中有許多不可控因素,包括程序員的能力、客戶的需求變化等,自動化管理的工作量也因此變得不可確定,不利于自動化管理工作的進行等。計算機軟件工程項目中,自動化管理的對象是軟件相關內容,但本身自動化管理也需要以軟件的形式出現,也需要程序的設定,其工作能力也有強弱之分,在工作量難以確定的情況下,自動化管理軟件的選擇、程序設定會受其影響,無法有效進行管理工作。
2.3計算機軟件工程項目自動化管理問題的解決對策
難以確定工作量的問題是目前自動化管理的主要問題,可行的解決方法是設定合理的框架,將管理內容進行分解、填充到框架中。比如數據管理環節,在軟件開發工作進行前,可能只準備了適應5G存儲能力的管理系統,但在工作中,需要存儲的數據資料超過了5G,管理就會出現問題,可行的方式是,將管理工作進行分割,數據存儲工作由專門的人員負責,當數據量超出系統上限,由該人員進行后續保存,并將情況上報,由管理人員決定是否更換管理軟件、模式等。其本質是通過落實責任的方式對工作量難以確定的問題進行臨時處理。
3總結
計算機軟件工程項目是計算機相關行業的主要工作內容之一,計算機的工作需要通過各類軟件進行,對軟件工程項目進行管理是保證軟件性能的有效手段,在傳統模式下,項目管理存在著種種問題,將自動化技術應用于計算機軟件工程項目管理中,可以提升效率,也有助于行業的規范化和整體發展,是未來計算機軟件工程項目管理的重要趨勢。
參考文獻
[1]馬伽洛倫,尚艷萍.計算機軟件工程項目的自動化管理分析[J].電子技術與軟件工程,2016(02):64.
關鍵詞:軟件工程專業;計算機組織與結構;教學內容;教學方法
目前軟件工程是信息領域發展最快的學科分支之一。面對國家產業發展的戰略重點和激烈的人才競爭形勢,面向市場需求,改革軟件人才培養模式,加大軟件人才培養力度,已經成為當前高等教育改革與發展的一項重要和緊迫任務。為此,教育部從2001年起選擇了若干高等學校,支持其試辦示范性軟件學院,并開設本科軟件工程專業。我校軟件學院是教育部、國家計委批準的首批試辦的示范性軟件學院。學院利用學校在計算機和數學學科上的優勢,借鑒國內外優秀的管理經驗和教學模式,十分注重軟件工程專業的培養目標,根據軟件企業的需求,按照工程化、國際化的培養方向,建立復合型軟件實用人才的培養模式,加大復合型軟件實用人才培養力度。
而“計算機組織與結構”作為計算機專業的重要專業基礎課也被列入我院軟件工程專業的培養計劃中,在一系列軟件、硬件課程中處于承上啟下的作用。但由于軟件工程專業自身特點,使得該課程的內容選擇、教學目標、課時分配等方面都與傳統的計算機專業不盡相同,為了適應更好地適應本專業教學體系要求,我們對該課程教學進行了一些有益的嘗試和探索,獲得了學生的認同,取得了比較滿意的效果。
1 合理選擇教材與教學內容
由于課時所限,我們將計算機科學專業開設的“計算機組成原理”和“計算機系統結構”兩門專業課整合為“計算機組織與結構”,安排在本科生第三
學年上學期講授,理論教學計劃56學時。前修相關課程包括匯編語言、數字邏輯與系統設計,后續相關課程包括操作系統、編譯原理等。此時學生對計算機應用性知識已經相當熟悉,很大一部分學生已經具有了比較好的軟件編程能力。但本課程所涉及的主要是計算機硬件原理知識,內容比較抽象,而且理論概念較多,學生們覺得該門難懂難學,且對他們未來職業可用性不大,學習積極性普遍不高。針對這些情況,我們首先根據專業需求重新定位課程目標,目標不應再定位于培養學生未來從事硬件開發的能力,而是要求學生能從系統角度來理解計算機的整體實現,培養學生對硬件系統的分析及應用能力。
基于上述指導思想,我們在眾多教材中最終選定由William Stalling編寫、張昆藏翻譯的國外著名計算機教材《計算機組織與體系結構――性能設計》(第7版)為主教材[1]。因為:一是該教材把計算機系統性能問題和計算機組成的基本概念與原理有機聯系起來,而且介紹層次感更強,知識涵蓋性比較寬,但總體難度并不是特別大,學生接受起來比較容易;二是該教材版本更新非常快,能很快捕捉業界新技術的發展,實用性比較強。同時,我們也推薦了白中英主編的《計算機組織與結構》(第4版)[2]和王愛英主編的《計算機組成與結構》(第4版)[3]作為輔助教材,滿足不同層次的學生學習的需要。
根據教學大綱以及教學計劃的安排,我們對本書18個章節都進行講授,但內容側重不同,重點講授
作者簡介:李晨,女,講師,研究方向為計算機組成、信息融合理論;朱利,男,副教授,研究方向為計算機組成、計算機網絡。
的內容包括:第二部分中Cache存儲器章節,第三部分中CPU結構和功能以及指令級并行和超標量處理器章節,第四部分并行處理章節。對于這些章節,除了教材內容講授,還穿插了例題講解、實例分析等多種手段來加深學生理解。而其他章節則主要以介紹教材內容為主,同時也根據需要適當的補充相關知識,如在內部存儲器部分,我們就補充了存儲器芯片字擴展、位擴展以及字位擴展的方法等,彌補了學生在考研復習時的盲區。
2 依據本專業特點講解知識內容
相比傳統的計算機專業,軟件專業學生對軟件開發興趣很大,但對于硬件成分比較多的計算機組成和結構課畏懼情緒嚴重。我們針對學生的這些心理,在講課中堅持自頂向下、分層展開的原則來介紹計算機系統的性質與特征,并將軟硬件互通的理念滲透講述之中,同時盡可能多地引入與軟件相關的例子,調動學生學習興趣。如在講CPU結構和功能這一章時,流水線的概念講解完,我們會啟發學生:這樣的硬件設計思想同樣也可以用于多線程并行處理,如在視頻處理時,一般都會有采集、編碼、打包及發送這樣步驟,可以把這幾個步驟像流水線一樣采用不同線程處理,在第一幀圖像進入編碼時,第二幀圖像就可以進入采集模塊,其他各幀類似,這樣就可以并行對不同圖像同時進行處理,計算效率更高,視頻通信將會變得更為平滑。通過這樣的講解,學生不但對流水線的思想理解深刻,而且他們也會很驚奇于軟硬件的聯系,感到學有所用,在下面學習中,會比較主動地找軟硬件之間的切入點。后面講到IA-64中軟件流水技術時,學生就非常容易理解,并能積極主動的表述自己的觀點。
在學習了流水線以及超標量設計思想后,學生已經了解哪些情況會影響機器的并行性,這時我們會適時提示學生目前的機器基本都是采用流水線以及超標量的處理器,那么在軟件人員進行高級的開發編程時,就一定要考慮到硬件特性,盡量避免過多的子程序調用,以及不必要的循環,從而達到整體提升系統效率的效果。這樣一來,學生學習后的應用感就很強,學習動力得到了很大的提升。
3 多種教學方法并用,提升教學效果
在教學中為了達到教學目標,應當強調學生學習的主動性。作為專業基礎課,計算機組成與結構課程的教學大部分還是以老師為中心,以知識的傳遞為主體。但不能說整個教學過程都如此單一,這樣學生學習的主動性和積極性都會受到影響。我們要有意識地引導學生去主動思考[4],通過以下嘗試讓學生參與到教學實踐活動中來。
1) 采用啟發式教學方式調動學生的思維,引導學生得出合理的結論。如在講存儲器的層次結構時,我們先介紹一下目前各類存儲器各自的特點,然后拋出問題讓學生考慮如何處理存儲器價格、速度和容量之間的矛盾。然后在學生充分思考的基礎上水到渠成地引出目前所采用的存儲器的三層結構,這樣學生不但能夠知其然,更能知其所以然。
2) 對于某些有重復的內容,鼓勵學生自己上臺講解,然后老師進行總結補充。如當我們在講輸入輸出這一章里關于IO操作可采用的三種技術時,由于學生在之前的匯編語言課上已經對編程式IO、中斷驅動式IO以及存儲器直接存取DMA方式進行了學習,在講這部分內容時,學生往往覺得已經學過就會思想放松,態度不認真而導致學習效果不好。我們提前告知學生,這部分內容課堂上隨機抽取同學先從匯編角度談談自己對這三種技術的認識,這樣學生就會提前準備,學生講完后,我們再從組成角度談這三者的不同以及CPU不同的處理過程,這樣學生真正體會從另外一個角度分析問題的必要性,對知識的理解也會更加深刻。
3) 重點內容加入討論式教學,加強互動。在講Cache時,同學們普遍反映映射技術替換算法很難理解,那么針對這個問題,我們在課堂上將這部分內容講解完后,留出典型例子讓同學們討論分析當Cache應用三種不同的映射方式再采用不同的替換算法的會出現什么結果。學生覺得這種方式很新鮮,討論中沒有拘束感,氣氛很活躍。這樣在小部分理解能力強的學生的帶動下,大家基本都能對這三種映射方式和替換算法的過程了解得比較透徹,最后老師只要稍加總結,學生們馬上就能反映上來。
4 實驗設計軟硬兼顧,訓練學生綜合能力
對于我們這門課,它是理論性和實踐性都很強的專業基礎課。因此課程教學與實驗上機相結合尤為重要,硬件實驗是非常必要且重要的[5-6]。如何讓軟件工程專業的同學對硬件實驗不但能提起興趣,做通搞懂,還能把這些實驗盡量和未來的就業需求有效結合,這成為擺在授課老師面前的一個難題。為此我們把軟件實驗也納入實驗環節,并把實驗分為如下三個層次:基礎性實驗、綜合性實驗,開發性實驗。基礎性實驗是配合理論教學內容,進一步加深學生對于理論知識的理解而開展;綜合性實驗為了培養學生的設計能力和分析解決問題的能力;研究性實驗是更高層次的要求,是為了培養學生的創新思維和研究能力。這樣的分層次教學和堅持理論和實踐相統一的原則,更有利于培養軟件專業學生的適應能力。
一方面我們主要使用由杭州康芯電子有限公司生產的GW48-CP+計算機組成原理實驗開發系統(主芯片為FPGA)作為實驗教學平臺,另一方面引入少部分軟件實驗,配合驗證硬件的性能。
這里,我們在學了MMX指令以后,就布置了一個軟件驗證性實驗,讓學生使用一般技術和MMX技術方法實現圖像的淡入淡出操作來比較兩者的不同,進而驗證該硬件性能對處理速度的影響。這樣學生一方面可以通過實驗驗證理論,對硬件的作用也有更直觀的體會,另一方面對圖像處理的軟件編程有所觸及。實驗過程中由于圖像處理可視化效果好,學生做起來也很新鮮。
當然軟件實驗只是一種有益的補充,這門課還是要以硬件實驗為主,那么在基礎性實驗部分,我們也布置了如運算器、存儲器等實驗。一方面讓學生熟悉實驗環境和硬件編程語言,另一方面使學生進一步學習并掌握計算機主要部件工作原理,
在綜合性實驗部分,我們安排了設計基本8位模型機等,讓學生在前一階段的實驗基礎上,運用微程序的設計思想來構建模型機,掌握整機運行模式,進一步鞏固理論知識的理解。
在研究性實驗部分,打破完全硬件實驗的思路。我們要求學生在已有實驗平臺上根據某些應用的實際需求,完成一個基于NiosII的SOPC系統的設計,使系統具有一定的技術先進性和實用價值。在實施方法上,我們全程配合開放性實驗室,實驗以分組形式進行共同設計調試,一般4~5人一組,。學生需要進行開發平臺應用分析,在此基礎之上學生根據自己的愛好、能力進行選題,每組學生需提交正式的選通報告,由指導老師對選題進行審核。接下來開始進行系統總體設計與系統詳細設計并提交相關報告,然后由各組自行安排組內成員在QuartusII中搭建硬件原理圖并進行仿真測試,最后完成硬件測試報告。下一步就需要針對所要實現的具體功能,編寫相應的C語言控制程序,最終在NiosII的環境下,載入硬件系統進行軟硬件的聯調,并完成功能測試報告。在每個系統開發階段組織討論會,由老師檢查各階段的進度和質量,最終驗收并評定成績,期間教師不過多參與學生設計,鼓勵學生相互交流討論,自己動手實驗解決問題,提高學生的自主學習和動手能力。通過這一階段實驗,學生對計算機的內部結構有了更明確的了解,同時對當代計算機的硬件設計有了比較全面的認識,同時也發揮了本專業學生軟件編程的特長,對于底層的C語言開發進行了很好的鍛煉,使之了解軟硬件之間的配合,為以后的就業也打開了一個新的方向,學生們普遍反映收獲很大。
5 適時穿插本學科的最新科技動向
現在很多學生也都比較關注業界新技術的發展,但是他們對新技術的實質以及他們和原有技術之間的關系都不清楚,對這方面知識有很強的渴望。那么教師在課堂上講到相關內容時,適時地對新技術進行介紹,不但能化解學生心中的疑云,活躍課堂氣氛,更能促使他們自己查找資料跟蹤新技術新動向,為日后良好的職業習慣的培養奠定基礎。如講到磁盤時,可以針對目前市場上大容量磁盤采用的垂直存取技術進行介紹,讓學生能明白如何能在成本不變的條件下,達到磁盤容量大規模增加的效果。還有在講完并行系統時,可以對業界熱點――云計算技術進行說明,更讓學生感到新技術并不遙遠,促使其有深入研究的興趣。