1. 程式人生 > >需求分析之資料流圖

需求分析之資料流圖


    以前眼力的軟體工程,雖然重要,但是卻一直不太瞭解其用處到底有多大。現在開始漸漸接觸大工程了,才開始真正體驗到軟體工程的威力。
    沒有好的需求分析,軟體等於白做;沒有好的系統設計,做了也要重做。在大型軟體中,人的因素越來越大,遠遠超過技術的因素。
    比如,一些ERP系統的實施成敗並不是因為軟體是否研發成功,而是在部署時遇到多大的難度。一套被人到處抵制的軟體系統,是不會得到什麼好的下場的。
    另外,就是一個系統中,參與的人數越多,一個人的編碼量就越少。(by gashero)這個少到了什麼程度呢,據說Vista的開發,9000名工程師,平均是1000行/人*年。在一個小專案中,這些工程師一天做到1000行也不是問題,但是在這種巨型專案在中,大家都很無奈。
    在這種巨型專案中的工程師,其存在的主要目的已經不是編碼了,而是完善大家的想法,一起出力做好軟體系統設計,做好需求分析。
    剛剛工作的我,剛開始也是非常急於參與編碼,快些出成績,但是總是被叫停,甚至根本不允許我編碼。現在經歷了兩個多月的需求分析,才漸漸領略了大系統之大,也明白了實施前期工作的重要性。不過還是如此,作為一個急於編碼的coder,偶被小鄙視了一下。
    對了,談談資料流圖,剛剛開始做一個系統時,被要求做資料流圖,很鬱悶。於是到處找資料,試圖找更加先進的工具來提高自己的軟體工程前期的生產力。但是,結果當然是白費的,在一個真正的企業當中,他們所擁有的所有的知識幾乎都是最前言的。(by gashero)比如這個資料流圖,就是屬於結構化分析方法SA中的一種分析手段,幾乎可以說是做需求分析的唯一方法。
    這期間我也試過學學UML,但是最終無果。UML是用於系統設計和詳細設計的工具,不過唯獨沒有涉及需求分析。最終的需求分析和還是要用到資料流圖。當然這個UML也沒有白學。資料流圖僅僅是一種需求分析工具,是根本無法取代系統設計和詳細設計的。所以粗略的做好資料流圖,描述好了整個目標系統中的工作流程和職能分佈之後就可以進行系統設計了。到頭來還是說,資料流圖能夠的僅僅是系統的資料流動,對於邏輯描述和更加具體的東西還是需要使用其他工具的,比如UML。
    資料流圖總的來說還是比較粗略的一種工具,所以還需要在需求分析階段,已資料流圖為主配合其他工具一同工作,這些工具包括資料字典,小說明(加工說明),判定表,判定樹。
    有空去參加系分考試去看看,儘管不抱什麼希望,但是追求系分的過程卻可以讓我更加深入的瞭解軟工的知識。
    其實軟工也是一種技術,掌握的軟工的程式設計師才有更大的把握能力,大家共勉。