999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于銷售點框架的Java面向對象程序設計教學研究與實踐

2025-05-05 00:00:00曹文平
電腦知識與技術 2025年9期

摘要:在面向對象軟件開發課程教學中,培養學生的軟件開發能力和團隊合作交流能力至關重要。 為此,學生需要參與完整的、以團隊為導向的項目實踐,特別是模擬真實商業應用的項目,并在項目開發全流程中鍛煉相關能力。文章介紹了一個基于Java的銷售點應用框架,該框架可擴展出不同的日常應用功能,滿足不同團隊執行不同任務的要求,為學生提供了一個真實感強且具有一定挑戰性的項目實踐平臺。 實踐表明,該框架能夠有效提升學生的面向對象軟件開發技能和團隊協作能力。

關鍵詞:面向對象程序設計;Java教學;項目驅動學習;銷售點框架;軟件工程教育

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2025)09-0130-04 開放科學(資源服務) 標識碼(OSID) :

0 引言

軟件開發是計算機專業人才培養的核心目標之一,學生需要通過參與實際項目,才能真正掌握軟件開發技能, 特別是大型軟件項目的團隊協作開發經驗。因此,目前的課程中加入了要求學生完成涉及個人工作的任務,以及許多其他需要與團隊合作的任務。對于小組作業,應盡可能明確地告知學生小組的性質和小組活動/角色,包括強調相關事項的重要性,如紀律嚴明的方法、遵守截止日期的必要性、溝通以及個人和團隊績效評估。例如,在建構主義和項目驅動學習理論基礎上,將翻轉課堂教學與項目驅動教學方法進行有效融合,采用案例教學、項目驅動、翻轉課堂等教學手段對課程進行整體設計[1];以賽事化的競賽作為項目來源,將課程的專業知識與學生綜合能力的培養結合起來的教學方法,不但激發了學生的學習興趣,而且學生提前獲得了未來工作所需要的技能[2];將項目實現與過程評價結合起來的混合式教學模式豐富了教學模式的同時,也提高了學生的學習積極性[3];遵循軟件工程的設計方法,采用沙盤模擬的項目驅動教學方法,使學生豐富了社會經歷的同時,提高了學生的動手能力[4];以學生為中心,線上線下相結合、講授與項目相結合的混合式教學方法,也是提升學生的自主學習能力、知識自我獲取能力和復雜問題解決能力的教學方法[5]。以上文獻研究將項目驅動作為一種重要的教學方法納入面向對象的課程教學中,獲得了一定的效果。

然而,設計一個優秀的軟件開發項目課程也面臨一些挑戰:學生必須面臨從面向對象編程的技術挑戰到團隊合作和固定截止日期的挑戰,這些都是真實項目中常見的問題。本文介紹了一個基于Java的商業應用程序框架——銷售點框架。相比一般案例項目,該框架具有較強的可擴展性和團隊合作性,更好地鍛煉學生軟件開發和團隊合作能力。該框架設計目標如下。

1) 在學術和工業環境中,初學者通常會加入已經進展順利的項目。了解足夠多的項目結構以完成自己的工作,即學習如何應用框架。

2) 對于組織者來說,很容易定義一些類似的項目,并將其復雜性從中等擴展到相當困難。由于基于相同的框架,所有不同的任務仍然是可比較的,這是將項目課程擴展到較大班級規模的基礎。

3) 對于學生來說,擴展框架預定義的應用程序架構簡化了應用程序的設計。此外,該框架提供許多可使用的特定組件。

4) 初學者有機會通過示例學習良好的設計:框架的定義是為通用程序功能設計的,學生可以學習如何設計一個具有靈活性的軟件架構。

1 面向對象軟件開發教學

面向對象技術已成為軟件工程教育的核心部分。學生掌握“面向對象思維”需要相對較長的時間是該課程的普遍問題。

1) 學會通過建立組成軟件的組件——對象來解決問題;具有面向過程編程背景的學生可能首先必須放棄以算法為中心的方法。

2) 學會如何設計可重用的組件,養成重用現有類而不是發明新類的習慣。

3) 初學者需要理解軟件生命周期和適當需求分析的重要性、模式和框架的重要性,并開始思考軟件開發過程的組織。

為了應對這些挑戰,采用了兩階段教學法:課程講授階段和項目實施階段。第一階段是關于Java面向對象編程的快速而密集的課程,建立在基本的面向過程編程基礎上,為后續項目課程提供了必要的知識和實踐。本課程旨在從概念層面涵蓋上述所有挑戰。例如,學生將學習基本設計模式、GUI編程以及系統軟件設計和開發的基本方法。相關教程讓學生有機會從更實際的層面考慮這些挑戰。需要說明的是,這門初級課程的目的只是為學生提供成功完成項目課程所需的基礎知識。學生在后續的學習中有機會更深入、更高水平地探索這些主題。

