
1引言
1.1编写目的
银行存储系统的开发已经基本完成。写此项目开发总结报告,为了总结软件开发中的各种问题,初步作出软件评价,为开发者提供测试参考,以方便我们在以后的项目开发中来更好的实施项目的订制开发; 让我在今后的项目开发中有更多的有据的资料来规范我们的开发过程和提高我们的开发效率,从而创造更多的效益。
1.2背景
说明:
a.银行存储系统
b.用户:xx银行
1.3定义
测试用例:把测试数据和预期的输出结果称为测试用例。
黑盒测试:也称功能测试或数据驱动测试,指已知产品所应有的功能,通过测试来检测每个功能是否都能正常使用。测试时,把程序看作一个不能打开的黑盒子,测试者对程序接口进行测试。
白盒测试:也称结构测试或逻辑驱动测试,指已知产品内部工作过程,检测产品内部工作过程是否符合需求规格说明书的规定,按照程序内部的结构测试程序,检验程序每条通路是否都能按要求正确工作。测试时,测试者必须检查程序的内部结构,从检查程序的逻辑入手得出测试数据。
1.4参考资料
a.可行性分析报告
b.测试分析报告
c.规格说明书
d.数据库设计说明书
e.数据要求说明书
f.详细设计说明书
g.需求分析说明书
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
2实际开发结果
2.1产品
a.可行性分析报告
试分析报告
c.规格说明书
d.数据库设计说明书
e.数据要求说明书
f.详细设计说明书
g.需求分析说明书
h.java源文件
I.数据库分离文件
2.2主要功能和性能
1>外部功能:
本软件具有输入、输出、查找、更新等功能;
2>内部功能:
该软件集命令、编辑、编程于一身,完成过滤、定位、显示等功能。存款时,存款人写明存款信息,由业务员处理到系统,生成存款单。取款时,储户输入密码且密码正确或取款时未留有密码有电子系统自动生成且打印利息清单给储户。
软件有新建、修改、查询、更新等业务的功能,各模块有不同的功能,但是都能完成查询和储蓄功能。
3>开户:
| 名称、标识符 | 开户 |
| 功能描述 | 用户向银行前台工作人员出示身份证,填写姓名、家庭住址、身份证号码,并且决定开始要存入的初始金额;银行工作人员给用户开出帐号以及给出密码和开户日期。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 输入用户姓名、初始金额、身份证号 |
| 输出 | 帐号、密码、开户日期 |
| 名称、标识符 | 存款 |
| 功能描述 | 用户向银行前台工作人员提供帐号,并且决定要存入的金额;银行工作人员给用户帐号的余额和存款日期。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 帐号、存款金额 |
| 输出 | 帐号余额和存款日期 |
| 名称、标识符 | 取款 |
| 功能描述 | 用户向银行前台工作人员提供帐号和密码,并且决定要取出的金额;银行工作人员给用户帐号的余额和存款日期。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 输入帐号、密码、取款金额 |
| 输出 | 帐号、密码、取款日期 |
| 名称、标识符 | 查询 |
| 功能描述 | 用户向银行前台工作人员提供帐号和密码;银行工作人员给用户帐号的余额和查询日期。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 输入帐号,密码 |
| 输出 | 帐号、密码、开户日期 |
| 名称、标识符 | 转帐 |
| 功能描述 | 用户向银行前台工作人员提供要转出的帐号和密码还有要转入的帐号,并且决定要转帐的金额;银行给予用户转出帐号的余额和转帐日期。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 输入帐号,密码、转帐、帐号、金额 |
| 输出 | 要转出帐号的余额和转帐日期 |
| 名称、标识符 | 改密码 |
| 功能描述 | 用户向银行前台工作人员提供帐号和帐号的原密码,然后决定新密码。银行即用新密码代替用户帐号原来的密码。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 输入帐号,密码和新密码 |
| 输出 | 改密日期 |
| 名称、标识符 | 销户 |
| 功能描述 | 用户向银行前台工作人员提供帐号和密码,并且把帐号的余额全部取出,银行撤销这个帐号。 |
| 操作者 | 前台工作人员 |
| 用户输入 | 帐号、原密码和新密码 |
| 输出 | 销户的日期 |
2.4进度
在全体组员的一致努力和共同协作之下,实际进度基本与原定进度基本一致。
2.5费用
经费节余了,其主要原因是:由于组员的同心协力,还有就是组员技术都比较高,能在短时间内把自己该做的给做完。
。
3开发工作评价
3.1对生产效率的评价
开发的反复性比较多。
对客户的需求理解不是很透彻
综合以上,此项目的开发效率不是很高,相反有相当一定时间的浪费。
3.2对产品质量的评价
对产品功能的评价经过我们十三小组各个组员的共同努力协作,银行存储系统已经基本完成了客户的业务流需求,但是还是存在着一些问题,造成这些问题的原因是多方面的。如:前期系统数据库的设计缺陷和部分代码的构建缺陷、客户需求的理解上也存在一定问题,这就需要我们用一定的时间来维护客户使用过程中提出的新问题和存在的debug。总的来说,此系统的功能开发还是一个比较成功的案例。
3.3对技术方法的评价
1. 使用代码生成器:使用代码生成器 [动软.Net代码自动生成器],此工具在很大程度上提高了编码效率,从而加快了项目的开发进程。在以后的项目中,我们要尽量的来使用一些类似的工具来在最短的时间内完成工作。在今后的项目开发中,我们最好是能开发出适合自己的代码生成工具,更大限度的节省开发周期和开发费用。
2.使用数据库建模工具;PowerDesigner 工具来建立系统数据库模型,以方便程序员很好的理解业务流和掌握系统架构者的架构思想,更好的满足客户的功能需求。在今后的项目开发中,我们要更好的来完成系统的前期数据库模型的建立,最大的来优化系统功能。
3.使用第三方控件:此系统中使用了ComponentArt Web.UI 第三方控件。此控件在很大程度上满足了客户对软件界面的需求,从而也给软件的操作带来了方便。本项目中只使用了ComponentArt Web.UI一种第三方控件,在今后的项目开发过程中,要继续使用第三方的控件。这样以来,无论是针对软件界面的美观性、友好性来说、易操作性而言,还是针对系统开发效率而言,这都是很好途径。但需要意的是:在是使用第三方控件时,要谨慎的选择一些网络中的比较常见的第三方控件。
4.使用自定义控件:此系统中使用了自定义控件(GhdGridView),此自定义控件可以很好的统一系统中的所有信息显示表格样式。如客户对数据显示样式有什么新的意见,我就不需要修改每一个页面的表格样式,我们只需要修改GhdGridView控件的样式,系统中的所有继承自GhdGridView的表格样式都可以改变。
5.系统开发框架:此系统的框架使用的是简单三层结构,此框架在开发一些中小软件是比较实用的。但是我们要是可以开发出自己的框架,把一些通用的功能开发到框架中。这样以来,在以后的系统开发中,针对系统中一些通用的功能就不需要再开发,从而也可以很好的提高我们的开发效率;减少很护费用。使我们的技术不断的更加成熟。
6.系统安全加密:此系统中针对客户提出的系统安全问题,我们采用了Ikey加密硬件钥匙来验证客户端登陆客户的合法性,此Ikey钥匙可以绑定到一个系统使用用户,也可以让多个用户来使用一个加密钥匙来验证登陆系统的合法性。这样以来,即使用户的密码不慎丢失,或者被不法人员取得(不法人员他也是无法登陆到我们的系统中来),这样就最大的提高了我们系统的安全性。Ikey加密钥匙是很好的加密B/S架构软件的硬件工具,在以后的软件安全方面可以借鉴。
3.4出错原因的分析
给出对于开发中出现的错误的原因分析。
4经验与教训
1、签定合同:一个项目的开发成败或者说项目开发带来效益的大小,在很大程度上是受项目合同签定的影响的。往往,很多一部分公司与客户签定的项目合同都是很模糊的,也很难签定的比较清楚,这样以来就会导致在项目的开发后期,工作越来越大,影响项目的竣工周期;而且,项目的开发费用一般是不会变的。这样以来,我们就大大的降低了我们的开发效益。虽然需求范围很难签定的明确,但是我们在签定合同时,要尽量的去把合同功能边界和添加新功能的条件签定。
、开发团队:在项目确立后,要尽快的建立起项目开发团队。项目团队成员的团结合作、相互沟通是非常重要的,团队成员之间要相互学习彼此的优点和技术,使团队的能力不断的提高。这样,在项目的开发过程中,团队才不会被难题困住不动。另外,团队中要有一个项目负责人,这个人无论是在与客户的沟通上,还是在技术上都要是很出众的人,此项目负责人要能很好的沟通客户与开发成员之间,以此来更好的理解客户的功能需求。人的记忆力总是有限的,所以就要求开发团队成员要尽量的书写一些开发文档,这些文档往往是我们在项目开发后期要用到的可寻资料。项目团队士气是项目成功的一个因素,我们需要不断的来培养我们的团队气势,使我们的团队不断的壮大。
3、需求的调研:在项目确立后,就到了需求调研分析阶段。
1> 项目组对客户的整体组织结构、公司有关人员的关系、职责等如果没有一个很好、足够的了解掌握,这样项目组就无法很好的完整的整理到客户的需求、或者说客户真实的功能需求,如此以来我们就为自己埋下了地雷,影响项目的开发周期,这就要求我们要与客户搞好无论是工作上的还是生活上的朋友关系,要深入的去了解客户需求。
2>我们要尽量的让客户也参与到项目的开发团队中来,也就是说我们要使客户把自己也纳入到项目的开发团队中来,如此一来,我们掌握客户需求的真实性、可靠性就会大大的提高,也就不会为项目的后期功能开发埋下陷阱
3> 在需求调研过程中,如果缺乏足够用户参与,这样的需求调研也是失败的。很多程序员不愿参与到客户的需求调研中去,为什么呢?很简单,与客户沟通不如与代码沟通容易有意思。尽管这样,我们还是必须用足够多的时间去和客户进行沟通,了解他们真实的需求。很多用户也是如此,他们自己也不愿意参与到项目的需求调研中来,为什么呢?需求调研有出去和朋友一块烂漫对吗。。虽然现状如此,我们还是要努力的使客户参与到需求的调研中来。
4> 需求调研工具选择,客户一般对图形还是比较感兴趣的,所以我们在调研过程中,我要尽量的采用图形化界面来和客户沟通需求。比如可以采用Rose工具,把客户的意思转换为用例图、时序图、协作图、状态图、类图等,使表达的意思更加直观。这样客户会更快的进行问题的实质。
4.做好开发计划:在项目确立后,我们就需要做好项目开发计划,需求调研用时,开发用时,测试用时,实施用时,维护用时。在我们做好了计划后,我们要随时的跟踪计划任务的完成进度,从而使我们的项目进度掌控在我们的开发周期范围之内,今日计划、行动,明日成功。
5.很好的沟通:在其他行业中,人与人的之间的沟通只很重要的。项目开发也不例外,很好的沟通能够加快项目的进度,这就要求我们每一个开发人员要学会和善于沟通于客户和同事之间。在一个项目的开发过程中,我们与客户的沟通是一个不断交流和沟通的过程。在开发到一定的阶段,我们就需要和客户沟通已有功能,尽量的去避免一些隐藏的问题,及时的发现问题,解决问题,从而按时或者提前完成项目的开发。
6.做好工作总结:在项目进行的过程中,我们要不断去整理自己的工作情况和做好总结,这样以来,无论是在自己的技术还是其它方面,都会对我们有很大的提高,在长期的积累后,无论是我们个人能力,还是我们的团队能力都会有很大的提高。
