流程图
5实现和调试分析
实现环境
系统WindowsXP系统
操作平台MicrosoftVisualC++6.0
语言c++
调试分析:
通过对系统的调试,完成了最初的设计要求,
使各个模块的功能得以实现;
6测试分析
6.1编写目的
软件测试是为了发现程序中的问题。
本系统技术不很成熟,存于不少问题,测试变得非常重要。
软件测试的过程也是程序运行的过程,程序运行需要数据,为测试设计的数据称测试用例,设计测试用例的原则自然是尽可能暴露错误。
由于测试涉及问题很多,工作量又大,所以测试之前必须制订壹个计划。
6.2背景
由物流配送管理系统开发者开发出的系统进行测试。
6.3测试内容
软件测试主要工作内容是验证和确认,下面分别给出其概念:
验证是保证软件正确地实现了壹些特定功能的壹系列活动,即保证软件做了你所期望的事情。
1)确定软件生存周期中的壹个给定阶段的产品是否达到前阶段确立的需求的过程;
2)程序正确性的形式证明,即采用形式理论证明程序符号设壹计规约规定的过程;
3)评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相壹致进行判断和提出方案。
确认是壹系列的活动和过程,目的是想证实于壹个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件。
1)静态确认,不于计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
2)动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存于问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象仍是源程序。
6.4软件测试的分类
6.4.1关心软件内部结构和具体实现的角度划分,可分为白盒测试和黑盒测试。
6.4.1.1黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是于已知产品所应具有的功能,通过测试来检测每个功能是否均能正常使用,
于测试时,把程序见作壹个不能打开的黑盆子,于完全不考虑程序内部结构和内部特性的情况下,测试者于程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,且且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入均作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且仍要对那些不合法可是可能的输入进行测试。
6.4.1.2白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否均有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
于使用这壹方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径均测试了仍然可能有错误。
第壹,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了壹些和数据关联的错误。
6.4.2从是否执行程序的角度,可分为静态测试和动态测试。
6.4.3从软件开发的过程按阶段划分,可分为单元测试、集成测试、确认测试、验收测试和系统测试。
6.4.3.1单元测试
单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。
其目的于于发现各模块内部可能存于的各种差错。
单元测试需要从程序的内部结构出发设计测试用例。
多个模块能够平行地独立进行单元测试。
于单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,均能鉴别和响应。
6.4.3.2集成测试
通常,于单元测试的基础上,需要将所有模块按照设计要求组装成为系统。
这时需要考虑的问题是:
1)于把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
2)壹个模块的功能是否会对另壹个模块的功能产生不利的影响;
3)各个子功能组合起来,能否达到预期要求的父功能;
4)全局数据结构是否有问题;
5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
7.4.3.3确认测试
确认测试又称有效性测试。
任务是验证软件的功能和性能及其它特性是否和用户的要求壹致。
对软件的功能和性能要求于软件需求规格说明书中已经明确规定。
它包含的信息就是软件确认测试的基础。
6.4.3.4验收测试
1)于通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。
2)验收测试是以用户为主的测试。
软件开发人员和QA(质量保证)人员也应参加。
3)由用户参加设计测试用例,使用生产中的实际数据进行测试。
4)于测试过程中,除了考虑软件的功能和性能外,仍应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。
5)确认测试应交付的文档有:
确认测试分析方案,最终的用户手册和操作手册,项目开发总结方案。
6.4.3.5系统测试
系统测试,是将通过确认测试的软件,作为整个基于计算机系统的壹个元素,和计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合于壹起,于实际运行环境下,对计算机系统进行壹系列的组装测试和确认测试。
系统测试的目的于于通过和系统的需求定义作比较,发现软件和系统的定义不符合或和之矛盾的地方
7用户手册
1.进入前管理员验证
2简洁的功能选择界面
3.入库操作
4配送操作
5.费率设置
6.人员信息处理
总结
本次实验能够说是毕业设计的模板,以往的课程设计和这相比只是壹个小程序。
实验中对于系统的整体框架和功能,我们有过争论也有了共识。
经过多天团队的图书馆的资料查阅,网上资源的查找,遇到不能下载的例文不得不壹页壹页的截图,壹切付出和努力终于有了成果。
本实验中我完成了概要设计部分,为了能够有效完成任务,参考了课本和关联资料中有关这壹内容的部分;也于完成层次图和模块图的时候遇到了困难,不过经过不懈的努力最终完成。
于概要设计中,由于系统未成形,对于壹些部分没有深入设计,只对其进行了文字描述。
这是我第壹次做有整体性的系统性课程设计:
要考虑系统的整体功能,要配合团队的思想,对系统改进要配合队友的整体设计。
同时我也学到了很多:
对课程的设计要有我们自己的观点,要学会主动思考,不能局限于例文。
于系统功能设计时要多听取他人意见,要保证系统能带给使用者优越感和实用性,这些对将来毕业设计均有很大帮助。
经过本次设计,对毕业设计有了了解,我知道毕业设计比这次的要求更高,更严谨,系统设计的要更完善;不过,我有信心能够做的更好。
这次软件工程的课程设计持续的时间很长,让我们有足够多的时间去完成,但前期准备不足,没花多少时间于课程设计上,以至于到最后壹周均仍没做完,仍好,能够如期完成本次课程设计。
通过本次课程设计学到了不少东西,能够将课堂上学到的知识用到本次课程设计中,但同时也发现了自己的不足,虽然上课均听了,笔记也记了,但做课程设计的过程中发现自己仍有很多不会,不能灵活运用上课学到的知识,通过问其他同学,冰河本小组成员之间相互讨论,把问题解决了。
感谢老师,感谢同学,能够有这次机会做本课程设计,而学到壹些东西。
于需求分析,详细设计,概率统计中,有很多地方是要画图,本小组以以人为主,互相之间讨论,得出结果,其他可行性分析,界面设计等因为比较简单,均由个人自主完成。
本课程设计由全体小组全部完成,均是不是认为自己能做好的,但我们做完了,很有成就感。
懂得,做事不投机取巧,尽量自己认真去完成。
这次的软件工程课程实验用时颇长,但我从这次的课程设计中得到了宝贵的经验和壹些实验心得。
首先先说说作课程设计的壹些经验。
于选择课程设计的题目时,首先先要和小组成员探讨壹下哪些课题比较适合我们小组成员喜欢作的,然后大家于集体研究下该课题需要完成哪些功能,也就是说需要哪些知识,然后小组组长安排小组成员分别做哪些部分,这样就能够做到分工明确,每个小组成员均能做到壹部分课程设计,以免个别成员偷懒。
接着,每个小组成员根据多分到的课程设计中的壹部分,上网或者图书馆找关联的资料已完成所需的设计。
最后,各个小组成员然后于壹起把所有的资料集中到壹起分享,这样就能够得到关于课程设计的知识,以便更好的完成设计。
其次再说说自己的感想。
通过近1个月的课程设计,我发现了我于做课程设计这块上经验的缺乏,以及壹些知识的匮乏,导致我前期做起来感到费劲。
通过仔细的见完和研究下《软件工程及软件开发应用》中的关联知识,我以前没学好的知识,如:
需求分析中的数据流程图和数据字典,总体设计中的结构图,尤其是我所做的那课程设计中的详细设计,让我更加的对程序流程图,N-S图,PAD图等构成设计的工具的了解和熟悉。
总的来说,课程设计是让我们更好的于学习和巩固壹下我们所学的知识,俗话说:
学而致用,读万卷书不如行万里路就是这个道理。
参考文献
毕硕本、卢桂香编著《软件工程案例教程》北京大学出版2007年8月第壹版
陈明编著《软件工程课程实践》清华大学出版社2009年8月第壹版
施壹萍编著《软件工程及软件开发应用》清华大学出版社2009年9月第壹版
郑阿奇编著《VisualC++.NET程序设计教程》机械工程出版社2007年6月第壹版
许家珆、白忠建、吴磊编著《软件工程——理论和实践》高等教育出版社2009年10月第二版
王珊编著《数据库系统概论》高等教育出版社2006年5月第四版
附录源代码
#include
#include
#include
#include
#include
classdata{
public:
intprice;
intnum;
};
classdata2:
publicdata
{
public:
intclientnum;
intxprice;
char*date;
};
classman{
charnum[10];
charname[10];
charsex[10];
public:
man(char*nu="",char*na="",char*se="")
{
strcpy(num,nu);
strcpy(name,na);
strcpy(sex,se);
}
friendostream&operator<<(ostream&out,constman&s)
{
out<returnout;
}
};
voidapp()
{
system("cls");
cout<<"1.即时业务办理"<cout<<"2.查询汇总处理"<cout<<"3.数据更改操作"<cout<<"4.人员信息处理"<cout<<"请输入你需要的操作:
";
intq=0;
cin>>q;
switch(q)
{
case1:
{
cout<<"1.入库"<cout<<"2.配送"<cout<<"请输入你需要的操作:
";
intw=0;
cin>>w;
if(w=1)
{
dataone;
cout<<