团队作业(二)
1 概述
1.1 开发背景
随着电子设备的普及,人们逐渐习惯了利用手机拍照和备忘录来记录我们所要记录的内容,所以我们团队对此现象开发了一个笔记软件,记录生活中所需要记录的内容。
1.2 开发目标
基本功能:1.新笔记,大家创建一个新笔记并记录你所需要记录的内容。2.查找笔记,文件太多时,用户可以输入时间或者主要内容就可以找到当时记录的笔记。3.删除笔记,用户可以删去没用的笔记。
程序操作简单,易使用。
1.3 参考资料
《构建执法》(第二版)邹欣,人民邮电出版社;
1.4 设计原则
设计时将功能封装在类里,可以随时添加新功能。
2 需求分析
2.1 需求陈述
该程序可以完成新笔记的记录,查找你所写过的笔记,删除没用的笔记,操作简单方便。
2.2 操作用例
操作用例分为主界面,查找和删除。
2.3 功能分析划分
各部分功能在下图会给出。
3 总体设计
3.1 系统建模
3.1.1 层次方框图
3.1.2 ER图(实体-联系图)
3.1.3 类图设计
3.2 数据库结构设计
这次我们没采用数据库来设计,我们主要思路就是讲笔记保存在文本文档中,再通过调用文本来打开这内容。
4 详细设计
4.1 程序流程图
4.2 伪代码编写
基于要编写笔记记录软件,我们先编写了一个class Note。将其作为#include"Note.h",为了不让大家编写时重复,我们定义了如下
#ifndef Note.h
#define Note.h
......
#endif
类中有构造函数Note(),此函数中我们编写了初始界面。
void CheNote();此函数功能为查找,用户可以在搜索中添加关键字来搜索。
void DelNote();此函数为删除功能,我们将所有笔记日期赋值给了string指针。通过他来查找到文档中指定时间段的内容并删除。
还有些小函数不做解释,可以看上传的代码。
5 实现
5.1 编码
5.1.1 代码约定
1.我们将类作为单个文件#include“note.h”,也考虑使用模块Template <class T>。
2.对于大家可以使用的数据类型定义为extern data;。
3.对于注释要求简洁明了,使用户能够快速了解。
4.类和函数编写时不要过长,多使用继承。
5.减少代码嵌套。
5.1.2 代码编写原则
1.函数最短原则(不多于30行)。
2.变量单一职能原则(一个变量只允许承担一个责任,针对每次赋值,创建一个独立。对应的临时变量。循环变量和收集结果变量除外)。
3.函数单一职能原则(一个函数只做一件事情)。
4.for循环单一职能原则(一个for循环只做一件事情,也许你会考虑效率问题,但不经过测试是没有发言权的)。
5.三次原则(事不过三,三则重构)。
5.2 测试要点
5.2.1 主界面测试要点
选择是后笔记就会保存在文档中,查询文档时就可以发现已经保存在文档中了。
5.3 测试结果和总结
测试结果是看文档中的内容是否已经保存或者已经删除。
总结:这次我们用的是c++编写,在黑黢黢的DOS窗口下运行,但是看完大家完成的我们发现与别人的差距很大,大部分人使用了java以及在eclips环境下编写的app,我在接下来会学习windows编程来提高自己的能力。
开始要实施测试了,一边写测试用例一边执行,如果可以最好是先写测试用例然后执行,没时间写完整的用例时,可以列出需求点,针对每个需求点来进行测试。同时在执行中及时的补充与修改, 要整理出对功能中不明白之处,可以找相关人员可以是PM沟通。这个一定要坚持直到得到明确的答案。学会换位思考,将自己当成客户这是非常重要的,在测试中你可能会发现,有时无法关注测试的重点。有时客户表达的需求,开发团队所理解的需求,以及客户真正使用时的需求,有重大的差别;这时你需要静下心来,将自己当成客户,如果是客户他会怎样来操作这个界面,同时他要这个功能主要想完成哪些工作,如何才能更方面操作、更快捷的完成工作。
6 维护
6.1 维护方法
软件维护阶段是软件生存周期中的最后一个阶段,是一个重要的阶段,有很大的挑战性,迎接这些挑战需要技巧和方法。文章分析了软件维护的几种类型,不同类型的维护工作针对不同的工作内容,所占工作比重也不同,并分析总结出维护工作的特征,为管理软件维护工作打下基础;分析论证了软件维护的重要性,维护人员实际做的是幕后英雄的工作,也有很大的挑战性和成就感;最后,结合作者在软件维护管理和工作中的实践,总结出做好软件维护的几点实用的实践经验,改变对维护工作的认识是做好维护工作的前提。
在系统开发阶段已发生而系统测试阶段尚未发现的错误。所发现的错误有的不太重要,不影响系统的正常运行,其维护工作可随时进行:而有的错误非常重要,甚至影响整个系统的正常运行,其维护工作必须制定计划,进行修改,并且要进行复查和控制。预防性维护为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。例如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。
6.2 功能拓展方法
软件完成后,用户可能需要更多的软件功能,这样我们就需要给软件功能进行拓展。为了估计软件维护的有效程度,确定软件产品的质量,并且确定在维护中的实际开销,所以在功能拓展中应当做好事先的拓展方案以及市场调查。
如果要添加功能的话,只要在类里添加相应的函数内容来满足用户的需求。如可以将所记录的笔记分成更多的模块,生活类、学习类、感情类等等。
本次在写代码时没有加入用户设置密码的内容,所记录的笔记可能存在安全问题,我们会添加此功能来消除次隐患。