日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

软件构造的步骤

發(fā)布時(shí)間:2023/12/15 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件构造的步骤 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

軟件構(gòu)造從用戶需求開(kāi)始

需求即用戶對(duì)軟件功能的描述,用戶通過(guò)需求告訴程序員他需要收集什么數(shù)據(jù),這些數(shù)據(jù)該怎么處理,最后他希望看到什么結(jié)果。需求中描述的場(chǎng)景和內(nèi)容是軟件處理的核心領(lǐng)域,程序員需要通過(guò)代碼把它表現(xiàn)出來(lái)。?
即使用戶是和你一樣的程序員,需求也不可能完善到直接指導(dǎo)編碼的地步,而且軟件的構(gòu)建是一個(gè)“邪惡(Wicked)”的過(guò)程,也就是說(shuō)某些問(wèn)題在設(shè)計(jì)階段并不顯山露水,只有在構(gòu)建過(guò)程中它們才會(huì)逐漸暴露出來(lái)。這就要求程序員深入問(wèn)題的領(lǐng)域,了解領(lǐng)域的相關(guān)知識(shí),對(duì)領(lǐng)域做出合理的抽象,并在軟件構(gòu)建過(guò)程中不斷完善它,直到完全實(shí)現(xiàn)用戶需求,具備現(xiàn)代軟件的八個(gè)主要特征。

?

二。何謂領(lǐng)域和領(lǐng)域模型

?

領(lǐng)域即業(yè)務(wù)領(lǐng)域,是用戶進(jìn)行業(yè)務(wù)活動(dòng)的主要內(nèi)容。一些領(lǐng)域是和現(xiàn)實(shí)世界中的實(shí)體對(duì)應(yīng)的:如雇員管理系統(tǒng)中的雇員,圖書(shū)管理系統(tǒng)中的圖書(shū),零售系統(tǒng)中的商品,而有些領(lǐng)域

和現(xiàn)實(shí)世界中的虛擬實(shí)體相對(duì)應(yīng):如金融系統(tǒng)中的借貸關(guān)系,商務(wù)系統(tǒng)中的合同關(guān)系等。軟件的主要任務(wù)是數(shù)據(jù)的收集,整理,表現(xiàn),存儲(chǔ)和傳輸,而數(shù)據(jù)的基本單位就是領(lǐng)域模型。

?領(lǐng)域模型是現(xiàn)實(shí)世界中的實(shí)體在代碼中的體現(xiàn)和合理抽象,它能表現(xiàn)出實(shí)體的基本信息。如果可以說(shuō)軟件環(huán)境是現(xiàn)實(shí)業(yè)務(wù)活動(dòng)在計(jì)算機(jī)世界的模擬的話,那領(lǐng)域模型就是現(xiàn)實(shí)實(shí)體在計(jì)算機(jī)世界的模擬。

?

三。軟件構(gòu)建的核心是領(lǐng)域模型的建立

?領(lǐng)域模型是軟件需要處理的數(shù)據(jù)的基本單元,只有建立起了領(lǐng)域模型,你才能知道軟件需要收集,整理,表現(xiàn),存儲(chǔ)和傳輸?shù)膶?duì)象是什么。建立領(lǐng)域模型是軟件構(gòu)建的核心環(huán)節(jié),如果它沒(méi)有被合理抽象出來(lái)的話,

軟件能提供的服務(wù),數(shù)據(jù)的持久化和數(shù)據(jù)在軟件中的表現(xiàn)都是空中樓閣,因此我們可以說(shuō),從現(xiàn)實(shí)世界中的實(shí)體中抽象出合理的領(lǐng)域模型是軟件構(gòu)建中提綱挈領(lǐng)的一個(gè)環(huán)節(jié),這一步是軟件各個(gè)層次

的基石,也是軟件構(gòu)建的起點(diǎn)。不建立領(lǐng)域模型并非一定不能造就出能運(yùn)轉(zhuǎn)正常的軟件,所謂的表維護(hù)程序就是典型例子,它們由某些懶惰,愚蠢和無(wú)能的程序員造就,他們從來(lái)不去認(rèn)真思考用戶究竟想知道什

么,程序究竟在處理什么,而是翻譯堆砌代碼,僅僅讓它能跑出一個(gè)正確的結(jié)果而已,這樣的程序員永遠(yuǎn)成為不了優(yōu)秀的程序員,他們生產(chǎn)出的代碼也是一堆有危害性的幾乎無(wú)法維護(hù)的垃圾,這堆垃圾將給公司和個(gè)人帶來(lái)潛在的危害,相對(duì)而言,對(duì)個(gè)人的危害性更大,有時(shí)甚至可以斷送一個(gè)程序員的職業(yè)生涯。

?

四。如何建立起領(lǐng)域模型

?

途徑一:分析業(yè)務(wù)中的業(yè)務(wù)流和業(yè)務(wù)規(guī)則,從中歸納出功能的基本單位,這個(gè)基本單位就是領(lǐng)域模型之一或領(lǐng)域模型的一部分。

?

途徑二:從原型界面中觀察顯示的數(shù)據(jù),它們是領(lǐng)域模型的外在體現(xiàn)。

?

途徑三:從持久化介質(zhì)中推導(dǎo)領(lǐng)域模型,如從數(shù)據(jù)庫(kù)的表結(jié)構(gòu)和ER圖中推導(dǎo)領(lǐng)域模型。

?

途徑四:向領(lǐng)域?qū)<覇?wèn)詢業(yè)務(wù)流程中的核心單元是什么,甚至自己進(jìn)入問(wèn)題領(lǐng)域去學(xué)習(xí)探究。

?

途徑五:將不熟悉的領(lǐng)域和相似的自己熟悉的領(lǐng)域做對(duì)照,類比出領(lǐng)域模型。

?

途徑六:從已有的知識(shí)系統(tǒng)中學(xué)習(xí),參考功能相似的軟件代碼,向優(yōu)秀代碼學(xué)習(xí)。

?

五。如何完善領(lǐng)域模型

領(lǐng)域模型是經(jīng)常發(fā)生相互聯(lián)系的,上一步只是建立了孤立的,僅能表現(xiàn)單個(gè)領(lǐng)域?qū)ο笮畔⒌哪P?#xff0c;要使它們豐富完善起來(lái),需要做以下工作:

?1)

從程序的功能角度入手,考慮需要幾個(gè)領(lǐng)域?qū)ο蟛拍芡瓿蛇@個(gè)功能,再由此考慮領(lǐng)域?qū)ο笾g的聯(lián)系。這方面的典型例子是需要雇員類和資源類的協(xié)助,借貸關(guān)系才能完整的表現(xiàn)出來(lái)。

2)

從領(lǐng)域?qū)ο蟊旧砣胧?#xff0c;考慮領(lǐng)域?qū)ο笾g是否有級(jí)聯(lián),回溯,包含等常見(jiàn)關(guān)系。如個(gè)人信息包含地址信息,公司類和雇員類的級(jí)聯(lián)關(guān)系,雇員類查找自己所屬公司的回溯關(guān)系等。?

3)

從反持久化入手,考慮把一個(gè)領(lǐng)域?qū)ο髲拇鎯?chǔ)介質(zhì)中提取出來(lái)需要那些領(lǐng)域?qū)ο蟮膸椭?#xff0c;這些領(lǐng)域?qū)ο笫峭ㄟ^(guò)那種方式聯(lián)系在一起的,這方面的典型例子是表之間的主鍵和外鍵,領(lǐng)域?qū)ο笸瑯右惨哂邢鄬?duì)應(yīng)的成員變量。

?

六。領(lǐng)域?qū)ο笤O(shè)計(jì)完成之后

一旦領(lǐng)域?qū)ο笤O(shè)計(jì)完成,程序的設(shè)計(jì)工作就可以說(shuō)完成了一大半,其余工作都是圍繞領(lǐng)域?qū)ο髞?lái)進(jìn)行,這些工作有:

1)

從考慮怎么為領(lǐng)域?qū)ο蠓?wù)入手,為領(lǐng)域?qū)ο笤O(shè)計(jì)服務(wù)類,服務(wù)類的常用方法有添加,刪除,更新,查詢領(lǐng)域?qū)ο笏姆N以及從ID取得一個(gè)領(lǐng)域?qū)ο?#xff0c;判斷持有某個(gè)ID

的領(lǐng)域?qū)ο笫欠翊嬖诘取>唧w的操作實(shí)際上由服務(wù)類的持久層類成員完成,服務(wù)類實(shí)際上起到的是一個(gè)領(lǐng)域?qū)ο笊舷聜鬏斖ǖ赖淖饔谩R话銇?lái)說(shuō)Service

層的六大函數(shù)是add,delete

?

轉(zhuǎn)載于:https://www.cnblogs.com/xxdcxy/p/6417184.html

總結(jié)

以上是生活随笔為你收集整理的软件构造的步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。