姓名:学号:学院:软件学院专业:软件工程国际总承包项目供货合同执行管理系统的设计与实现指导教师:教授企业导师:高工第1章引言第2章相关技术介绍第3章系统需求分析第4章系统设计第5章系统实现论文章节第6章系统测试第7章总结与展望课题研究的背景第1章引言国内现状:国内的许多施工企业走出国门承接国外总承包项目,在项目执行过程中遇到了很多问题,其中供应链环节尤为重要;国内企业应用的物资管理软件比较普遍,招标管理、合同管理软件应用普遍,但过程控制软件的使用不是很广泛;公司现状:EPC项目增多、供应链环节管理信息分散、公司信息化建设需求增大。课题研究的对象:国际总承包项目供货合同执行管理概念介绍:目前国际总承包项目模式常见的有:BT,BOT,BOO,EPC,EPCM,PPP由于目前常采用的模式是EPC或EPC+F模式,因此本文主要研究的是EPC模式下的供货合同管理。背景使公司信息化建设与企业管理相结合,提高企业的经营管理水平;使企业管理实现增值,提升公司国际市场的核心竞争力。企业信息分散的现状;人工管理合同造成的数据丢失和遗忘;实现数据的分析、统计功能;兼顾生产-运输-仓储与施工的平衡。解决目前正在执行的国外多个项目供货合同的执行管理问题,为后续开发的国际项目全过程物资管理软件提供借鉴和实际操作经验。理论意义解决的问题现实意义第1章引言课题研究的意义操作系统服务器网络及软件第2章相关技术介绍第2章相关技术介绍2.1网络及软件2.1.1B/S架构2.1.2编程语言2.1.2.1SSH框架2.1.2.2SQL编程语言B/S结构也就是我们常规所说的浏览器和服务器结构。特点:投入成本低;简化了系统的开发、维护和升级工作量;简化了客户端负荷;有利于软件管理和避免出现IT黑洞。SSH不是一个单独的框架,而是多个框架(struts+spring+hibernate)的集成,常常用于构建灵活、易于扩展的多层Web应用程序。从职责上分为四层:域模块层(也就是实体层)、数据持久层、业务逻辑层和表示层,可以方便开发人员迅速搭建可复用性好、结构清晰、维护方便的Web应用程序。SQL(StructuredQueryLanguage)全称是结构化查询语言,是一种高级的非过程化的编程语言。特点:结构简洁、简单易学、功能强大2.2服务器2.3操作系统2.1.2.3JavaScript语言第2章相关技术介绍JavaScript是由微软公司开发一种直译式的脚本语言,是一种动态类型的语言。典型的JScript源文件的扩展名是.js。特点:脚本语言、基于对象、简单、动态性、跨平台型。服务器也称伺服器,主要由处理器、硬盘、内存、系统总线等构成,根据服务器提供的服务类型,通常分为文件服务器、数据库服务器和应用程序服务器。特点:高性能、高稳定性、高安全性。目前服务器操作系统大致分为四大流派:WINDOWS、NETWARE、UNIX、LINUX,其中WINDOWS系统是我们最熟悉、最常见的系统。第3章系统需求分析123456合同执行管理在物资管理中的地位目前公司合同执行管理信息传递模式目前合同执行过程中存在的问题要实现的目的系统可行性分析系统效益性分析3.1合同执行管理在物资管理中的地位第3章系统需求分析第3章系统需求分析3.2目前公司合同执行管理信息传递模式缺点:费时费力,不能方便、直观地进行查询搜索,而且信息的全面性、及时性、准确性也有所欠缺。信息收集•打电话、邮件•驻厂代表反馈编制周报•使用office软件,如:word、excel等•专人负责每周会汇总、出版传递•邮件•发送各相关人员及公司分管领导第3章系统需求分析3.3目前合同执行过程中存在的问题合同执行阶段设计/生产/检验信息不全面生产和发运信息脱节无法分专业和分类快捷查询传递方式单一不能及时共享信息编写以WORD和EXCEL形式为主审批手续繁琐,效率低下厂家众多,信息不准确缺件和工代未集中管理,共享不及时第3章系统需求分析3.4要实现的目的•供应商•公司各相关部门理清职责•物资状态及时跟踪•方便查询、统计、提醒规范管理第3章系统需求分析3.5系统的可行性分析经济可行性技术可行性操作可行性开发软件时间较短;成本费用相对较低;硬件设备可利用现有的计算机设备,无需购买新设备。计算机网络的普及;软件的统计分析功能容易实现;对用户计算机水平要求不高;参与合同执行管理人员的要求,国外项目人员的期望,公司领导的信任与支持。3.6系统的效益性分析第3章系统需求分析12能规范物资业务流程,加强对物资全过程的动态管理可以降低企业成本,提高工作效率第4章系统设计123系统设计软件功能设计总体设计数据库设计第4章系统设计供货合同执行管理软件要体现出从合同签订后,合同生效、设计状态、生产进度、质量检验情况、发运前检查状态、发运信息、启运港信息、船运状态等。软件功能要求:允许内网和外网登录;供应商权限独立;可以在线更新,多方同时操作;方便查询,统计汇总;系统用户要求:角色分开;公司人员建立、维护、审核信息;供应商定期反馈、更新信息;4.1软件功能设计第4章系统设计4.2总体设计总体设计原理:目标系统的模块结构系统的模块化设计重要思想就是分解-信息隐藏-模块独立性。第4章系统设计4.3数据库设计本设计采用的是关系数据库,该数据库增加、删除、修改、统计、导出等都非常方便。其中排序和查询功能使所需数据快速定位,达到了在众多数据中快速查找的功能。4.3.1设计思想首先采用实体联系模型(ER模型)对现实进行了抽象,ER模型明显优点:接近与人的思维,容易理解;与计算机无关,容易接受。可是ER图只能说明实体之间语义的联系,却不能更详细地说明数据结构。我们根据系统概念模型可以得出关系模式,进一步再通过创建数据库物理设计来完成软件系统子模块的设计。第4章系统设计4.3.2数据库设计逻辑图4.3数据库设计4.3.3E-R图第4章系统设计E-R图是直观表示概念模型的工具,它有三个基本成分:矩形框,用来表示实体类型,也就是考虑问题的对象;菱形框,用来表示联系类型,也就是实体间的联系;椭圆形框,用来表示实体属性。合同计划单号提报单位合同编号合同名称供应商签订时间交货期所属项目供应商合同项目合同清单状态数据表部门签订包含隶属签订录入反馈审核用户属于1n1n1nn1mnmn1nn1各实体总的E-R图合同实体属性图4.3数据库设计4.3.4关系模式设计第4章系统设计主要原则及实现方法一个实体转换为关系模式,实体的属性就是关系的属性,实体的键就是关系的键;多个实体的联系转换为关系模式时,需要首先确定该联系的类型,再确定相应的键;进行规范处理,求出关系模式中的最小依赖集,应规范到3NF。4.关系的类型为m:n,则该联系的键就是两个实体键的符合,那么该关系的键一定为复合键。1.关系的类型为1:1,则每个实体的键均为该关系的候选键,可二选一作为该联系的键;2.关系的类型为1:n,则应把一端实体的键移到n端,与n端实体的键共同组成该联系的键;3.如果为弱实体集,可为其增加一个强制属性作为键;4.3数据库设计4.3.5物理设计及子模块分解第4章系统设计4.3数据库设计供应商管理项目管理合同管理信息反馈系统维护功能描述库表设计模块分解第4章系统设计4.3数据库设计4.3.5物理设计及子模块分解4.3.5.3合同管理1)功能描述①合同基本信息维护②合同清单管理③信息审核④发运船次⑤合同终结⑥查询清单反馈信息2)数据库设计(库表设计)合同清单主要是为了显示合同的货物名称、货品数量、货品单位、完成状态的数据以及字符段,用以在系统中展示出来。序号字段名称数据结构备注1IDIntpk2合同IDIntfk33项目IDIntfk14项目机组IDIntfk25货品名称Varchar(200)6货品数量Int7货品单位Varchar(30)8完成状态Int第4章系统设计4.3数据库设计4.3.5物理设计及子模块分解4.3.5.3合同管理3)模块及功能分解合同管理项目选择发运船次增加格式可增加附件清单删除修改运输方式增加删除修改发运批次查询返回审核状态显示查询合同编号设备名称筛选专业系统机组合同信息维护供应商端维护公司人员端维护增加信息删除信息修改信息合同清单导入增加反馈信息查询导出合同关闭及评价合同跟踪记录综合查询分析汇总报表筛选专业系统返回设备/材料第5章系统实现本系统全部功能采用Java/JavaScript语言编写,并运用当今主流的先进SSH(Struts+Spring+Hibernate)开发模式,Struts作为系统的整体基础架构,负责MVC分离,控制业务跳转;Hibernate对系统持久层提供支持,实现数据库的链接;spring对struts跟hibernate进行管理。5.1界面设计及功能实现5.1.1系统登录界面5.1.2合同执行界面5.1.3项目管理界面5.1.4供应商管理界面5.1.5系统维护界面5.2合同执行过程主程序合同执行程序第5章系统实现5.1界面设计及功能实现5.1.1系统登录界面窗口描述:系统登录窗口力求简洁,方便用户登录时的操作。系统启动后,用户输入正确的用户名和密码,点击登录即可直接进入系统。实现方法:用户从登录界面输入account跟password后,点击登录按钮,通过Servlet的post方法传送中后台Action的Login方法进行登录判断,如果判断正确,跳转系统主页面,并将用户名密码写进Session,如果不正确返回登录页面。功能实现:第5章系统实现部分窗口展示左上:合同管理主界面左下:合同清单信息反馈界面右下:系统维护手册界面第5章系统实现部分窗口展示左上:新增合同删除条目提示右上:合同信息审核意见弹窗右下:项目删除提示5.2合同执行过程主程序第5章系统实现第6章系统测试系统测试定义、任务及方法6.1操作系统要求6.2系统测试6.3系统测试结论6.4第6章系统测试6.1.1系统测试定义英文是SystemTesting。把已经确认的软件、硬件、外设、网络等相关元素结合在一块,进行软件系统的各种组装测试和确认测试,系统测试主要就是是通过与系统的需求相比较,找出所开发的系统与用户需求不符合或者存在矛盾的地方,从而完善软件系统的整体方案。6.1.2系统测试任务尽可能彻底检查出程序中的编译错误。6.1.3系统测试方法这阶段又可分为三个步骤:模块测试,组装测试,确认测试。6.1.4系统测试目的找出与设计需求不相符合或与之矛盾的地方,验证系统是否满足了设计需求。系统测试定义、任务及方法6.1第6章系统测试操作系统要求6.26.2.1软件要求Win98、Win2000、WindowsXP、Windows76.2.2硬件要求:CPU:500MHZ以上硬盘:100M以上内存:256M显示器最低分辨率:800*600第6章系统测试系统测试6.3由于篇幅所限,本文只列举系统登录模块的测试。6.3.1.1输入测试6.3.1.2输出测试6.3.1.3测试结果1)输入正确地“用户名”和“密码”,点击“登录”,可顺利进入系统界面;2)不输入用户名和密码,点击登录,系统提示“请填写用户名”;3)输入用户名,但不输入密码,点击登录,系统提示“请填写密码”;4)输入用户名并输入错误的密码,点击登录,系统提示“验证失败,用户名或密码错误”。6.3.1系统单元(模块)测试第6章系统测试6.3.2系统确认(用户)测试系统测试6.3系统确认测试即客户验证系统软件是否实现了客户所提出的需求,人机交互页面能否被大众接受。受篇幅所限,本文仅展示合同添加的功能测试。测试结果(举例):在合同信息维护界面中点击“增加”按钮,将在界面中弹出新增合同对话框,用户可在对话框中输入合同信息。第6章系统测试系统测试结论6.4•通过测试,不同用用户的需求得到比较好的实现;•可满足多用户同时操作的需求;•设置不同用户权限,保证了信息的安全。系统能力和安全•用户登录密码找回功能未考虑;•某项合同中物资用户可设置关注,状态更新后及时提醒的功能未考虑。软件缺陷和不足•随着业务的扩展,系