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