课程设计报告(2016--2017年度第2学期)名称:软件工程课程设计院系:计算机科学与技术班级:计科1303学号:201309010309学生姓名:李虓指导教师:宋雨陈晴王艳设计周数:2成绩:日期:2016年6月13日1《软件工程》课程设计任务书一、目的、要求通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。二、主要内容要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。三、进度计划序号设计(实验)内容完成时间备注1软件计划、软件需求分析、软件设计,制定出软件测试计划,软件测试用例第1周要求上机前做好充分的文档准备2各模块录入、编码、编译及单元测试第2周的第1、2天3联调及整体测试,第2周的第3、4天4验收,学生讲解、演示、回答问题第2周的第5天四、设计成果要求1.至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。五、考核方式(1)提交的文档规范,工作量大,文档逻辑性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》实验报告评分表)占60%(2)系统验收、讲解、答辩占25%(3)考勤占15%2016年6月13日2《软件工程课程设计》实验报告评分表姓名李虓专业班级计科1303学号201309010309题目JAVA图书管理系统标准分数得分(√)标准分数得分(√)标准分数得分(√)报告规范,符合要求20报告较规范,基本符合要求17报告不规范,不符合要求1110169819157614541813321210工作量大,报告完整20工作量适中,报告较完整17工作量较小,报告不完整14191613181512文档逻辑性强、正确,语言流畅20文档逻辑性较强,无明显错误,文字表述较流畅16文档有逻辑性,有明显错误,语言表述不顺畅12111915109181487171365实验报告成绩评分教师签字3一、课程设计的目的与要求1.课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。2.课程设计要求2.1课程设计准备1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。4)熟悉开发环境和开发工具。2.2内容要求1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;4)遵循上述文档的要求,实现软件;5)对所实现系统进行软件测试,完成软件测试报告。4二、设计正文1.软件计划和可行性分析报告1.1项目简介1.1.1项目目标当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。随着高等教育事业的快速发展,学校的规模不断扩大,学校的各种基本设施也在不断加强。图书馆是学校的一部分,它作为一种信息资源的集散地,服务于全校教学、科研以及学习生活方面,是校园内一个举足轻重的单位,它的操作和管理就显得尤为重要。图书馆应该能够为用户提供充足的信息和快捷的查询手段,且因图书和用户借阅资料繁多,包含很多数据的管理,为了使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询和修改图书信息,就有必要建立一个高效的图书管理系统。使用计算机对图书馆进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高图书馆管理的效率。对于一个现代高效的图书馆而言,它需要一个高速、快捷、方便的图书管理办法。1.1.2系统的简要描述,主要功能从总体上考虑,系统应该实现下列功能:对管理员来说,可以对学生、图书、图书系统管理员信息进行管理和维护,可以查看和维护系统状态。对学生来说,可以查询图书馆所存的图书、个人借阅情况,可以修改个人信息,可以借阅当前图书馆藏的图书。系统能够提供友好的用户界面,使各类用户的工作量最大限度的减少;系统具有良好的运行效率;系统要具有一定的智能型和创新性。51.2对现有系统的分析1.2.1处理流程和数据流程管理员流程图基本如下:失败成功读者流程图基本如下失败成功管理员登陆登陆检测管理员界面图书管理用户管理借阅管理用户登陆登陆检查用户界面图书管理借阅管理61.2.2对现有系统的其他说明1)维护:在系统交付之后的两年期限之内,系统的维护只要由开发单位提供维护;2)人员:开发人数较少,管理员数目一定,参加考试的人员必须是数据库中的存在人员,所以在每进行一次考试之前,管理人员都要确定可以参加考试的考生。3)开发者需要的环境:硬件环境:(1)处理器(CPU):双核酷睿I5(2)内存容量(RAM):至少2G软件环境:(1)操作系统:MicrosoftWindows7(2)数据库管理系统:SQLserver2008(3)Netbeans(4)软件需求管理工具RRP(IBMRationalRequisitePro)(5)软件设计工具RSA(IBMRationalSoftwareArchitect)(6)软件测试工具RFT(IBMRationalFunctionalTester)。4)局限性:开发人员全部为本科生,缺乏项目经验,技术操作方面还不太熟练。经过严谨的分析,可知原有的系统存在很大的局限性,比如技术的过于陈旧,人员工作负荷大,系统维护及费用支出巨大,人员与设备技术含量低等等一系列缺点,所有这些都明确了需要一个新的适应新的信息化时代的高科技的系统。所以开发这样一个系统还是很有必要的。1.3技术可行性分析基于Winform窗体程序的图书管理系统,关键技术在于各种信息管理,即从数据库中取得相应的数据,并收集学生和管理员输入的数据,能够对图书馆内借阅信息进行管理。我们的系统是使用C#语言和MicrosoftSQLServer2008数据库实现的,管系统的部署、应用、维护更加方便。因此技术方案是成熟的和可行的。1.4经济可行性分析近几年,计算机技术的发展和计算机办公自动化的普及和应用,计算机的应用也有了较大的提高。计算机也都成为高校管理工作中的重要设备。在硬件方面,无需单独购买计算机,只需利用目前已有的计算机,并且可以接入互联网即可,所以从用户角度完全可行。从开发7者角度,此类软件开发周期一般为2-3个月,开发所需硬件软件和软件要求是目前大多数PC机系统能够承担,开发费用不高。综上,本项目经济方面完全可行。1.5社会因素可行性分析在信息化高速发展的今天,原来图书管理方式已经越来越来不能适应广大师生的需要。因此,必须有一套应用于时代前沿的适应于新需求上的图书馆管理系统,提高考试效率,便捷人们生活。1.5.1法律因素我国法律制度健全,对于计算机软件国家法律有着一定的保护模式。《计算机软件保护条例》所称计算机软件,是指计算机程序及其有关文档。本系统所有文档及程序均受到法律保护,严禁非法使用。我国对计算机软件的法律保护模式也具有多样性。具有代表性的主要有3种模式:一是著作权法保护;二是专利法保护;三是商业秘密保护。目前,计算机软件在我国基本上是通过版权法得以保护。我国用著作权体系来保护计算机软件,版权法既有较为明确完善的立法,也有十分丰富的司法活动。保护的范围也很广泛,从系统软件、应用软件到源程序、目标程序,都可以受到保护。且目前世界上已经有六十几个国家采用版权法来保护计算机软件,我国也采用这种方式,便于得到世界范围的响应,也有利于国际间的文化、技术交流和经济来往。1.5.2用户使用可行性整个系统操作简便,界面友好,维护简便。数据库要求运行稳定,执行速度快,数据安全性高。用户使用得心应手,不需要经过特殊训练,只需稍加熟悉,就能胜任图书馆信息管理的工作。1.6可供选择的方案方案1:采用Java编写的Swing窗体为基础的图书馆管理系统,系统主要分为两部分:学生部分和管理员部分,学生部分实现的功能有:查询图书馆所存的图书、个人借阅情况,可以修改个人信息,可以借阅当前图书馆藏的图书。对管理员来说,可以对学生、图书、图书系统管理员信息进行管理和维护,可以查看和维护系统状态。该方案的优点和选择该方案的原因:(1)Java语言简单易用,兼容性好,JavaSwing窗体程序,比较简洁方便用户操作;(2)开发难度减低,减低开发成本;(3)在系统维护方面,C#语言连接数据库,实现系统与数据库的无缝连接,使系统维护开8销减到最小;方案2:系统可以选用CLIENT/SERVER即C/S模式缺点:(1)C/S模式开发成本高;(2)C/S模式多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。(3)在系统维护方面,C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.,升级难。(4)在硬件要求方面,C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.。方案3:购买“图书馆管理系统”,目前市场上的图书馆管理系统主要是提供全省/全国的大型图书馆。缺点:(1)系统购买费用昂贵;(2)对于以学校内部的小型图书馆为方便学生借阅有些显得“大材小用”;(3)购买一整套系统,维护比较困难,维护价格也比较高昂。可以从国内或国外直接购买,但是综合各种情况来看,还是由我们开发系统比较好,因为我们是根据你们的实际情况量身为你们所开发的系统,直接购买的也许不太合适,所以,我们建议你们使用我们所开发的系统。92.软件需求规格说明书(SRS)2.1需求概述1)软件需求的摘要和简单描述图书管理系统是一个图书馆的支持系统,它的总体任务是实现图书借阅和管理的信息化。图书管理系统需要满足来自两方面的需求,这两个方面分别是学生和图书系统管理员。a.对于学生来说,他们所关心的是:可以查询图书馆所存的图书、个人借阅情况,可以修改个人信息,可以借阅当前图书馆藏的图书:学生登录图书馆网站就可以直接查询图书馆的图书情况,学生根据自己的借书证号和密码登录系统可以进行本人借书情况的查询和本人部分信息的维护。具体来说,学生对功能的需求有:1、图书信息检索,可以按题名、作者、和出版社等检索条目进行精确或模糊检索,最快时间查找目标书籍。2、学生个人信息查询,学生根据借书证号查询本人当前的借书情况和历史借阅记录等。一般情况下,学生只应该查询本人的借书情况和维护个人信息,若要查询和维护其他学生的借书情