软件设计实践报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件设计实践报告单位:信息工程学院班级:计算机科学与技术二班学号:xxxxxxxxxxxxxx姓名:xxxx任课教师:xxxxxxxxxxxxx湘潭大学2011年8月软件设计实践项目名称:ERP移动扩展手机版通讯录湘潭大学信息工程学院七组一、项目概述1.概述针对各公司或(商业)机构与外界联系将更为广泛和密切,传统的手工通讯录、地址簿已经难以满足快节奏、高效率的现代生活的需求。经常发生要在几十甚至上百张名片中找出某一张名片的情况,若由手工完成效率十分低。为了满足快节奏、高效率的现代生活的需求,需要开发出高效的通讯录管理软件2.目的和用途本文档的编制,为了使用户和软件开发者双方对项目所涉及的需求范围、需求的含义有一个共同约定和理解,使之成为后续软件设计、软件开发和系统实施工作的基础。为公司职员提供公司的通讯录,并实现按照姓名和部门的智能查询功能,提供安全而便捷的办公。3.需求概述3.1用户需求列表用户当前需求如图所示:编号需求名称描述优先级1登陆安全用户每次登陆时要求验证ERP帐号和密码P02自动更新用户登录之后,系统自动更新数据库P03手动更新用户可以根据需要手动对数据库进行更新P04分部门查询按照部门返回查询信息P05按姓名查询根据用户输入的联系人姓名返回查询的信息P06按号码查询根据用户输入的联系人号码返回查询的信息P07模糊查询根据用户输入的不完整信息返回查询的信息P08首字母查询用户输入姓名的首字母查询返回查询的信息P09语音查询根据用户语音查询联系人信息P210错误近似查询根据用户输入的错误信息,返回最近似的信息P211查询结果操作对查询结果进行操作,打电话或者发短信P0(注:P0级为必须实现,P1级为尽可能实现,P2级为希望实现)3.2需求分析•功能1:登陆安全。用户每次登陆时要求验证用户的ERP账号和密码组合。如果身份验证正确,方才允许用户的后续操作;否则,拒绝,留在当前登陆页面。•功能2:自动更新。用户在登陆成功之后,系统自动从服务器下载最新数据,更新本地数据库。•功能3:手动更新。用户可以根据需要,点击同步更新按钮,随时从服务器下载最新的数据,以更新本地数据库。•功能4:分部门查询。用户在查询联系人的时候,可以根据联系人所在的部门查询。用户点击分部门查询,查询返回部门列表,然后再根据子部门向下查询。•功能5:按姓名查询。在查询时,用户输入联系人的中文姓名,系统返回匹配的结果。•功能6:按号码查询。用户输入用户的号码,点击查询,系统能返回正确的匹配信息。•功能7:模糊查询。当用户输入不完整的信息时,系统能进行模糊查询,返回所有跟当前不完整信息吻合的联系人信息。•功能8:首字母查询。用户在查询输入时,可以只输入联系人姓名的首字母。当首字母与英文名字首字母相同时,应同时返回匹配结果,按照在数据库中的排列顺序排列查询结果。•功能9:语音查询。系统根据用户语音指令查询用户信息。•功能10:错误近似查询。当用户输入的信息错误时,系统能够返回与错误信息最相近的结果供用户进行选择。•功能11:对查询结果进行操作。用户点击查询结果,系统弹出对话框,供用户选择操作,打电话或者发短信。4.环境要求1、联想台式机一台2、windows平台和android平台。Eclipse编程软件,AndroidSDK,TFT插件。二系统分析与设计用例图图2.1用例图分析类图图2.2分析类图boundary:登陆,查询,更新control:远程验证或本地验证,查询部门或联系人,更新数据entity:远程服务器,SharePerferences,本地服务器时序图图2.3时序图1图2.4时序图2图2.5时序图31、系统设计1.用户界面1)登陆界面2)查询界面3)信息界面4)更新界面5)拨号界面6)发短息界面2.模块设计采用工厂模式,总体截图Com.surekam包中的infor.java,Login.java,progress.java,Search.java为用户界面类,MyDBhelper.java为自定义本地数据库类;Com.surekam.common包中的文件为自定义的数据结构;Com.surekam.controller包中的文件为控制类;Com.surekam.data包中的文件为数据库操作类;Com.surekam.service包中的文件为连接服务器类。控制类:数据库操作类:连接服务器类:本地数据库:模块联系图:2、模块/函数设计数据库表结构:登陆界面数据结构:功能:用户界面类-------显示设计好的界面布局,监听用户事件,如按钮事件,输入事件等,并传递给控制类。控制类---------接收从用户界面类传来的事件,做部分处理,使之能直接用于数据库操作,然后交给数据库操作类。数据库操作类-------根据控制类传来的事件,进行数据库插入,更新,查找等操作。可以直接对本地数据库进行操作,也可以访问远程服务器。连接服务器类--------连接远程服务器,下载数据。本地数据库类--------管理本地数据库,包括重置,最后连接远程数据库时间记录等。3、测试方案采用黑盒测试。三、系统实现a)连接远程数据库类packagecom.surekam.service;importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.util.ArrayList;importjava.util.List;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.protocol.HTTP;importorg.json.JSONArray;importorg.json.JSONException;importorg.json.JSONObject;importorg.ksoap2.SoapEnvelope;importorg.ksoap2.serialization.PropertyInfo;importorg.ksoap2.serialization.SoapObject;importorg.ksoap2.serialization.SoapSerializationEnvelope;importorg.ksoap2.transport.HttpTransportSE;importandroid.content.Context;importcom.surekam.common.Member;publicclassServiceImplimplementsIService{privateContextcontext;StringNAMESPACE===AuthenticateUser;StringgetContactsMethod=GetContacts;StringsoapAction1====SERVICE_URL1+/authenticateuser;StringgetContactURL;/*protectedServiceImpl(Contextcontext){this.context=context;}@OverridepublicStringvalidate(StringuserName,Stringpasswd){StringreturnResult=netError;//Post方式MapString,Stringmap=newHashMapString,String();map.put(UserId,userName);map.put(Password,passwd);JSONObjectjson=newJSONObject(map);//Stringjson2={UserId:string,Password:string}returnResult=getPostResponse(url,json.toString());//true/falsereturnreturnResult;}*/protectedServiceImpl(Contextcontext){this.context=context;}@OverridepublicStringvalidate(StringuserName,Stringpasswd){StringreturnResult=netError;try{SoapObjectsoapObject=newSoapObject(NAMESPACE,validateMethod);PropertyInfoinfo=newPropertyInfo();info.name=userId;PropertyInfoinfo2=newPropertyInfo();info2.name=password;soapObject.addProperty(info,userName);soapObject.addProperty(info2,passwd);SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut=soapObject;envelope.dotNet=true;HttpTransportSEht=newHttpTransportSE(SERVICE_URL);ht.call(soapAction1,envelope);Stringresult=envelope.getResponse().toString();if(Boolean.parseBoolean(result)){returnResult=true;}else{returnResult=false;}}catch(Exceptione){e.printStackTrace();}returnreturnResult;}@OverridepublicListMembergetContacts(StringuserName,Stringpwd,StringlastUpdateTime,intstart,intend){//GET方式Membercontact=newMember();ListMemberreturnList=newArrayListMember();getContactURL=SERVICE_URL1+/read/contactlist?userId=+userName+&password=+pwd+&start=+start+&end=+end+×tamp=+lastUpdateTime;Stringresponse=

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功