校外實習報告參考模版.doc_第1頁
校外實習報告參考模版.doc_第2頁
校外實習報告參考模版.doc_第3頁
校外實習報告參考模版.doc_第4頁
校外實習報告參考模版.doc_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

鄭 州 輕 工 業 學 院校 外 實 習 報 告實習名稱: 軟件工程實踐 姓 名: 院 (系): 軟件學院 專業班級: 軟件工程(java技術)0801 學 號: 指導教師: 張建偉 主要實習單位: 成 績: 時間: 20 年 0 月 29 日至 20 年 01 月 06 日實習成績評定表實 習 單 位實習單位指導技術人員評語簽名成績杰普軟件科技有限公司該生在公司學習認真,刻苦專研,積極主動,樂于助人,為人誠肯。文思創新軟件技術有限公司該生在公司工作認真,積極主動,服從安排,謙虛學習,思維活躍。指導教師評語總成績: 目 錄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 check

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論