一、提出問題
1.樹狀遍歷式尋找問題
每個問題都不是單一存在的,它都有相關(guān)問題,猶如一棵樹一樣,主問題就是主樹桿,主問題伴隨的其他問題,就是支樹桿,以次類推。首先不要怕麻煩,每當(dāng)一個問題提出,必須提出盡量多的相關(guān)新問題。提出問題的方法:順藤摸瓜。
比如:寫一個通用編輯器程序,此程序為自己或別人開發(fā)其他專業(yè)編輯器打下可靠穩(wěn)定的基礎(chǔ)。
1)問題:什么是通用編輯器。編輯器面向的對象應(yīng)該是不確定的。
2)如果數(shù)據(jù)類型不確定,我們?nèi)绾未_定程序編寫的對象??梢耘e出一些可能的假設(shè)。假設(shè)我們將此通用編輯器用作程序源代碼編輯,那么就應(yīng)該有中斷、單步執(zhí)行等設(shè)置,這導(dǎo)致數(shù)據(jù)不能封裝在編輯器內(nèi)部,應(yīng)該由后期開發(fā)指定數(shù)據(jù)結(jié)構(gòu)。
3)如果是程序編輯器,關(guān)鍵字的特顯必不可少,所以顯示的屬性應(yīng)該給出接口。
4)諸如關(guān)鍵字此類的是否還有其他需要特顯的,那么,應(yīng)該注意到特顯類不僅僅是一種,程序設(shè)計時,最好抽象出特顯的方法與數(shù)據(jù)結(jié)構(gòu)(不管以后有多少不可預(yù)知的特顯內(nèi)容)??梢陨钊肟紤]特顯接口應(yīng)該如何給出,才能支持任意特顯方式,它還需要哪些信息。
5)抽象特顯類時,應(yīng)該舉出盡量多的可能性,綜合考慮。
6)問題:哪些內(nèi)容需要特顯。編輯器很難知道,數(shù)據(jù)類應(yīng)該自己了解。所以,特顯內(nèi)容的定義必須有一個機制讓后期開發(fā)時使用。
7)問題:源代碼編輯器有自動縮排、詞法、語法分析,這些操作如何在編輯器中體現(xiàn)??紤]語法類接口。是否有收縮與展開操作,接口又如何。
8)又假設(shè):后期要擴展成字處理程序。數(shù)據(jù)有文本、圖象、特殊公式編輯、段落概念、表格等。
9)送進編輯器的數(shù)據(jù)可能是一組含有控制字的數(shù)據(jù),問題:如何獲得讓編輯器知道不同數(shù)據(jù)的不同顯示操作。編輯器肯定無法全知,所以,干脆交給后期開發(fā)需求處理。
10)未知數(shù)據(jù)應(yīng)該有:顯示方法、光標(biāo)定位處理等
11)光標(biāo)定位需要當(dāng)前坐標(biāo),所以,必須有接口讓編輯器知道數(shù)據(jù)寬高。
12)綜合結(jié)論:應(yīng)該有一個接口機制。凡特殊操作的內(nèi)容,交給后期處理,但通用編輯器應(yīng)該做好數(shù)據(jù)管理和傳送的工作,而這些工作,不管哪種編輯器都需要。
首先任其深入提問,雖然問題可能多得十分復(fù)雜或凌亂,但它對即將做的系統(tǒng)設(shè)計絕對有幫助,最好把每個問題都有一個清楚的了解,千萬不要急于設(shè)計系統(tǒng)。通過這些提問和假設(shè),就可清楚地分析我們所作的軟件應(yīng)該實現(xiàn)哪些內(nèi)容,哪些內(nèi)容實現(xiàn)有難度,實現(xiàn)這些內(nèi)容的大體方法,通用編輯器能作什么。通過上列系列提問和解答,我們可以認(rèn)為,通用編輯器僅僅是一個以行為基本編輯單位的編輯器摸板。編輯器不僅自己有編輯操作,同時允許外部提供特殊數(shù)據(jù)對象的編輯操作,最終實現(xiàn)文本編輯、圖形編輯、表格編輯、公式編輯一體化。數(shù)據(jù)外部實現(xiàn),將允許后期確定內(nèi)容屬性。
上述方法基本上確保了軟件有好的可靠性、擴展能力、性能、重用性和系統(tǒng)化。想高效率生產(chǎn)系列軟件,確實應(yīng)該考慮的更多。
2.直接切入目標(biāo)問題
直接提出軟件要完成的系列任務(wù),通過考慮任務(wù)的實現(xiàn),羅列問題,在問題的解答過程中反思任務(wù)的需求。這樣的方法可以快速設(shè)計出軟件開發(fā)方案。
仍然以通用編輯器為例:
1)編輯對象有:文本、圖形、圖象、表格等。
2)操作有:焦點移動、增加、刪除、存取盤、選擇塊、粘貼拷貝、縮進、展開收縮、書簽、中斷設(shè)置、單步執(zhí)行標(biāo)記等。操作有分文本、圖形圖象、表格等的操作編輯。
3)顯示:文本的不同字體風(fēng)格顯示、圖形的顯示、圖象的顯示、表格等的顯示。
4)狀態(tài)設(shè)置:改寫插入、段落格式設(shè)置、標(biāo)題控制、編輯器專業(yè)化的設(shè)置等
5)考慮各項功能的實現(xiàn)方案,發(fā)現(xiàn)問題。
6)如果有沒有考慮到的,增加進去。
7)經(jīng)過許多的方案設(shè)計,綜合考慮和
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html