大型软件实训项目.docx
- 文档编号:2556730
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:22
- 大小:264.64KB
大型软件实训项目.docx
《大型软件实训项目.docx》由会员分享,可在线阅读,更多相关《大型软件实训项目.docx(22页珍藏版)》请在冰点文库上搜索。
大型软件实训项目
辽宁工程技术大学
大型软件项目实训报告
教学单位软件学院
专业软件工程
班级班
学生姓名
学号
指导教师
1、实训目的
1、锻炼自己的动手能力,将学习的理论知识运用于实践当中,反过来检验书本上理论的正确性。
将自己的理论知识与实践融合,进一步巩固、深化已经学过的理论知识,提高综合运用所学过的知识,并且培养自己发现问题、解决问题的能力,加强对软件开发的认识;
2、更广泛的直接接触社会,了解社会需要,加深对社会的认识,增强对社会的适应性,将自己融合到社会中去,培养自己的实践能力,缩短我们从一名大学生到一名工作人员之间的思想与业务距离。
为以后进一步走向社会打下坚实的基础;
3、了解公司部门的构成和职能,整个工作流程,从而确立自己在公司里最擅长的工作岗位。
为自己未来的职业生涯规划起到关键的指导作用。
2、实训时间和地点
1.实训时间:
2013年12月9日~2014年1月17日
2.实训地点:
大连中软国际
3、实训单位简介
大连中软国际卓越培训是一家集Java培训、.NET培训、C/JAVA培训、测试工程师培训等的专业IT培训机构,由多年项目经验的老师教授相关课程,能够迅速提高编程能力,中软国际培训体系由中软软件人才培养基地(ETC卓越培训中心)和中软总公司计算机培训中心两部分组成,其中ETC主要面向高等院校及其学生提供以就业为导向的实训、就业培训等解决方案,中软总公司计算机培训中心面向社会、企业及行业开展国际认证以及应用类IT中高端培训。
信息产业部培训支撑机构微软授权高级技术培训中心(CPLS)SUN授权Java教育培训中心(ASEC)SUNJava高级技术实训基地(中国独家)IBM软件部授权培训中心IBMSOA实训基地。
中软国际信息技术有限公司(中软国际,股票编号:
354),是中国领先的应用软件和解决方案供应商,具有极高的市场感召力和客户忠诚度,以领先的技术、丰富的经验、精湛的服务在中国IT行业享有极高的声誉。
自成立以来,中软国际取得了业界瞩目的成就,并作为国内第一家专注于电子政务领域的IT服务商,于2003年6月在香港联交所创业板成功上市,并于2008年12月成功转入主板。
作为电子政务及电子商务领域的先导者,中软国际积极通过技术创新来开发新产品与新解决方案,依靠自身强大的研发能力保持和巩固在业界的领先地位。
中软国际先后承担了多项国家重点科技攻关项目,申请并获得了20余项软件著作权和专利技术,并形成烟草、审计、公安、民政、农业、开发区等行业的成熟解决方案。
中软国际于2005年收购了专业从事外包业务的北京中软资源信息科技服务有限公司(中软资源)。
在未来的发展中,将软件外包作为重点的业务发展方向。
2005年9月,中软国际获得来自微软和世界银行总计3500万美金的战略投资。
其中微软成为中软国际的股东,双方的合作将涉及人才培训、软件开发、市场推广、软件外包等许多领域。
中软国际(大连)信息技术有限公司是由中软国际(香港)有限公司投资建立的全资子公司,作为中软国际在东北地区的业务拓展基地和软件人才培养基地。
4、实训内容
4.1.实训期间完成的学习任务
为了了解真实的企业开发流程,掌握开发JavaEE企业应用必要的基础知识,并通过简单B/S应用,首先进行了java基础的学习,java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。
可以开发各种应用程序和游戏,不过速度没有java快,所以一般是不用java来编写应用程序和电脑游戏。
java主要分三块,j2se:
java的基础核心语言。
j2me:
java的微型模块,专门针对内存小,没有持续电源等小型设备。
j2ee:
java的企业模块,专门针对企业数据库服务器的连接维护。
在学习过java基础以后,进行了通讯录小项目的实习,该项目的主要功能如下:
1)添加功能
a.所要添加的用户不存在时,电话号码为11位,座机的格式为000-0000000,添加成功,若不满足要求,提示相关信息。
b.所要添加的用户已存在时,提示信息为用户存在。
2)删除功能
a.用户存在时,删除信息时,提示用户是否删除信息,是则删除否则不删除。
b.用户不存在时,提示信息为用户不存在。
3)修改功能
a.用户存在时,如果姓名或号码为空,提示请填写完整的姓名和电话号码;如果格式正确,修改成功。
b.用户不存在时,提示信息用户不存在。
4)查询功能
a.用户存在时,显示电话号码。
b.用户不存在时,提示信息用户不存在。
在学过java基础以后,进行了数据库的学习,以ORACLE数据库为核心进行学习。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle数据库具有完整的数据管理功能:
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示。
2)保证访问的准则。
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化。
4)数据物理性和逻辑性独立准则
Oracle具有以下优点:
◆可用性强
◆可扩展性强
◆数据安全性强
◆稳定性强
学过ORACLE数据库一个半月的时间已经过去,随后又学习了JavaWeb和SSH三大框架。
JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。
web包括:
web服务器和web客户端两部分。
Java在客户端的应用有javaapplet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
Java技术对Web领域的发展注入了强大的动力。
SSH为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
具体做法是:
用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
4.2.实训期间完成的实践项目
4.2.1需求分析
1、总体目标
1)当前市场上存在的信息系统,大多系统功能复杂,不易操作,同时,难以维护,对于对于系统的培训时间较长。
而本系统,结构简单,易于操作,并且,直观明了。
对于本系统的操作培训需要时间短,便于公司将该系统转化为生产力。
2)对于市场上现存的信息管理系统,大多定价高昂。
对于才开始进行运作的小公司来说,成本较高。
而本系统由于成本较低,能够获得大量的用户。
2、具体目标
管理员模块:
对于非管理员用户,不能对公司员工表和部门表进行管理,只有登陆成功的管理员,才能对员工表和部门表进行增、删、改、查功能,进行对公司的员工及部门的管理。
员工管理模块:
所有管理人员可以查看公司内部所有员工的信息,可以将新加入的员工信息添入EMP表,也可以将离职的员工信息删除,还可以将员工的错误信息进行更改。
部门管理模块:
所有管理人员可以查看公司内部所有部门的信息,可以将新开部门的信息添入DEPT表,也可以将关闭的部门的部门信息删除,还可以将部门的部分旧信息进行更改。
3、系统功能建模
为了更好地理解复杂事物,人们常常采用建立事物模型的方法。
所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
通常,模型由一组图形符号和组织这些符号的规则组成。
图1业务流程图
4、系统数据建模(E-R图)
E-R图是一种概念模型。
概念模型实际上是现实世界到及其世界的一个中间层次。
概念模型用于信息世界的建模,是显示世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有利工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语言表达能力,能够方便、直接的表达各种语义知识,另一方面还应该简单、清晰并且易于用户理解。
以下是整体E-R图。
图2整体E-R图
6、数据流程图
图3公司管理系统顶层DFD
图4公司管理系统一级细化P1
图5公司管理系统一级细化P2
7、数据字典
(1)数据存储
(2)数据流
(3)数据处理
4.2.2总体设计
1、系统的总体结构设计原则
(1)易用性:
网站设计制作使用的技术不对浏览者使用的浏览器有特殊要求。
方便各类操作人员,做到部分业务的完全或部分自动化处理。
(2)高效性:
网站页面的设计简洁、美观,尽可能地提高浏览速度,突出主要信息。
导航系统在层次清晰的同时方便浏览者对相关信息和服务的访问。
(3)结构合理:
栏目设置要合理,符合人们的浏览习惯。
网站层次设计要合理,让浏览者可以通过尽可能少的点击次数即可找到需要的信息。
(4)可扩展性:
系统设计要考虑到业务未来发展的需要,同时考虑网站建设的阶段性,要尽可能地设计得简明,各个功能模块间的耦合度小,便于系统的扩展,平滑地与其它应用系统自动接口,如与现有的应用系统接口及与在线支付系统的接口。
(5)安全、稳定性:
在充分考虑到站点访问性能的同时,要格外重视站点的安全和稳定性问题,采用会员的访问权限控制、加密算法的使用、服务器在IDC环境的安全措施等。
(6)并发性强:
考虑到网站的使用者同时操作某一系统的情况,系统支持多入操作,建立高速缓冲机制,提供使用者的访问速度。
(7)可移植性、可延续性:
采用的开发技术不仅满足现在的应用需求,而且要适应未来的发展趋势,在以后的升级、移植工作方便。
降低用户的二次开发成本,保证用户的投资利益。
(8)平台无关:
采用的开发技术要与操作系统和数据库无关,或可以通过简单的设置变更即可更换操作平台或数据库。
(9)个性化:
利用注册用户提供的相关信息,或利用COOKIE等技术,为顾客提供尽可能多的个性化服务。
(10)访问统计性强:
网管可随时查看指定页的访问次数、来访路径、访客所在地区分布、访问时段分布、访客使用浏览器等信息,定期出具网站统计分析报告。
(11)互动性:
网站系统要求互动,建立前后台系统的反馈机制,实现自动响应机制,实现高度互动。
(12)创意性强:
特色鲜明、独具风格。
(13)维护性强:
网站系统提高后台维护程序界面,管理人员完全可以自行维护网站的栏目内容。
2、系统层次图
图6系统层次图
4.2.3详细设计及编码
1、程序流程图
图7程序流程图
2、代码设计的原则
算法遵循复杂度小的,简洁,易维护,易懂,可扩充的原则。
唯一性:
一个对象可能有多个名称,也可按不同的方式对它进行描述。
但在一个编码体系中,一个对象只能赋予它一个唯一的代码,反之一个代码只能唯一地标识一个对象,不允许重码、乱码、错码。
合理性:
代码结构应与相应的分类体系相对应。
可扩充性:
应留有充分的余地,以备将来不断扩充的需要。
简单性:
结构尽可能简单,尽可能短,以减少各种差错。
适用性:
代码尽可能反映对象的特点,以助记忆,便于填写。
规范性:
国家有关编码标准是代码设计的重要依据,已有标准的必须遵循。
在一个代码体系中,代码结构、类型、编写格式必须统一。
系统性:
有一定的分组规则,从而在整个系统中具有通用性。
3、系统所需代码设计
1)代码设计原则
唯一性:
一个对象能够有多个名称,也可按不同的方式对它进行描述。
但是一个编码系统中,一个对象只能赋予它一个唯一的代码,反之一个代码只能唯一地标识一个对象,不允许重码、乱码、错码。
合理性:
代码结构应与相应的分类体系相对应。
可扩充性:
应留有充分的余地,以备将来不断扩充的需要。
简单性:
结构尽可能简单,尽可能短,以减少各种差错。
适用性:
代码尽可能反映对象的特点,以助记忆,便于填写。
规范性:
国家有关编码标准是代码设计的重要依据,已有标准的必须遵循。
在一个代码系统中,代码结构、类型、编写格式必须统一。
系统性:
有一定的分组规则,从而在整个系统中具有通用性。
2)需要设计数据库存储部分的代码
例:
publicConnectionconn(){//数据库链接
Connectioncon=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundExceptione1){
e1.printStackTrace();
}
//获取数据源
Stringurl="jdbc:
oracle:
thin:
@localhost:
1521:
orcl";
Stringuser="SCOTT";
Stringpassword="tiger";
try{
con=DriverManager.getConnection(url,user,password);
}catch(SQLExceptione){
e.printStackTrace();
}
returncon;
}
3)需要编写界面的代码
例:
管理员登陆界面代码:
body{
background-image:
url(img/login.jpg);
}
.img{
margin-top:
200px;
margin-left:
300px;
position:
relative;
}
form{
margin-top:
100px;
margin-left:
10px;
position:
absolute;
left:
115px;
top:
25px;
}
帐号: | |
密码: | |
4)需要编写实现各个功能模块的代码
例:
管理员登陆验证功能的实现
publicManagerBeanlogin(Stringid,Stringps){
try{
pst=con.prepareStatement("SELECT*FROMmanagerwhereid=?
andps=?
");
pst.setString(1,id);
pst.setString(2,ps);
ResultSetrs=pst.executeQuery();
if(rs.next()){
manager=newManagerBean(rs.getString
(1),rs.getString
(2),
rs.getString(3));}
}catch(SQLExceptione){
e.printStackTrace();
}
returnmanager;
}
添加员工信息的功能实现
publicintinsert(Empemp){
inti=0;
try{
pst=con.prepareStatement("insertintomyempvalues
(?
?
?
?
?
?
?
?
)");
pst.setInt(1,emp.getEmpno());
pst.setString(2,emp.getEname());
pst.setString(3,emp.getJob());
pst.setInt(4,emp.getMgr());
pst.setString(5,emp.getHiredate());
pst.setInt(6,emp.getSal());
pst.setInt(7,emp.getComm());
pst.setInt(8,emp.getDeptno());
i=pst.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}
returni;
}
删除员工信息功能的实现
publicvoiddelete(intid){
try{
pst=con.prepareStatement("deletefrommyempwhereempno=?
");
pst.setInt(1,id);
pst.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}
}
修改部门信息功能的实现
publicvoidupdate(Deptdept){
try{
pst=con.prepareStatement("updatemydeptsetdname=?
loc=?
wheredeptno=?
");
pst.setInt(3,dept.getDeptno());
pst.setString(1,dept.getDname());
pst.setString(2,dept.getLoc());
pst.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}
}
查询部门信息功能的实现
publicList
List
try{
pst=con.prepareStatement("SELECT*FROMmydept");
ResultSetrs=pst.executeQuery();
while(rs.next()){
intdeptno=rs.getInt
(1);
Stringdname=rs.getString
(2);
Stringloc=rs.getString(3);
Deptdept=newDept(deptno,dname,loc);
list.add(dept);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
}
4、数据库设计
表的设计是这次设计的一个核心内容。
根据前面对网站前台与后台功能模块的分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:
管理员信息、员工信息、部门信息等。
下面是为数据库设计的表:
表1管理员信息数据库表
列名数据类型长度允许空文字描述
IDchar10N用户编号
NAMEchar10Y用户名称
PSint4Y登录密码
表2员工信息数据库表
列名数据类型长度允许空文字描述
EMPNONUMBER4N员工编号
ENAMEVARCHAR210Y员工名称
JOBVARCHAR29Y工作类型
MGRNUMBER4Y直属领导
HIREDATEDATEY入职时间
SALNUMBER7.2Y工资
COMMNUMBER7.2Y奖金
DEPTNONUMBER2Y部门编号
表3部门信息数据库表
列名数据类型长度允许空文字描述
DEPTNONUMBER2N部门编号
DNAMEVARCHAR214Y部门名称
LOCVARCHAR213Y工作地点
5、表的设计原则
1)表的命名方法
数据表命名均采用汉语相对应的英文进行命名。
如:
管理员表:
MANAGER
员工表:
MYEMP
部门表:
MYDEPT
2)表约束的表示方法
✓主键PrimaryKey:
PK
✓外键ForeignKey:
FK
✓不为空NotNull:
NotNull
✓索引Index:
Index
✓唯一UNIQUE:
UNIQUE
3)属性说明
本系统中所有的属性字段,均采用汉译英的形式命名
例如:
Myemp表中的编号字段定义为“ID”,姓名字段定义为“ENAME”,工作字段为“JOB”等。
Mydep表中的编号字段定义为“ID”,部门名称字段定义为“DNAME”,工作地点字段定义为“LOC”(LOCAL的缩写)。
4)类型定义
✓对于字符串类型的字段属性,均采用VARCHAR2类型;
✓对于整形类型的字段属性,统一采用NUMBER类型;
5、实训收获与体会
通过这次课程设计的实训,增加了我学习软件技术的兴趣,虽然对一些软件所包含的技术还不是很明白,但从JAVA语言这门课程开始,已发现程序设计的乐趣,在学习JAVA语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
在实际操作过程中犯的一些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型软件 项目