《大型软件实训项目资料.doc》由会员分享,可在线阅读,更多相关《大型软件实训项目资料.doc(23页珍藏版)》请在三一办公上搜索。
1、辽宁工程技术大学大型软件项目实训报告教学单位 软件学院 专 业 软件工程 班 级 班 学生姓名 学 号 指导教师 目录1、实训目的12、实训时间和地点13、实训单位简介14、实训内容24.1实训期间完成的学习任务24.2实训期间完成的实践项目44.2.1需求分析44.2.2总体设计94.2.3详细设计及编码115、实训收获与体会186、致谢201、实训目的1、锻炼自己的动手能力,将学习的理论知识运用于实践当中,反过来检验书本上理论的正确性。将自己的理论知识与实践融合,进一步巩固、深化已经学过的理论知识,提高综合运用所学过的知识,并且培养自己发现问题、解决问题的能力,加强对软件开发的认识;2、更
2、广泛的直接接触社会,了解社会需要,加深对社会的认识,增强对社会的适应性,将自己融合到社会中去,培养自己的实践能力,缩短我们从一名大学生到一名工作人员之间的思想与业务距离。为以后进一步走向社会打下坚实的基础;3、了解公司部门的构成和职能,整个工作流程,从而确立自己在公司里最擅长的工作岗位。为自己未来的职业生涯规划起到关键的指导作用。2、实训时间和地点1实训时间:2013年12月9日2014年1月17日2实训地点:大连中软国际3、实训单位简介大连中软国际卓越培训是一家集Java培训、.NET培训、C/JAVA培训、测试工程师培训等的专业IT培训机构,由多年项目经验的老师教授相关课程,能够迅速提高编
3、程能力,中软国际培训体系由中软软件人才培养基地(ETC卓越培训中心)和中软总公司计算机培训中心两部分组成,其中ETC主要面向高等院校及其学生提供以就业为导向的实训、就业培训等解决方案,中软总公司计算机培训中心面向社会、企业及行业开展国际认证以及应用类IT中高端培训。 信息产业部培训支撑机构 微软授权高级技术培训中心(CPLS) SUN授权Java教育培训中心(ASEC) SUN Java高级技术实训基地(中国独家) IBM软件部授权培训中心 IBM SOA实训基地。中软国际信息技术有限公司(中软国际,股票编号:354),是中国领先的应用软件和解决方案供应商,具有极高的市场感召力和客户忠诚度,以
4、领先的技术、丰富的经验、精湛的服务在中国IT行业享有极高的声誉。自成立以来,中软国际取得了业界瞩目的成就,并作为国内第一家专注于电子政务领域的IT服务商,于2003年6月在香港联交所创业板成功上市,并于2008年12月成功转入主板。作为电子政务及电子商务领域的先导者,中软国际积极通过技术创新来开发新产品与新解决方案,依靠自身强大的研发能力保持和巩固在业界的领先地位。中软国际先后承担了多项国家重点科技攻关项目,申请并获得了20余项软件著作权和专利技术,并形成烟草、审计、公安、民政、农业、开发区等行业的成熟解决方案。中软国际于2005年收购了专业从事外包业务的北京中软资源信息科技服务有限公司(中软
5、资源)。在未来的发展中,将软件外包作为重点的业务发展方向。2005年9月,中软国际获得来自微软和世界银行总计3500万美金的战略投资。其中微软成为中软国际的股东,双方的合作将涉及人才培训、软件开发、市场推广、软件外包等许多领域。中软国际(大连)信息技术有限公司是由中软国际(香港)有限公司投资建立的全资子公司,作为中软国际在东北地区的业务拓展基地和软件人才培养基地。4、实训内容4.1实训期间完成的学习任务 为了了解真实的企业开发流程,掌握开发JavaEE企业应用必要的基础知识,并通过简单B/S应用,首先进行了java基础的学习,java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就
6、是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有java快,所以一般是不用java来编写应用程序和电脑游戏。 java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。 在学习过java基础以后,进行了通讯录小项目的实习,该项目的主要功能如下:1)添加功能a.所要添加的用户不存在时,电话号码为11位,座机的格式为 000-0000000,添加成功,若不满足要求,提示相关信息。b.所要添加的用户已存在时,提示信息为 用户存在。2)删除功能a.用
7、户存在时,删除信息时,提示用户是否删除信息,是 则删除 否则不删除。b.用户不存在时,提示信息为 用户不存在。3)修改功能a.用户存在时,如果姓名或号码为空,提示 请填写完整的姓名和电话号码;如果格式正确,修改成功。b.用户不存在 时,提示信息 用户不存在。4)查询功能a.用户存在时,显示电话号码。b.用户不存在时,提示信息 用户不存在。在学过java基础以后,进行了数据库的学习,以ORACLE数据库为核心进行学习。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一
8、。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle数据库具有完整的数据管理功能:1)数据的大量性2)数据的保存的持久性3)数据的共享性4)数据的可靠性2、完备关系的产品:1)信息准则-关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示。2)保证访问的准则。3)视图更新准则-只要形
9、成视图的表中的数据变化了,相应的视图中的数据同时变化。4)数据物理性和逻辑性独立准则Oracle具有以下优点: 可用性强 可扩展性强 数据安全性强 稳定性强学过ORACLE数据库一个半月的时间已经过去,随后又学习了JavaWeb和SSH三大框架。Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。SSH 为 struts+spring+h
10、ibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出
11、Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。4.2实训期间完成的实践项目4.2.1需求分析1、总体目标1)当前市场上存在的信息系统,大多系统功能复杂,不易操作,同时,难以维护,对于对于系统的培训时间较长。而本系统,结构简单,易于操作,并且,直观明了。对于本系统的操作培训需要时间短,便于公司将该系统转化为生产力。2)对于市场上现存的信息管理系统,大多定价高昂。对于才开始进行运作的小公司来说,成本较高。而本系统由于成本较低,能够获得大量的用户。2、具体目标管理员模块
12、:对于非管理员用户,不能对公司员工表和部门表进行管理,只有登陆成功的管理员,才能对员工表和部门表进行增、删、改、查功能,进行对公司的员工及部门的管理。员工管理模块:所有管理人员可以查看公司内部所有员工的信息,可以将新加入的员工信息添入EMP表,也可以将离职的员工信息删除,还可以将员工的错误信息进行更改。部门管理模块:所有管理人员可以查看公司内部所有部门的信息,可以将新开部门的信息添入DEPT表,也可以将关闭的部门的部门信息删除,还可以将部门的部分旧信息进行更改。3、系统功能建模为了更好地理解复杂事物,人们常常采用建立事物模型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一
13、种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。图1业务流程图4、系统数据建模(E-R图)E-R图是一种概念模型。概念模型实际上是现实世界到及其世界的一个中间层次。概念模型用于信息世界的建模,是显示世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有利工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语言表达能力,能够方便、直接的表达各种语义知识,另一方面还应该简单、清晰并且易于用户理解。以下是整体E-R图。管理部 门地 址部门名称部门号工资姓名编号员 工职位入职时间管理属 于用户名管理员密 码帐 号n11nn1图2整体E-R图6
14、、 数据流程图F8 各部门信息表F4 部门建立信息表F7人员调动信息表F6人员信息表F3离退信息表F2调出信息表F1调入信息表P公司管理系统员工信息库D1人事部门各部门董事长部门信息表D2图3公司管理系统顶层DFDF6人员信息表F9新人员信息表F7人员调调信息表P1员工信息管理员工信息库D1图4公司管理系统一级细化P1F10所有部门信息表F8各部门信息表P2部门信息管理部门信息库D2图5公司管理系统一级细化P27、 数据字典(1)数据存储名字:员工信息存储别名: D1描述:公司所有员工的信息定义:人员信息员工编号+员工名称+工作类型+直属领导+部门编号+工资+奖金+入职时间位置:员工信息管理模
15、块名字:部门信息存储别名:D2描述:公司各个部门的信息定义:部门信息= 部门编号+工作地点+部门名称位置:部门信息管理模块(2)数据流名字:调入人员信息表别名: F1描述:公司调入人员的信息定义:人员信息员工编号+员工名称+工作类型+直属领导+部门编号+工资+奖金+入职时间位置:员工信息管理模块名字:部门建立信息表别名:F2描述:公司调出人员的信息定义:部门信息= 部门编号+工作地点+部门名称位置:员工信息管理模块名字:离退人员信息表别名: F3描述:公司离退人员的信息定义:人员信息员工编号+员工名称+工作类型+直属领导+部门编号+工资+奖金+入职时间位置:员工信息管理模块名字:部门建立信息表
16、别名: F4描述:公司所有人员的信息定义:部门信息= 部门编号+工作地点+部门名称位置:部门信息管理模块(3)数据处理名字:员工信息管理别名: P1描述:管理员对员工信息进行增、删、改、查操作。 定义:员工信息员工编号+员工名称+工作类型+直属领导+部门编号+工资+奖金+入职时间位置:员工信息管理模块名字:部门信息管理别名:P2描述:管理员对部门信息进行增、删、改、查操作。定义:部门信息= 部门编号+工作地点+部门名称位置:部门信息管理模块4.2.2总体设计1、系统的总体结构设计原则(1)易用性:网站设计制作使用的技术不对浏览者使用的浏览器有特殊要求。方便各类操作人员,做到部分业务的完全或部分
17、自动化处理。 (2)高效性:网站页面的设计简洁、美观,尽可能地提高浏览速度,突出主要信息。导航系统在层次清晰的同时方便浏览者对相关信息和服务的访问。 (3)结构合理:栏目设置要合理,符合人们的浏览习惯。网站层次设计要合理,让浏览者可以通过尽可能少的点击次数即可找到需要的信息。(4)可扩展性:系统设计要考虑到业务未来发展的需要,同时考虑网站建设的阶段性,要尽可能地设计得简明,各个功能模块间的耦合度小,便于系统的扩展,平滑地与其它应用系统自动接口,如与现有的应用系统接口及与在线支付系统的接口。(5)安全、稳定性:在充分考虑到站点访问性能的同时,要格外重视站点的安全和稳定性问题,采用会员的访问权限控
18、制、加密算法的使用、服务器在IDC环境的安全措施等。 (6)并发性强:考虑到网站的使用者同时操作某一系统的情况,系统支持多入操作,建立高速缓冲机制,提供使用者的访问速度。(7)可移植性、可延续性:采用的开发技术不仅满足现在的应用需求,而且要适应未来的发展趋势,在以后的升级、移植工作方便。降低用户的二次开发成本,保证用户的投资利益。(8)平台无关:采用的开发技术要与操作系统和数据库无关,或可以通过简单的设置变更即可更换操作平台或数据库。 (9)个性化:利用注册用户提供的相关信息,或利用COOKIE等技术,为顾客提供尽可能多的个性化服务。 (10)访问统计性强:网管可随时查看指定页的访问次数、来访
19、路径、访客所在地区分布、访问时段分布、访客使用浏览器等信息,定期出具网站统计分析报告。 (11)互动性:网站系统要求互动,建立前后台系统的反馈机制,实现自动响应机制, 实现高度互动。 (12)创意性强:特色鲜明、独具风格。 (13)维护性强:网站系统提高后台维护程序界面,管理人员完全可以自行维护网站的栏目内容。2、系统层次图公司管理系统管理员模块员工管理模块部门管理模块查询用户信息修改用户信息管理员注册查询员工信息修改员工信息删除员工信息添加员工信息查询部门信息修改部门信息删除部门信息添加部门信息图6系统层次图4.2.3详细设计及编码1、程序流程图验证管理员登录查询信息修改信息删除信息添加信息
20、结 束是否开 始图7程序流程图2、代码设计的原则算法遵循复杂度小的,简洁,易维护,易懂,可扩充的原则。唯一性:一个对象可能有多个名称, 也可按不同的方式对它进行描述。但在一个编码体系中,一个对象只能赋予它一个唯一的代码, 反之一个代码只能唯一地标识一个对象, 不允许重码、乱码、错码。合理性:代码结构应与相应的分类体系相对应。可扩充性:应留有充分的余地,以备将来不断扩充的需要。简单性:结构尽可能简单,尽可能短,以减少各种差错。适用性:代码尽可能反映对象的特点,以助记忆,便于填写。规范性:国家有关编码标准是代码设计的重要依据,已有标准的必须遵循。在一个代码体系中,代码结构、类型、编写格式必须统一。
21、系统性:有一定的分组规则,从而在整个系统中具有通用性。3、系统所需代码设计1)代码设计原则唯一性:一个对象能够有多个名称,也可按不同的方式对它进行描述。但是一个编码系统中,一个对象只能赋予它一个唯一的代码,反之一个代码只能唯一地标识一个对象,不允许重码、乱码、错码。合理性:代码结构应与相应的分类体系相对应。可扩充性:应留有充分的余地,以备将来不断扩充的需要。简单性:结构尽可能简单,尽可能短,以减少各种差错。适用性:代码尽可能反映对象的特点,以助记忆,便于填写。规范性:国家有关编码标准是代码设计的重要依据,已有标准的必须遵循。在一个代码系统中,代码结构、类型、编写格式必须统一。系统性:有一定的分
22、组规则,从而在整个系统中具有通用性。2) 需要设计数据库存储部分的代码例:public Connection conn() /数据库链接Connection con=null;try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e1) e1.printStackTrace();/获取数据源String url=jdbc:oracle:thin:localhost:1521:orcl;String user = SCOTT;String password = tiger;try con
23、 = DriverManager.getConnection(url,user,password); catch (SQLException e) e.printStackTrace();return con;3) 需要编写界面的代码例:管理员登陆界面代码: /利用css样式对页面进行设置bodybackground-image:url(img/login.jpg);.imgmargin-top:200px;margin-left:300px;position:relative;formmargin-top:100px;margin-left:10px;position:absolute;le
24、ft: 115px;top: 25px; /利用表格设置登陆界面的格式 帐号: 密码: 4)需要编写实现各个功能模块的代码例:管理员登陆验证功能的实现public ManagerBean login(String id,String ps)try pst = con.prepareStatement(SELECT * FROM manager where id=? and ps=?);pst.setString(1, id);pst.setString(2, ps);ResultSet rs = pst.executeQuery();if(rs.next()manager=new Manage
25、rBean(rs.getString(1),rs.getString(2),rs.getString(3); catch (SQLException e) e.printStackTrace();return manager;添加员工信息的功能实现public int insert(Emp emp)int i = 0;try pst=con.prepareStatement(insert into myemp values(?,?,?,?,?,?,?,?);pst.setInt(1, emp.getEmpno();pst.setString(2, emp.getEname();pst.setS
26、tring(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 (SQLException e) e.printStackTrace();return i;删除员工信息功能的实现public void delete(int id)try pst = con.pre
27、pareStatement(delete from myemp where empno = ?);pst.setInt(1, id);pst.executeUpdate(); catch (SQLException e) e.printStackTrace();修改部门信息功能的实现public void update(Dept dept)try pst=con.prepareStatement(update mydept set dname=?,loc=? where deptno=?);pst.setInt(3, dept.getDeptno();pst.setString(1, dept
28、.getDname();pst.setString(2, dept.getLoc();pst.executeUpdate(); catch (SQLException e) e.printStackTrace();查询部门信息功能的实现public List select()List list = new ArrayList();try pst = con.prepareStatement(SELECT * FROM mydept);ResultSet rs = pst.executeQuery();while(rs.next()int deptno = rs.getInt(1);String
29、 dname = rs.getString(2);String loc = rs.getString(3);Dept dept = new Dept(deptno,dname,loc);list.add(dept); catch (SQLException e) e.printStackTrace();return list;4、数据库设计表的设计是这次设计的一个核心内容。根据前面对网站前台与后台功能模块的分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:管理员信息、员工信息、部门信息等。下面是为数据库设计的表:表1管理员信息数据库表 列名 数据类型 长度 允许空 文字描
30、述ID char 10 N 用户编号NAME char 10 Y 用户名称PS int 4 Y 登录密码 表2员工信息数据库表 列名 数据类型 长度 允许空 文字描述EMPNO NUMBER 4 N 员工编号ENAME VARCHAR2 10 Y 员工名称JOB VARCHAR2 9 Y 工作类型MGR NUMBER 4 Y 直属领导HIREDATE DATE Y 入职时间SAL NUMBER 7.2 Y 工资COMM NUMBER 7.2 Y 奖金DEPTNO NUMBER 2 Y 部门编号 表3部门信息数据库表 列名 数据类型 长度 允许空 文字描述DEPTNO NUMBER 2 N 部门
31、编号DNAME VARCHAR2 14 Y 部门名称LOC VARCHAR2 13 Y 工作地点5、表的设计原则1)表的命名方法数据表命名均采用汉语相对应的英文进行命名。如:管理员表:MANAGER员工表:MYEMP部门表:MYDEPT2)表约束的表示方法 主键 Primary Key:PK 外键 Foreign Key:FK 不为空 Not Null:Not Null 索引 Index:Index 唯一UNIQUE:UNIQUE3)属性说明本系统中所有的属性字段,均采用汉译英的形式命名例如:Myemp表中的编号字段定义为“ID”,姓名字段定义为“ENAME”,工作字段为“JOB”等。Myde
32、p表中的编号字段定义为“ID”,部门名称字段定义为“DNAME”,工作地点字段定义为“LOC”(LOCAL的缩写)。4)类型定义 对于字符串类型的字段属性,均采用VARCHAR2类型; 对于整形类型的字段属性,统一采用NUMBER类型;5、实训收获与体会通过这次课程设计的实训,增加了我学习软件技术的兴趣,虽然对一些软件所包含的技术还不是很明白,但从JAVA语言这门课程开始,已发现程序设计的乐趣,在学习JAVA语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中对这学期所学的JAVA语言的理
33、论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到JAVA语言具有的面向对象,跨平台,并发执行和支持多线程等特点。通过实际操作,学会 JAVA语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”的寓意。 这次实验上机,我受益匪浅,虽然难免有一些困难和失误,但是掌握了很多以前不甚熟悉的知识点,也深入了解需求分析。在实习中同学之间相互讨论思考,将平日里所学的知识运用到实践中来,并不断的熟悉巩固知识。基于公司管理系统开发
34、是一项复杂的系统工程。随着技术的不断发展和成熟,同时也随着用户需求的不断提高和变化,相关功能还有许多需要不断扩展和完善,系统的性能和技术指标也许提高,希望在以后的工作中能继续完成以下方面的内容:1、使系统开发更加工程化、标准化和系统化,对结构和功能的设计与开发达到更高的用户友好性和灵活性,以利于系统的二次开发。2、对系统中的某些功能,如用户和权限管理、用户登陆管理和数据库共享等功能模块都有进一步增强和完善。6、致谢感谢学校和大连中软给我这个机会让我来到这个集体,在中软为期几个月的实习是我走出校门,踏入社会的第一步,这个阶段是我从学生步入职场的重要的过渡,对我来说有很大帮助,为我将来走上工作岗位
35、打下坚实的基础。通过这次的实习,我对自己的专业有了更为详尽而深刻的了解,也是对这几年大学里所学知识的巩固与运用。从这次实习中,我体会到了实际的工作与书本上的知识是有一定距离的,并且需要进一步的再学习。在中软里每一位老师都很负责。我虚心学习经验,将所学的知识与实践结合起来,多思考,多总结,多请教,充分发挥自己的积极性。我觉得到了实际工作中以后,学历并不显得是最重要的,主要看的是个人的业务能力和交际能力。我深刻的体会了这一点。学历只是一张证书、只是代表你接受的文化教育的程度,但并不能完全的展现个人。实习的时间虽然很短,但是我感觉我的收获还是很大的。我要感谢我在中软的老师们,当我在实际操作上遇到什么不懂的问题请教他们时,他们都会悉心帮我解答,使我大大提高了软件开发业务的能力。指导教师意见指导教师签字: 年 月 日 成绩备注