在項目課程中,將學生分為每組約4至6人,并要求他們采用團隊組織,即把需求分析、系統設計、系統實施、系統測試人員和管理員角色分配給團隊成員。除了扮演其中一個角色外,所有學生都必須作為開發人員來展示他們的編程技能。老師則扮演雙重角色,既是學生的顧問,也是軟件項目的客戶。老師可以線上或線下處理技術問題和框架更正或擴展請求。

由于參與者人數較多,項目課程需要一種正式的組織模式。包括溝通渠道和規定開發過程的時間表。

1) 溝通渠道。所有信息都在網上發布:框架、文檔、教程和單個項目規范。學生團隊需要以同樣的方式在網頁上展示他們的解決方案。在每個階段結束時,團隊在其網站上展示他們的成果。這些溝通是監督和指導班級的基礎,可以在學生的第一個項目中為他們提供所需的指導。

2) 時間表。時間表規定了某些開發節點必須完成的確切日期。該流程針對學生進行第一個項目并使用銷售點框架的情況進行了定制。表1中顯示了基本節點以及相對截止日期。項目課程的最終交付包括項目計劃在內的主要成果。

2 框架技術概述

該框架的設計原則是易用及可擴展,以方便初學者容易理解、擴展功能??蚣転殚_發銷售點應用程序提供核心功能;支持任何類型銷售活動的應用程序。所有銷售點應用程序都提供目錄中列出的商品或服務。根據申請類型的不同,業務可能包括銷售商品、購買商品、出租設備、接受訂單、處理投訴或退款、接受待售或退貨商品、修理或清潔物品等服務。在后臺,商店管理層的職責包括記賬、定期檢查供應、補充庫存和收銀機、及時訂購商品、在目錄中添加新商品、移除滯銷物品以及調整零售價格。

應用程序的兩個核心概念是目錄和庫存:目錄描述銷售項目的集合。銷售項目可以是一種正在銷售的商品或提供的服務。對于每個銷售項目,目錄都會列出其名稱、價格,以及可能的其他一些屬性,如尺寸、顏色等。庫存包含一組銷售項目列表,說明目錄中每個銷售項目的庫存中實際包含該項目的多少個實例(零個或更多) 。例如櫥窗里的商品、購物袋里的東西和訂單上的物品。

該框架提供的核心功能可分為三個一般領域:

1) 應用程序控制。為構建銷售點應用程序提供了基本類。它使銷售點成為一個應用程序框架,是一個決定應用程序體系結構的框架。包含的關鍵概念有商店(Shop) 、銷售點(SalesPoint) 和銷售過程(Sa?leProcess) 。商店代表主體應用程序功能,并管理一組銷售點,這些銷售點是與客戶進行交互的單獨場所。在任何時候,每個銷售點都可以執行銷售過程中的特定步驟;進程可以嵌套,并提供提交、回滾和記錄交互的功能。

2) 數據管理。為結構化和管理數據提供了基本類。關鍵概念如下。

目錄:與網上商店的目錄類似,列出了可供銷售的商品信息。

庫存:庫存為相應目錄中描述的對象的實例提供了容器。因此,庫存必須與其對應的目錄具有相同的結構。

數據籃:類似于許多在線商店使用的“購物籃”概念。從技術角度來看,數據籃的內容表示客戶當前購物交易的狀態。與其他交易一樣,數據籃可以被提交(例如,當商品被付款并從商店中取出時) 或回滾(即商品被恢復到原來的貨架上) 。數據籃也可用于包括顧客暫時留在商店中的一堆物品,例如待付款的商品,或商店管理層正在準備的新目錄的物品描述。因此,它們比購物籃更通用,并且可能包含關于更抽象的交互的信息。

3) GUI組件??蚣芴峁┝嗽S多特定的GUI組件,特別是用于顯示和操作目錄和庫存的內容。程序員可以通過多種方式對其進行調整,例如,按照商品的價格進行排序,或者在顯示之前對目錄應用過濾器。

此外,該框架還提供了一些其他可選的功能:

用戶管理:系統的用戶(包括商店的人員) 被分為不同的類別,同一類別的用戶具有相同的功能。該系統可以允許用戶以匿名顧客的身份進入商店進行普通業務。為了獲得更顯著的功能,用戶必須在登錄過程中識別自己。

時間管理:為了測試銷售點應用程序的行為,可以將時間進行離散間隔劃分:通常一個步驟對應一天。根據應用程序的需要,可以定義不同的間隔。時間管理是商店經理的特權能力。

保存和加載:此功能允許將模擬的當前狀態(所有客戶及其所有數據籃,以及屬于商店的所有目錄和庫存等) 保存在一個文件中。此外,在這些文件中進行選擇,可以再次加載任何保存的狀態。該功能在最終項目演示期間演示應用程序功能時非常有用。

