《java综合实践开发文档(电子日记)剖析》由会员分享,可在线阅读,更多相关《java综合实践开发文档(电子日记)剖析(11页珍藏版)》请在金锄头文库上搜索。
1、目录Java综合实践开发文档(例)题目: 电子日记 班级: 学号 姓名: 教师: 2017年1月18日1 需求分析11.1项目背景11.2 用例图11.3界面原型及用例分析11.3.1 登录/注册界面原型11.3.2主界面原型21.3.3日记编写31.3 系统逻辑流程42 总体设计52.1 存储设计52.2 加/解密方案52.3 界面设计52.3.1登录/注册界面设计52.3.2主界面设计52.4 类设计53 详细设计63.1 登录/注册63.1.1 登录63.1.2 注册63.2 日记管理73.3 日记编写73.4 关键技术实现73.5 程序执行效果74 总结85 参考文献9IIJava综合
2、实践开发文档(例)电子日记1 需求分析1.1项目背景关于选择该题目的想法,以及该软件的一些简要的背景信息描述。1.2 用例图本系统仅涉及到单一种类用户(操作人)角色。进行游戏得分纪录用户进入游戏图1.1 用例图1.3界面原型及用例分析1.3.1主界面原型列表框:日记列表2017年1月8日2017年1月7日2016年10月8日2016年10月7日文本框:日记详细内容按钮:创建日记按钮:保存按钮:删除文本框:日期下拉菜单:天气图1.3 主界面原型设计图界面原型功能说明:(1)日记列表:以列表框形式显示所有的日记文件,点击日记项则加载相应日记文件,并显示在右边“日记详细内容”中。(2)创建日记:创建
3、一个新日记,若本日已创建,则无法点击创建(3)保存日记:将日记保存至文件,可保存当日日记,无法保存历史日记(4)删除日记:删除选择的历史日记文件,并重新加载左边列表(5)日期:显示日记的日期,格式为:XXXX年XX月XX日 星期X,无法编辑(6)天气:选择当日天气,只能选择当日日记的天气,显示历史日记时该控件无法编辑(7)日记详细内容:显示日记详细内容,日期为当日时可编辑,若不为当日则无法编辑如果有静态图片无法表达的动画或高级的交互功能可在此说明。用例设计:用例名称:日记管理描述:对用户的日记文件进行管理优先级:A(高)角色: 用户前置条件:输入用户名和密码时主事件流:1. 用户输出用户名和密
4、码后,用例开始2. 启动程序后,遍历“日记文件目录”中的日记文件,将所有该用户的日记文件的文件名(每日的日记文件以日期命名)读出3. 用户点击其中列表中某个文件名4. 读取相应文件并使用已有的Key和IV向量解密,将其内容解析并显示出来5. 用例结束其他事件流:A1: 用户选择了历史日记 (1)提供删除功能,不允许修改 (2)返回主事件流第4步A2: 用户选择了当天的日记 (1)提供修改、删除功能(2)返回主事件流第4步A3: 如果解密失败 (1)提示日记文件无法显示,可能是密码错误 (2)返回主事件流第5步后置条件:删除日记即将当天的日记文件删除,修改后点击保存,日记内容(加密后)将覆盖保存
5、至原来的日记文件。特殊需求:1.3.2日记编写用例名称:日记编写描述:用户创建并编写新的日记优先级:A(高)角色: 用户前置条件:用户点击创建日记主事件流:1. 用户在主界面点击创建日记,用例开始2. 清空界面中显示日记内容的控件,在日期栏写入当日日期2. 创建当日日记文件,并存储至指定“日记文件目录”3. 用户编辑日记4. 用例结束其他事件流:A1: 如果用户在当天已创建日记(1)提示当天日记已创建(2)显示当天的日记(3)返回主事件流第3步后置条件:存储的日记文件为加密后的空日记文件,仅包含日期信息。特殊需求:1.3 系统逻辑流程绘制逻辑流程图从运行软件后,用户如何一步步操作软件的具体工作
6、流程。2 总体设计2.3 界面设计2.4 类设计用户类 User 权限返回类型名称类型说明publicStringuserName属性获取/设置存储用户名publicStringpassword属性获取/设置密码publicStringbuildKey()方法根据UserName和Password构造Key并返回privatestringbuildIV()方法根据UserName和Password构造IV向量并返回日记类 Diary权限返回类型名称类型说明publicStringfileName属性获取/设置日记文件名publicStringdate属性获取/设置日记日期publicStrin
7、gweather属性获取/设置天气publicstringcontent属性获取/设置日记内容publicstringbuildText()方法根据Date、Weather和Content构造日记的文件内容字串并返回。文件助手类 FileHelper (静态类)权限返回类型名称类型说明publicStringfileList(String dirPath)方法输入目录路径dirPath,返回该目录下的所有文件名数组publicvoiddelete(String filePath)方法输入文件路径filePath,删除该文件publicvoidcreateDir(String dirPath)方
8、法输入目录路径dirPath,如果不存在则创建该目录publicboolwriteFile(String filePath, byte Text, bool isOverWrite)方法输入文件路径filePath、文件内容字节数组和isOverWrite(指示是否覆盖已有文件);如果该文件存在,则先创建,如果已存在,isOverWrite为true则删除后重新创建,将内容写入文件后返回true,isOverWrite为false则不写入返回falsepublicbytereadFile(String filePath)方法从filePath读取文件,并将读取到的数据以byte数组的方式返回A
9、ES加/解密类 AESEncryptor权限返回类型名称类型说明publicstringkey属性设置KeyPublicstringiv属性设置IV向量publicbyteencrypt(String text)方法根据key和iv对text字符串进行加密,将密文以byte数组方式返回publicStringdecrypt(byte cryptograph)方法根据key和iv对密文cryptograph进行解密,将解密后的明文以String方式返回更多的类、接口设计注意:属性在java程序中以getXXX和setXXX方法实现,如果属性描述为:获取/设置,则两种方法都要实现;如果属性描述为:获取,则只实现getXXX方法;如果属性描述为:设置,则只实现setXXX方法。3 详细设计3.1 关键技术实现程序核心技术实现的关键(伪)代码及说明,禁止大段粘贴源代码,若有较复杂的逻辑可附上程序流程图3.2 程序执行效果截图,也可附在前面每个模块实现的地方4 总结系统的优点及不足今后的改进点开发过程中的心得等5 参考文献有就写,没有就不写9