摘要:軟件工程之詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)的基本任務(wù): (1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過程為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)的詳細(xì)算法描述出來(lái)。 (2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)確切的定義。
軟件工程之詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)的基本任務(wù):
(1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過程為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)的詳細(xì)算法描述出來(lái)。
(2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)確切的定義。
(3)對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì)即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。
(4)其他設(shè)計(jì):根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì):
①代碼設(shè)計(jì)。為了提高數(shù)其他設(shè)計(jì):其他設(shè)計(jì)根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì):代碼設(shè)計(jì)。據(jù)的輸入、分類、存儲(chǔ)、檢索等操作,節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行代碼設(shè)計(jì)。
②輸入輸出格式設(shè)計(jì)。輸出格式設(shè)計(jì)。人機(jī)對(duì)話設(shè)計(jì)。對(duì)于一個(gè)實(shí)時(shí)系統(tǒng),用戶與計(jì)算機(jī)頻繁對(duì)話,因此要進(jìn)行對(duì)話方式、內(nèi)容、
③人機(jī)對(duì)話設(shè)計(jì)。格式的具體設(shè)計(jì)。
(5)編寫詳細(xì)設(shè)計(jì)說明書。
(6)評(píng)審。對(duì)處理過程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。
結(jié)構(gòu)化程序設(shè)計(jì)方法:
詳細(xì)設(shè)計(jì)是軟件設(shè)計(jì)的第二階段,主要確定每個(gè)模塊具體執(zhí)行過程,也稱“過程設(shè)計(jì)”,詳細(xì)設(shè)計(jì)的目標(biāo)不僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,并使設(shè)計(jì)出的處理過程清晰易讀。過程設(shè)計(jì)中采用的典型方法是結(jié)構(gòu)化程序設(shè)計(jì)(簡(jiǎn)稱SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是實(shí)現(xiàn)詳細(xì)設(shè)計(jì)目標(biāo)的關(guān)鍵技術(shù)之一。
計(jì)算機(jī)軟考軟件設(shè)計(jì)師知識(shí)點(diǎn):用Java實(shí)現(xiàn)的日志切割清理工具
對(duì)于服務(wù)器的日常維護(hù)來(lái)說,日志清理是非常重要的事情,如果殘留日志過多則嚴(yán)重浪費(fèi)磁盤空間同時(shí)影響服務(wù)的性能。如果用手工方式進(jìn)行清理,會(huì)花費(fèi)太多時(shí)間,并且很多時(shí)候難以滿足實(shí)際要求。例如:如何在每個(gè)星期六凌晨3點(diǎn)把超過2G大的日志文件進(jìn)行切割,保留最新的100M日志記錄?
網(wǎng)上沒有發(fā)覺能滿足本座要求的日志切割工具,因此花了一些閑暇時(shí)間自己寫了一個(gè)。由于要在多個(gè)平臺(tái)上使用,為了方便采用Java實(shí)現(xiàn)。本工具命名為LogCutter,主要有以下特點(diǎn):
1、支持Linux、Mac和Windows等所有常見操作系統(tǒng)平臺(tái)
2、支持命令行交互式運(yùn)行
3、支持后臺(tái)非交互式運(yùn)行(Linux/MAC下使用daemon進(jìn)程實(shí)現(xiàn),Windows用系統(tǒng)Service實(shí)現(xiàn))
4、支持兩種日志清理方式(刪除日志文件或切割日志文件)
5、支持對(duì)GB18030、UTF-8、UTF-16LE、UTF-16BE等常用日志文件類型進(jìn)行切割(不會(huì)發(fā)生切掉半個(gè)字符的情況)
6、高度可配置(程序執(zhí)行周期、要?jiǎng)h除的日志文件過期時(shí)間、要切割的日志文件閥值和保留大小等均可配置
使用方法:
LogCutter-BruceLiang,allrightsreserved.
一、啟動(dòng)方式
)WindowsA)前臺(tái)運(yùn)行:>./run.batB)后臺(tái)運(yùn)行:>./LogCutter.exe{-install-demand(安裝手動(dòng)啟動(dòng)服務(wù))
-install-auto(安裝自動(dòng)啟動(dòng)服務(wù))
-start(啟動(dòng)服務(wù))
-stop(停止服務(wù))
-status(查看服務(wù)狀態(tài))
}***注***@LogCutter.exe以Windows系統(tǒng)服務(wù)的方式運(yùn)行,安裝好后也可以通過Windows服務(wù)管理器進(jìn)行管理@LogCutter.exe依賴JRE1.6,因此必須在注冊(cè)表或環(huán)境變量中設(shè)置%JAVA_HOME%)Linux/UnixA)前臺(tái)運(yùn)行:$./run.shB)后臺(tái)運(yùn)行:$./run.sh-d***注***@可以設(shè)置為開機(jī)時(shí)自動(dòng)后臺(tái)運(yùn)行,方法如下:$vi/etc/rc.d/rc.local(加入:${YOUR_LOGCUTTER_PATH}/run.sh-d)
二、配置文件
)程序配置文件:./conf/config.xml)日志配置文件:./conf/log4j.properties(默認(rèn))
三、環(huán)境要求
)Java版本:JRE1.6以上)依賴程序包:dom4j、log4j、juniversalchardet
run.sh(Mac平臺(tái))
#!/bin/bashJAVA_HOME=“/Library/Java/Home”CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarJAVA_BIN=$JAVA_HOME/binJAVA=$JAVA_BIN/javaAPP_PATH=“/Users/Kingfisher/MyWork/Java/LogCutter”APP_CLASSPATH=$APP_PATH/classesAPP_LIBPATH=$APP_PATH/libAPP_LIBS=$APP_LIBPATH/dom4j-1.6.1.jar:$APP_LIBPATH/log4j-1.2.16.jar:$APP_LIBPATH/juniversalchardet-1.0.3.jarAPP_CONFPATH=$APP_PATH/confAPP_CONFFILE=$APP_CONFPATH/config.xmlAPP_MAIN_CLASS=com.bruce.main.LogCutterDAEMON='-d'CMD=“$JAVA-cp$CLASSPATH:$APP_CLASSPATH:$APP_LIBS$APP_MAIN_CLASS-f$APP_CONFFILE”if[$#-eq0]then$CMDelif[“$#”-eq1-a“$1”=“$DAEMON”]then$CMD&elseecho“Usage:$0[$DAEMON]”exit1fi
交互式運(yùn)行操作演示:
[Kingfisher@Bruce-mbpLogCutter]$pwd/Users/Kingfisher/MyWork/Java/LogCutter[Kingfisher@Bruce-mbpLogCutter]$./run.shcommandlineusage
HELP:ShowhelpJOBS:ShowjobsstatusCFG:ShowconfigurationsummaryRUN:Schedulejobsmanually!Q:Shutdownapplication?:Aboutme
>help
commandlineusage
點(diǎn)此返回目錄:2015年軟件設(shè)計(jì)師考前輔導(dǎo)匯總
相關(guān)推薦:
2015年下半年軟件設(shè)計(jì)師考試報(bào)名指南
軟件設(shè)計(jì)師級(jí)考試大綱(2004年新版)
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題