华南师范大学软件学院
初级软件实作文档
指导老师:王涛
开发团队:星尘开发组
组长:李志杰
组员:李志杰
学号:20112004040
华南师范大学软件学院本7班
软件开发方向
目录
贺卡系统开发.................................................................................................................... 1
1 概述............................................................................................................................. 3
1.1 开发背景............................................................................................................ 3
1.2 开发目标............................................................................................................ 3
1.3 参考资料............................................................................................................ 3
1.4 设计原则............................................................................................................ 3
2 需求分析...................................................................................................................... 3
2.1 需求陈述............................................................................................................ 3
2.2 操作用例............................................................................................................ 4
2.3 功能分析划分..................................................................................................... 4
2.3.1 系统登录................................................................................................... 4
2.3.2 用户管理................................................................................................... 4
.......................................................................................................................... 4
2.5 运行环境............................................................................................................ 4
3 总体设计...................................................................................................................... 4
3.1 系统建模............................................................................................................ 4
3.1.1 层次方框图............................................................................................... 4
3.1.2 ER图(实体-联系图)............................................................................ 4
3.1.3 类图设计................................................................................................... 5
3.2 接口设计............................................................................................................ 5
3.2.1 内部接口设计............................................................................................ 5
3.2.2 登录界面设计............................................................................................ 5
3.2.3 用户管理界面设计..................................................................................... 5
.......................................................................................................................... 5
3.3 数据库结构设计.................................................................................................. 5
3.3.1 数据库E-R图........................................................................................... 5
3.3.2 数据库逻辑设计........................................................................................ 5
2.5 出错处理............................................................................................................ 5
2.6 安全保密设计..................................................................................................... 6
4 详细设计...................................................................................................................... 6
4.1 程序流程图......................................................................................................... 6
4.2 伪代码编写......................................................................................................... 6
5 实现............................................................................................................................. 7
5.1 编码................................................................................................................... 7
5.1.1 代码约定................................................................................................... 7
5.1.2 代码编写原则............................................................................................ 7
5.2 测试要点............................................................................................................ 7
5.2.1 登录测试要点............................................................................................ 7
5.2.2 主界面测试要点........................................................................................ 7
……................................................................................................................... 7
5.3 测试结果和总结.................................................................................................. 7
6.开发的总结
1 概述
1.1 开发背景
制作贺卡
1.2 开发目标
选择背景:列出可选背景图片
选择标题
输入文字
选择音乐
储存贺卡
在这里的每一个步骤,都可以回到上一岁,并且再向后走时,原来的设置不会被清除
1.3 参考资料
【该系统涉及的开源项目等】
【1】 JQuery
【2】 Smarty
【3】 PHPMailer
1.4 设计原则
本系统主要采用面向对象的开发方法,将各个功能模块划分成各个类,并采用单一职责的原则去设计每一个类和模块
2 需求分析
2.1 需求陈述
【用平常语言描述该系统的全部功能和细节】
这是一个集登录注册,设置贺卡,发送贺卡于一身的贺卡设置系统(网站)。贺卡系统能够保存每一位用户的贺卡设置信息,而且能够注册多个新的用户,并能防止注册同名用户。注册成功后即可通过用户名+密码的方式登录到贺卡设置的页面,然后在贺卡设置的页面上进行贺卡的设置和参数的保存。设置好能够将整张贺卡发送到指定的邮箱中。每次登录保存的贺卡信息后都不会丢失,上一次登录设置的贺卡信息能在下次登录中直接显示出来,不用重新设置。
2.2 操作用例
【描述具体的操作例子,比如登录后进行何种操作】
具体例子展示:
登录页:
注册页:
登录后的页面:
选择背景图片:
设置标题:
设置正文内容:
选择背景音乐:
预览:
保存贺卡并输入发送到的邮箱:
发送邮件:
接收到的邮件:
2.3 功能分析划分
【分析功能并划分功能块】
模块分类:底层数据库操作模块,注册模块,登录模块,贺卡设置模块,邮件发送模块,公共操作模块。
具体的模块关系如下:
模块设计分为两层,第一层封装了底层的数据库操作和公用的函数模块,第二层针对具体的功能进行设计,将各种具体功能封装成模块。第二层不会对数据库进行直接的操作,而是基于第一层的框架进行各种功能的实现。
A. 底层数据库操作模块:
这个模块封装了整个系统的底层数据库操作,提供了一个为上层模块对数据库进行操作的框架。
模块代表的类文件:SqlClass.php
B. 注册模块:
用以进行新用户的注册,位于第二层,代表的类文件是:RegisterNow.php
C. 登录模块
用以进行登录验证,位于第二层,代表的类文件是:login.php
D. 贺卡设置模块
用以保存和更新贺卡信息,位于第二层,代表文件是:cardClass.php
E. 邮件发送模块
用以发送邮件到指定的邮箱,位于第二层,代表文件是:mailClass.php
F. 公共操作模块
公共操作的函数模块,封装了缓存cookie和html转码的操作,代笔文件是:fns.php
2.3.1 系统登录
2.3.2 用户管理
能实现新用户注册和用户登录
2.5 运行环境
正式版本能在搭载msql数据库和Apache的linux时服务器中运行.
开发测试时在本地使用wamp搭建模拟服务器环境。
3 总体设计
3.1 系统建模
3.1.1 层次方框图
【从顶部开始,按照层次分类进行细化】
3.1.2 ER图(实体-联系图)
【分析各个对象之间的联系,画图ER图】
接口设计
3.1.3 类图设计
【使用UML画出各个类的属性、继承和方法】
3.2 接口设计
【各个子系统之间的接口和用户接口】
各个子系统之间通过最普通的类的初始化直接传值。
3.2.1 内部接口设计
【各个部件是通过何种方式进行连接,比如通过远程数据库,http等】
1. 注册模块通过数据库进行传值;
2. 登录模块通过数据库获取登录信息,然后将其储存到cookie中;
3. 贺卡设置模块通过post传值改变cookie的值,并在最后的保存贺卡模块中将cookie信息更新到数据库;
4. 发送邮件模块将cookie的值写到模版页,然后将模板页通过http发送到指定的邮箱中。
3.2.2 登录界面设计
3.2.3 用户管理界面设计
注册界面:
3.3 数据库结构设计
【主要是描述】
3.3.1 数据库E-R图
3.3.2 数据库逻辑设计
序号 |
字段名 |
类型 |
长度 |
默认值 |
允许空 |
主键 |
备注 |
|
1 |
uid |
int |
10 |
无 |
否 |
是 |
自增 |
|
2 |
uname |
varchar |
|
无 |
否 |
否 |
无 |
|
3 |
upw |
varchar |
|
无 |
否 |
否 |
无 |
|
4 |
backgroundImageUrl |
varchar |
|
无 |
否 |
否 |
无 |
|
5 |
backgroundMusicUrl |
varchar |
|
无 |
否 |
否 |
无 |
|
6 |
context |
tinytext |
|
无 |
否 |
否 |
无 |
|
7 |
title |
varchar |
|
无 |
否 |
否 |
无 |
|
2.5 出错处理
【描述如果出错的处理方法】
若出现系统出错,应该关掉浏览器并重新打开系统
2.6 安全保密设计
【描述采用何种方法保证安全性】
用户密码采用md5不可逆单向加密算法,保证即使在数据库数据泄露的情况下也无法登录到特定用户中进行数据修改。
4 详细设计
4.1 程序流程图
【具体来说就是把经过总体设计得到的各个模块详细的加以描述。】
4.2 伪代码编写
【使用中文或者英文进行伪代码编写,以后这些伪代码将会成为代码的注释】
5 实现
5.1 编码
类的命名采用骆驼命名法
5.1.1 代码约定
代码添加合理的注释
5.1.2 代码编写原则
通过类统一函数接口,并将数据操作放在类的内部实现
5.2 测试要点
5.2.1 登录测试要点
【描述该如何测试,数据的输入,类型】
测试流程图(从注册到发送邮件贺卡):
点击需要选定的图片,弹出警告框后即为保存成功:
设置标题,输入相关文字后按保存来保存:
设置正文内容,按保存键保存:
设置背景音乐:
预览:
保存成功,填写发送邮箱:
验证发送成功:
5.2.2 主界面测试要点
1.能否实现中文输入;
2.能否实现回车和空格排版;
3.能否实现发送邮件功能;
4.能否实现保存用户设置信息功能;
5.3 测试结果和总结
测试要点全部合格
6.总结
通过这次对贺卡系统的开发,我深刻地体会到开发一套完整系统的艰巨性和复杂性。开发系统的第一步不是coding,而是designing。面对一堆需求,第一步要做的是将需求分类,然后根据不同需求划分成不同的功能模块,并对不同功能模块之间的传值接口做好设计。除了这个外,很关键的一步是要对整个系统的操作步骤进行建模,即至少都要设计出一个行为序列图,对用户实例进行建模。做好这些后才能进行页面设计和后台功能的开发。
在开发过程中我也产生了一些新的想法:
这个贺卡系统很想邮箱中的信纸功能,如果对这个贺卡系统进行更深入的开发,即可开发出一个能自定义信纸和背景音乐,背景图片,字体样式的邮箱系统。
如果可以解决群发邮件的难题,这个系统也有可能被用于邮箱的群发攻击等恶意用途。