從需求分析看軟體開發的挑戰

2022-07-11 02:00:11 字數 2142 閱讀 8717

我們小組的題目是《基於訂單的家庭工廠協作系統》,系統目的是幫助一組家庭式工廠通過本系統進行協同配合,共同生產和組裝,完成最終訂單。專案要求實現基於網頁或手機端的系統。就課程當前幾個關鍵的時間任務節點,我想談一談我的感悟。

在需求分析之前老師首先讓我們進行了領域分析,並完成乙個領域分析報告。這個任務是本科時開發系統從來沒有經歷過的,可以說是第一次進行領域分析的調查。老師的目的是通過領域分析讓我們對我們要完成的系統的業務有乙個深入的了解,一開始我們並沒有意識到領域分析的重要性,覺得和需求分析沒有什麼區別。但是隨著專案的進行,我才意識到領域分析的重要性,因為在專案的說明中只是粗略的說到了系統應該具備的關鍵功能,需求並不是很詳細,因此需要通過領域分析來認識到家庭式工廠是什麼,它們應該怎麼協作,這對後期我們系統的任務排程功能來說是至關重要的。

因此為了更好的進行本系統的領域分析,我們小組進行了線下的的討論會,我們小組五個人有四個人在同乙個寢室,因此進行線下討論還是比較方便的,這相對於其他小組來說可能是個優勢把。在討論的過程中,大家的分歧還是挺大的,經過討論最後大家也是統一了系統在「協作」這個概念上的認識,但是儘管如此,現在看來當初的領域分析也是不夠詳盡的,尤其是在任務排程這一塊,將商品拆解為零件之後分配給各個工廠進行加工,它們之間的優先順序如何,最後裝配的順序又是如何確定,這些問題在我們進行需求分析時又暴露了出來,這也是我們小組當前著重要解決的問題。

第一次需求分析之前我們小組準備了系統的用例圖、類圖以及幾個關鍵功能的時序圖和狀態圖,但遺憾的是這次需求分析由於時間的問題,並沒有輪到我們小組上去講,因此沒有得到老師的反饋,因此我們沒有及時意識到我們小組在需求中的問題。 同時我們小組的分工上也出現了老師後來提到的問題——粗略地按圖來劃分工作,這導致了每個人對系統的整體把握不夠,雖然繪圖之前我們進行了討論,繪圖之後也進行了線下會議,大家一起來**每個圖設計上的問題。但是,自己沒有親手參與圖的繪製,那對功能以及模組之間聯絡地認識也只是淺顯地。就拿我自己來說,我負責畫時序圖,但是畫好時序圖的前提就是畫好用例圖和類圖,儘管看了小組其他成員畫的用例圖和類圖,但是各個用例的關係以及類之間的關係我真的理解到位了嗎?捫心自問確實是沒有的,如果自己對用例圖和類圖沒有足夠深入的理解,那麼時序圖畫出來後肯定會是存在問題的。很遺憾第一次需求分析時沒有及時認識到這個問題,也導致在需求評審時我們的展示並不如人意。

在進行需求評審前我們小組組織了線下會議,對需求進行了第二輪的討論,線下討論的作用是顯而易見的,大家會互相提出自己的意見從而取長補短最終達成一致。第二輪需求分析的產出物也是明確的,那就是對各個功能進行了更詳盡的分析,並對資料庫進行了設計,這個過程對我個人而言收穫是很大的,我對系統的參與者、各個角色的功能都有了深入了解。比如,我們系統的角色總共有三種,分為客戶、總經理和家庭工廠負責人,客戶這個角色的功能就是類似普通**使用者一樣,可以檢視本系統目前有的商品,並進行下單。家庭工廠負責人負責各個家庭工廠的業務,對於這個角色的功能,大家之間的分歧主要在於系統如何把握各個家庭工廠之間的生產進度,最終我們達成了一致——每個家庭工廠屬於小作坊,不可能有完備的生產管理的硬體,因此每個工廠每天的進度都是由家庭工廠負責人進行匯報的。系統中最重要的角色就是總經理,大家的分歧在於總經理究竟要不要對任務的分配進行干預,有的同學覺得任務排程完全由排程模組負責,而我認為所有任務的分配必須經過總經理的同意,總經理可以對系統分配的任務進行調整,這也更符合實際的生活。最後經過激烈的討論決定採用總經理負責的這種模式。

需求評審中老師對我們組的系統指出了許多不足,首先是分工有問題——不能簡單的面向產出物進行分工,而是每個人都要參與到整個系統的分析中來,從總體上對系統進行把握,再從模組上進行分工,如此才能對各模組功能的細節有更好的實現;其次是比如非功能需求,我們小組的非功能需求明顯就是借鑑了其他的非功能需求,並沒有深入考慮到我們這個系統中的非功能需求是什麼,在**需要限制,限制的規模等;最後就是我們系統沒有體現出協作這個概念來,老師指出了我們訂單分配這個功能——到底各個家庭工廠如何分配,之間的優先順序如何,怎麼樣才能保證最後大家的協作能完成任務。這些我們都沒有考慮好,因此如果不及時完善對需求的分析,最後我們的系統可能就會變成乙個簡單的資訊系統,沒有體現出協作的概念,這也就失去了這個專案的意義了。

在上面的分析中我指出了我們小組目前存在的一些問題,這也是我們會繼續改進的地方。總的來說,通過大半個學期的學習,我還是收穫了很多軟體開發的知識,比如團隊協作的重要性、領域分析的重要性 ,最重要的就是需求分析——必須立足整個系統,先從全域性進行把握,再逐個分解,這樣才能設計出好的系統。接下來我們會對系統展開編碼工作,尤其是老師提到的任務分配這個功能,我們會再次進行線下會議,明確各個工廠之間應該如何協作。

從需求分析看軟體開發的挑戰

近年來,軟體開發行業的發展勢頭非常強勁,但是不斷變化的市場需求給軟體行業的生存和發展帶來了巨大的衝擊和挑戰。在市場需求的指導下,中國軟體開發行業正在實施一系列改革措施,以確保已開發的軟體專案能夠更適合現代社會的發展需求。如果您想在第一時間掌握軟體專案的實際市場需求,就需要在開發過程中合理地進行需求分...

從需求分析看軟體開發的挑戰

至今位置,本組進行了多次高強度的線下小組討論,對這一題目的需求有了較為精準的理解。最初拿到 基於家庭工廠的訂單協作系統 這一題目時,我們五位組員對這一標題各有一些自己的簡單遐想,能夠達成的共識是系統的核心是訂單的分解分配,而無需關心消費者下單這一外部流程。從一開始能夠將系統的邊界劃分清楚,對於我們來...

從需求分析看軟體開發的挑戰

這次需求分析做的確實不如人意,在評審前本來有一次需求模型整理問答的機會,我們小組由於時間原因沒有能夠去做展示,這一定程度上導致我們的需求評審做的比較偏離重點,不過更主要的原因是我們本身沒有能夠把握好需求設計應該做些什麼。這是我們在需求方面沒有做好的地方,之後我對需求分析這部分的真正目的也進行了思考。...