软件项目管理概要设计说明书.docx
《软件项目管理概要设计说明书.docx》由会员分享,可在线阅读,更多相关《软件项目管理概要设计说明书.docx(33页珍藏版)》请在冰豆网上搜索。
![软件项目管理概要设计说明书.docx](https://file1.bdocx.com/fileroot1/2022-11/26/872f03ef-8481-4442-91a4-1c6ac01ecacf/872f03ef-8481-4442-91a4-1c6ac01ecacf1.gif)
软件项目管理概要设计说明书
概要设计说明书
1.导言
1.1目的
本文档的目旨在推动软件工程的规范化,对本系统的业务流程、软件架构、功能模块设计、数据库设计、接口设计等做了分析和说明,使设计人员遵循统一的软件设计规范,降低系统实现的风险,做到系统设计文档的规范性与全面性,以利于整个系统的实现、测试、维护等。
1.2范围
本文档用于软件设计阶段的概要设计,它的依据的基线是《需求分析规格书》,它的下游是《详细设计说明书》,并为《详细设计说明书》提供测试的依据。
软件概要设计的范围是:
软件系统业务流程分析、总体结构设计、全局数据库和数据结构设计、外部接口设计、主要部件功能分配设计、部件之间的接口设计等方面的内容。
该范围应覆盖《需求规格说明书》中的功能点列表、性能点列表。
1.3命名规则
1.3.1变量对象命名规则:
1、局部变量:
采用驼峰式命名规则,第一单词全小写,其他单词首字母大写。
例如:
userName。
2、全局变量:
首字母为大写的P,后面与局部变量的命名一致。
例如:
PuserName。
3、函数名:
。
采用驼峰式命名规则,第一单词全小写,其他单词首字母大写例如:
addUser()。
4、常量:
所有字母均要小写。
例如:
name。
5、类:
首字母为大写的C,其他的单词首字母都大写。
例如:
CUser。
6、对象:
与局部变量命名规则一致。
例如:
userOne。
1.3.2数据库对象命名规则:
1、数据库表名:
采用驼峰式命名规则。
例如:
cpInfo。
2、字段名:
表名首字母小写加下划线加相应单词小写。
若表名首字母相同的,则在字段名的前两个字母为表名的前两个字母小写。
例如:
u_name。
3、索引名:
“index_”加相应的名称。
例如:
index_name。
4、视图名:
首字母为大写的V,后面加相应的名称。
例如:
Vpest。
1.4术语定义
术语定义如表1所示。
表1术语定义表
序号
术语名称
术语定义
1
总体结构
软件系统的总体逻辑结构。
按照不同的设计方法,有不同的总体逻辑结构。
若采用面向功能或面向数据的设计方法,则总体逻辑结构为一树形的功能模块结构图。
若采用面向对象或面向部件(构件)的设计方法,则总体逻辑结构为部件(构件)的组装图
2
外部接口
本软件系统与其他软件系统之间的接口,接口设施可以是中间件。
接口描述包括:
传输方式、带宽、数据结构、传输频率、传输量、传输协议
3
数据结构
数据结构包括:
数据库表的结构、其他数据结构等
4
概念数据
模型CDM
关系数据库的逻辑设计模型,叫做概念数据模型。
主要内容包括一张逻辑E-R图及其相应的数据字典
5
物理数据
模型PDM
关系数据库的物理设计模型,叫做物理数据模型。
主要内容包括一张物理表关系图及其相应的数据字典
6
视图
在基表或其他视图之上建立的一张虚表,叫做视图,它具有物理表的许多性质,在数据处理和授权上很有用
7
角色
数据库中享有某些特权操作的用户,叫做角色。
角色的权利通过授权来实现
8
子系统
具有相对独立功能的小系统叫做子系统。
一个大的软件系统可以划分为多个子系统,每个子系统可由多个模块或多个部件组成
9
模块
具有功能独立、能被调用的信息单元叫做模块。
模块是结构化设计中的概念
10
内部接口
软件系统内部各子系统之间、各部件之间、各模板之间的接口,叫做内部接口。
接口描述包括:
调用方式、入口信息、出口信息等
11
相关文件
相关文件是指当本文件内容变更后,可能引起变更的其他文件。
如需求分析报告、详细设计说明书、测试计划、用户手册
12
参考资料
参考资料是指本文件书写时用到的其他资料。
如各种有关规范、模板、标准、准则
1.5参考资料
[1]用户需求报告
[2]软件开发合同
[3]数据库设计规范
[4]命名规范
1.6相关文档
[1]《详细设计说明书》
[2]源程序清单
[3]测试计划及报告
[4]《用户使用手册》
2.业务流程分析
2.1业务流程分析
依据前面的需求分析说明书,我们从整个系统中提取了普通用户和管理员两实体(操作员)。
从用户和管理员两个角度对本系统的业务流程进行分析说明,绘制出如图1所示的业务流程图。
图1业务流程图
2.1.1系统的计算模式
依据用户的要求和整个系统的特征,我们这个系统采用B/S的计算模式,如图2所示。
图2柑橘虫害专家系统计算模式
2.1.2用户操作流程
首先,用户要先注册登录,或以游客的身份登录本网站。
登录后可以进行浏览本站内的信息、柑橘虫害诊断、浏览用户的留言信息、发表或回复留言、修改用户的基本信息(游客不拥有后面两项操作权限)等操作。
如果这些链接满足用户的要求条件,则系统进行查询给出相应的信息;反之则进行智能诊断操作,这要求用户输入一些柑橘害虫的描述。
这里系统给用户的信息包括这些柑橘害虫的信息、柑橘虫病的信息以及害虫天敌的信息。
系统根据用户给出的描述判断时运是否为数据库中没有存在的新害虫的特征描述。
若数据库存在这种害虫特征,则给出相应信息;若没有,则存储这些新特征,由系统管理员来做下一步的处理。
在用户诊断柑橘虫害后也可以进行浏览、发表或回复相关主题的留言。
2.1.2管理员操作流程
同样管理员只有登录后才能进行相应的操作。
浏览用户留言信息、发表新留言、回复用户留言、删除用户留言、从用户留言中提取出有关柑橘虫害的息、系统的日常维护。
系统的日常维护包括系统的一般性维护和对用户提交的新害虫的特征的管理。
一旦发现有用户提交了新的害虫的信息,管理员要组织相关的专家对这些信息进行分析归类,将分析的结果存储到数据库中,以便用户的下次的查询。
2.2系统各模块时序图
2.2.1用户信息管理模块时序图,如下图3所示
图3用户信息处理时序图
摘要:
用户注册、专家注册用户时,用户信息表单将注册信息提交给用户信息控制者,用户信息控制者再将注册信息保存到系统。
用户登录时,用户信息表单将登录信息提交给用户信息控制者,用户信息控制者从系统读取信息进行验证,并返回登录结果。
登录后的用户修改信息时用户信息表单将修改后的信息提交给用户信息控制者,用户信息控制者再将信息保存到系统。
管理员浏览用户时,用户信息表单向用户信息控制者提出请求,用户信息控制者从系统读出已有用户信息,用户信息表单将返回的用户信息显示出来。
管理员对已有用户的信息进行修改时,用户信息表单将修改后的信息提交到用户信息控制者,用户信息控制再保存到系统。
用户信息表单的方法:
提交用户信息submitUserInfo(),请求用户信息requestUserInfo,提交编辑用户信息submitEditUserInfo(),显示注册结果showRegistResult()显示登录结果showLoginResult(),显示删除结果showDeleteResult(),显示用户信息showUserInfo()。
用户信息控制者的方法:
保存用户信息saveUserInfo(),提交登录信息submitUserInfo(),保存用户信息saveUserInfo(),请求用户信息requestUserInfo(),提交删除用户信息submitDeleteUserInfo()。
用户的方法:
注册regist(),登录login(),浏览个人信息scan(),编辑个人信息editUserInfo()。
专家的方法:
注册regist(),登录login(),浏览个人信息scan(),编辑个人信息editUserInfo()。
管理员的方法:
登录login(),浏览用户scan(),删除用户delete()。
界定分析:
边界类:
用户信息表单类。
用户信息表单为系统与用户交互的图形界面,故为边界类。
控制类:
用户信息控制者。
用户信息控制者负责系统的功能实现,故为控制类。
实体类:
用户、专家、管理员。
2.2.2柑橘虫病信息管理模块时序图,如图4所示。
图4柑橘虫病信息管理模块时序图
摘要:
用户或管理员浏览虫害病信息时,虫害病信息控制表单将请求浏览的种类发送给虫害病信息控制者,虫害病信息控制者从系统读取要浏览的数据返回给虫害病信息表单,虫害病信息表单将其显示出来。
管理员编辑虫害病信息时,虫害病信息表单将编辑的信息发送给虫害病信息控制者,虫害病信息控制者再保存到系统,并返回保存结果。
虫害病信息表单的方法:
请求虫害病信息requestCpdInfo(),提交虫病信息submitCpdInfo(),显示虫害病信息showCpdInfo(),显示编辑结果showEditResult()。
虫害病信息控制者的方法:
请求虫害病信息requestCpdInfo(),提交新的虫病信息submitCpdInfo()。
用户:
浏览scan()。
管理员:
浏览scan(),编辑虫害病信息editCpdInfo()。
界定分析:
边界类:
虫害病信息表单。
虫害病信息表单为系统与用户交互的图形界面,故为边界类。
控制类:
虫害病信息控制者。
虫害病信息控制者负责系统的功能实现,故为控制类。
实体类:
用户、管理员。
2.2.3柑橘害虫信息管理模块时序图,如图5所示。
图5柑橘害虫信息管理模块时序图
摘要:
用户或管理员浏览害虫信息时,害虫信息控制表单将请求的浏览发送给害虫信息控制者,害虫信息控制者从系统读取要浏览的数据返回给害虫信息表单,害虫信息表单将其显示出来。
管理员编辑害虫信息时,害虫信息表单将编辑的信息发送给害虫信息控制者,害虫信息控制者再保存到系统,并返回保存结果。
害虫信息表单的方法:
请求害虫信息requestCpInfo(),提交害虫信息submitCpInfo(),显示害虫信息showCpInfo(),显示保存结果showSaveResult(),提交害虫与天敌匹配信息submitLinkCpd()。
害虫信息控制者的方法:
请求害虫信息requestPestsInfo(),保存害虫信息saveCpInfo(),保存害虫与天敌匹配信息saveLinkCpd()。
用户:
浏览scan()。
管理员:
浏览scan(),编辑害虫信息editCpInfo(),linkCpd()。
界定分析:
边界类:
害虫信息表单。
害虫信息表单为系统与用户交互的图形界面,故为边界类。
控制类:
害虫信息控制者。
害虫信息控制者负责系统的功能实现,故为控制类。
实体类:
用户、管理员。
2.2.4天敌信息管理模块时序图,如图6所示。
图6天敌信息管理模块时序图
摘要:
用户只能向天敌信息表单提出浏览查询柑橘害虫的天敌的基本信息的请求,天敌信息表单将这个请求发送给天敌信息控制者,控制类又将这请求发送给系统,系统将查询结果返回给控制者从而反馈给用户。
而管理员可以向控制者发出浏览查询、编辑、与害虫的匹配处理、取消与害虫的匹配处理4个请求,控制者据请求的不同做出不同的信息判断并发送给系统,系统也将逐个返回信息。
天敌信息表单的方法:
请求天敌信息requestEnemyInfo(),显示天敌信息showEnemyInfo(),提修改submitEdit(),显示保存结果showSaveResult(),提交天敌与害虫匹配信息submitLinkPests(),显示天敌与害虫匹配信息showLinkPests(),提交取消天敌与害虫匹配关联submitUnlinkPeste(),显示取消匹配结果showUnlikPests()。
天敌信息控制者的方法:
请求天敌信息requestEnemyInfo(),保存天敌编辑信息saveEdit(),保存天敌与害虫匹配信息saveLinkPests(),保存取消天敌害虫匹配信息saveUnlinkPestes()。
用户的方法:
浏览天敌信息scan()。
管理员的方法:
浏览天敌信息scan(),编辑天敌信息edit(),天敌与害虫匹配linkPests(),取消天敌与害虫匹配关联unlinkPests()。
界定分析:
边界类:
天敌信息表单。
天敌信息表单为系统与用户交互的图形界面,故为边界类。
控制类:
天敌信息控制者,天敌信息控制者负责系统的功能实现,故为控制类。
实体类:
用户、管理员。
2.2.5新发现害虫管理模块时序图,如图7所示。
图7新发现害虫管理模块时序图
摘要:
用户编辑新害虫信息,新害虫添加表单将用户编辑的信息提交给新害虫添加控制者,新害虫添加控制者将新害虫信息保存到系统,并返回保存结果。
专家向新害虫表单发送请求,要求读取用户添加的新害虫的信息,新害虫表单发送这个请求给新害虫添加控制者,新害虫添加添加控制者从系统中读取所有新害虫的信息,反馈给专家。
专家经分析判定归类后,确认新害虫的信息。
管理将经专家确认整理后的新害虫信息提交给新害虫表单,新害虫表单将已确认为新害虫的害虫信息发送给新害虫添加控制者,新害虫添加控制者将其保存到害虫信息库中,并返回保存结果。
新害虫表单的方法:
提交新害虫信息submitNewPests(),请求新害虫信息requestNewPests(),提交增加的新害虫信息submitAddNewPests(),显示新增结果showAddResult(),显示保存结果showSaveResult(),显示新害虫信息showNewPests(),提交查询新害虫信息querryNewPest(),显示查询结果showQuerryResult()。
新害虫控制者的方法:
保存新害虫信息saveNewPests(),请求查询新害虫信息querryNewPests(),保存新害虫信息saveNewPests()。
用户的方法:
编辑新害虫描述editNewPests()、查询新害虫信息searchNewPests()。
专家:
读取新害虫描述readNewPests()。
管理员:
增加新害虫信息addNewPests()。
界定分析:
边界类:
新害虫添加表单。
新害虫添加表单为系统与用户交互的图形界面,故为边界类。
控制类:
新害虫添加控制者。
新害虫添加控制者负责系统的功能实现,故为控制类。
实体类:
用户、管理员、专家。
2.2.5柑橘虫害诊断模块时序图,如图8所示。
图8柑橘虫害诊断模块时序图
摘要:
用户通过浏览害虫和柑橘因这些害虫面致的病进行鉴别诊断时,诊断表单将所请求的分类发送给诊断控制者,诊断控制者从系统中读取出分类信息并返回给表单。
用户通过浏览虫害病分类进行诊断时,诊断表单将所请求的分类发送给诊断控制者,诊断控制者从系统中读取出分类信息并返回给表单。
用户通过搜索关键字进行诊断时,诊断表单将用户所输入的关键字发送给诊断控制者,诊断控制者从系统中检索出符合关键字的信息条目并返回给表单。
用户通过勾选虫害病特征进行智能诊断时,诊断表单将勾选的特征发送给诊断控制者,诊断控制者从系统中检索出最匹配的1-3个条目返回给表单。
诊断表单的方法:
请求柑橘虫病信息requestCpdInfo(),显示柑橘虫病信息showCpdInfo(),请求害虫信息requestPestsInfo(),显示害虫信息showPestsInfo(),显示要用户选择的特征项showChoices(),提交用户对特征的选择submitChoices,提交柑橘虫病特征submitCpdFeature(),显示诊断结果showResult()。
诊断控制者的方法:
请求害虫信息requestPestsInfo(),请求虫病信息requestCpdInfo(),提交柑橘虫病特征submitCpdFeature(),提交用户选择的特征submitChoices()。
用户的方法:
浏览害虫分类信息scanPestsInfo(),浏览虫害病分类信息scanEchinococcosis(),搜索search(),智能诊断featureDiagnosis()
界定分析:
边界类:
诊断表单。
诊断表单为系统与用户交互的图形界面,故为边界类。
控制类:
诊断控制者。
诊断控制者负责系统的功能实现,故为控制类。
实体类:
用户。
2.2.6用户留言管理模块时序图,如图9所示。
图9用户管理留言时序图
摘要:
用户发表留言时,留言管理表单将留言提交到留言管理控制,留言管理控制者将留言保存到系统。
用户或管理员回复留言时,留言管理表单将回复提交到留言管理控制,留言管理控制者将回复保存到系统。
留言管理表单的方法:
提交留言submitMessage(),提交回复submitAnswer()。
留言管理控制者的方法:
保存留言saveMessage(),保存回复saveAnswer()。
用户的方法:
发表留言pubMessage(),回复answer()。
管理员的方法:
回复answer()。
界定分析:
边界类:
留言管理表单。
留言管理表单为系统与用户交互的图形界面,故为边界类。
控制类:
留言管理控制者。
留言管理控制者负责系统的功能实现,故为控制类。
实体类:
用户、管理员、专家。
3.总体设计
3.1总体结构设计
本软件系统的总体逻辑结构是按照用户需求分析说明书中功能需求,划分成用户信息管理子子系统、柑橘虫害诊断管理子系统、用户留言管理子系统三个子系统。
然后再依据用户需求对各子系统进行更加细化的功能模块的划分。
总体结构示意图如图2所示。
图10总体结构示意图
3.2运行环境设计
该软件系统的运行环境:
硬件平台:
服务器的最低配置要求:
处理器1GHz或更快,内存1GB或更高,硬盘10GB或更大容量。
软件平台:
(1)服务器操作系统:
NT核心的操作系统,可以是WindowsServer2003操作系统或更高的版本。
(2)数据库管理系统:
MicrosoftSQLServer2005
(4)客户端的操作系统:
Windows2000或XP或更高版本。
(5)客户端的平台软件:
IE6.0以上。
网络平台:
(1)通信协议:
支持HTTP协议。
(2)通信带宽:
3.3子系统清单
子系统清单,如表2所示。
表2子系统清单
子系统编号
子系统英文名
子系统功能简述
子系统之间的关系
SS1
userInfo
用户信息管理
并列,共同构成整个系统。
SS2
cpDiagnosis
柑橘虫害诊断
SS3
messageManage
用户留言管理
3.4功能模块清单
功能模块清单,如表3所示。
表3功能模块清单
模块编号
模块英文名
模块功能简述
模块的接口简述
M1-1
userInfo
用户信息管理
用户提供的信息
M2-1
pestInfo
害虫信息管理
用户选择的害虫
M2-2
pestsType
害虫种类管理
用户提供的种类
M2-3
addNewPest
新害虫添加管理
用户提交的信息
M2-4
intelligentDiagnosis
智能诊断
用户提供的依据
M2-5
cpdInfo
虫病信息管理
用户选择的虫病
M2-6
cpdType
虫病种类管理
用户提供的种类
M2-7
enemyInfo
天敌信息管理
用户提交的信息
M3-1
messageManagement
留言管理
用户提交的信息
4.模块(部件)功能分配
具有功能独立、能被调用的信息单元叫做模块。
模块是结构化设计中的概念,部件是面向对象设计中的概念。
模块功能分配的目的,就是为了将具有相同功能的模块合并,从中提取公用模块,形成公用部件,按照构件或中间件的方式加以实现,作为本系统的公用资源,甚至作为公司级组织的公用资源,从而充实公司级的构件库或中间件库,优化系统设计,加快开发速度,提高开发质量。
4.1专用模块功能分配
专用模块功能分配,如表4所示。
表4专用模块功能分配
专用模块编号
模块英文名
模块详细功能分配
模块的接口标准
M1-1
userInfo
模块的登录与注册功能
用户注册或登录时所需要的字段
M2-1
addNewPest
添加新害虫
用户提交的新害虫信息。
M2-2
intelligentDiagnosis
推理出符合用户要求的的数据模块
用户提供的推理依据。
M2-3
messageManagement
用户的留言与管理员或专家的回复
用户提交的留言或回复
4.2公用模块功能分配
公用模块功能分,如表5所示。
表5公用模块功能分配
公用模块编号
模块英文名
模块详细功能分配
模块的接口标准
G-1
infoManagement
处理用户、害虫、虫病、天敌信息的统一接口
用户提供的信息
G-2
typeMangement
处理害虫、虫病信息的种类接口
用户提供的种类信息
G-3
messageBox
处理各种需要输出地请求
用户提供要输出的类型
5.数据结构设计
5.1数据库表名清单
数据库表名清单,如表6所示。
表6数据库表名清单
序号
中文表名
英文表名
表功能说明
1
用户信息
userInfo
记录用户的基本信息
2
柑橘病害种类
cpdType
记录柑橘病的种类
3
柑橘病害信息
cpdInfo
记录各种柑橘病的信息
续上表
4
柑橘害虫种类
cpType
记录柑橘害虫的种类
5
柑橘害虫信息
cpInfo
记录各种柑橘害虫的信息
6
新发现害虫信息
newcpInfo
记录用户新发现的害虫的介绍
7
用户发表的留言
userPM
记录用户新发表的留言信息
8
用户回复的留言
userRM
记录用户回复的留言信息
9
天敌信息
enemyInfo
记录天敌的基本信息
10
天敌种类信息
enemyType
记录天敌种类基本信息
11
捕食表
Predator
害虫与天敌捕食信息
12
害虫相册
PhotosOfPest
害虫的相册
13
天敌相册
PhotosOfEnemy
天敌的相册
5.2数据库表之间关系说明
数据库的E-R图如图3所示。
图11E-R图
整个系统中共有6个实体,包括用户、柑橘害虫、新害虫、柑橘虫病、天敌、留言。
前面5个实体分别产生5张表,分别是用户信息表(userInfo)、柑橘害虫信息表(cpInfo)、新害虫信息表(newcpInfo)、柑橘虫病信息表(cpdInfo)、天敌信息表(enemyInfo)。
对于实体留言,根据用户与留言的2种联系,留言实体产生2张表,分别是用户发表留言(userPM)和用户回复留言(userRM)。
这6个实体间有着5种联系,一种1对多联系,4种多对多联系,4种多对多联系产生了4张表,分别是用户发表留言(userPM)、用户回复留言(userRM)、致病表(pcLink)、捕食表(Predator)。
因为这个系统中的害虫和虫病要实现分类管理,所以要添加害虫类型表(cpType)、柑橘病类型表(cpdType)、天敌种类表(enemyType)。
根据用户对图片的要求,分别对害虫和害虫天敌的图片做了一个相册。
所以产生了两张表,天敌相册表(PhotosOfEnemy)、害虫相册表(PhotosOfPest)。
所以整个数据库中共有14张表。
5.3数据库表的详细清单
Table1:
userInfo
Alias:
用户信息
Description:
ColumnName
Alias