2.1 應用程序控制

圖1顯示了框架中應用程序控制的核心類。每個銷售點(SalesPoint) 應用程序都由商店類(Shop) 的單個實例表示。Shop管理任意數量的SalesPoint實例,代表與用戶交互的各個點。對于新的銷售點應用程序,需要提供至少一個應用程序的SalesPoint子類。

系統和用戶之間的所有交互都被編碼為銷售過程類(SaleProcesses) ,它們實際上是由狀態機建模的。用戶交互發生在狀態中,計算發生在轉換中。以這種方式重新定義每個行為的結構有助于提供上面提到的一些模擬功能。特別是,它使學生能夠將應用程序運行到特定的點,并將當前系統狀態保存到磁盤。這意味著他們可以與老師預約進行序列化,并演示特定時間點的場景。

SaleProcesses在ProcessContext的上下文中運行,ProcessContext提供對用戶界面以及作為與流程相關聯的當前事務句柄的數據籃的訪問。該框架提供了兩個具體的ProcessContext實現,支持在SalesPoint本地運行和在Shop內全局運行的流程。

2.2 數據管理

圖2顯示了為數據管理提供的核心類。如前所述,這些內容側重關于物品信息的目錄(Catalog) 和關于可用性和特定對象信息的庫存(Stock) 的概念。目錄可以包含CatalogItems,類似地,Stock 可以包含StockItems。每個庫存都與一個目錄相關聯,該目錄提供有關庫存中項目的信息。因此,通過在相應的Catalog 中查找其名稱,每個StockItem 都與相應的CatalogItem相關聯。該框架將在庫存和目錄之間強制執行同步約束,使得庫存的結構始終同構于其目錄的結構。也就是說,如果庫存包含另一個庫存,則目錄必須包含相應的目錄。庫存可以是CountingStocks 或StoringStocks。前者只對每個CatalogItem的可用項目數進行計數。后者可以為每個單獨的StockItem維護附加信息。所有這些概念都作為接口提供。該框架提供了一個標準實現,用于維護內存中的所有數據。但是,因為框架客戶端只使用接口,所以我們可以提供不同的實現——例如,連接到數據庫的實現。

2.3 框架設計的教學原理

在上面的討論中,主要關注設計選擇的技術問題。然而,設計也受到一些與教學相關的考慮因素的驅動,例如:

1) 設計和實施之間的一致性。希望學生使用系統的方法來設計和實現他們的應用程序,而不僅僅是打包代碼。為了對此提供激勵,框架的目標是讓他們更容易從設計轉向實施。比如使用顯式狀態機結構來實現SaleProcess。這種結構為學生提供了一條從用例模型和場景通過UML狀態圖到應用程序實現部分的直接路徑,有助于學生理解前期分析和設計的好處。

2) 設計模式。在框架的整個設計過程中,注意使用適當的設計模式,目的是讓學生通過反復看到這些模式的使用,并體驗它們對框架重用的影響,從而熟悉這些模式。其中一些模式,學生在第一階段課程中就已經知道了,其他模式可能是他們在框架中第一次遇到的。框架中存在一些模式的文檔,希望學生使用適配器和橋接器或控制反轉等模式,鼓勵學生探索他們在自己的代碼中的使用。此外,在某些情況下學生可以使用模式的修改版本,這樣也可以引發學生和老師之間對這些模式的討論。

3 使用框架教學的經驗

面向對象教學過程中,每個使用框架的項目結束時,通過收集有關定量和定性方面數據,獲得了該框架使用的一般經驗數據。和老師的個人印象相結合,提供了關于銷售點項目的大量反饋。下面,是這些經驗和觀察提煉成的經驗教訓。

1) 學習成果。學習有效地使用框架是一項艱巨的任務,通常需要很長時間。調查評估顯示,框架的學習成果平均約占項目總成果的30%。隨著銷售點框架在實際中的應用,可以觀察到桌面應用程序(38%) 和Web應用程序(17.5%) 之間的學習成果存在顯著差異。這些統計僅僅基于學生的主觀感知。桌面應用程序的工作量更大,可能是因為學生缺少使用復雜Swing框架的專業知識。銷售點框架提供現成的GUI組件,用于與核心對象(如目錄和庫存) 交互。在學生使用這些界面的情況下,所需的工作量似乎明顯低于學生選擇構建自己的用戶界面的情況,尤其是在基于Swing的桌面應用程序的情況下。然而,學生們傾向于開發自己的GUI,因為他們覺得自己可以構建比預定義組件更符合實際的東西。

2) 組件使用。讓學生使用框架是為了教會他們重用面向對象的組件。最初學生會為使用新的組件而付出很大的努力,因此,他們試圖從頭開始開發應用程序的框架。教學過程中的經驗是,重復使用的水平在很大程度上受到老師態度的影響。如果老師再次強調重用框架的必要性,學生團隊將完全嘗試重用框架。另一方面,當老師對重用的總體看法較低時,學生團隊也會轉去做自己的解決方案,通常這些解決方案都是框架已經提供的內容。

3) 建模。如前所述,學生應當使用基于模型的開發過程。他們在分析和設計階段都使用UML,在實現階段,根據之前創建的模型對解決方案進行編碼。一個重要問題是,何時應考慮所使用的框架。在課程中,要求學生獨立于框架進行分析,而在進入設計時需要把框架考慮進去,同時需要研究如何將框架集成到應用程序中。

從學生的項目報告中可以看到,在項目開始時,學生不理解為什么他們必須建模。但最后,他們大多表示,如果沒有建模,最終的應用程序將會因為邏輯的復雜性而無法正常運行。

4 結論

從該框架在實際中的應用情況來看,學生的反應是積極的:雖然很多同學抱怨所需的工作量較大,但他們認為作為一個團隊在一個項目上長時間開發能學到很多普通課堂上無法學到的東西,比如軟件分析、團隊合作、框架的實際應用等,并且要完成一個完整的項目,確實需要作出實質性的努力。從這個意義上說,該框架在面向對象教學中滿足課程的目標,即為參與項目課程的學生提供真實世界環境的充分模擬,既讓學生學習了基本的面向對象的思想,又將這種思想完整地通過實際項目進行了強化。有理由相信,學生在以后的職業生涯中會獲得寶貴的經驗、技術和社交技能。

另外,從已畢業學生的回訪引出了該框架后續需要討論的一個問題。該框架可以和大量其他公開可用的框架相結合,以構建更復雜、更強大的應用程序。一方面,這證明了該框架的靈活性和可定制性;另一方面,這從教學的角度提出了一個問題:這些外部框架提供的一些功能是否應該集成到該銷售點框架中以減少學生。但這樣也有可能使該框架膨脹到開發即使是簡單的應用程序也變得過于復雜而無法在教學環境中使用的地步,后續需要繼續研究討論。

主站蜘蛛池模板: 欧美日韩一区二区三区在线视频| 国产va在线| 伊人成人在线视频| 欧美精品在线免费| 欧美中文字幕一区二区三区| 日韩精品资源| 国产精品永久在线| 青青极品在线| 26uuu国产精品视频| 国产第一页免费浮力影院| 国产av一码二码三码无码| 免费在线国产一区二区三区精品| 久久综合伊人 六十路| 日本不卡免费高清视频| 91欧洲国产日韩在线人成| 国产香蕉在线视频| 一本大道视频精品人妻 | 麻豆a级片| 亚洲精品你懂的| 午夜性爽视频男人的天堂| AV天堂资源福利在线观看| 波多野结衣无码AV在线| 国产十八禁在线观看免费| 亚洲女同一区二区| 99热最新网址| 91成人在线免费视频| 亚洲成aⅴ人在线观看| 在线看片国产| 三级国产在线观看| 亚洲日韩精品伊甸| 国产欧美精品午夜在线播放| 秋霞一区二区三区| 成人免费午间影院在线观看| 亚洲福利片无码最新在线播放| AV在线天堂进入| 波多野结衣在线se| 色综合手机在线| 午夜国产大片免费观看| 国产在线视频导航| 亚洲视频黄| 亚瑟天堂久久一区二区影院| 亚洲无线视频| 国产精品夜夜嗨视频免费视频| 色综合婷婷| 九九热精品视频在线| 亚洲天堂自拍| 亚亚洲乱码一二三四区| 亚洲国产亚洲综合在线尤物| 亚洲va精品中文字幕| 国产精品嫩草影院视频| 国产av一码二码三码无码| 亚洲成A人V欧美综合| 国产精品露脸视频| 欧美人与牲动交a欧美精品| 精品国产香蕉伊思人在线| 亚洲AV永久无码精品古装片| 91精品伊人久久大香线蕉| 一级高清毛片免费a级高清毛片| 久久semm亚洲国产| 国产一区在线视频观看| 亚洲91精品视频| 亚洲天堂视频在线播放| 亚洲欧美日本国产专区一区| 91精品国产91久久久久久三级| 亚洲男人的天堂在线观看| 国产精欧美一区二区三区| 亚洲中文字幕在线观看| 乱色熟女综合一区二区| 福利国产微拍广场一区视频在线| 在线国产91| 亚洲成aⅴ人在线观看| 99精品在线看| 亚洲成年人片| 国产成人精品午夜视频'| 亚洲国产精品不卡在线| 国产精品久久自在自线观看| 国产自在线播放| www.亚洲国产| 久久精品亚洲专区| 国产精品一区不卡| 国产精品免费露脸视频| 亚洲国产精品美女|