软件工程之详细设计
详细设计的基本任务:
(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程为每个模块进行详细的算法设计。为每个模块进行详细的算法设计的详细算法描述出来。
(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行为模块内的数据结构进行设计。为模块内的数据结构进行设计确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记对数据结构进行物理设计,对数据结构进行物理设计即确定数据库的物理结构。录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计:
①代码设计。为了提高数其他设计:其他设计根据软件系统的类型,还可能要进行以下设计:代码设计。据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入输出格式设计。输出格式设计。人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、
③人机对话设计。格式的具体设计。
(5)编写详细设计说明书。
(6)评审。对处理过程的算法和数据库的物理结构都要评审。
结构化程序设计方法:
详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一。
计算机软考软件设计师知识点:用Java实现的日志切割清理工具
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过2G大的日志文件进行切割,保留最新的100M日志记录?
网上没有发觉能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用Java实现。本工具命名为LogCutter,主要有以下特点:
1、支持Linux、Mac和Windows等所有常见操作系统平台
2、支持命令行交互式运行
3、支持后台非交互式运行(Linux/MAC下使用daemon进程实现,Windows用系统Service实现)
4、支持两种日志清理方式(删除日志文件或切割日志文件)
5、支持对GB18030、UTF-8、UTF-16LE、UTF-16BE等常用日志文件类型进行切割(不会发生切掉半个字符的情况)
6、高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置
使用方法:
LogCutter-BruceLiang,allrightsreserved.
一、启动方式
)WindowsA)前台运行:>./run.batB)后台运行:>./LogCutter.exe{-install-demand(安装手动启动服务)
-install-auto(安装自动启动服务)
-start(启动服务)
-stop(停止服务)
-status(查看服务状态)
}***注***@LogCutter.exe以Windows系统服务的方式运行,安装好后也可以通过Windows服务管理器进行管理@LogCutter.exe依赖JRE1.6,因此必须在注册表或环境变量中设置%JAVA_HOME%)Linux/UnixA)前台运行:$./run.shB)后台运行:$./run.sh-d***注***@可以设置为开机时自动后台运行,方法如下:$vi/etc/rc.d/rc.local(加入:${YOUR_LOGCUTTER_PATH}/run.sh-d)
二、配置文件
)程序配置文件:./conf/config.xml)日志配置文件:./conf/log4j.properties(默认)
三、环境要求
)Java版本:JRE1.6以上)依赖程序包:dom4j、log4j、juniversalchardet
run.sh(Mac平台)
#!/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
交互式运行操作演示:
[Kingfisher@Bruce-mbpLogCutter]$pwd/Users/Kingfisher/MyWork/Java/LogCutter[Kingfisher@Bruce-mbpLogCutter]$./run.shcommandlineusage
HELP:ShowhelpJOBS:ShowjobsstatusCFG:ShowconfigurationsummaryRUN:Schedulejobsmanually!Q:Shutdownapplication?:Aboutme
>help
commandlineusage
点此返回目录:2015年软件设计师考前辅导汇总
相关推荐: