‘壹’ 软件详细设计说明书
面向对象软件设计说明书模板
1 概述
1.1 系统简述
对系统要完成什么,所面向的用户以及系统运行的环境的简短描述,这部分主要来源于需求说明书的开始部分。
1.2 软件设计目标
这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用性等,亦需提及。需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。
这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。在随后的文档部分,将解释设计是怎么来实现这些的。
1.3 参考资料
列出本文档中所引用的参考资料。(至少要引用需求规格说明书)
1.4 修订版本记录
列出本文档修改的历史纪录。必须指明修改的内容、日期以及修改人。
2 术语表
对本文档中所使用的各种术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。
3 用例
此处要求系统用用例图表述(UML),对每个用例(正常处理的情况)要有中文叙述。
4 设计概述
4.1 简述
这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户/服务器结构)以及使用到的相应技术和工具(例如OMT、Rose)
4.2 系统结构设计
这部分要求提供高层系统结构的描述,使用方框图来显示主要的组件及组件间的交互。最好是把逻辑结构同物理结构分离,对前者进行描述。别忘了说明图中用到的俗语和符号。
4.2.1 顶层系统结构
4.2.2 子系统1结构
4.2.3 子系统2结构
4.3 系统界面
各种提供给用户的界面以及外部系统在此处要予以说明。如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。如果系统提供了对其它系统的接口,比如说从其它软件系统导入/导出数据,必须在此说明。
4.4 约束和假定
描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。说明系统是如何来适应这些约束的。
另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。这种情况下,要求清楚地描述与本系统有交互的软件类型(比如某某某数据库软件,某某某EMail软件)以及这样导致的约束(比如只允许纯文本的Email)。
实现的语言和平台也会对系统有约束,同样在此予以说明。
对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。
5 对象模型
5.1 系统对象模型
提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。
对象图应该包含什么呢?
在其中应该包含所有的系统对象。这些对象都是从理解需求后得到的。要明确哪些应该、哪些不应该被放进图中。
所有对象之间的关联必须被确定并且必须指明联系的基数(一对一、一对多还是多对多,0..1,*,1..*)。聚合和继承关系必须清楚地确定下来。每个图必须附有简单的说明。
可能经过多次反复之后才能得到系统的正确的对象模型。
6 对象描述
在这个部分叙述每个对象的细节,它的属性、它的方法。在这之前必须从逻辑上对对象进行组织。你可能需要用结构图把对象按子系统划分好。
为每个对象做一个条目。在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(transient object)。
对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。
对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。如果对变量或者返回值由什么假定的话,Pre-conditions和Post-conditions必须在此说明。列出它或者被它调用的方法需要访问或者修改的属性。最后,提供可以验证实现方法的测试案例。
6.1 子系统1中的对象
6.1.1 对象:对象1
用途:
约束:
持久性:
6.1.1.1 属性描述:
1. 属性:属性1
类型:
描述:
约束:
2. 属性:属性2
6.1.1.2 方法描述:
1. 方法:方法1
返回类型:
参数:
返回值:
Pre-Condition:
Post-Condition:
读取/修改的属性:
调用的方法:
处理逻辑:
测试例:用什么参数调用该方法,期望的输出是什么……
7 动态模型
这部分的作用是描述系统如何响应各种事件。例如,可以建立系统的行为模型。一般使用顺序图和状态图。
确定不同的场景(Scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
7.1 场景(Scenarios)
对每个场景做一则条目,包括以下内容:
场景名:给它一个可以望文生义的名字
场景描述:简要叙述场景是干什么的以及发生的动作的顺序。
顺序图:描述各种事件及事件发生的相对时间顺序。
7.1.1 场景:场景1
描述:
动作1
动作2
7.2 状态图
这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。
7.2.1 状态图1:
8 非功能性需求
在这个部分,必须说明如何处理需求文档中指定的非功能性需求。尽可能客观地评估系统应付每一个非功能性的需求的能力程度。如果某些非功能性需求没有完全在设计的系统中实现,请务必在此说明。另外,你也需要对系统将来的进化作一个估计并描述本设计如何使系统能够适应这些可预见的变化。
9 辅助文档
提供能帮助理解设计的相应文档。
10 词汇索引
文章录入
‘贰’ 程序员不同级别的定位
初级程序员
能熟练掌握一种计算机的操作和使用常用软件的技术人员
具有初级技术职务(技术员)的实际工作能力和业务知识
考试范围
一.常用软件的使用能力和初步的程序编制能力
能使用至少二种以上的下列常用软件
字处理软件
表处理软件
数据库管理系统软件
能使用下列语言中的一种编制简单程序
QBASIC(DOS6.0以上)
C(美国标准)
FoxBASE
二.软件基础知识
基本数据结构
数组、记录、列表(ListStack)的定义、存储和操作
语言和程序的基础知识
分支、循环、子程序、函数、和过程
流程图的标准形式
基本算法
语言所提供的数据结构和控制结构
汇编、编译、解释系统的使用知识
文件系统使用的基本知识
文件组织的类型和特点
文件命令和文件语句的使用
操作系统的类型、功能和使用基础知识(DOS/Windows)
数据库系统的基础知识
通讯和网络的基本概念
计算机信息安全基础知识
计算机信息安全基本概念
常见计算机病毒的识别
三.硬件基础知识
数制及其转换
二进制、十进制、十六进制等常用数制及其相互转换
机内代码
原码、补码、反码
定点数与浮点数的机内表示
ASCⅡ码及汉字编码等常用的编码
奇偶校验码
算术运算和逻辑运算
二进制数和十进制数的计算机运算方式
逻辑代数的基本运算和逻辑式的化简
计算机的主要部件
中央处理器CPU(运算器、控制器、寄存器组)
存储器(主存与辅存)
输入/ 输出设备
指令系统
常用的寻址方式
指令的格式、分类及功能
网络硬件配置与连接
四.其它基础知识
英语
高中毕业英语程度
理解操作中常见的英语术语
初等数学
文字处理、排版基础知识
高级程序员
能按照软件需求规格说明书进行软件设计并担负指导程序员工作的技术人员
具有中级技术职务(工程师)的实际工作能力和业务知识
考试范围
一.软件设计能力
简单计算机应用系统的需求分析
流行的需求分析方法论初步
数据流图的设计及改进
软件界面设计
输入输出数据文件的设计
用户界面的设计
软件间的界面设计
概要设计
模块划分方法
模块调用关系的描述
模块功能描述
模块界面描述
常用的设计方法
详细设计
满足指定功能的各种处理过程的算法设计、评价和改进
PDL语言
数据库/数据结构的设计
根据不同的要求进行数据库/数据结构的设计、
软件测试
测试方法
测试用例的设计
测试的静态和动态分析
测试的计划与实施
测试报告
测试结果的评价
测试工具
排错技术
文档编制
概要设计规格说明书
详细设计规格说明书
数据库/数据结构规格说明书
集成测试计划和集成测试报告
文档编制标准
文档编制工具
软件维护方法和工具
软件可靠性和安全性设计
设计评审的组织与实施
软件质量管理和进度管理
二.程序编制能力
程序语言
能使用CASL汇编语言(文本将附在试卷上)(可调阅往年试卷)
能熟练使用下列程序语言中的一种
C(美国标准)/ C++
FORTRAN(国家标准GB3057-82)
根据软件设计规格说明书,画出流程图(国家标准GB1526-89)和编制程序
理解给定的程序和流程图的功能和实现思想
程序和流程图的排错
能对程序和流程图的正确性进行测试并对发现的错误或不足加以纠正或改进
具有良好的程序编制风格
基本算法的设计和分析
程序编制方法
三.软件知识
数据结构
数组、记录、列表(List)、栈(Stack)、堆(Heap)、队列、树、图的定义、存储和操作
序列、集合等的定义、存储和操作
程序语言
语言的类别和特点
语言所提供的数据结构、控制结构和模块结构
典型语言的知识
语言处理程序
汇编系统的基本原理
编译系统的基本原理
解释系统的基本原理
文件系统
文件系统结构
文件组织的类型和功能
文件的使用和保护
操作系统
操作系统的历史和类型
操作系统的层次结构和进程概念
作业管理和处理机管理
存储管理
设备管理
典型操作系统的知识
数据库系统
数据库模型
数据的独立性、完整性和安全性
数据定义语言和数据操作语言
SQL
典型数据库管理系统的知识
网络工程
网络OS基本知识
网络的管理与维护
软件工程
软件生存周期
软件设计方法
模块程序设计和结构化程序设计
软件测试
软件维护
软件质量与评价
原型化方法
常用软件开发工具、平台和环境
软件系统的新发展
四.硬件知识
计算机组成
机内代码及运算
主要部件的功能及其相互关系
控制器的实现原理
指令系统
中断系统
总线结构
存储器系统
各类存储器的功能、特性和使用
高速缓冲存储器和多级存储器
虚拟存储器
输入/输出设备及其控制
数据通讯和计算机网络选型和组网知识
安全性、可靠性与系统性能评价初步
数据安全与保密
诊断与容错
模型与分析
系统可靠性评价和系统性能评价方法
计算机体系结构的其它基础知识
流水线操作
并行处理
多处理机系统
精简指令系统计算机
多媒体开发平台及其应用
五.其它基础知识
专业英语
具有大学毕业程度的词汇量
能正确阅读和理解计算机领域的科技文献
数学
微积分
线性代数:行列式、矩阵和线性方程组
概率统计:事件和概率、随机变量和分布函数、数字特征、参数估计和假设检验
离散数学:数理逻辑、集合论、图论、组合分析
数值计算:计算误差,数值微分与积分,函数插值和逼近,方程的数值解
算法复杂性
‘叁’ 医院信息系统中数据库的设计有哪些原则与注意事项
1、准备项目计划书。项目计划书是医院信息系统实施过程中第一个最重要的文件。它勾画了医院要建设的医院信息系统总轮廓。通常是委托一家咨询公司完成一份项目计划书的标书,该标书的内容为医院准备建设医院信息系统的动机和全面、具体、细致的需求。
然后将标书发给参加竞标的厂商,在收到各厂商的计划书后,进行认真的评价,决定最终执行方案。
2、选择软硬件的集成商、供应商和合作伙伴,通常委托有资质的咨询公司或特别的专家小组进行方案评估。
3、需求分析。首先通过对目标医院使用者的访问、调查,详细了解用户的流程与需求,最后形成文档:《项目结构》文档、《目标范围说明书》文档、《用户需求说明书》文档、初步的《用户界面说明书》文档、《测试战略》文档、《测试规范与通过标准》文档。
4、系统设计与软件客户化。设计阶段要做的工作:把用户的需求变成技术上可实现的步骤;完善用户界面演示程序,让用户完全接受系统的界面形式;制订《客户沟通计划》,收集和控制用户需求;完成《功能规格说明书》的签署并冻结。
初步完成《测试规格》文档;风险评估。要完成的文档:《用户界面说明书》、《概念设计》、《逻辑设计》、《物理设计》、《功能规格说明书》、《测试计划和时间表》、《测试规格》文档和大部分的《测试用例》文档、《项目时间表》。
5、数据准备与装入。数据准备是指将医院的基础数据按照系统的要求统一、规范、格式化的表达出来,并录人系统基础数据库。这些是系统赖以正常运作的基础。
6、系统测试。在系统测试阶段要做的工作:代码错误修改;进行ALPHA测试、BETA测试和RELEASE测试;继续保持与客户/用户的紧密联系,控制用户的期望值;编写联机帮助和用户使用手册;进行用户培训和项目验收;风险评估。
要完成的文档:《用户操作手册》、《实施维护手册》、《测试报告》、《验收报告》、《联机帮助》。阶段到达标准后进行审核。
7、用户培训。供应商应该有事先安排好的计划,专门的教师与教材,要准备设备完善的培训教室和环境。对用户的培训可以为对医院计算机技术人员的培训和对最终用户的培训。
‘肆’ 药品的说明书怎样查询,
对于个人而言药品说明书主要是查询,药品的使用规则是什么,对于药品怎么使用有个详细的了解,如果对于研发人员可以在药品说明书中查询,工艺技术,或者制剂然后通过文献查询分析了解,如果是对于立项人员会在说明书调研适应症、制剂规格等,最好同时对比原研多个国家的说明书主要是对比(中、美、日、欧)的说明书,理清适应症和规格剂型有什么不同。
可以在数据库中的上市数据库系统中查询调研各个国家的药品说明书,包含40多个主流国家,如果是想要了解FDA批准药品的说明书,可以在美国FDA批准药品数据库中查询,可以通过药品名称、活性成分、申报企业、申请号、剂型、给药途径进行关键词的搜索,还能通过条件筛选选择想要了解的数据。
在搜索结果中最右边有说明书的选项,点击查看,能查询药品的说明书,也支持下载药品说明书文档。
国内外药品说明书
一般药品说明书是药品的重要来源之一,是医生、护士士、病人在适用药物时的科学依据,对于药物立项、研发人员来说调研查询药品说明书是为了了解工艺技术、适应症、制剂、药理毒理数据等等,为药物研发提供数据支持,也是在做药物立项调研中必不可少的一个步骤。
‘伍’ 数据库设计说明书有没有范文
正文
1 引言
1.1编写目的
说明编写这份数据库设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.说明待开发的数据库的名称和使用此数据库的软件系统的名称;
b.列出该软件系统开发项目的任务提出者、用户以及将安装该软件和这个数据库的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
列出有关的参考资料:
a.本项目的经核准的计划任务书或合同、上级机关批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2 外部设计
2.1标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序
列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。
2.3约定
陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如 用于标识数据库的不同版本的约定和用于标识库内各个文卷、、记录、数据项的命名约定等。
2.4专门指导
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据 库的数据的格式和标准、送入数据库的操作规程和步骤,用于产生、修改、更新或使用这些数据文卷的操 作指导。 如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
2.5支持软件
简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序和用于装入、生成、修 改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能特性,如所用数据模型的类型、允许 的数据容量等。列出这些支持软件的技术文件的标题、编号及来源。
3 结构设计
3.1概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。
3.2逻辑结构设计
说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。
3.3物理结构设计
建立系统程序员视图,包括:
a.数据在内存中的安排,包括对索引区、缓冲区的设计;
b.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
c.访问数据的方式方法。
4 运用设计
4.1数据字典设计
对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。在本节中要说明对此数据字典设计的基本考虑。
4.2安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
‘陆’ 在软件开发中,需求规格说明书和系统设计说明书有什么区别
1、内容有区别
需求规格说明书主要是描述软件系统应该完成的功能,包含硬件、功能、性能、输入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法规的要求等等。
设计说明书是说明如何实现这些功能、性能的。设计书中会对功能进行重新的分解,并需要描述这些功能如何实现,甚至包括如何用代码实现。
2、目的不同
需求规格说明书的作用在于便于用户、开发人员进行理解和交流,反映出用户问题的结构,可以作为软件开发工作的基础和依据,并作为确认测试和验收的依据。
系统设计说明书编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、安全设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
3、阅读对象不同
需求规格说明书主要从用户角度(需求或市场人员根据用户要求编写)描述软件需要实现的功能。
系统设计说明书主要从软件开发(程序员)角度描述软件需要实现功能。
‘柒’ 数据库设计说明书,由谁编写,写给谁看
开发团队
如果你们对于数据库和应用程序的开发有分工的话,那么所有关于数据库方面的都有数据库那边的人写,如果没有分工,就你们自己写
存档的目的一个是便于团队之间的沟通,再一个就是方便事后对程序或者数据库进行修正\升级等, 会有一定记录来告诉你数据库中各个表\字段等都是什么含义,以及他们之间的关系, 尤其对一些年久失修的应用程序来说,就不用全部看代码了
‘捌’ 数据库应用系统设计的四个层次分别包含的内容是什么它们属于哪个设计阶段求详细解答,跪谢~~
表示层
负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着只做与外观显示相关的工作,不属于他的工作不用做。
(概念设计)
业务逻辑层
用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。不允许指定的文本框中输入空字符串,数据格式是否正确及数据类型验证;用户的权限的合法性判断等等
(逻辑设计)
数据访问层
就是用于专门跟数据库进行交互。执行数据的添加、删除、修改和显示等。所有的数据对象只在这一层被引用。
(逻辑设计)
数据持久层
数据的组织存储等方面的设计
(物理设计阶段)
来自川理-jax-朱哥哥的回答。
‘玖’ 请问:在用计算机语言编写电影院订售票软件的时候主要涉及到那几个模块
我是做基于J2EE项目开发的。可以给你几点建议:
需求分析-->需详细需求-->概要设计-->详细设计-->编码-->测试--->迭代,详细如下:
中小型软件项目开发一般流程建议
一:编写目的
本文档的编写旨在探寻规范的软件开发流程、加快软件开发速度、提高软件开发质量、降低项目综合成本 。
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我们要做的就是:提供优质服务、项目周期短、成本低廉
二:总体说明
项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但不管项目大小如何一般需要经历以下几个步骤:
1. 需求分析。
2. 撰写需求规格说明书
3. 总体设计
4. 详细设计
5. 编码实现
6. 测试、试运行、上线
7. 验收
8. 日常维护
9. (下一个版本的循环开发)
在以上各步骤中尤其重要的是系统分析和撰写需求规格说明书。当定义好《需求规格说明书》后需要用户签字确认,以此作为项目验收的依据,在中大型项目中尤其重要。
失败的项目原因很多但以下几点比较普遍:
(1)商务运作中为了拉住“单子”对客户的众多纷繁复杂的要求一味的妥协让步满口答应。项目开发计划、时间表等完全依照客 户意见,不以具体项目的客观事实为依据,不做认真细致严格的项目复杂度、项目工作量的评估。
(2) 不做细致的用户需求分析导致项目后期的需求变更较大不能按期完成项目。
三:项目开发经历的各阶段
在项目开发的各阶段时间比例方面,中小项目一般控制在
1: 40% 设计
2: 40% 编码
3: 20% 总体设计/试运行
3.1 需求分析阶段
研究客户需求,从中找出需求中模糊不清的地方,反复讨论确认。在不断的确认中,包括需求的总体认知、需求边界定义、目前技术条件下的可实现需求、用 户界面等。通过项目组内讨论、与客户(直接客户、间接客户)讨论等方式不断清晰客户真正的需求,从而撰写〈〈需求规格说明书〉〉,在取的客户认可后签字,以此做为项目开发 的第一个里程碑。在项目验收时以此作为验收的主要依据
在系统分析阶段与客户的沟通方式可以通过(1)项目静态图、项目静态界面DEMO(2) 系统用例图(例如:rose软件的用例图) 等方式与客户沟通。
本阶段要完成的工作有:
1.撰写项目需求分析报告
本报告主要目的是项目分析人员提出需求的疑难不清问题,为与客户有效、准确沟通准备必要的材料。
2.画用例图
描述系统各个不同用户类型与本系统及其他系统等的交互过程。
3.建立项目静态界面DEMO
使得用户在项目初期就可以看到项目上线实施后的使用界面和使用方法等
4. 做必要的技术预研等。
3.2撰写需求规格说明书
需求规格说明书的撰写主要目的是把客户天马行空、纷繁复杂、凭想象等的理想需求中变成在一定时间段、一定技术条件下可实现的需求。不然项目会很难满足客户的理想需求,永 远被客户的理想需求所限制,陷入一种非常被动的状态。
3.3总体设计
在完成项目需求规格说明书后,就进入项目总体设计的阶段。
在总体设计阶段需要完成的文档有:
1. 《项目总体设计---概要设计说明书》、
2. 《数据库设计报告》
3. 《项目总体开发时间表》
在此阶段应该建立项目的正式开发环境、项目测试环境、建立项目基本开发框架且导入项目管理配置工具中(例如:CVS、VSS等)等
在项目的以上阶段完成后,建议进行项目总体设计和总体开发准备情况的评审工作。在公司、集团专家组评审通过后本阶段结束,这算做项目的第二个里程碑。
在进行下一 阶段前,目前项目组可以对SCCB(软件变更控制委员会)提交的资料有:
1:《需求规格说明书》
2:《项目总体设计概要说明书》
3:《项目界面设 计说明书》(及界面DEMO)
4:《项目数据库设计说明书》等
5:《项目总体开发时间表》
3.4详细设计
在项目完成总体设计和搭建完毕开发环境后,就可以进行项目的详细设计。
在项目中建议详细设计由项目编写“后台”程序的资深人员编写。主要完成每个负责的业务模块 从界面到业务实现到数据库连接操作的主要步骤和数据库的实现SQL。最好在条件允许的情况下编写模块单元测试程序,在整个模块编码阶段完成后进行程序单元测试工作。(“测 试驱动”的开发理念)
详细设计目的是在不编写代码和少量代码的情况下,完成项目模块的模拟编程实现。
在详细设计阶段可以对项目某模块做准确的工作量统计,依此为依据整个项目比较准确的工作量就可以被统计出来。
3.5编码实现
(略)
3.6测试、试运行、上线
(略)
‘拾’ 基于asp,access数据库的图书管理系统需求规格说明书
摘要 介绍了信息中心图书管理系统数据库的设计。该系统是运行在学校内的图书管理系统,实现了图书资料的计算机管理和图书查询功能。
关键词 图书 网络 管理系统 数据库
1 引言
一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。
以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。
本次作业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
2 系统设计
2.1 系统指导思想和建设目标
2.1.1 系统指导思想
立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享。
2.1.1 系统建设目标
(1)要解决的问题:(以某学校为参照) 随着办公自动化水平的不断提高,现在学校管理学生信息也逐步从手工转到计算机自动化信息处理阶段。设计一个功能完整、操作简便、界面友好的学生信息管理系统已经是势在必行的了。
(2)系统开发的目的:提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
(3)系统名称:图书管理系统
2.2 总体功能设计
系统要能实现如下功能:
l 登录系统:注销用户、系统退出。
l 管理:用户管理、图书管理、读者管理、借阅管理。
l 查询:图书查询、读者查询、借阅查询。
l 报表打印:所有图书、借出图书、库存图书、所有读者。
l 帮助:使用说明、关于。
3 数据库设计
3.1 数据库系统的选择
本系统是一个中小型管理系统,运行环境是Windows2000 server,因此使用Windows环境下最容易使用且功能还可以的Microsoft Access 2000 作为后台的数据库系统。
3.2 需求分析
图3 图书流通数据流图
1.2
判断能
否借书
索书
信息
读 者
1.2
办理借
书手续
读者信息
查询结果
借书申请
被借图书
借书结果
借书信息
被借图书复本量
(b) 借书
借阅
3
读者
1
图书
5
1.1
图书
查询
借书信息
查询
4
判断
2
判断结果
索书
信息
图书信息
读 者
1
借书
2
还书
读 者
申请借书
还书申请
借书结果
还书结果
(a) 顶层数据流图
3
办借
书证
读者信息
办证信息
需求分析是数据库设计首先要做的工作,通过需求分析,我们作出了图书管理系统的各层数据流图,图3是图书流通数据流图(图中省略了“还书”和“办理借书证”的数据流图)。
在数据流图的基础上,定义数据字典。数据字典是关于数据库中数据的描述,它的作用是在软件分析和设计过程中为有关人员提供关于数据描述信息的查询,以保证数据的一致性。下面在图3的基础上举例说明数据字典的定义。
图3中涉及很多数据项,其中数据项“读者编号”可以描述如下:
数据项名:读者编号
别名:读者条码
含义:唯一标识每个读者
类型:字符型
取值范围:00000000至99999999
取值含义:顺序编号
“读者”一个数据结构,它可以描述如下:
数据结构名:读者
含义说明:是图书管理系统的数据结构之一,定义了一个读者的有关信息
组成:读者编号,姓名,性别,单位
数据流“借阅记录”可描述如下:
数据流名:借阅记录
说明:读者的借书记录
数据来源:办理借阅手续
数据去向:借阅
数据结构:读者编号、图书馆藏号、借阅日期
数据存储“借阅”可以描述如下:
数据存储名:借阅
说明:记录读者的借书情况
流出数据流:借阅记录
流入数据流:借阅记录
数据描述:读者编号、图书馆藏号、借阅日期
数据量:每年5000条以上
存取方式:随机存取
处理过程“判断能否借书”可描述如下:
处理过程“判断能否借书”
说明:根据读者的已借书情况可被借图书的馆藏情况判断读者能否借书
输入:借阅记录、读者信息、被借图书信息
输出:能否借书的标志
处理:读者提出借书请求后,先判断该读者以前的借书量是否达到了10本,如果达到了10本,则不能再借书,如果没有达到10本,则再判断读者要借的图书的可借量是否为0,如果不为0,则该书可以借出。
3.3 数据库设计
在图书管理系统中,数据库设计占重要位置,数据库设计质量的优劣,可直接影响到数据库数据的冗余度、数据的一致性、数据丢失等问题。下面就系统数据库规范化设计进行说明。
3.3.1 数据库设计的理论指导
数据库设计的理论指导是范式理论,其主要内容如下:
1)如果关系模式R,其所有的域为单纯域则称R是规范化的关系,或称第一范式 (1NF)
2)如果关系模式R为第一范式,且每个非主属性完全函数依赖于码,则模式R为第二范式(2NF)。
3) 如果关系模式R为第二范式,且每个非主属性非传递依赖于码,则称关系模式R为第三范式(3NF)。
4)关系模式R为第一范式,满足函数依赖集合F,X和A均为R的属性集合,且X不包含A,如果R满足X->A且X必包含R的码,称关系模式R为BCNF范式。
3.3.2 数据库设计
图书管理系统数据库常常要设计含有如下数据项:借书证号、姓名、单位、馆藏号(馆藏号为每本书上的条形码号)、书名、分类号、作者、价格等。如何进行模式的设计呢?下面以图书流通模块所涉及的数据库为例来说明。
图 书
读 者
借阅
m
n
借阅时间
馆藏号
书名
分类号
作者
价格
借书证号
姓名
性别
图4 图书流通的E-R图
属于
单 位
1
n
单位名称
单位编号
先设计图书流通的实体-关系图(E-R图)。E-R图由3个相关联的部分构成,即实体、实体与实体之间的关系以及实体和关系的属性。图书流通过程中实体“图书”与“读者”之间的关系是借阅和被借阅的关系,实体“读者”与“单位”之间的关系是属于和被属于的关系,“图书”的属性有“馆藏号”、“书名”、“分类号”、“作者”、“价格”,“读者”的属性有“借书证号”、“姓名”、“性别”,“单位”的属性有“单位编号”和“单位名称”,“借阅”属性“借书日期”,由此得出E-R图如图4。
从图中可以知道:
①“借书证号”是唯一的,所以“借书证号”决定“姓名”,每位读者应只属于一个性别,所以“借书证号”也决定“性别”;
②“馆藏号”是唯一的,所以“馆藏号”决定“书名”、“分类号”、“作者”、“价格”;
③ “单位编号”是唯一的,所以“单位编号”决定“单位名称”;
④ 每位读者在一个时间只能借一本书,所以“借书证号” +“馆藏号”决定“借阅时间”。
如果将这些数据项置于一个关系模式中,根据范式理论,该关系模式属于1NF(第一范式),它存在删除异常和冗余等问题,不是理想的模式,因此要把它分解成满足3NF或BCNF的关系模式。根据范式理论和E-R图转换成关系模型的规则,上面的E-R图可转换为4个关系模式:①图书(馆藏号、书名、分类号、作者、价格);②读者(借书证号、姓名、性别、单位编号);③借阅(借书证号、馆藏号、借阅时间),④单位(单位编码、单位名称),其中打下划线的为码,这样就解决了插入、删除和数据冗余等问题。
我们对数据的结构进行详细的分析,按照上述的设计思想,共设计了读者表,书目表,馆藏表,流通表等百余张数据表,然后创建视图和存储过程。下面举例说明:
读者表:借书证号、姓名、单位、读者类别、职称等字段;
书目表:馆藏号、ISBN、题名、作者、出版社、复本数、语种、文献类型、版次等字段;
馆藏表:馆藏号、索书号、分类号、种次号、馆藏位置、单价、出版日期等字段;
流通表:借书证号、馆藏号、借期、还期、续借、应还期、操作员等字段;
借阅规则表:读者类别编码、图书类别编码、限借册数、每期天数、续借天数、过期日期、罚金等字段。
读者类别表:读者类别编码、读者类别等字段。
图书类别表:图书类别编码、图书类别等字段。
3.4 数据库索引
建立索引是加快查询速度的有效手段,数据库的每一个表建立了主键,主键由一个或几个字段组成,每一个表都按主键建立了索引,部分表为了满足查询和排序的需要,除建立主索引外,还建立了次索引。例如在查询时要用到“馆藏号”、“作者”、“题名”等条件来查找图书,因此,在书目表上除了对主键“馆藏号”建立了主索引外,也对“作者”、“书名”等建立了次索引。
3.5 视图
视图是从一个或几个基本表导出的表,它是定义在基本表之上的,它是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,数据仍然存放在原来的基本表中。通过定义视图,可以使用户眼中的数据库结构简单、清晰,并可以简化用户的数据查询操作。由于本系统数据表较多,表中的字段多,为了简化对表的操作,我们创建了图书_按书名查询、期刊_按刊名查询、期刊_按编辑部查询、借阅规则查询、待还书查询、超期记录查询等30余个视图。
3.6 存储过程
存储过程是一段经过编译的程序代码,存放在数据库服务器端。通过调用适当的存储过程,可在服务器端处理大量数据,再将处理结果送到客户端。这样可减少数据在网络上的传送,消除网络阻塞现象;例如:要查询某条记录,若该记录在表中的顺序号是10000,不采用存储过程,服务器将从1至于10000条记录数据逐条送至客户端,采用存储过程后,由于过程是经过编译的并且是在本地,不需要通过网络,因此能很快查出所需记录并将结果送到客户端,大大减少了网上数据传输量。存储过程另一好处是可供不同的开发工具调用,如PB、VB、ASP、Delphi等开发工具均可调用。在流通模块和WEB查询模块上均有图书检索功能,实际上调用同一存储过程完成的。本系统建立了60多个存储过程,实现诸如借还书处理、新书入库统计、编目入馆藏、读者统计、生成索书号等功能。
3.7 数据库调用
采用ODBC接口实现数据库的调用,采用ADO接口调用。
4 条形码的使用
条形码具有唯一性和一次输入后就可反复使用的优点,利用条形码技术作为信息快速输入的手段可迅速且不易发生错误地处理图书管理业务。本系统使用条形码作为图书和读者的标识,实现标识的唯一性。
使用条码后,能够使图书管理工作更加简单、快捷、不易出错。例如,当一本书具有唯一条形码标识,每位读者也具有唯一条形码标识时,图书的借阅、查询就十分便捷了。应用条形码取代了以往填写书袋卡、借书证,核对借阅时间等繁琐的手工劳动。读者在借书时只要将借书证给工作人员,工作人员只需登录借书系统,用条形码阅读器扫描读者借书证上的条形码,屏幕就会显示出该读者的信息,包括读者姓名、单位、可借几本书、已借几本书、是否过期、有无罚款等。如可以借书,工作人员只需用条形码阅读器扫描该读者所需借的书上的条形码符号后,该书的书名和条形码等信息都从数据库中调出显示在屏幕上,自动记录在该读者的借阅档案中,借书工作即告完成。一般借一本书仅需 1至 2秒钟。操作完后,计算机自动地将该借阅者和借阅的图书号码输入对应数据库中,并自动提示借阅期限。
参考文献
[1] 王珊着、数据库系统原理教程,清华大学出版社,2002.1
[2] 齐治昌等着、软件工程,高等教育出版社,2002.1
[3] 网络资源