實驗八 團隊作業5:團隊項目需求建模與系統設計


項目 內容
課程班級博客鏈接 班級博客鏈接
這個作業要求鏈接 作業要求鏈接
團隊名稱 TheSuperego
團隊成員分工描述 公 * 瑜:團隊項目軟件系統設計說明書,系統數據庫邏輯結構
陳 * 弟:完善WBS,軟件系統總體結構設計
楊 * 霞:撰寫整體博客,項目互評,任務三
張 * 盼:項目系統需求規格說明書,任務二
團隊的課程學習目標 1.學習使用UML建模工具Visio
2.掌握面向對象需求分析建模技術
3.理解和掌握面向對象軟件系統設計原理、設計過程和技術
這個作業在哪些方面幫助團隊實現學習目標 1.學會熟練使用Visio常用UML圖形繪制工具
2.選擇適當的UML模型,建立問題域對象模型
3.應用面向對象分析方法,完善軟件需求設計說明書
4.完善需求建模與系統設計說明書
團隊博客鏈接 團隊博客
團隊項目Github倉庫地址鏈接 Github倉庫地址鏈接

任務1:按團隊項目互評名單,對互評方《實驗七 項目需求分析建模與系統設計(1)》的項目成果進行評價

  • 結對方團隊博客鏈接:鏈接

  • 結對方Github項目倉庫鏈接:倉庫鏈接

  • 符合(1)要求的博客評論:

  • 結合實驗七評分標准,給出互評團隊作業評分成績:

     對結對方博客整體的內容閱讀后,互評方作業成績為98分

任務2:使用Visio,應用面向對象分析方法(OOA),完善團隊項目的《軟件需求規格說明書》,並將該文檔上傳到團隊項目Github倉庫
(1)采用用例圖表示項目功能需求,模型使用規范一致的圖形符號和文字描述內容;

  • 本系統擬實現學生注冊登錄本系統,通過查看教師發布的選題信息與教師信息來選擇課題,並進行個人信息的增、刪、改功能; 教師則通過注冊登錄進入本系統,對學生的畢業設計進行課題管理,對學生上傳的畢業設計進行選題確認,並進行個人信息的增、刪、改功能;管理員則在進入該系統后對基礎信息、學生的選題情況及用戶進行管理。

(2)參考《構建之法—現代軟件工程》8.5節功能的定位和優先級,給出功能分析的四個象限;

  • 四象限分析法:源於四象限圖,又叫二維象限圖。四象限分析法是在平面內通過對兩個相互獨立的指標(屬性、性質、特征)的正反兩個方向進行兩兩組合,最終將事務划分到四個組合區域,對每一個區域進行分析並制定相應的策略。
    用四象限分析法將對我們項目進行划分如下:

(3)選擇適當的UML模型,建立問題域對象模型;

  • 在學習面向對象分析之后,我們知道它的首要的工作,是建立問題域的對象模型,模型描述了現實世界中的“類與對象”以及它們之間的關系,表示了目標系統的靜態數據結構。建立對象模型的工作步驟,首先確定對象類和關聯,對於大型復雜的問題還要進一步划分若干個主題,然后給類和關聯增添屬性,以進一步描述它們,接下來利用適當的繼承關系進一步合並和組織類。而對象類中的操作的最后確定,則需要建立了動態模型和功能模型確定之后,因為這兩個子系統模型更准確地描述了對類中的提供的服務需求。根據建立問題域的對象模型步驟,我們建立了系統的UML模型:

(4)采用OOA技術編制《XXX軟件需求規格說明書1.2》上傳到團隊項目Github倉庫截圖

(5)完善項目的WBS,估計各項任務所需時間

任務3:查閱資料,回答以下問題:

(1)什么是C/S結構?

  • C/S結構:Client/Server,是一種軟件系統體系結構,即客戶機和服務器結構。C/S結構通常采取兩層結構。服務器負責數據的管理,客戶機負責完成與用戶的交互任務。在C/S結構中,應用程序分為兩部分:服務器部分和客戶機部分。服務器部分是多個用戶共享的信息與功能,執行后台服務,如控制共享數據庫的操作等;客戶機部分為用戶所專有,負責執行前台功能,在出錯提示、在線幫助等方面都有強大的功能,並且可以在子程序間自由切換。
  • C/S結構可以看做是胖客戶端架構。客戶端實現絕大多數的業務邏輯處理和界面展示,作為客戶端的部分需要承受很大的壓力,從分利用客戶端的資源,對客戶機的要求較高。

