軟件工程實驗文檔_第1頁
軟件工程實驗文檔_第2頁
軟件工程實驗文檔_第3頁
軟件工程實驗文檔_第4頁
軟件工程實驗文檔_第5頁
已閱讀5頁,還剩2頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程實驗文檔實驗概述本書提供了二個方式不一、要求不同的綜合實踐,供讀者選擇。這些綜合實踐可幫助讀者系統地運用軟件工程知識來開展軟件開發實踐,以加強對知識的理解和掌握,積累軟件開發經驗,培養多方面的軟件開發能力。讀者可結合課程教學的實際情況(如課時數)和要求(如培養目標),考慮可投入時間、已有的資源等多種因素,選擇其中的一個實踐任務來開展課程綜合實踐。1.綜合實踐一:閱讀、分析和維護開源軟件該實踐要求針對一個具有一定規模和高質量的開源軟件,閱讀和標注程序代碼,分析開源軟件的結構和質量,在此基礎上針對該軟件開展維護工作,包括增加軟件功能、修復軟件缺陷、更改軟件設計、編寫程序代碼、開展軟件測試等工作。該實踐的目的是要學習高質量開源軟件所蘊含的高水平軟件開發技能,結合具體的開源代碼來深入理解軟件工程的方法、思想和原則,在此基礎上運用軟件工程知識對開源軟件進行維護,并在此過程中熟練掌握和使用多種軟件開發工具和環境。該實踐相關任務完成之后需要提交一組實踐成果,包括開源軟件質量分析報告,開源軟件泛讀、標注和維護報告文檔,開源軟件維護后的軟件代碼等,并要求經維護后的開源軟件可運行和可演示。該實踐的特點是基于已有的開源軟件來開展軟件工程實踐,對于軟件工程新手而言較易入手,有可參照和模仿的學習對象,實踐任務系統和完整,覆蓋了所有的軟件開發階段;實踐的內容相對簡單,易于操作和實施。本質上,該實踐首先通過逆向工程來進行學習,然后通過正向工程開展軟件開發。讀者可以自己選擇某個高質量的開源軟件進行閱讀、分析和維護,也可以就圍繞小米便簽MiNotes這個開源軟件進行。本書后續章節的綜合實踐部分將結合小米便簽MiNotes這個開源軟件來介紹如何開展開源軟件的閱讀、標注、分析和維護實踐工作。2.綜合實踐二:開發軟件系統該實踐要求獨立構思軟件及其需求,或者基于某個選定的軟件需求,在此基礎上開展一系列的軟件開發工作,包括需求分析、軟件設計、編碼實現、軟件測試、部署運行等,最終產生可運行和可演示的軟件系統。該實踐的目的是學會如何運用軟件工程的方法、技術和軟件開發工具來完整地開發軟件系統,并確保軟件系統的質量,在此過程中培養多方面的能力和素質,如系統能力、解決復雜工程問題的能力、團隊協作能力、自主學習和獨立解決問題的能力、口頭和書面表達的能力等。該實踐相關任務完成之后需要提交一組成果,包括軟件需求文檔、軟件設計文檔、源程序代碼、軟件測試用例和測試報告等,并要求所開發的軟件系統可運行和可演示。該綜合實踐的特點是,要求開發者針對特定的軟件需求或者構思出相關的軟件需求,并以此開展軟件開發實踐。建議對實踐的規模和軟件系統的質量提出明確的要求,如軟件系統的代碼量要求2000行以上等等,使得課程實踐具有一定的挑戰性和難度,從而可以較為全面地鍛煉和培養開發者的軟件工程能力和水平。該實踐可以要求讀者自己來構思軟件及其需求,也可以采用命題作文的形式要求學生開發出某個軟件系統,如Mini-12306軟件。本書后續章節的綜合實踐部分將結合Mini-12306軟件的開發來詳細介紹該實踐任務如何開展。這二個課程綜合實踐可采用3-5人為一個團隊的方式來組織開發。實踐的配套教材可參閱《軟件工程實踐教程:基于開源和群智的方法》一書。綜合實踐一:閱讀、分析和維護開源軟件任務:選取或指定待閱讀、分析和維護的開源軟件,獲取其源程序代碼。方法:訪問Github、Gitee、SourceForge等開源軟件托管平臺,檢索和查詢開源軟件,從中選取待閱讀、分析和維護的開源軟件?;蛘咧苯舆x定小米便簽MiNotes開源軟件,通過/MiCode/Notes網址進入其社區,下載其源程序代碼,在本機計算機安裝AndroidStudio工具,加載、編譯、部署和運行MiNotes開源軟件。要求:所選取或指定的開源軟件要求功能易于理解、代碼質量高、規模適中(5000-20000行代碼量),也可以直接指定“MiNotes”便簽管理開源軟件作為閱讀、分析和維護的對象。結果:獲得開源軟件的源代碼,并可運行和操作該開源軟件。綜合實踐二:開發軟件系統任務:分析相關行業和領域的狀況及問題。方法:選擇你所感興趣的行業和領域(如高鐵服務、旅游出行、老人看護、防火救災、醫療服務、嬰兒照看、病蟲害防護、機器人應用等),開展調查研究,分析這些行業和領域的當前狀況、存在的問題和未來的需求,思考如何開發該行業和領域的軟件,以滿足其需求,解決其問題。讀者也可以直接調研與“12306”軟件相對應的火車旅客服務領域,分析當前的“12306”軟件是如何解決旅客服務問題的,還存在哪些方面的不足。要求:調研要充分和深入,分析要有證據和說服力,要通過調研來梳理出潛在的軟件需求,從而指導后續的軟件開發。結果:行業和領域調研分析報告。實驗任務1綜合實踐一任務:獲取開源軟件代碼,安裝和運行開源軟件系統。方法:針對所選定的開源軟件(如小米便簽開源軟件MiNotes),到開源軟件托管平臺下載開源軟件代碼(如/MiCode/Notes),并依托相關的開發平臺(如AndroidStudio)對該軟件進行編譯,生成可運行的安裝軟件,部署在實際的計算環境(如Android智能手機)上運行。要求:獲取軟件的開源代碼,編譯和運行軟件系統。結果:(1)下載軟件的開源代碼;(3)可運行的軟件系統。綜合實踐二任務:調查研究相關行業和領域問題的軟件解決現狀。方法:針對所選擇的行業和領域(如高鐵服務、旅游出行、老人看護、防火救災、醫療服務、嬰兒照看、病蟲害防護、機器人應用等),結合你關注的行業或領域問題(如買票難、改簽不易等等),開展系統和深入的調查研究,分析當前有哪些軟件可以用于解決這些行業和領域問題,它們做到什么程度,還存在哪些方面的不足和局限。要求:調研要充分和深入,分析要有證據和說服力。結果:行業和領域軟件的調研分析報告,說明需要軟件介入來解決哪些方面的行業和領域問題。實驗任務2綜合實踐一任務:理解和分析開源軟件的整體情況。方法:根據所選定的開源軟件(如小米便簽開源軟件MiNotes),運行和使用該開源軟件,理解軟件的整體功能;泛讀開源代碼,分析和掌握開源代碼的構成,包括:有哪些子系統、模塊、模塊與功能的對應關系、軟件模塊間的關系、代碼量等,在此基礎上繪制出軟件系統的體系結構圖(可以用UML的包圖和類圖來描述);也可利用SonarQube等軟件工具分析開源代碼的整體質量情況,發現存在的質量問題。要求:理解開源軟件提供的功能和服務,掌握軟件系統的模塊構成,分析開源軟件的質量水平。結果:(1)軟件需求文檔,描述開源軟件的大致需求;(2)軟件體系結構圖,描述開源軟件的模塊構成;(3)SonarQube的開源軟件質量報告。綜合實踐二任務:構思如何基于軟件來解決行業和領域問題。方法:針對所調研的行業和領域及其面臨的具體問題(如買火車票難),構思如何通過軟件,并結合其他的設備和系統(如機器人、無人機、手機等)來解決問題。例如,為了解決買票難得問題,要開發一個在線的車票購買系統,它可以與公安的身份認證系統以及銀行的支付系統等進行交互,以完成身份驗證和在線支付等功能,其前端軟件表現為Android手機的APP,后端軟件提供了一組服務和存儲功能,可幫助旅客實時查看車次和剩余車票信息,給旅客提供在線購票、改簽和退票等服務。要求:所構思的軟件可有效解決行業和領域問題。結果:行業和領域問題的大致軟件解決方案。實驗任務3綜合實踐一任務:(1)組建綜合實踐一的項目團隊,建立項目倉庫,度量項目的相關數據。(2)精讀和標注開源軟件的程序代碼。方法:按照課程的要求組建綜合實踐一的項目團隊(如2-4人為一個小組),在頭歌平臺上創建實踐一的項目,從而生成該項目的倉庫,并將原始的開源代碼上傳到主倉庫之中;基于主倉庫的程序代碼,借助于諸如SonarQube等工具,對課程綜合實踐一的軟件制品規模及其質量等進行度量,以獲得關于軟件課程實踐一的定量性描述信息。逐行閱讀開源軟件代碼(如MiNotes),結合上下文詳細了解各行代碼的功能和作用。精讀過程中如果遇到困難和問題,可到StackOverflow中去找尋答案,或者在軟件工程學習社區中交流討論。在精讀的基礎上對程序代碼中的類、方法、語句片段和語句等進行注釋。要求:組建項目團隊,生成綜合實踐一的項目倉庫,基于Git、SonarQube等工具對軟件項目進行度量,具體包括:(1)源代碼文件、模塊和代碼行數量;(2)程序代碼的質量分析數據。所謂的精讀是指要深入理解代碼的具體語義內涵,理解為什么要這樣編程,領會其中的編程要領和編碼風格;精讀和注釋的代碼量要有一定規模,建議在1000-3000行左右。結果:軟件綜合實踐一的項目團隊和倉庫以及項目的初始度量數據。理解開源代碼的語義,給出程序代碼的注釋,可撰寫技術博客來總結精讀和標注的成果及心得體會。綜合實踐二任務:組建綜合實踐二的項目團隊,建立綜合實踐二的項目倉庫。方法:按照課程的要求組建綜合實踐二的項目團隊(如3-5人為一個小組),在頭歌平臺上創建實踐二的項目,從而生成該項目的原始倉庫。要求:組建項目團隊,基于Git或者頭歌平臺創建項目及其倉庫。結果:軟件綜合實踐二的項目團隊和倉庫。實驗任務4綜合實踐一任務:構思開源軟件的新需求。方法:采用集體討論、大腦風暴等方式,結合實際的問題來構思開源軟件的新需求,以完善開源軟件的功能和性能。例如,為了提高小米便簽開源軟件的實用性,該軟件在現有的基礎上應該新增哪些新功能和新性能需求。要求:所構思的軟件需求要有意義和價值,存在技術和進度等方面的可行性;用自然語言和UML用例圖來描述所構思的軟件需求,撰寫相應的軟件需求文檔。結果:UML用例圖模型和軟件需求描述文檔。綜合實踐二任務:構思待開發軟件系統的需求。方法:構思軟件需求,也可借助互聯網大眾的力量來幫助構思需求;從分析軟件的利益相關方入手,站在他們的視角來構思軟件需求,以解決實際問題;借助于UML用例圖來刻畫初步軟件需求,并撰寫初步軟件需求的文檔。實驗任務5綜合實踐一任務:分析開源軟件的需求,撰寫軟件需求文檔。方法:借助UML進行開源軟件的需求進行建模,包括原有的軟件需求和新增的軟件需求,遵循軟件需求規格說明書的標準或模板,撰寫開源軟件的軟件需求規格說明書,并對其進行評審,以發現和解決軟件需求中存在的問題。例如,結合小米便簽開源軟件的已有功能和新增功能,對其進行建模和分析,撰寫和評審軟件需求文檔。要求:建立開源軟件的用例模型、用例交互模型、分析類模型和必要的狀態模型,按照軟件需求規格說明書的規范標準,撰寫相應的軟件需求文檔。結果:開源軟件的用例交互圖、分析類圖、狀態圖以及軟件需求規格說明書。綜合實踐二任務:精化和分析軟件需求。方法:整個開發團隊一起精化和細化所構思的軟件需求,采用UML的交互圖、類圖、狀態圖等,對精化的軟件需求進行描述和建模,建立軟件需求模型;在此基礎上,遵循軟件需求規格說明書的模板,撰寫軟件需求文檔;要確保軟件需求模型和文檔的質量,對最終的軟件需求制品進行評審。要求:建立軟件需求的用例交互模型、分析類模型和必要的狀態模型,按照軟件需求規格說明書的規范標準,撰寫相應的軟件需求文檔,并需要對文檔的規范性、正確性、一致性、可理解性等進行評審。結果:軟件需求的UML模型和軟件需求規格說明書。實驗任務6綜合實踐一任務:開源軟件的體系結構設計。方法:針對開源軟件新增加的軟件需求,考慮軟件體系結構風格,搜尋可用的軟件資源(包括開源軟件),分析原有的軟件體系結構能否適應新的軟件需求,或者擴展和優化原有的軟件體系結構,引入新的設計元素(包括可重用的軟件資源),或者重新設計軟件體系結構。要求:針對開源軟件及其新構思的軟件需求,在原有軟件體系結構的基礎上,調整、優化或重新設計開源軟件的體系結構,以滿足新的軟件需求。結果:軟件體系結構模型(至少包括邏輯視點和物理視點的體系結構模型),軟件體系結構設計文檔。綜合實踐二任務:軟件體系結構設計。方法:針對關鍵軟件需求,考慮軟件體系結構風格,搜尋可用的軟件資源(包括開源軟件),設計初步的軟件體系結構;在此基礎上,對軟件體系結構進行精化設計,進一步確定其構件、子系統和設計類等設計元素,以滿足所有的軟件需求;最后給出軟件體系結構的部署模型。要求:針對構思的軟件需求,開展軟件體系結構設計,產生軟件體系結構設計模型。結果:軟件體系結構模型(至少包括邏輯視點和物理視點的體系結構模型),軟件體系結構設計文檔。實驗任務7綜合實踐一:閱讀、分析和維護開源軟件任務:開源軟件的用戶界面設計。方法:針對開源軟件新增加的軟件需求,考慮軟件的用例模型和用例交互模型,對開源軟件的用戶界面進行設計,以支持用戶與開源軟件的輸入和輸出,進而實現開源軟件的新功能。要求:基于開源軟件新構思的軟件需求,針對其用例模型和用例交互模型,要以用戶為中心進行設計和優化。結果:用戶界面原型,用戶界面的UML類圖模型以及界面跳轉的順序圖模型。綜合實踐二:開發軟件系統任務:軟件用戶界面設計。方法:基于用戶的軟件需求,針對軟件系統的用例模型和用例交互模型,設計軟件系統的用戶界面,明確每個用戶界面的設計要素,界面之間的跳轉關系,以支持用戶與軟件系統之間的輸入和輸出。要求:針對所構思的軟件需求,包括用例模型和用例交互模型,要以用戶為中心開展用戶界面的設計。結果:用戶界面原型,用戶界面的UML類圖模型以及界面跳轉的順序圖模型。實驗任務8綜合實踐一:閱讀、分析和維護開源軟件任務:開源軟件的詳細設計。方法:針對開源軟件新增加的軟件需求,考慮軟件的體系結構設計和用戶界面設計,對開源軟件進行詳細設計,以實現開源軟件的新功能。要求:基于開源軟件新構思的軟件需求,結合體系結構設計和用戶界面設計的成果,要詳細到足以支持編碼。結果:用類圖、順序圖、活動圖、狀態圖等描述的詳細設計模型。綜合實踐二:開發軟件系統任務:軟件詳細設計。方法:基于軟件系統的用例模型、用例交互模型和分析類圖,對軟件體系結構設計和用戶界面設計的具體成果進行精化和細化,通過用例設計、類設計、數據設計、子系統/軟構件設計,產生軟件詳細設計模型。要求:基于軟件需求分析、體系結構設計、用戶界面設計的具體成果,所產生的詳細設計成果要詳實到足以支持編碼。結果:用類圖、順序圖、活動圖、狀態圖等描述的詳細設計模型。實驗任務9綜合實踐一任務:編寫開源軟件的維護代碼。方法:針對開源軟件代碼,基于所選定的程序設計語言,借助CASE工具,編寫開源軟件的維護代碼,并對代碼進行單元測試和調試,以發現和解決代碼中存在的缺陷和問題。要求:基于設計模型和文檔來編寫維護代碼,要對所編寫的代碼進行質量保證,以發現和解決代碼中的缺陷。結果:開源軟件的維護代碼。綜合實踐二任務:編寫所開發軟件系統的程序代碼。方法:基于軟件設計模型和文檔,借助所選定的程序設計語言,利用編碼、測試和調試等CASE工具,編寫目標軟件系統的源程序代碼,并對代碼進行單元測試和調試,以發現和解決代碼中存在的缺陷。要求:基于設計模型和文檔來編寫代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論