校外实习报告参考模版.doc_第1页
校外实习报告参考模版.doc_第2页
校外实习报告参考模版.doc_第3页
校外实习报告参考模版.doc_第4页
校外实习报告参考模版.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

郑 州 轻 工 业 学 院校 外 实 习 报 告实习名称: 软件工程实践 姓 名: 院 (系): 软件学院 专业班级: 软件工程(java技术)0801 学 号: 指导教师: 张建伟 主要实习单位: 成 绩: 时间: 20 年 0 月 29 日至 20 年 01 月 06 日63实习成绩评定表实 习 单 位实习单位指导技术人员评语签名成绩杰普软件科技有限公司该生在公司学习认真,刻苦专研,积极主动,乐于助人,为人诚肯。文思创新软件技术有限公司该生在公司工作认真,积极主动,服从安排,谦虚学习,思维活跃。指导教师评语总成绩: 目 录1实习概要42实习内容43项目情况43.1WSOP53.1.1需求分析背景与驱动力项目的目标53.1.2概要设计概述设计思路技术方案83.1.3详细设计系统管理账户管理逻辑数据模型103.1.4个人参与的部分主要代码编写:103.1.5项目运行部分截图:263.2跑步社区站点(RunCommunity)293.2.1需求分析2项目背景2功能需求说明30跑步社区部分功能分析313.2.2概要设计3软件分析顺序图(Sequence Diagram)3系统架构逻辑图-体系结构3应用架构MVC3物理视图/Physical View3业务模型403.2.3详细设计4主要用例描述4软件分析图4Entity Relationship Diagram4数据字典463.2.4代码编写(全部由个人完成)493.2.5系统测试493.2.6项目实施与部署(RunCommunity)594实习总结601 实习概要 实习时间:2011年8月29日2011年11月13日2011年11月15日2012年1月6日 实习单位:上海杰普软件科技有限公司 文思创新软件技术有限公司 实习地址:江苏省苏州市昆山市昆山浦东软件园 广东省广州市天河区黄埔大道西平云路163号广电科技大厦401B实习岗位:软件工程师助理校内指导老师姓名:张建伟校外指导老师姓名:2 实习内容培训内容:JavaEE+Flex学习课程:linux、javaSE、oracle、xml、servlet、Ajax、struts2、hibernate3.1、spring2.5、Flex、OOAD和设计模式主要项目:电信收费系统WOSS(后台)、RunCommunity运动社区、WSOP3 项目情况只列取了两个项目做代表:RunCommunity运动社区、WSOP3.1 WSOP3.1.1 需求分析 背景与驱动力为了满足全业务下发展集团客户、家庭客户的宽带接入需求,中国移动广东公司于2008年启动宽带接入网和IP城域网的规划建设。宽带接入业务需要满足多样式的接入认证,包括PPPOE拨号认证、DHCP+weblogin认证的接入等,且这些接入需要一套认证系统对这些用户进行认证。为了提供宽带业务的认证接入,本项目为中国移动广东公司宽带用户新建一套认证系统,完成硬件平台的搭建和实现基本认证功能接口,完善认证功能和接口。 项目的目标1、满足固定宽带用户、WLAN 用户(WEB/Sim卡)认证所需硬件的部署工作。2、完成固定带宽用户、WLAN用户的基本认证功能。3、完成认证系统与计费网的实时计费接口功能。4、完成WLAN的Sim卡用户认证功能。5、完善用户认证相关的业务管理、卡管理、统计查询、采集管理、自服务等管理功能。6、完善BOSS与认证系统之间相应的接口功能。3.1.2 概要设计 概述集团客户WLAN是面向集团大客户、行业客户提供的专属WLAN无线接入服务。集团客户WLAN业务分为两类:第一类指集团客户的使用用户以个人行为通过接入CMCC标识使用中国移动WLAN网络,最终支付由集团客户统付;第二类指以集团客户为单位提供WLAN无线接入网络,供集团客户的使用用户(如客人、内部员工等)通过接入CMCC-XXX标识使用中国移动WLAN网络。 设计思路开发商分工主开发商实现集团个性化页面管理、话单日志查询、上网账号管理、集团客户管理、产品开户管理、集团产品管理、SSID管理、话单日志统计等功能。配合开发商范围涉及模式品牌实施地市广东省移动和21个地市需求功能点序号需求功能点描述简单描述对应开发/配置点123上载前提条件配置要求配置完成时间上线要求外围平台要求协议要求上线时间要求调用AAA提供的上网账号管理接口从生成话单日志的FTP服务器获取话单日志提供短信网关参数上线内部数据要求描述上线前,上网账号数据库中数据必须与AAA的上网账号数据同步风险分析是否对操作习惯的影响影响备注对现有系统功能的影响影响备注对系统核心模块评估影响备注性能要求序号性能要求描述备注123涉及章节序号章节是否涉及1界面运行设计是2系统配置设计否3业务逻辑设计否4接口设计否5数据库设计否 技术方案3.1.3 详细设计 系统管理 WSOP系统管理主要分为个性化页面管理、广告管理、AP和账号对应关系的管理、日志管理、统计分析。个性化页面管理:集团客户根据自身特点对个性化登录页面的设置功能。广告管理:为了满足集团客户要求,在个性化登录页面,嵌入相应的广告信息。AP和账号对应关系的管理:设置集团客户账号和AP对应关系管理功能,针对集团客户账号设置与之对应的SSID,完成账号和AP一一对应关系维护。日志管理:提供日志管理功能,为运营商的运营以及分析提供有力支持。统计分析:主要进行了流量统计、用户登录数量统计、用户使用时长分布统计,方便集团管理员进行查询和下载。 账户管理 WSOP账户管理分为集团客户管理、账号管理、权限管理、密码修改/重置和AP管理。集团客户管理:统一管理集团客户,提供集团客户查询的功能。账号管理:统一管理集团客户的上网帐号,提供集团客户维护上网帐号的功能。对上网帐号的开户,激活、暂停、去激活、注销状态进行维护。权限管理:完成对集团客户的接入服务鉴权,用户接入鉴权,以及帐号状态维护,实现了服务接入、用户接入以及服务访问等安全控制,保障了集团客户服务接入的合法性以及用户访问的真实性,防止了欺诈行为。密码修改/重置:为集团客户提供密码修改、密码重置功能。AP管理:提供集团客户的AP信息管理,及时查询AP信息。 逻辑数据模型 3.1.4 个人参与的部分主要代码编写:本项目与其他项目的两个接口中的一个接口package com.huawei.wsop.webService;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import space.QName;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.log4j.Logger;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;public class CustomerService public static OMElement requestSoap=null;private CustomerServiceUtils customerServiceUtils;private Logger log=Logger.getLogger(CustomerService.class);public String CustomerHandler(String customerRequest) throws ExceptionDocument doc=null; doc = DocumentHelper.parseText(customerRequest); / 将字符串转为XML Element rootElt = doc.getRootElement(); / 获取根节点 OMFactory factory=OMAbstractFactory.getOMFactory(); OMNamespace omNs=factory.createOMNamespace(, ); OMElement custReq=factory.createOMElement(rootElt.getName(),omNs); OMElement reqType=factory.createOMElement(ReqType,omNs); reqType.setText(rootElt.elementTextTrim(ReqType); OMElement context=factory.createOMElement(Context,omNs); OMElement cust=factory.createOMElement(Customer,omNs); Element Context=rootElt.element(Context);Element customer=Context.element(Customer); / 获取根节点下的子节点CustomerList list=customer.elements();for(Object o:list)Element recordEle = (Element) o;OMElement om=factory.createOMElement(recordEle.getName(),omNs);om.setText(recordEle.getTextTrim();cust.addChild(om);custReq.addChild(reqType);context.addChild(cust);custReq.addChild(context);custReq.build();OMElement returnMessage=CustRequest(custReq);return returnMessage.toString();/* * * param soapBody * return */private OMElement CustRequest(OMElement soapBody)requestSoap =soapBody;(the request xml is :+requestSoap.toString();/*if(log.isDebugEnabled()log.debug(the request xml is :+requestSoap.toString();*/QName reqTypeName=new QName(PublicParam.NAMESPACE,PublicParam.REQ_TYPE);QName contextName=new QName(PublicParam.NAMESPACE,PublicParam.REQ_CONTEXT);OMElement reqTypeElement=requestSoap.getFirstChildWithName(reqTypeName);String reqType=reqTypeElement.getText();Iterator cons=requestSoap.getChildrenWithName(contextName);Map contexts=null;ListMap contextLists=new ArrayListMap();Iterator its=null;if(cons.hasNext()its=cons.next().getChildElements();while(its.hasNext()OMElement context_tmp=its.next();Iterator it=context_tmp.getChildElements();contexts=new HashMap();while(it.hasNext()OMElement tmp=it.next();contexts.put(tmp.getLocalName(), tmp.getText().trim();contextLists.add(contexts);OMFactory soapFactory=OMAbstractFactory.getOMFactory();OMNamespace omNs=soapFactory.createOMNamespace(PublicParam.NAMESPACE, );OMElement soapResponse=soapFactory.createOMElement(PublicParam.CUST_RES_ROOT_NODE,omNs);OMElement resultType=soapFactory.createOMElement(PublicParam.RES_TYPE,omNs);OMElement context=soapFactory.createOMElement(PublicParam.RES_CONTEXT,omNs);Map results=new HashMap();try results=customerServiceUtils.Controller(reqType, contextLists, resultType, context, soapFactory, omNs); catch (Exception e) log.error(CustRequest: ,e);OMElement key=results.keySet().iterator().next();OMElement value=results.get(key);soapResponse.addChild(key);soapResponse.addChild(value);soapResponse.build();return soapResponse;public CustomerServiceUtils getCustomerServiceUtils() return customerServiceUtils;public void setCustomerServiceUtils(CustomerServiceUtils customerServiceUtils) this.customerServiceUtils = customerServiceUtils; package com.huawei.wsop.webService;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.log4j.Logger;import com.huawei.wsop.account.model.CustomerInfo;import com.huawei.wsop.account.service.CustomerService;import com.huawei.wsop.core.PublicUtil;public class CustomerServiceUtils private CustomerService customerService;private Logger log=Logger.getLogger(CustomerServiceUtils.class);private static final String ADD=ADD;private static final String EDIT=EDIT;private static final String DEL=DEL;/* * 根据reqType传递operate给operateCustomer * param reqType * param contexts * param resultType * param context * param soapFactory * param omNs * return */public Map Controller(String reqType,ListMap contexts,OMElement resultType,OMElement context,OMFactory soapFactory,OMNamespace omNs)Map results = new HashMap();(execute Controller of CustomerServiceUtils);try/核对请求类型和请求内容是否为空if(null = reqType | .equals(reqType) | null = contexts | .equals(contexts) | contexts.size() 1 )resultType.setText(PublicParam.PARAM_ERROR);context.setText();results.put(resultType, context);return results;if (PublicParam.REQ_TYPE_ADD_CUSTOMER.equals(reqType.trim() results = operateCustomer(contexts, resultType, context,soapFactory, omNs, ADD);return results; else if (PublicParam.REQ_TYPE_MODIFY_CUSTOMER.equals(reqType.trim() results = operateCustomer(contexts, resultType, context,soapFactory, omNs, EDIT);return results; else if (PublicParam.REQ_TYPE_DEL_CUSTOMER.equals(reqType.trim() results = operateCustomer(contexts, resultType, context,soapFactory, omNs, DEL);return results; catch (Exception e) e.printStackTrace();resultType.setText(PublicParam.SUBS_ERRROR);context.setText();results.put(resultType, context);log.debug(e);return results;resultType.setText(PublicParam.SUCCESS);context.setText();results.put(resultType, context);return results;/* * 根据operate操作customer * param contexts * param resultType * param context * param soapFactory * param omNs * param operate * return * throws Exception */public Map operateCustomer(ListMap contexts,OMElement resultType,OMElement context,OMFactory soapFactory,OMNamespace omNs,String operate) throws E(execute operate operateCustomer!);/if(log.isDebugEnabled()/log.debug(execute operate Account!);/Map results = new HashMap();boolean insertIsSuccess=true;for(Map cont :contexts)String result=null;if(ADD.equals(operate)result=insertCustomerToDB(cont);else if(EDIT.equals(operate)result=updateCustomerByCustId(cont);else if(DEL.equals(operate)result=delCustomerByCustId(cont);if(null!=result)String resArray=result.split(;); /获取result数组String custId=resArray0;String desc=;OMElement editFail=null;if(ADD.equals(operate)insertIsSuccess=false;editFail=soapFactory.createOMElement(PublicParam.RES_ADD_FAIL,omNs);else if(EDIT.equals(operate)insertIsSuccess=false;editFail=soapFactory.createOMElement(PublicParam.RES_EDIT_FAIL,omNs);else if(DEL.equals(operate)insertIsSuccess=false;editFail=soapFactory.createOMElement(PublicParam.RES_DEL_FAIL,omNs);if(resArray.length1) desc=resArray1;OMElement editFailCustId=soapFactory.createOMElement(PublicParam.RES_CUSTOMER_ID,omNs);OMElement editFailDesc=soapFactory.createOMElement(PublicParam.RES_DESC,omNs);editFailCustId.setText(custId);editFailDesc.setText(desc);editFail.addChild(editFailCustId);editFail.addChild(editFailDesc);context.addChild(editFail);if(insertIsSuccess)resultType.setText(PublicParam.SUBS_SUCCESS);OMElement Success=soapFactory.createOMElement(PublicParam.RES_SUCCESS,omNs);OMElement editSuccessDesc=soapFactory.createOMElement(PublicParam.RES_DESC,omNs);editSuccessDesc.setText(PublicUtil.DEFAULT_UPDATE_CUSTOMER_SUCCESS);Success.addChild(editSuccessDesc);context.addChild(Success);elseresultType.setText(PublicParam.SUBS_EXISTS);results.put(resultType,context);return results;/* * 增加用户 * param cont * return * throws Exception */private String insertCustomerToDB(Map cont) throws ExceptionString result=null;(execute insertCustomerToDB of CustomerServiceUtils);String custId=cont.get(PublicParam.REQ_CUSTOMER_CUSTID);String address=cont.get(PublicParam.REQ_CUSTOMER_ADDRESS);String linkMan=cont.get(PublicParam.REQ_CUSTOMER_LINKMAN);String linkPhone=cont.get(PublicParam.REQ_CUSTOMER_LINKPHONE);String linkAddr=cont.get(PublicParam.REQ_CUSTOMER_LINKADDR);String ownerAreaId=cont.get(PublicParam.REQ_CUSTOMER_OWNERAREAID);String custName=cont.get(PublicParam.REQ_CUSTOMER_CUSTNAME);String region=cont.get(PublicParam.REQ_GROUP_REGION);String groupId=cont.get(PublicParam.REQ_GROUP_GROUPID);if(null!=custId & !.equals(custId)if(customerService.checkCustId(custId)result=custId+;+PublicUtil.INSERT_CUSTOMER_ID_EXISTS;elseresult=custId+;+PublicUtil.DEFAULT_INPUT_PARAM_CUSTID_ERROR;if(null!=result) return result;if(null!=linkPhone & !.equals(linkPhone)result=checkCustomerForPhone(custId, linkPhone);if(null!=result) return result;if(null=result)CustomerInfo customer=new CustomerInfo();customer.setCustId(custId);customer.setCustName(custName);customer.setAddress(address);customer.setLinkAddr(linkAddr);customer.setLinkMan(linkMan);customer.setLinkPhone(linkPhone);customer.setOwnerAreaId(ownerAreaId);customer.setGroupId(groupId);customer.setRegion(region);customerService.addCust(customer);/result=custId+;+PublicUtil.DEFAULT_UPDATE_CUSTOMER_SUCCESS;return result;/* * 根据用户id更新 * param cont * return * throws Exception */private String updateCustomerByCustId(Map cont) throws Exception String result=null;(execute updateCustomerByCustId of CustomerServiceUtils);String custId=cont.get(PublicParam.REQ_CUSTOMER_CUSTID);String address=cont.get(PublicParam.REQ_CUSTOMER_ADDRESS);String linkMan=cont.get(PublicParam.REQ_CUSTOMER_LINKMAN);String linkPhone=cont.get(PublicParam.REQ_CUSTOMER_LINKPHONE);String linkAddr=cont.get(PublicParam.REQ_CUSTOMER_LINKADDR);String ownerAreaId=cont.get(PublicParam.REQ_CUSTOMER_OWNERAREAID);String custName=cont.get(PublicParam.REQ_CUSTOMER_CUSTNAME);String region=cont.get(PublicParam.REQ_GROUP_REGION);String groupId=cont.get(PublicParam.REQ_GROUP_GROUPID);CustomerInfo customer=null;if(null!=custId & !.equals(custId)result=checkCustomerForCustId(custId);elseresult=custId+;+PublicUtil.DEFAULT_INPUT_PARAM_CUSTID_ERROR;if(null!=result) return result;if(null!=linkPhone & !.equals(linkPhone)result=checkCustomerForPhone(custId, linkPhone);if(null!=result) return result;if(null=result) customer = customerService.getCustomerById(custId);customer.setCustId(custId);if(custName=null|.equals(custName)(custId:+custName);customer.setCustName(customer.getCustName();elsecustomer.setCustName(custName);customer.setAddress(address);customer.setLinkAddr(linkAddr);customer.setLinkMan(linkMan);customer.setLinkPhone(linkPhone);customer.setOwnerAreaId(ownerAreaId);if(region=null|.equals(region)customer.setRegion(customer.getRegion();elsecustomer.setRegion(region);customer.setGroupId(groupId);(customer.getRegion();customerService.updateCust(customer);/result=custId+:+PublicUtil.DEFAULT_UPDATE_CUSTOMER_SUCCESS;catch(Exception e)result = custId + ; + PublicUtil.DEFAULT_UPDATE_CUSTOMER_FAIL;return result;return result;/* * 根据id删除用户 * param cont * return */private String delCustomerByCustId(Map cont) (execute delCustomerByCustId of CustomerServiceUtils);String result=null;String custId=cont.get(PublicParam.REQ_CUSTOMER_CUSTID);if(null!=custId & !.equals(custId)CustomerInfo customer=customerService.getCustomerById(custId);if(null!=customer) trycustomerService.delCust(new StringcustId);/result=custId+;+PublicUtil.DEFAULT_UPDATE_CUSTOMER_SUCCESS;catch(Exception e)result=custId+;+PublicUtil.UPDATE_CUSTOMER_FAIL;return result;elseresult=custId+;+PublicUtil.INSERT_CUSTOMER_ID_NOEXISTS;return result;elseresult=custId+;+PublicUtil.DEFAULT_INPUT_PARAM_CUSTID_ERROR;return result;/* * 检查custId是否存在 * param custId * return * throws Exception */private String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论