(2)什么是B/S結構?

  • B/S結構:即瀏覽器和服務器結構,Browser/Server。它是隨着Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本。
  • B/S結構可以看作是瘦客戶端,只是把顯示的較少的邏輯交給了Web瀏覽器,事務邏輯數據處理在放在了Server端,這樣就避免了龐大的胖客戶端,減少了客戶端的壓力。B/S結構的系統無須特別安裝,只有Web瀏覽器即可。當然AJAXFlex等等的普遍使用也有富客戶端的發展方向。

(3)什么是MVC設計模式?

  • MVC是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。

    • Model(模型),是程序的主體部分,主要包含業務數據和業務邏輯。在模型層,還會涉及到用戶發布的服務,在服務中會根據不同的業務需求,更新業務模型中的數據。
    • View(視圖),是程序呈現給用戶的部分,是用戶和程序交互的接口,用戶會根據具體的業務需求,在View視圖層輸入自己特定的業務數據,並通過界面的事件交互,將對應的輸入參數提交給后台控制器進行處理。
    • Controller(控制器),Controller是用來處理用戶輸入數據,已經更新業務模型的部分。控制器中接收了用戶與界面交互時傳遞過來的數據,並根據數據業務邏輯來執行服務的調用和更新業務模型的數據和狀態。MVC模式將它們分離以提高系統的靈活性和復用性,不使用MVC模式,用戶界面設計往往將這些對象混在一起。MVC模式實現了模型和視圖的分離。

任務4:以任務2的成果為基礎,使用Visio,應用面向對象設計(OOD)方法,撰寫團隊項目軟件系統設計說明書,以回答:軟件是如何實現用戶需求的?
(1)采用適合的軟件設計模式設計軟件系統總體結構;

(2)設計軟件系統數據庫邏輯結構;

(3)說明軟件重用方案;

  • 代碼的重用性
    在開發系統的過程當中,我們采用的代碼都是比較簡單的,所以在某種程度上來說,如果有人想在我們的代碼上繼續研究開發,可以繼續使用我們的代碼去開發,但是如果他們想用自己的代碼去實現自己的系統目標,也可以采用我們系統的相關類,以及對象的重用,這些都是相對來說比較簡單的,開發者可以簡單的讀懂代碼的類以及對象,然后可以根據他們的想法去開發自己的項目。
  • 項目的重用性
    在開發項目的過程中,因為我們設計的是畢業設計選題系統,所以在各項功能方面相對於一些高要求的高校來說,可能還村子啊一定的欠缺,但是基本上是適用的。那么在后期的開發研究的過程當中,我們還是可以繼續在這個項目的研究上進行開發,當然,一些同行要是想在我們的系統上繼續進行開發,也是相對來說可以的,因為在一些功能的設計上,可能還是不太健全,但是在經過后期的修改之后,這樣的情況相對來說是可以改變的,然后將系統的功能完善,爭取適合所有高校。
  • 項目的領域上
    在項目的領域方面,我想我們的項目是跟着社會的發展走,隨着在校大學生人數的不斷增加,教務系統的數據量也不斷的上漲。以往的畢業設計選題是隨堂報名。這種方法雖然直接,但是造成選題的盲目性和教務處處理數據的繁重性。為了減輕教務處工作,以及每個學生更好的選擇自己所喜歡的課題。針對學生選題這一環節,本系統從學生網上自主選題以及教師的課題發布兩個大方面進行了設計,基本實現了學生的在線信息查詢、選題功能以及教師對課題信息發布的管理等功能。

(4)設計關鍵類的重點服務。

  • 用戶登錄
    畢業設計選題設計系統使用時段比較集中,要保障在學生、教師、管理員在登錄高峰期系統不會崩潰。
  • 權限管理
    管理員對角色和用戶進行權限信息的配置。
  • 課題管理
    此模塊的功能是老師設置課題,學生來瀏覽課題。教師在系統上報課題,設置課題難度,修改課題,添加課題和刪除課題;學生能夠瀏覽本專業所有老師上報的可選課題。

(5)采用OOD技術編制《XXX軟件設計說明書1.2》上傳到團隊項目Github倉庫的截圖

完成各項任務所花費的時間:

