软件工程专业大型软件项目实训报告.docx
- 文档编号:15243900
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:28
- 大小:606.17KB
软件工程专业大型软件项目实训报告.docx
《软件工程专业大型软件项目实训报告.docx》由会员分享,可在线阅读,更多相关《软件工程专业大型软件项目实训报告.docx(28页珍藏版)》请在冰点文库上搜索。
软件工程专业大型软件项目实训报告
XX工程技术大学
大型软件项目实训报告
一、实训目的
为了将大学所学习的知识应用到实际开发中,做出一个完整规X的管理系统。
完成具有增加、删除、修改、查询等功能的软件产品。
了解实际开发的工作流程,按模块化进行开发有利于提高工作效率和软件的高集成率。
运用面向对象的开发思想,使用JSP,Serverlet基于MVC的Web应用框架Struts1.2和Oracle10g数据库技术进行对日项目开发,在开发过程中使用SourceSafe进行文档及代码的配置管理。
制定开发计划、进行人员配置、从业务需求分析入手、实施概要设计、详细设计、编码制造、单体测试、结合测试等各开发过程,完成整个软件项目开发周期,在项目开发各实施阶段严格进行评审,以保证项目质量。
二、实训时间和地点
1.实训时间:
2013年07月23月~2014年1月17日
2.实训地点:
XX华信新技术培训中心
三、实训单位简介
本部分对实训单位进行简单介绍及实训单位计算机软件、硬件情况(简单写
XX华信计算机新技术培训中心(简称华信IT培训)成立于2003年7月,由XX华信计算机技术股份XX基于进军IT教育产业而投资创办,在结合自身技术优势的基础上,与日本日立系统服务公司合作,主要开展以日语为学习语言、符合日本商务习惯、面向对日软件开发业务的IT技术培训,为对日软件开发产业的发展培养实用型、复合型、职业化、专业化的软件人才。
在硬件设施方面,华信IT培训拥有国内一流的办学设施,培训教室3000余平,可同时满足课堂式培训、交互式培训及OJT等多种形式的教学方式。
在师资力量方面,华信IT培训拥有一支经验丰富的师资队伍。
所有技术讲师都拥有多年软件开发经验及授课经验,这些来自国内外知名IT企业的一线实战技术专家,任课前都经过系统培训,并持有原厂商的认证考试证书。
课程研发团队定期参加各类技术的深造培训,保证了教学的前瞻性、专业性和实用性。
同时,有日方培训专家进行全程的教学指导,严格保证各项培训的考前辅导质量。
华信IT培训国际化、专业化的课程体系,一直随着技术进步和企业需求不断完善。
该课程体系汲取了XX华信计算机技术XX十余年的技术开发经验和丰富的IT管理经验,设置了有针对性的对日软件开发课程内容,同时引进国外的原版教材,开设Java、Oracle、.NET、Cobol、软件开发规则、对日业务流程及开发方法、IT日语等适合对日软件开发公司的实用高端课程。
为打造一流的产业化人才培养基地,从2003年年末,华信IT培训与优秀的系统分析专家和教育专家携手,以完全面向实践性的课件CASESTUDY培养开发工程师、测试师、设计师、项目管理人员、IT专业日语翻译等多层次人才。
华信IT培训凭借雄厚的IT产业实战经验、吸纳先进的培训体系,以非凡的实力、踏实的作风构建起XX对日IT技术的人才培养的“后方基地”,通过向个人、团体客户提供多领域、多层次的培训课程,成为了IT技术特别是对日软件开发技术、软件工程、项目管理等领域的优秀培训服务提供商。
五年来,近万名高校毕业生通过华信IT培训的“人才绿色通道”成功步入IT行业,在软件开发领域体现着自身的价值。
四、实训内容
4.1实训期间完成的学习任务
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。
Java是一种软件技术是一种由美国SUN计算机公司所研究而成的语言是一种为Internet发展的计算机语言是一种使网页产生生动活泼画面的语言是一种使网页由静态(Static)转变为动态(Dynamic)的语言是一种语言,用以产生「小应用程序」是一种简化的C++语言是一种安全的语言,具有阻绝计算机病毒传输的功能是一种将安全性列为第一优先考虑的语言是一种使用者不需花费很多时间学习的语言是一种突破用户端机器环境和CPU结构的语言是一种写一次,即可在任何机器上执行的语言是有史以来,第一套允使用者将应用程序通过Internet从远端的服务器传输到本地端的机器上并执行。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
主要功能特点首先完整的数据管理功能:
数据的大量性、数据的保存的持久性、数据的共享性、数据的可靠性。
完备关系的产品:
信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;保证访问的准则;视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化;数据物理性和逻辑性独立准则。
分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。
JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。
web包括:
web服务器和web客户端两部分。
Java在客户端的应用有javaapplet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
Java技术对Web领域的发展注入了强大的动力。
JavaEE标准,这意味着有很大的市场需求和更多的工作机会,上手快速并且相对容易,有大量可用的组件库。
对覆盖绑定(overridingbinding)、验证(validation)等提供生命周期管理。
与许多表示层技术/框架无缝集成:
JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF等。
便于测试归功于IoC不需要书写XML配置文件,良好的学习文档。
架构简单易于扩展,标记库很容易利用FreeMarker或者Velocity来定制,基于控制器或者基于页面的导航。
一旦学会它,将极大地提高生产率。
HTML模板对页面设计师非常有利每出一个新版本,都会有大量的创新。
对Java开发者有利,页面和显示绑定紧密。
JavaWeb其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件(SSH等)JavaWeb其实做什么都可以,你可以通过JavaWeb制作一个软件,一个ERP,一个网页,甚至是一个网络游戏都可以。
没有特定的X畴。
在加上Java的可移植性,现在普遍用于各种ERP,大型交互式的开发。
说白了跟JavaSE中的GUI原理上是一样的,只不过JavaSEGUI是以桌面的形式展现的,就好像普通版QQ,JavaWeb是以网页的形式展现的.就好像网页版QQ。
Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。
它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller〔MVC〕设计模式的应用框架〔WebFramework〕,是MVC经典设计模式中的一个经典产品。
服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
Struts的工作过程以登录为例:
第一次进login.jsp会先实例化Form、把默认值(String默认为空字符串,整型默认为0)赋给表单元素。
输入用户名密码提交表单、提交到action属性的login.action,通过ActionServletstruts-config.xml文件找到action下的path属性找到.action,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的execute方法。
Model部分由JavaBean组成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分采用JSP实现。
Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。
对应上图的JSP部分。
Controller组件Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。
系统核心控制器,对应上图的ActionServlet。
该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。
该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。
对应Action部分。
struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。
struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。
struts提供的类使得开发工作更加简单,这些类包括:
控制程序流程的类、实现和执行程序事务逻辑的类、自定义的标记库使得创建和验证HTML表单更加容易。
软件测试是指理解产品的功能要求,并对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,写出相应的测试规X和测试用例。
简而言之,软件测试在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
发现一些可以通过测试避免的开发风险、实施测试来降低所发现的风险、确定测试何时可以结束、在开发项目的过程中将测试看作是一个标准项目。
测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。
应该充分注意测试中的群集现象。
对策就错误结果进行地一个确认过程。
一般由A测试出来的错误,一定要由B来确认。
严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格的确认,是否真的存在这个问题以及严重程度等。
制定严格的测试计划。
一定要制定测试计划,并且要有指导性。
测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。
妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
IT日语是以大学“日语专业+软件专业”的高年级学生为对象,吸取了日语专业的句型法、功能法以及软件专业教材的长处而编写的。
IT日语分别由课文、注释、单词表、练习以及阅读课文组成。
课文提供了专业知识;注释部分通过提示和注释基本句型、语法,使学生能够准确掌握日语语言规律;练习部分使学生更好地掌握学习重点,阅读课文部分与课文内容紧密相关,是课文的延伸和知识的扩充在全日文系统case学习中起到很大作用。
CaseStudy做的系统是物流出货管理系统。
此系统主要包括登陆、订单管理、配车管理、出货管理四个模块。
订单负责人通过订单管理模块进行订单的查询、订单的添加、订单的删除,进而形成“订单一览表”。
然后配车负责人根据“订单一览表”通过配车模块,形成“配车记录”。
配车负责人通知配送者根据货主提供的“装货指示书”进行装货。
配送者装完货将预计的装货信息和实际的装货信息发送给XX物流公司。
出货负责人根据“配货指示书”和“出货实际一览表”确认当天的出货情况,通过配货模块形成“出货实际一览表”和“配车一览表”。
CaseStudy的学习让我们比同起跑线的人多了些项目经验,虽然大型企业对工作经验的要求更不严格,因为大型企业有能力对没有工作经验的员工进行在岗培训,但是中小企业则偏好那些具有一定相关经验的员工,这类员工一进入公司就能很快投入到工作当中。
现在求职的人比较多,给需要用人的单位有很大的挑选余地。
在这种情况下需要用人的单位当然喜欢用有工作经验的人,因为这样的人工作上手快,可以减少培训成本。
现在大多考虑成本的问题,为了降低成本,减少培训投入,所以都要有经验的。
然而有项目经验就是我们最大的优势。
更有利于我们找工作。
4.2实训期间完成的实践项目
4.2.1需求分析
通过市场调查,物流的市场份额越来越大。
随着科技的发展一些古老的方式逐渐被淘汰,网络的发达取代了写信。
邮递员被快递员取代,所以物流出货系统的出现大大的减少人力,提高效率。
由于传统的物流行业操作过程复杂,手续繁多,业务信息多,围绕这些信息的处理也很纷杂。
而且,物流行业竞争激烈,这种竞争,一方面表现在发展客户的时常开拓上,另一方面也存在与收集处理信息的速度、广度和深度,以及在业务操作中对业务数据处理的准确性和严密性,而更高层次上,还涉及公司决策层对整体业务的控制和协调。
物流配送管理系统从物流行业的实际需求出发,参照先进的物流理念和多家领先的物流公司实际运营流程开发而成,系统从完善的基础信息设置到货物的托运管理、在途跟踪,信息查询,到达地地址到最后的各种报表的生成,清晰的业务流程,使操作人员能够按照流程清晰的流程进行实际的操作,保证物流运作有序而高效的进行。
处理订单编号。
记录对应货主发货地点等的信息。
记录发货日、交货日等信息。
关于送货地点,记录邮政编码、省市区县、村街巷路、所在地等信息。
关于货物,有每1包装的质量、包装箱的宽度、长度、高度的信息。
根据计算质量合计和容积合计来决定打包数。
记录订单编号、发货日、货主、发货地点、送货地点、送货地点住所、货物名称、交货日、打包数、质量合计、容积合计、发货状况分类等的信息。
更改订单信息对照“订单一览表”检索对象信息,进行修改。
删除订单信息对照“订单一览表”检索对象信息,进行删除。
目前大部分的物流配送公司的业务流程是从客户服务中心开始,然后录入运输单并确认;配车部门针对已确认的运输单进行配车派车、打印派车单;接着,司机上门装货,并确认装车确认地址、签订运输合同、打印装车单;确认在途后,进行行车在途跟踪,随时向客户提供车辆的运行情况;运输完成后,进行回单确认。
物流配送管理系统是一个典型的数据库管理系统。
本系统具有以下功能:
处理订单编号。
记录对应货主发货地点等的信息。
记录发货日、交货日等信息。
关于送货地点,记录邮政编码、省市区县、村街巷路、所在地等信息。
关于货物,有每1包装的质量、包装箱的宽度、长度、高度的信息。
根据计算质量合计和容积合计来决定打包数。
记录订单编号、发货日、货主、发货地点、送货地点、送货地点住所、货物名称、交货日、打包数、质量合计、容积合计、发货状况分类等的信息。
更改订单信息对照“订单一览表”检索对象信息,进行修改。
删除订单信息对照“订单一览表”检索对象信息,进行删除。
安排配车作为处理对象的发货日(处理日的第二天),从“订单一览表”检索未配车的订单信息,在“车辆记录”中选择车辆装货。
这个工作是由配车负责人完成的。
增加车辆有必要分配新的车辆的时候,从“车辆记录”中检索当天没有被配车的车辆,选择要追加的车辆。
在追加车辆处理配车编号,在“配车一览表”中记录该车辆的信息(车辆编号、车辆种类、司机、最大质量、最大容积等)。
配车一览表的式样:
记录配车编号、发货日、车辆编号、车辆种类、司机、最大质量、最大容积、质量率、容积率、订单件数、去向、发货状态分类、此外还有装货的装货信息等。
装货从“配车一览表”中的配车后的车辆信息中选择装货后的配车。
此外,从“订单一览表”中的未配车的订单信息中选择要装货的订单信息(多项选择)。
在选择的配车中,确认选择订单的货物是否能装货(货物的质量·容积的合计不能超过该车辆的最大质量·最大容积),不能装货的车辆需要重做。
可以装货的时候,根据被累计追加的订单的装货信息,算出“配车一览表”中的质量率、容积率、订单件数,记录装货后的订单信息。
记录后,把“订单一览表”中的发货状况分类更新为“配车后”状态。
去向,是指同一车辆中最小的订单编号的送货地点住所(省市区县+村街巷路)。
取消装货(卸货)从“配车一览表”中选择车辆对象。
从被选择配车编号的车辆中,取消指定的装货信息,在“订单一览表”中作为未配车的订单信息返回。
(把“订单一览表”中的发货状态分类更新为“未配车”状态。
)再计算该配车信息中的质量率、容积率、订单件数。
删除配车从“配车一览表”中选择车辆对象。
从被选择配车编号的车辆中,取消所有的装货信息,在“订单一览表”中作为未配车的订单信息返回。
(把“订单一览表”中的发货状态分类更新为“未配车”状态。
)再有,从“配车一览表”中删除该车辆。
登记实际发货内容根据被每个运输人员送来的“装货指示书”作成“实际发货内容一览表”,和“配车一览表”核对。
把“配车一览表”中的该配车信息的发货状态分类,以及“订单一览表”中的该订单信息的发货状态分类更新为“发货后”。
这个工作由管理发货负责人完成的。
实际发货内容一览表的式样:
记录配车编号、发货日、车辆编号、车辆种类、司机、订单件数、去向、发货状态分类、以及装货后的装货信息等。
取消发货从“实际发货内容一览表”中检索信息对象(配车信息)。
在“配车一览表”中把该配车信息的发货取消(与删除配车处理相同)
4.2.2数据需求分析
通过对物流配送管理系统整个业务流程的分析,从而得出本系统的实体属性图以及E-R图如下。
图4.1用户属性图
图4.2货物属性图
图4.3车辆装货属性图
图4.4出货车辆属性图
图4.4车辆属性图
图4.5交付地址属性图
图4.6订单需求属性图
图4.7物流出货总体图
4.3总体设计
4.3.1功能模块图
物流管理系统是一个典型的数据库管理系统,系统由基本受注管理、配车管理、出货管理四模块组成,规划系统功能模块如下:
登录管理模块需要使用者正确输入用户名、密码才能进入物流出货管理系统。
受注管理模块订单负责人通过订单管理模块进行订单的查询、订单的添加、订单的删除,进而形成“订单一览表”
配车管理模块配车负责人根据“订单一览表”通过配车模块,形成“配车记录”。
配车负责人通知配送者根据货主提供的“装货指示书”进行装货。
该模块由货物申请单查询、车辆配车信息查询、货物托运信息查询、货物托运验收查询和车辆在途跟踪查询几部分组成。
出货管理模块配送者装完货将预计的装货信息和实际的装货信息发送给XX物流公司。
出货负责人根据“配货指示书”和“出货实际一览表”确认当天的出货情况,通过配货模块形成“出货实际一览表”和“配车一览表”。
图4.8主要功能模块图
4.3.2数据库的设计
系统数据库名称为team5数据库中包含:
运输需求表(TRANSPORTATION_REQUEST)、装货情况表(ITEM)、商品表(SHIPPER)、出货车辆表(ALLOCATE_CAR)、车辆信息表(CAR)、用户管理表(USER)6个表。
TRANSPORTATION_REQUEST表
表4.1运输需求表
名称
是否为空?
类型
ORDER_NUMBER
NOTNULL
CHAR(10)
SHIPPER_CODE
NOTNULL
CHAR(8)
SHIPPER_ORDER_NUMBER
NOTNULL
CHAR(20)
SHIPMENT_DAY
NOTNULL
CHAR(8)
DELIVERY_DAY
NOTNULL
CHAR(8)
DELIVERY_EARLY_TIME
VARCHAR2(4)
DELIVERY_SLOW_TIME
VARCHAR2(4)
SHIPMENT_PLACE_CODE
NOTNULL
CHAR(8)
SHIPMENT_PERSON
NVARCHAR2(20)
DELIVERY_PLACE_CODE
NOTNULL
CHAR(8)
DELIVERY_PLACE
NVARCHAR2(25)
CONSIGNEE
NVARCHAR2(20)
ITEM_CODE
NOTNULL
CHAR(4)
AMOUNT
NOTNULL
NUMBER(3)
SHIPMENT_SITUATION
NOTNULL
CHAR
(1)
ALLOCATE_CAR_NUMBER
CHAR(10)
UPDATE_DATE
NOTNULL
DATE
ITEM表
表4.2装货情况表
名称
是否为空?
类型
SHIPPER_CODE
NOTNULL
CHAR(8)
ITEM_CODE
NOTNULL
CHAR(4)
ITEM_NAME
NOTNULL
NVARCHAR2(15)
WEIGHT
NOTNULL
NUMBER(8,3)
WIDTH
NOTNULL
NUMBER(5)
LENGTH
NOTNULL
NUMBER(5)
HEIGHT
NOTNULL
NUMBER(5)
UPDATE_DATE
NOTNULL
DATE
SHIPPER表
表4.3商品表
名称
是否为空?
类型
SHIPPER_CODE
NOTNULL
CHAR(8)
SHIPPER_NAME
NOTNULL
VARCHAR2(20)
UPDATE_DATE
NOTNULL
DATE
表4.4商品数据表
SHIPPER_CODE
SHIPPER_NAME
UPDATE_DATE
00000004
SAS岺嬈
23-12月-13
00000001
SAS怘昳
23-12月-13
00000002
SAS堸椏
23-12月-13
00000003
SAS惢壻
23-12月-13
ALLOCATE_CAR表
表4.5出货车辆表
名称
是否为空?
类型
ALLOCATE_CAR_NUMBER
NOTNULL
CHAR(10)
SHIPMENT_DAY
NOTNULL
CHAR(8)
CAR_CODE
NOTNULL
CHAR(6)
SHIPMENT_SITUATION
NOTNULL
CHAR
(1)
UPDATE_DATE
NOTNULL
DATE
CAR表
表4.6车辆信息表
名称
是否为空?
类型
CAR_CODE
NOTNULL
CHAR(6)
CAR_TYPE_NAME
NOTNULL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 专业 大型软件 项目 报告