软件详细设计模板示例.docx
《软件详细设计模板示例.docx》由会员分享,可在线阅读,更多相关《软件详细设计模板示例.docx(24页珍藏版)》请在冰豆网上搜索。
![软件详细设计模板示例.docx](https://file1.bdocx.com/fileroot1/2023-4/17/cc60da1a-44f0-4542-a948-22633670d5c3/cc60da1a-44f0-4542-a948-22633670d5c31.gif)
软件详细设计模板示例
项目案例名称:
《软件系统》
项目案例文档:
《软件系统概要设计说明书》
1.导言
1.1目的
本文档的目的是描述《软件系统》项目的详细设计,其主要内容包括:
●系统功能简介
●系统详细设计简述
●各个模块的三层划分
●最小模块组件的伪代码
本文档的预期的读者是:
●设计人员
●开发人员
●项目管理人员
●测试人员
1.2范围
该文档定义了系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。
1.3引用标准
[1]《企业文档格式标准》V1.1
北京长江软件有限公司
[2]《软件详细设计报告格式标准》V1.1
北京长江软件有限公司软件工程过程化组织
1.4参考资料
[1]《实战struct》〔美〕Ted Husted
机械工业出版社
1.5版本更新信息
本文档版本更新记录如表C-1:
表C-1:
版本更新记录
修改编号
修改日期
修改后版本
修改位置
修改内容概述
000
2010-4-13
0.1
全部
初始发布版本
2系统设计概述
根据《软件系统》的概要设计,系统分为用户登录管理、帐号管理、帐号组权限管理、角色管理、日志查询、统计报表、平台管理、业务信息系统维护、个人信息维护等模块,他们的关系如图C-1,以下将分小节对各个部分分别进行详细设计。
图C-1:
模块设计图
3详细设计概述
由于本系统采用了基于Struts体系结构的设计,即采用MVC的三层设计模式,采用面向对象的JAVA语言以及JSP的脚本语言。
所以,基本采用面向对象的设计方法。
在整个的开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。
本文档的详细设计主要是按照Struts的MVC的三个层次分别描述视图层、控制层和模型层模块的伪代码。
为下一步的编码提供基础。
4登录管理模块
登录管理模块负责用户的登录。
系统框架可以分成三层结构,即视图层、控制层和模型层,具体如表C-2所示。
表C-2:
登录管理的三层模块
视图
控制器
模型
login.jsp
main.jsp
LoginForm
LoginAction
DB.java
Constants.java
User.java
4.1视图层
根据上述的功能介绍,视图页面设计如表C-3所示。
表C-3:
登录管理模块页面设计
界面
JSP
功能描述
登录界面
login.jsp
登录的主页面
主页面
main.jsp
管理主页面
页面中部
center.jsp
复用页面:
页面中心部分
页面上端
top.jsp
复用页面:
页面上部分
页面左端
left.jsp
复用页面:
页面的左部分
页面下端
bottom.jsp
复用页面:
页面的下部分
根据界面流的设计可以确定各个界面的访问入口,以及界面之间切换关系,页面流程如图C-2所示。
图C-2:
登录管理的页面流程图
4.2控制层
登录管理的控制层主要是设计用户的登录事件的流程控制(Action)。
表C-4列出了每个Action的入口(即调用Action的组件)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-4:
登录管理控制层设计
事件
Action
入口
ActionForm
出口
用户登录
LoginAction
login.jsp
LoginForm
main.jsp
4.3模型层
登录管理模型组件负责完成用户信息的数据库操作的业务逻辑模型,建立封装了用户信息的bean,这个bean主要完成验证用户相关信息是否存在,并判断其权限。
模型组件如表C-5所示。
表C-5:
登录管理的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
UserBean.java
封装用户信息的bean
5帐号管理模块
帐号管理模块负责用户帐号的维护,可以分成三层结构,即视图层、控制层和模型层,具体如表C-6所示。
表C-6:
帐号管理的三层模块
视图
控制器
模型
userlist.jsp
adduser.jsp
updateuser.jsp
userdetail.jsp
authrole.jsp
UserForm
RoleForm
UserAction
DB.java
Constants.java
User.java
Role.java
5.1视图层
根据上述的功能介绍,总结出帐号管理功能的页面设计如表C-7所示。
表C-7:
帐号管理模块的页面设计
界面
JSP
功能描述
帐号管理首页
userlist.jsp
帐号管理列表页面
新增帐号页面
adduser.jsp
增加帐号的页面
修改帐号页面
updateuser.jsp
修改帐号的页面
帐号详细信息页面
userdetail.jsp
帐号详细信息页面
授权角色页面
authrole.jsp
为帐号分配角色的页面
帐号管理模块各个表示页面之间的关系如图C-3所示。
图C-3:
帐号管理模块的页面流程图
5.2控制层
帐号管理的控制层主要负责进入增加帐号界面、修改帐号界面、帐号详细信息界面、授权角色界面等事件的流程控制。
表C-8列出了帐号管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-8:
帐号管理的控制层设计
事件
Action
入口
ActionForm
出口
进入帐号管理列表页面
UserAction
method=userlist
main.jsp
UserForm
userlist.jsp
进入增加帐号页面
UserAction
method=adduser
userlist.jsp
UserForm
adduser.jsp
进入修改帐号页面
UserAction
method=updateuser
userlist.jsp
UserForm
updateuser.jsp
进入授权角色页面
UserAction
method=authrole
userlist.jsp
RoleForm
authrole.jsp
删除帐号
UserAction
method=deluser
userlist.jsp
UserForm
userlist.jsp
进入帐号详细信息页面
UserAction
method=userdetail
userlist.jsp
UserForm
userdetail.jsp
5.3模型层
帐号管理业务逻辑层设计主要包括建立封装了帐号信息的bean:
User.java,建立封装了角色信息的bean:
Role.java,完成将帐号和对应角色关系存放数据库的操作,同时也提供了数据维护的操作等逻辑。
模型组件见表C-9。
表C-9:
帐号管理的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
User.java
封装帐号信息的bean
Role.java
封装角色信息的bean
6帐号组管理模块
帐号组管理模块负责用户帐号组的维护,可以分成三层结构,即视图层、控制层和模型层,具体如表C-10所示。
表C-10:
帐号组管理的三层模块
视图
控制器
模型
usergrouplist.jsp
addusergroup.jsp
updateusergroup.jsp
usergroupdetail.jsp
authrolegroup.jsp
changeuser.jsp
UserGroupFormRoleForm
UserForm
UserGroupAction
DB.java
Constants.java
UserGroup.java
Role.java
User.java
6.1视图层
根据上述的功能介绍,总结出帐号组管理功能的页面如表C-11所示。
表C-11:
帐号管理组模块的页面设计
界面
JSP
功能描述
帐号组管理首页
usergrouplist.jsp
帐号组管理列表页面
新增帐号组页面
addusergroup.jsp
增加帐号组的页面
修改帐号组页面
updateusergroup.jsp
修改帐号组的页面
帐号详细信息页面
usergroupdetail.jsp
帐号组详细信息页面
授权角色页面
authrolegroup.jsp
为帐号组分配角色的页面
帐号迁入迁出页面
changeuser.jsp
帐号从帐号组中迁入迁出的页面
帐号组管理模块各个界面基本流程图如图C-4所示。
图C-4:
帐号组管理模块的页面流程图
6.2控制层
帐号组管理的控制层主要负责进入增加帐号组界面、修改帐号组界面、帐号组详细信息界面、授权角色界面、帐号迁入迁出等事件的流程控制。
表C-12列出了帐号组管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-12:
帐号组管理的控制层设计
事件
Action
入口
ActionForm
出口
进入帐号组管理列表页面
UserGroupAction
method=usergrouplist
main.jsp
UserGroupForm
usergrouplist.jsp
进入增加帐号组页面
UserGroupAction
method=addusergroup
usergrouplist.jsp
UserGroupForm
addusergroup.jsp
进入修改帐号组页面
UserGroupAction
method=updateusergroup
usergrouplist.jsp
UserGroupForm
updateusergroup.jsp
进入授权角色页面
UserGroupAction
method=authrolegroup
usergrouplist.jsp
RoleForm
authrolegroup.jsp
删除帐号组
UserGroupAction
method=delusergroup
usergrouplist.jsp
UserGroupForm
usergrouplist.jsp
进入帐号组详细信息页面
UserGroupAction
method=usergroupdetail
usergrouplist.jsp
UserGroupForm
usergroupdetail.jsp
帐号迁入迁出页面
UserGroupAction
method=changeuser
usergrouplist.jsp
UserForm
changeuser.jsp
6.3模型层
帐号组管理的业务逻辑主要是完成帐号组维护,并完成相应数据库的操作。
帐号组管理的模型层主要是建立封装了帐号组信息的bean、帐号信息的bean、角色信息的bean,以及封装了数据库操作的组件,模型组件见表C-13。
表C-13:
帐号组管理的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
UserGroup.java
封装帐号组信息的bean
User.java
封装帐号信息的bean
Role.java
封装角色信息的bean
7权限管理模块
权限管理模块负责所有功能模块权限点的维护,可以分成三层结构,即视图层、控制层和模型层,具体如表C-14所示。
表C-14:
权限管理的三层模块
视图
控制器
模型
permissionlist.jsp
addpermission.jsp
updatepermission.jsp
PermissionForm
PermissionAction
DB.java
Constants.java
Permission.java
7.1视图层
根据上述的功能介绍,总结出权限管理功能的页面如表C-15。
表C-15:
权限模块的页面设计
界面
JSP
功能描述
权限管理首页
permissionlist.jsp
权限管理列表页面
新增权限页面
addpermission.jsp
增加权限的页面
修改权限页面
updatepermission.jsp
修改权限的页面
权限管理模块的各个页面流程如下图C-5所示。
图C-5:
权限管理模块的页面流程图
7.2控制层
权限管理的控制层主要负责进入权限列表界面、进入增加权限界面、进入修改权限界面等事件的流程控制。
表C-16列出了权限管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-16:
权限管理的控制层设计
事件
Action
入口
ActionForm
出口
进入权限管理列表页面
PermissionAction
method=permissionlist
main.jsp
PermissionForm
permissionlist.jsp
进入增加权限页面
PermissionAction
method=addpermission
permissionlist.jsp
PermissionForm
addpermission.jsp
进入修改权限页面
PermissionAction
method=updatepermission
permissionlist.jsp
PermissionForm
updatepermission.jsp
删除权限
PermissionAction
method=delpermission
permissionlist.jsp
permissionlist.jsp
7.3模型层
权限管理的业务逻辑主要是完成权限点信息的维护,并完成相应数据库的操作。
权限管理的模型层主要是建立封装了权限信息的bean,以及封装了数据库操作的组件。
模型组件见表C-17。
表C-17:
权限管理的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
Permission.java
封装权限信息的bean
8角色管理模块
角色管理模块负责平台角色信息的维护,可以分成三层结构,即视图层、控制层和模型层,具体如表C-18所示。
表C-18:
角色管理的三层模块
视图
控制器
模型
rolelist.jsp
addrole.jsp
updaterole.jsp
roledetail.jsp
authbusiness.jsp
RoleForm
RoleBusinessForm
RoleAction
DB.java
Constants.java
Role.java
Business.javaPermission.java
8.1视图层
根据上述的功能介绍,角色管理功能的页面如表C-19所示。
表C-19:
角色模块的页面设计
界面
JSP
功能描述
角色管理首页
rolelist.jsp
权限管理列表页面
新增角色页面
addrole.jsp
增加权限的页面
修改角色页面
updaterole.jsp
修改权限的页面
角色详细信息页面
roledetail.jsp
查看角色详细信息页面
授权业务信息系统页面
authbusiness.jsp
授权业务信息系统页面
角色管理模块各个页面流程如图C-6所示:
图C-6:
角色管理模块的页面流程图
8.2控制层
角色管理的控制层主要负责进入角色列表界面、进入增加角色界面、进入修改角色界面、进入角色详细信息界面等事件的流程控制。
表C-20列出了角色管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-20:
角色管理的控制层设计
事件
Action
入口
ActionForm
出口
进入角色管理列表页面
RoleAction
method=rolelist
main.jsp
RoleForm
rolelist.jsp
进入增加角色页面
RoleAction
method=addrole
rolelist.jsp
RoleForm
addrole.jsp
进入修改角色页面
RoleAction
method=updaterole
rolelist.jsp
RoleForm
updaterole.jsp
删除角色
RoleAction
method=delrole
rolelist.jsp
rolelist.jsp
进入授权业务信息系统页面
RoleAction
method=authbusiness
rolelist.jsp
RoleBusinessForm
authbusiness.jsp
8.3模型层
角色管理的业务逻辑主要是完成角色信息的维护,并完成相应数据库的操作。
角色管理的模型层主要是建立封装了角色信息的bean,封装权限信息的bean,以及封装了数据库操作的组件。
模型组件见表C-21。
表C-21:
角色管理的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
Role.java
封装角色信息的bean
Permission.java
封装权限信息的bean
Business.java
封装业务信息系统的bean
9日志查询模块
日志查询模块主要实现对用户的所有操作过程的历史日志查询。
系统框架可以分成三层结构,即视图层、控制层和模型层,具体如表C-22所示。
表C-22:
日志查询的三层模块
视图
控制器
模型
logquery.jsp
LogForm
LogQueryAction
Log.java
9.1视图层
根据上述的功能介绍,总结出日志查询功能的页面如表C-23。
表C-23:
日志查询的页面设计
界面
JSP
功能描述
日志查询首页
logquery.jsp
日志查询列表页面
日志查询页面流程如图C-7所示:
图C-7:
日志查询的页面流程图
9.2控制层
日志查询的控制层主要负责进入日志查询界面的流程控制,根据过滤条件进行查询。
表C-24列出了日志查询控制层的Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-24:
日志查询的控制层设计
事件
Action
入口
ActionForm
出口
进入日志查询页面
点击“查询”按钮进行查询
LogQueryAction
method=logquery
main.jsp
LogForm
logquery.jsp
9.3模型层
日志查询的业务逻辑主要是完成日志信息的查询。
日志查询的模型层主要是建立封装了日志信息的bean,以及封装了数据库操作的组件。
模型组件见表C-25。
表C-25:
日志查询的模型组件
模型组件
描述
DB.java
封装数据库操作的bean
Log.java
封装日志信息的bean
10统计报表模块
统计报表模块主要实现两类报表,帐号角色变更报表、异常时间登录操作报表。
系统框架可以分成三层结构,即视图层、控制层和模型层,具体如表C-26所示。
表C-26:
统计报表的三层模块
视图
控制器
模型
userrolemodify.jsp
userloginreport.jsp
UserRoleModifyForm
UserLoginReportForm
UserRoleModifyAction
UserLoginReportAction
UserRoleModify.java
UserLoginReport.java
10.1视图层
根据上述的功能介绍,统计报表的页面实现如表C-27。
表C-27:
统计报表的页面设计
界面
JSP
功能描述
帐号角色变更报表页面
userrolemodify.jsp
帐号角色变更报表页面
异常时间登录操作报表页面
userloginreport.jsp
异常时间登录操作报表页面
页面流程如图C-8所示:
图C-8:
统计报表的页面流程图
10.2控制层
统计报表的控制层主要负责进入该报表界面的流程控制,根据过滤条件进行查询。
表C-28列出了控制层的Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表C-28:
统计报表的控制层设计
事件
Action
入口
ActionForm
出口
进入帐号角色变更报表页面
点击“查询”按钮进行查询
UserRoleModifyAction
method=userrolemodify
main.jsp
UserRoleModifyForm
userrolemodify.jsp
进入异常时间登录操作报表页面
点击“查询”按钮进行查询
UserLoginReportAction
method=userloginreport
main.jsp
UserLoginReportForm
userloginreport.jsp
10.3模型层
统计报表的业务逻辑主要是完成帐号角色变更信息的统计查询、完成异常时间段登录软件系统的用户操作进行统计。
统计报表的模型层主要是建立封装了帐号角色变更信息的bean