任務類型 預計花費時間(h) 實際花費時間(4)
任務一 0.3 0.5
任務二 3 5
任務三 0.25 0.3
任務四 4 6
任務五 3 3.5

對比陳述結構化軟件分析與設計、面向對象分析與設計兩類軟件開發技術的異同

  • 相同點:

    • 結構化開發方法和面向對象的方法都是軟件系統的開發方法。
    • 結構化開發方法和面向對象的方法在運用分解和抽象原則上的要求是完全一致的。分解即化整為零,將問題剝繭抽絲,層層消化﹔抽象則是通過分解體現﹐在逐層分解時,上層是下層的抽象,下層是上層的具體解釋和體現,運用抽象可以不用一次考慮太多細節,而逐漸的有計划有層次的了解更多細節。
    • 局部化和重用性設計上的一致。局部化是軟件開發中的一個重要原則,即不希望軟件一部分過多地涉及或影響軟件的其它部分。而面向對象方法則采用數據﹑代碼的封裝,即將數據﹑代碼和操作方法封裝成一個類似“黑箱”的整體對象,提高了程序的可靠性和安全性,同時增強了系統的可維護性。也就是說面向對象方法比結構化方法的運用更加深入更徹底。
  • 不同點:

    • 結構化方法是一種面向數據流的開發方法,面向對象方法是一種面向對象的開發方法。
    • 處理問題時的出發點不同。結構化方法是強調過程抽象化和模塊化,以過程為中心構造或處理客觀世界問題的,它是一種面向過程的開發方法﹔面向對象方法強調把問題域的要領直接影射到對象及對象之間的接口上,是用符合人們通常的思維方式來處理客觀世界的問題。
    • 處理問題的基本單位和層次邏輯關系不同。結構化方法把客觀世界的問題抽象成計算機可以處理的過程,處理問題的基本單位是能清晰表達過程的模塊,用模塊的層次結構概括模塊或模塊間的關系和功能﹔面向對象方法是用計算機邏輯來模擬客觀世界中的物理存在,以對象的集合類作為處理問題的基本單位,盡可能使計算機世界向客觀世界靠攏,以使問題的處理更直截了當,面向對象方法是用類的層次結構來體現類之間的繼承和發展。

實驗總結:

  • 楊麗霞:本次團隊作業,首先是要學會Visio建模工具學習,然后用此工具設計系統軟件並且用面向對象設計方法對系統進行設計,基本學會使用Visio繪圖軟件,其次是應用面向對象設計方法設計項目需求分析建模和軟件系統設計,雖然在設計的過程中方存在很多的問題,但是經過和組員探討修改,以及前期合理的分工如期的完成了本次的任務。
  • 公海瑜:在此次實驗中,我主要負責使用Visio,應用面向對象設計(OOD)方法,撰寫團隊項目軟件系統設計說明書。編寫過程中需要繪制軟件系統總體結構和軟件系統數據庫邏輯結構,我們選擇使用Visio軟件,然后用此工具設計系統軟件UML,多次練習之后已基本掌握該軟件使用方法。編寫過程中應用新方法,讓我對我們團隊系統更為了解,能夠及時查漏並加以完善,討論其他任務時,我對面向對象軟件系統設計原理、設計過程和技術掌握更為扎實。在我們團隊組員的明確分工和大家積極配合的情況下,我們順利完成了本次實驗,經歷了幾次團隊作業,慢慢地大家有了默契,任務完成也積極,大家繼續保持。
  • 張興盼:本次任務主要是對項目實施Visio建模工具學習、項目需求分析建模與系統設計,我主要負責的是用Visio建模工具設計完善項目需求分析規格說明書。在制作項目 用例圖、象限圖及UML模型的過程中我意識到,想要實現一個系統的前提是一定要對我們期待系統能實現的功能有一個深刻的規划,否則就會覺得任務繁瑣難以推進。大家都積極地查資料、參照其他已上線的系統所具有的功能,因此項目系統的預期功能也逐漸趨於完整。
  • 陳來弟:通過完成此次實驗,基本掌握了如何使用Visio畫圖,如何使用軟件設計模式設計軟件系統總體結構,設計軟件系統數據庫邏輯結構,以及掌握了軟件設計模式等概念,在協作過程中,出現問題及時交流,互幫互助,深切體驗到了合理分配任務能提高完成效率。希望在以后的協作中能更加順利,取得滿意的答案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM