|
一. 引言 |
1. 编写目的 |
500){this.resized=true;this.style.width=500;}" resized="0">从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。 |
2. 项目背景(略) |
3. 定义 |
500){this.resized=true;this.style.width=500;}" resized="0">在该概要设计说明书中的专门术语有:
500){this.resized=true;this.style.width=500;}" resized="0">总体设计
500){this.resized=true;this.style.width=500;}" resized="0">接口设计
500){this.resized=true;this.style.width=500;}" resized="0">数据结构设计
500){this.resized=true;this.style.width=500;}" resized="0">运行设计
500){this.resized=true;this.style.width=500;}" resized="0">出错设计
500){this.resized=true;this.style.width=500;}" resized="0">具体的概念与含义在文档后将会解释。
|
4. 参考资料 |
500){this.resized=true;this.style.width=500;}" resized="0"><软件工程概论> 李存珠 李宣东 编著 南京大学计算机系出版 2001年8月 |
二. 任务概述 |
1. 目标 |
500){this.resized=true;this.style.width=500;}" resized="0">该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。 |
2. 运行环境 |
500){this.resized=true;this.style.width=500;}" resized="0">软件基本运行环境为Windows环境。 |
3. 需求概述(略) |
4. 条件与限制 |
500){this.resized=true;this.style.width=500;}" resized="0">为了评价该设计阶段的设计表示的“优劣程度”,必须遵循以下几个准则:
500){this.resized=true;this.style.width=500;}" resized="0">1.软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。
500){this.resized=true;this.style.width=500;}" resized="0">2.设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。
500){this.resized=true;this.style.width=500;}" resized="0">3.设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。
500){this.resized=true;this.style.width=500;}" resized="0">4.应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。 |
三. 总体设计 |
1.处理流程 |
500){this.resized=true;this.style.width=500;}" resized="0">系统的总体处理数据流程如下图: |
![](http://www.mflw.com/tupian/xsxt/12.jpg) 500){this.resized=true;this.style.width=500;}" resized="0">
|
图八 500){this.resized=true;this.style.width=500;}" resized="0">总体处理流程图
|
|
2.总体结构和模块外部设计 |
500){this.resized=true;this.style.width=500;}" resized="0">模块是软件结构的基础,软件结构的好坏完全由模块的属性体现出来,把软件模块化的目的是为了降低软件复杂性,使软件设计,测试,调试,维护等工作变得简易,但随着模块数目的增加,通过接口连接这些模块的工作量也随之增加。从这些特性可得出如图九的一条总的成本(或工作量)曲线,在考虑模块化时,应尽量使模块数接近于图中的M,它使得研制成本最小,而且应尽量避免不足的模块化或超量。 |
![](http://www.mflw.com/tupian/xsxt/13.jpg) 500){this.resized=true;this.style.width=500;}" resized="0">
|
图九 500){this.resized=true;this.style.width=500;}" resized="0">模块化与总体成本
|
3.功能分配 |
500){this.resized=true;this.style.width=500;}" resized="0">从程序的结构中可以看出,学生的信息输入输出功能是由学生管理系统进行的。课程的信息输入输出是由课程管理系统进行的,而班级的信息流动则是班级管理系统进行的。 |
四. 接口设计 |
500){this.resized=true;this.style.width=500;}" resized="0">由于系统的各种内外部接口是通过借助数据库开发软件来实现的,是完全在数据库内部操作的,故在此略过此内容。 |
1. 外部接口(略) |
2. 内部接口(略) |
五. 数据结构设计 |
1. 逻辑结构设计 |
student_Info 学生基本信息表
|
列名
|
数据类型
|
可否为空
|
说明
|
student_ID |
INT(4) |
NOT NULL |
学生学号(主键) |
student_Name |
CHAR(10) |
NULL |
学生姓名 |
student_Gender |
CHAR(2) |
NULL |
学生性别 |
born_Date |
DATETIME(8) |
NULL |
出生日期 |
class_No |
INT(4) |
NULL |
班号 |
tele_Number |
CHAR(10) |
NULL |
联系电话 |
ru_Date |
DATETIME(8) |
NULL |
入校时间 |
address |
VARCHAR(50) |
NULL |
家庭住址 |
comment |
VARCHAR(200) |
NULL |
注释 |
|
|
class_Info 班级信息表格
|
列名
|
数据类型
|
可否为空
|
说明
|
class_No |
INT(4) |
NOT NULL |
班号(主键) |
grade |
CHAR(10) |
NULL |
年级 |
Director |
CHAR(10) |
NULL |
班主任 |
Classroom_No |
CHAR(10) |
NULL |
教室 |
|
|
course_Info 课程基本信息表
|
列名
|
数据类型
|
可否为空
|
说明
|
course_No |
INT(4) |
NOT NULL |
课程编号(主键) |
course_Name |
CHAR(10) |
NULL |
课程名称 |
course_Type |
CHAR(10) |
NULL |
课程类型 |
course_Des |
CHAR(50) |
NULL |
课程描述 |
|
|
gradecourse_Info 年级课程设置表
|
列名
|
数据类型
|
可否为空
|
说明
|
grade |
CHAR(10) |
NULL |
年级 |
course_Name |
CHAR(10) |
NULL |
课程名称 |
|
|
result_Info 学生成绩信息表
|
列名
|
数据类型
|
可否为空
|
说明
|
exam_No |
CHAR(10) |
NOT NULL |
考试编号 |
student_ID |
INT(4) |
NOT NULL |
学生学号 |
student_Name |
CHAR(10) |
NULL |
学生姓名 |
class_No |
INT(4) |
NULL |
学生班号 |
course_Name |
CHAR(10) |
NULL |
课程名称 |
result |
FLOAT(8) |
NULL |
分数 |
|
|
user_Info 系统用户表
|
列名
|
数据类型
|
可否为空
|
说明
|
user_ID |
CHAR(10) |
NOT NULL |
用户名称(主键) |
user_PWD |
CHAR(10) |
NULL |
用户密码 |
user_DES |
CHAR(10) |
NULL |
用户描述 |
|
图十 500){this.resized=true;this.style.width=500;}" resized="0">数据库逻辑结构图表
|
2. 物理结构设计 |
500){this.resized=true;this.style.width=500;}" resized="0">系统的物理结构具体由数据库来设计与生成,此处略。 |
3. 数据结构与程序的关系 |
500){this.resized=true;this.style.width=500;}" resized="0">系统的数据结构由标准数据库语言SQL生成。
500){this.resized=true;this.style.width=500;}" resized="0">具体的例如创建系统用户表格 user_Info的程序用SQL表示就是:
500){this.resized=true;this.style.width=500;}" resized="0">CREATE TABLE[dbo].[user_Info](
500){this.resized=true;this.style.width=500;}" resized="0"> 500){this.resized=true;this.style.width=500;}" resized="0">[user_ID][char](10)COLLATE Chinese_PRC_CI_AS NOT NULL,
500){this.resized=true;this.style.width=500;}" resized="0"> 500){this.resized=true;this.style.width=500;}" resized="0">[user_PWD][char](10)COLLATE Chinese_PRC_CI_AS NULL,
500){this.resized=true;this.style.width=500;}" resized="0"> 500){this.resized=true;this.style.width=500;}" resized="0">[user_Des][char](10)COLLATE Chinese_PRC_CI_AS NULL
500){this.resized=true;this.style.width=500;}" resized="0">) ON [PRIMARY]
|
六. 运行设计 |
1. 运行模块的组合 |
500){this.resized=true;this.style.width=500;}" resized="0">具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。 |
2. 运行控制 |
500){this.resized=true;this.style.width=500;}" resized="0">软件运行时有较友好的界面,基本能够实现用户的数据处理要求。 |
3. 运行时间 |
500){this.resized=true;this.style.width=500;}" resized="0">系统的运行时间基本可以达到用户所提出的要求。 |
七. 出错处理设计 |
1. 出错输出信息 |
500){this.resized=true;this.style.width=500;}" resized="0">在用户使用错误的数据或访问没有权限的数据后,系统给出提示:“对不起,你非法使用数据,没有权限!”而且用户的密码管理可以允许用户修改自己的密码,不允许用户的匿名登录。 |
2. 出错处理对策 |
500){this.resized=true;this.style.width=500;}" resized="0">由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库的恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间,权衡措施由用户来决定。 |
八. 安全保密设计 |
500){this.resized=true;this.style.width=500;}" resized="0">系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作,而且对一些重要数据,系统设置为只有更高权限的人员方可读取或是操作。系统安全保密性较高。 |
九. 维护设计 |
500){this.resized=true;this.style.width=500;}" resized="0">由于系统较小没有外加维护模块,因为维护工作比较简单,仅靠数据库的一些基本维护 |