公文素材库 首页

项目开发实训心得

时间:2019-05-29 07:08:45 网站:公文素材库

项目开发实训心得

物流信息管理开发项目实训报告

实习时间:201*.5.7--201*.5.18实习地点:教学楼九楼/电子阅览室专业:工商企业管理(邮政物流)

姓名:易佳乐学号:11号实训指导老师:邓雪宁

(1)实训基本概况

实训项目名称:物流管理信息系统开发项目

实训目的:通过项目管理和物流管理信息系统的实训,使能将所学的项目管理和物流管理信息系统专业知识和理论能够和实践结合起来,从而使所掌握的项目与管理信息系统专业知识更加扎实,使之了解项目管理和管理信系统的现状和需求,明确此课程学习的重点,提高综合运用项目管理和管理信息系统专业知识的能力和水平。

要训要求:充分认识到项目管理和管理信息系统的重要性,在实训过程中遵循老师的安排,主动、独立完成任务,注重与团队的协作。

实训分为两个阶段:第一阶段为项目方案的制定;第二阶段为项目实施.

(2)实训感受:

在这次实训里面我们学到了很多也知道了了解了很少,明白了一个项目要开发出来的不容易!那么一个项目最重要的几件事是什么呢?就让我来说说吧:1)、需要建立需求调研

在项目确立后,就到了需求调研分析阶段。

1.项目组对客户的整体组织结构、公司有关人员的关系、职责等如果没有一个很好、足够的了解掌握,这样项目组就无法很好的完整的整理到客户的需求、或者说客户真实的功能需求,如此以来我们就为自己埋下了地雷,影响项目的开发周期,这就要求我们要与客户搞好无论是工作上的还是生活上的朋友关系,要深入的去了解客户需求。

2.我们要尽量的让客户也参与到项目的开发团队中来,也就是说我们要使客户把自己也纳入到项目的开发团队中来,如此一来,我们掌握客户需求的真实性、可靠性就会大大的提高,也就不会为项目的后期功能开发埋下陷阱3.在需求调研过程中,如果缺乏足够用户参与,这样的需求调研也是失败的。很多程序员不愿参与到客户的需求调研中去,为什么呢?很简单,与客户沟通不如与代码沟通容易有意思。尽管这样,我们还是必须用足够多的时间去和客户进行沟通,了解他们真实的需求。很多用户也是如此,他们自己也不愿意参与到项目的需求调研中来,为什么呢?需求调研有出去和朋友一块烂漫对吗。。。虽然现状如此,我们还是要努力的使客户参与到需求的调研中来。4.模糊需求,也就是模棱两可是需求规格说明中最为可怕的问题。一是指诸多客户对需求说明产生了不同的理解;一是指单个读者能用不止一个方式来解释某个需求说明。针对对这种情况,就要求我们的调研人员要能够从多个角度来分析客户的不同需求,整理出最终的需求与客户确认,定出最终真实可靠的需求,我们绝不能凭借我们自己的单面理解来定立客户的最终需求。5.在一个项目的开发中,文档的书写是极为中要的一项工作。因为,某些文档就是我们在开发后期与客户沟通的可寻依据、也是我们程序员在编码过程中要用到的重要文档。我们绝对不能认为,凭借我们的大脑来记录所有的开发需求。。。;即使,你说你是天才,你要用你那颗爱因斯坦的大脑来记录所有的开发需求,那也是不可能的,人的精力总是有限的。这就要求我们在需求调研中做好需求文档的记录和整理。

6.需求调研工具选择,客户一般对图形还是比较感兴趣的,所以我们在调研过程中,我要尽量的采用图形化界面来和客户沟通需求。比如可以采用Rose工具,把客户的意思转换为用例图、时序图、协作图、状态图、类图等,使表达的意思更加直观。这样客户会更快的进行问题的实质。

2)、要有一个很好的沟通,在其他行业中,人与人的之间的沟通只很重要的。项目开发也不例外,很好的沟通能够加快项目的进度,这就要求我们每一个开发人员要学会和善于沟通于客户和同事之间。在一个项目的开发过程中,我们与客户的沟通是一个不断交流和沟通的过程。在开发到一定的阶段,我们就需要和客户沟通已有功能,尽量的去避免一些隐藏的问题,及时的发现问题,解决问题,从而按时或者提前完成项目的开发。

3)、再有就是做好工作的总结,在项目进行的过程中,我们要不断去整理自己的工作情况和做好总结这样以来,无论是在自己的技术还是其它方面,都会对我们有很大的提高,在长期的积累后,无论是我们个人能力,,还是我们的团队能力都会有很大的提高。

在这次实训中我学到了不少的东西,实训开始的第一天老师就给我们讲解了我们之前没有学的《项目管理》,然我们学习了项目管理的项目管理的定义、它的基本方法以及项目团队与沟通,有了这些基础知识做了铺垫,接下来我们就顺利开始了物流信息管理项目开发的实训了。

刚开始我们进行了分组,接着进行项目选择、立项、开发方案的制定,然后制定项目计划书,紧接着进行系统分析、系统设计、然后系统的实施,在9在实训的过程中我学会了做里程碑计划、组织管理机构图、wbs、责任分配表、人力资源计划表以及费用分解表等。我相信这些东西都是非常有用的,通过实训的具体操作我觉得不仅增长了我们的知识面,也加强了我们的动手能力。

第二周在电子阅览室进行实训,对上一周开发的项目进行上机操作,并且开发出本组选择的项目软件,在软件开发的过程中我学会了操作MicrosoftAccess这个工具,虽然在进行开发的过程中遇到了很多困难和阻碍,但是我们这个团队的成员都始终团结,决不放弃,最后,我们把软件开发出来了,大家都是兴奋不已。

当然不得不承认在实训的过程中我们存在许多问题和不足,我们的问题是在没有及时的去了解实训重要用到的知识和项目开发时用到的一些计算机上的工具,使我们在项目开发的过程中耽误了相当多的时间,还有各方面的问题都要去请教老师。当然我们主要的是以前没有接触到相关的课程,也没有做相关的实训,只是这一学期对物流信息管理在进行简单的学习,所以对于与物流信息管理的项目开发我们刚开始时是根本就是“丈二和尚--摸不着头脑”,但是慢慢地经过一两天的实训我么开始找到了感觉,并且产生了很大的兴趣,我们就开始走上正轨,开始跟着老师的思路一步一步的走下来,整个流程还是相当的清晰地。

这次实训给我的最大的感受是一个好的、成功的团队必须团结,每个人都要有责任感,有协作精神,始终想着共同的目标去努力。我自己也是我觉得自己有的时候好够努力,通过实训我也培养了自己的责任感,加强了与同学们之间的交流,从而增进了与同学们之间的友谊,我也学会了很多专业的知识,比如,利用visio制作组织管理机构图,利用Access开发我们物流仓储管理信息系统,我相信这次实训让我学到的东西将是以后我工作中相当重要的知识。

(3)实训教训:

1).在进行分配之前先要学习相关的知识,明白自己在干什么,会干什么,

能否完成相应的功能。

2).每个人都必须按照规划的要求,提供完全合乎要求的接口,以提高系统整个工程的进度。

3).在整个过程中,大家要多多沟通,以保证信息的高度共享性,这样可以极高的加快开发的进展速度。

扩展阅读:《Android项目开发实训》项目总结报告

实训报告

姓名:祝新学号:1144131专业:软件技术课程名称:android实训项目名称:闹铃指导教师:王皓实训日期:201*年10月28日至201*年1月2日

201*年1月2日

Android项目开发实训总结报告

目录

第一章概述..................................................................................................................1第二章需求分析..........................................................................................................2

2.1项目背景.........................................................................................................22.2项目需求.........................................................................................................2第三章相关技术..........................................................................................................3

3.1Adnroid平台介绍..........................................................................................33.2关键技术研究.................................................................................................3第四章概要设计..........................................................................................................4

4.1系统体系结构...............................................................................................44.2用户界面设计..................................................................................................4第五章详细设计..........................................................................................................6

5.1添加闹铃功能模块.........................................................................................6第六章结论................................................................................................................16

Android项目开发实训总结报告

第一章概述

本课题要求:设计一个基于Android的位置闹钟的软件。实现的功能有:a)能在Android上利用其提供地相关API获取位置信息。b)能通过界面设置闹钟的启动条件,包括入场与出场条件的设

c)建立后台服务进程,监查位置信息,当满足触发条件时,闹钟响应相应事件。

需重点研究的关键问题:通过AndroidApi获取位置信息,并在指定地点设置闹钟提醒。

解决思路:在界面里显示当前位置信息(经纬度值),并输入指定地点的经纬度值,编程实现对位置信息实时更新,将两者的经纬度转换为距离,如在误差范围内则启动闹铃功能。

1Android项目开发实训总结报告

第二章需求分析

2.1项目背景

移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性的智能手机、平板电脑等移动终端产业的蓬勃发展。搭载安卓操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。开放的源代码和零成本已经让安卓在全世界范围内受到青睐并迅速获得了主要手机厂商和数百万软件开发者的支持,201*年安卓系统的市场份额已经超过Symbian,成为全球第一大智能手机操作系统。

GPS产业从军用转入民用后,正在逐渐向普通消费群体发展,作为使用终端的GPS产品正逐渐的深入人们生活得各个领域。GPS使用终端最主要的应用方面主要体现在各种接收器,比如航空、航海用途的接收器,汽车导航设备,或用于登上、远足的手持接收器等终端产品。GPS接收终端的结构包括,接收天线、芯片组、电池等,以及外部按键和液晶面板等相关零部件。

该课题实现在手机操作系统Android上将GPS导航和闹钟提醒两个功能结合起来,携带方便,并能超越传统的时间闹钟提醒功能,使用起来灵活、快捷、省心,是一款实用而且高端的手机软件。

2.2项目需求

“位置闹钟”是一款提醒你地点的软件,它通过地图指定提醒的目的地,同时要求定位精确、使用过程可用Wifi(节省手机流量)和普通无网络。

“位置闹钟”可以通过GPS定位和手机蜂窝基站定位两种定位方式来监测用户所在位置。当你靠近目的地的时候,“位置闹钟”会进行闹钟提醒。而在封闭的空间中,如拥挤的公交车上,接收不到卫星的GPS信号,此时,手机基站定位就可派上用场。虽然基站的定位精度比起GPS来说稍低,但完全可以满足位置提醒的要求。此外,“位置闹钟”还可以后台运行,且能和普通闹钟一样设置多个位置闹铃,有良好的人机交互界面,可对其编辑、启用或禁用。

Android项目开发实训总结报告

第三章相关技术

3.1Adnroid平台介绍

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由AndyRubin开发,主要支持手机。201*年8月由Google收购注资。201*年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于201*年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。201*年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。201*年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。201*年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

3.2关键技术研究

应用SQLLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的

数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品使用了它,它占用的资源非常低。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小,虽只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。

Android项目开发实训总结报告

第四章概要设计

4.1系统体系结构

系统旨在建立Android系统的闹钟,主要有如下几个核心功能模块如图5所示。

节能功能添加闹铃、设置时间、重复等音乐、闹铃提醒方式图片选取返回首页主程序

图5系统功能模块图

4.2用户界面设计

通过小组讨论用户的界面如下:

4.2.1主页面

4

Android项目开发实训总结报告

4.2.2添加闹铃功能

4.2.3音乐清单

Android项目开发实训总结报告

第五章详细设计

5.1添加闹铃功能模块

具体实现代码如下:/*

*Copyright(C)201*TheAndroidOpenSourceProject*

*LicensedundertheApacheLicense,Version2.0(the"License");*youmaynotusethisfileexceptincompliancewiththeLicense.*YoumayobtainacopyoftheLicenseat*

*-2.0*

*Unlessrequiredbyapplicablelaworagreedtoinwriting,software*distributedundertheLicenseisdistributedonan"ASIS"BASIS,*WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

*SeetheLicenseforthespecificlanguagegoverningpermissionsand*limitationsundertheLicense.*/

packagecom.android.superdeskclock;

importjava.text.DateFormatSymbols;importjava.util.Calendar;

importandroid.content.Context;importandroid.database.Cursor;

importandroid.media.RingtoneManager;importandroid.net.Uri;

6Android项目开发实训总结报告

importandroid.os.Parcel;importandroid.os.Parcelable;

importandroid.provider.BaseColumns;

publicfinalclassAlarmimplementsParcelable{

////////////////////////////////Parcelableapis

//////////////////////////////

publicstaticfinalParcelable.CreatorCREATOR=newParcelable.Creator(){

publicAlarmcreateFromParcel(Parcelp){returnnewAlarm(p);}

publicAlarm[]newArray(intsize){returnnewAlarm[size];}};

publicintdescribeContents(){return0;}

publicvoidwriteToParcel(Parcelp,intflags){p.writeInt(id);

p.writeInt(enabled?1:0);p.writeInt(hour);p.writeInt(minutes);

p.writeInt(daysOfWeek.getCoded());p.writeLong(time);

p.writeInt(vibrate?1:0);p.writeString(label);

p.writeParcelable(alert,flags);p.writeInt(silent?1:0);

//新增

p.writeInt(times);p.writeInt(interval);}

////////////////////////////////endParcelableapis

//////////////////////////////

7Android项目开发实训总结报告

////////////////////////////////Columndefinitions

//////////////////////////////

publicstaticclassColumnsimplementsBaseColumns{/**

*Thecontent://styleURLforthistable*/

publicstaticfinalUriCONTENT_URI=

Uri.parse("content://com.android.superdeskclock/alarm");

/**

*Hourin24-hourlocaltime0-23.*Type:INTEGER*/

publicstaticfinalStringHOUR="hour";

/**

*Minutesinlocaltime0-59*Type:INTEGER*/

publicstaticfinalStringMINUTES="minutes";

/**

*Daysofweekcodedasinteger*Type:INTEGER*/

publicstaticfinalStringDAYS_OF_WEEK="daysofweek";

/**

*AlarmtimeinUTCmillisecondsfromtheepoch.*Type:INTEGER*/

publicstaticfinalStringALARM_TIME="alarmtime";

/**

*Trueifalarmisactive*Type:BOOLEAN*/

publicstaticfinalStringENABLED="enabled";

/**

*Trueifalarmshouldvibrate*Type:BOOLEAN

8Android项目开发实训总结报告

*/

publicstaticfinalStringVIBRATE="vibrate";

/**

*Messagetoshowwhenalarmtriggers*Note:notcurrentlyused*Type:STRING*/

publicstaticfinalStringMESSAGE="message";

/**

*Audioalerttoplaywhenalarmtriggers*Type:STRING*/

publicstaticfinalStringALERT="alert";

//新增

publicstaticfinalStringTIMES="times";

publicstaticfinalStringINTERVAL="interval";

/**

*Thedefaultsortorderforthistable*/

publicstaticfinalStringDEFAULT_SORT_ORDER=HOUR+","+MINUTES+"ASC";

//Usedwhenfilteringenabledalarms.

publicstaticfinalStringWHERE_ENABLED=ENABLED+"=1";

staticfinalString[]ALARM_QUERY_COLUMNS={_ID,HOUR,MINUTES,DAYS_OF_WEEK,ALARM_TIME,ENABLED,VIBRATE,MESSAGE,ALERT//新增

,TIMES,INTERVAL};

/**

*Thesesavecallstocursor.getColumnIndexOrThrow()*THEYMUSTBEKEPTINSYNCWITHABOVEQUERYCOLUMNS*/

publicstaticfinalintALARM_ID_INDEX=0;publicstaticfinalintALARM_HOUR_INDEX=1;publicstaticfinalintALARM_MINUTES_INDEX=2;

publicstaticfinalintALARM_DAYS_OF_WEEK_INDEX=3;publicstaticfinalintALARM_TIME_INDEX=4;

9Android项目开发实训总结报告

publicstaticfinalintALARM_ENABLED_INDEX=5;publicstaticfinalintALARM_VIBRATE_INDEX=6;publicstaticfinalintALARM_MESSAGE_INDEX=7;publicstaticfinalintALARM_ALERT_INDEX=8;

//新增

publicstaticfinalintALARM_TIMES_INDEX=9;publicstaticfinalintALARM_INTERVAL_INDEX=10;}

////////////////////////////////Endcolumndefinitions

//////////////////////////////

//Publicfields

publicintid;

publicbooleanenabled;publicinthour;publicintminutes;publicDaysOfWeekdaysOfWeek;publiclongtime;publicbooleanvibrate;publicStringlabel;publicUrialert;publicbooleansilent;

//新增

publicinttimes;publicintinterval;

publicAlarm(Cursorc){

id=c.getInt(Columns.ALARM_ID_INDEX);

enabled=c.getInt(Columns.ALARM_ENABLED_INDEX)==1;hour=c.getInt(Columns.ALARM_HOUR_INDEX);

minutes=c.getInt(Columns.ALARM_MINUTES_INDEX);daysOfWeek=

DaysOfWeek(c.getInt(Columns.ALARM_DAYS_OF_WEEK_INDEX));time=c.getLong(Columns.ALARM_TIME_INDEX);

vibrate=c.getInt(Columns.ALARM_VIBRATE_INDEX)==1;label=c.getString(Columns.ALARM_MESSAGE_INDEX);

//新增

times=c.getInt(Columns.ALARM_TIMES_INDEX);

interval=c.getInt(Columns.ALARM_INTERVAL_INDEX);

-10-

10newAndroid项目开发实训总结报告

StringalertString=c.getString(Columns.ALARM_ALERT_INDEX);if(Alarms.ALARM_ALERT_SILENT.equals(alertString)){if(Log.LOGV){

Log.v("Alarmismarkedassilent");}

silent=true;}else{

if(alertString!=null&&alertString.length()!=0){alert=Uri.parse(alertString);}

//Ifthedatabasealertisnulloritfailedtoparse,usethe

//defaultalert.if(alert==null){

alert=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);}}}

publicAlarm(Parcelp){id=p.readInt();

enabled=p.readInt()==1;hour=p.readInt();minutes=p.readInt();

daysOfWeek=newDaysOfWeek(p.readInt());time=p.readLong();

vibrate=p.readInt()==1;label=p.readString();

alert=(Uri)p.readParcelable(null);silent=p.readInt()==1;

//新增

times=p.readInt();interval=p.readInt();}

//Createsadefaultalarmatthecurrenttime.publicAlarm(){id=-1;

Calendarc=Calendar.getInstance();

c.setTimeInMillis(System.currentTimeMillis());

11Android项目开发实训总结报告

hour=c.get(Calendar.HOUR_OF_DAY);minutes=c.get(Calendar.MINUTE);vibrate=true;

daysOfWeek=newDaysOfWeek(0);alert

RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

//新增times=10;interval=0;}

publicStringgetLabelOrDefault(Contextcontext){if(label==null||label.length()==0){

returncontext.getString(R.string.default_label);}

returnlabel;}

/*

*Daysofweekcodeasasingleint.*0x00:noday*0x01:Monday*0x02:Tuesday*0x04:Wednesday*0x08:Thursday*0x10:Friday*0x20:Saturday*0x40:Sunday*/

staticfinalclassDaysOfWeek{

privatestaticint[]DAY_MAP=newint[]{Calendar.MONDAY,Calendar.TUESDAY,Calendar.WEDNESDAY,Calendar.THURSDAY,Calendar.FRIDAY,Calendar.SATURDAY,Calendar.SUNDAY,};

//BitmaskofallrepeatingdaysprivateintmDays;

12-12-

=Android项目开发实训总结报告

DaysOfWeek(intdays){mDays=days;}

publicStringtoString(Contextcontext,booleanshowNever){StringBuilderret=newStringBuilder();

//nodays

if(mDays==0){

returnshowNever?

context.getText(R.string.never).toString()"";

}

//everyday

if(mDays==0x7f){return

context.getText(R.string.every_day).toString();}

//countselecteddays

intdayCount=0,days=mDays;while(days>0){

if((days&1)==1)dayCount++;days>>=1;}

//shortorlongform?

DateFormatSymbolsdfs=newDateFormatSymbols();String[]dayList=(dayCount>1)?dfs.getShortWeekdays():dfs.getWeekdays();

//selecteddays

for(inti=0;i<7;i++){

if((mDays&(10)ret.append(

context.getText(R.string.day_concat));}}

returnret.toString();

-13-

13:Android项目开发实训总结报告

}

privatebooleanisSet(intday){

return((mDays&(10);}

publicvoidset(intday,booleanset){if(set){

mDays|=(1Android项目开发实训总结报告

inttoday=(c.get(Calendar.DAY_OF_WEEK)+5)%7;

intday=0;

intdayCount=0;

for(;dayCount<7;dayCount++){day=(today+dayCount)%7;if(isSet(day)){break;}}

returndayCount;}}}

-15-

Android项目开发实训总结报告

第六章结论

经过累计一个多月的努力,基于Android平台的位置闹钟软件终于完成了。由于对Android浓厚的兴趣引发了我对JAVA的好奇心,毕竟Android是基于JAVA的,虽然这个软件的开发没有达到老师的期望值,但是在老师和同学的帮助下,我还是慢慢摸索完成了这个软件。

在这个过程中,我学会了很多知识,比如Android环境的搭建和配置问题、GPS技术和Android的构架和基本组建等等,同时我学会的最重要的一点是,要利用现有的资源去解决问题,在图书馆、在网络上寻找答案,也可以请教老师或与同学相互讨论。

虽然,这个软件目前运行良好,但是我认为代码的健壮还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,例如“同时设置多个闹钟”、“信息分享”、“应用推荐”等,使功能更加强大,带给用户更好的体验与便捷的生活服务。

16

友情提示:本文中关于《项目开发实训心得》给出的范例仅供您参考拓展思维使用,项目开发实训心得:该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


项目开发实训心得
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/672257.html
相关阅读
最近更新
推荐专题