项目实践课程地位项目实践项目实践项目实践项目实践C语言基础第一阶段课程第一阶段课程第二阶段课程第二阶段课程职业导向训练职业导向训练嵌入式Linux开发基础嵌入式C语言编程Linux系统程序设计嵌入式C++编程嵌入式Linux系统移植Linux驱动程序设计面向对象程序设计与UML移动通讯技术和3G基础课程目标了解maemo平台特性技术规格熟悉maemo平台开发使用的工具熟悉scatchbox开发工具链熟悉Subversion进行代码管理理解项目设计理解通讯协议设计理解存储文件设计理解界面开发流程嵌入式开发工具QT/Embedded熟悉QT做为主流开发工具,设计上的特点能够使用QT进行简单的界面开发面向对象和UML熟悉面向对象设计方法理解类图在软件设计中的地位和类图的设计方法使用Rose工具完成简单的类图设计课程结构图项目实施Embedded/QT基础面向对象程序设计和UMLmaemo平台介绍maemo平台开发工具介绍项目开发进度项目开发流程通讯协议设计数据文件存储设计界面开发流程版本控制管理工具SVN(第1章)嵌入式图形界面介绍QT程序框架和函数库介绍QT/Embedded简介信号和插槽机制程序框架布局和按钮等控件介绍(第2章)面向对象技术概述UML概述类图和对象图(第3-5章)项目实施第1章本章目标了解maemo平台特性了解maemo平台开发工具Scratchbox了解项目开发进度节点熟悉项目开发流程理解通讯协议设计理解数据文件存储设计理解界面开发流程会使用版本控制管理工具SVN本章结构Maemo平台简介项目实施适用范围产品指标通讯协议设计电话簿设计基本设计概念和处理流程项目实施计划系统描述技术规格书产品功能指标编写目的\运行环境界面设计开发工具概要设计详细设计版本控制功能需求和程序的关系Maemo是构建于桌面开源组件的计算机架构平台,其目标是为移动手持终端提供一种应用和创新技术。于2005年首次推出的maemo是诺基亚各种高端产品的核心平台之一1-1maemo平台简介谁在引领maemo?诺基亚主导该平台的一个活跃的开源maemo社区(maemo.org)同时诺基亚也是多个maemo项目的积极贡献者。maemo从何而来?MaemoMaemo是一个基于开源软件的移动设备软件平台。它已经被应用在诺基亚N770、N800、N810和N900上。Nokia与很多开源软件项目(如Linuxkernel,Debian,GNOME)合作,共同开发Maemo平台。Maemo本身基于Debian因此具有很多Debian特性。1-2maemo嵌入式平台开发环境运行于桌面机的Maemo开发环境被称为maemoSDK。它只能被安装和运行于Linux操作系统。MaemoSDK在GNOME/Linux桌面系统上创建一种沙箱模式的maemo开发环境。原则上,这种砂箱环境是建立在被称为Scratchbox的工具上。开发过程与普通桌面Linux和GNOME/GTK+开发十分相似,而其独特的嵌入式开发功能,如交叉编译等,都是由Scratchbox透明地处理的。1-3产品定义书,技术规格书适用范围系统描述产品指标适用范围本产品技术规格书所适用和涉及的范围,仅针对本规格书所描述的产品,在研发、测试验证、生产及质量控制等各个阶段。产品指标产品功能指标移动3G电话1.电话拨打和接听2.通话记录(拨打,未接,已接)3.通讯簿功能4.通讯簿功能的上传和下载(注:扩展功能和专用服务器软件连接,服务器软件作为嵌入式产品开发附属项目)1-4概要设计说明书编写目的编写本文档使开发人员了解项目需求,设计一套符合本产品的架构,使之具有良好的维护性,扩充性。指导软件开发。需求规定完成本项目需完成手机电话相关功能,手机电话簿,通讯记录文件管理,以及UDP通讯功能。运行环境可运行于Maemo模拟器和Maemo目标平台(ARM)。概要设计说明书基本设计概念和处理流程界面逻辑模块文件管理模块通讯模块ARM硬件平台MAEMO系统界面模块文件管理通讯模块概要设计说明书如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:界面逻辑模块文件管理模块通讯模块手机通讯√XX电话簿√√X通话记录√√X数据传输XX√1-5详细设计说明书通讯协议设计电话簿文件存储设计界面设计通讯协议设计Maemo通讯目录传输协议定义协议基于UDP协议之上,增加了传输控制等功能通讯协议设计数据包传送消息格式:定长读取数据buf[50]报文头命令字数据包顺序数据(含校验)校验报文尾|version(1)|cmd(1)|length(2)|seq(4)|checksum(2)|data(50)通讯协议设计校验:对数据区,命令字,数据包顺序进行校验返回状态-ack正确0x200x0exx0d0x02错误0x200x0fxx0d0x02通讯协议设计命令字定义(命令和状态包无数据段)0x01目录传输开始0x03目录传输报文(目录名)0x04目录传输结束0x05文件传输开始0x06文件传输个数0x07第N文件名0x08第N文件传输第N报文0x09文件传输结束0x0e正确返回0x0f错误返回通讯协议设计协议解析方法分报文分析命令字校验数据解析数据包通讯协议设计类设计方法:通讯纯抽象类继承自通讯纯抽象类的UDPSOCKET类协议解析抽象类继承自协议解析抽象类的自定义协议解析类电话簿文件存储设计电话数据文件存放在当前目录下/PhoneData文件夹下,文件名命名为PhoneData,每一行为一个用户,每一列分别表示用户各类信息电话簿文件已接电话记录文件已拨电话记录文件未接电话记录文件要求可记录100条电话记录,1000条电话簿信息电话簿文件存储设计电话簿格式姓名,电话,EMAIL,传真,地址,公司例如:张三,13563726537,luhai@year.net,832736152,上海市徐汇区桂林路,XX信息科技有限公司电话记录文件格式姓名,电话,日期,时间,拨打次数例如:张三,13563726537,2009-08-01,10:35:6界面设计拨号界面界面设计接听界面界面设计电话簿列表界面设计添加电话记录界面设计查找电话簿记录界面设计编辑电话簿记录界面设计通话记录界面设计通讯界面1-6项目实施计划第一阶段:项目相关课程开展16课时1.第一章理论课4课时2.第二章理论课4课时3.第三章理论课8课时第二阶段:项目设计阶段,分析项目模块,设计通讯,文件存储,以及界面类图8课时1.设计类图6课时2.电话簿数据类型设计2课时1-6项目实施计划第三阶段:完成文件存储模块8课时1.第一章理论课4课时2.第二章理论课4课时3.第三章理论课8课时第四阶段:使用QT完成软件界面开发56课时(需学生讲解操作流程),文件存储,以及界面类图8课时1-6项目实施计划拨号界面4课时接听界面2课时电话簿列表8课时添加电话记录8课时查找电话簿记录8课时编辑电话簿记录8课时通话记录8课时通讯界面2课时软件设计和操作流程讲解(学生)8课时1-6项目实施计划第五阶段:完成通讯模块开发48课时客户端编写8课时服务器端代码编写8课时调试SOCKET4课时调试完整报文传输4课时调试带命令字传输8课时调试带转义校验传输8课时通讯联调8课时1-6项目实施计划第六阶段:软件联调测试24课时界面和通讯联调8课时修改相关bug8课时项目开发讲解(学生)8课时阶段总结Maemo平台使用scratchbox工具进行程序开发SVN是进行代码管理,版本控制的一种工具讲解了面向连接的通讯协议设计概念讲解了电话簿文件存储格式讲解了界面开发流程讲解了项目开发基本流程本章总结Maemo平台简介项目实施适用范围产品指标通讯协议设计电话簿设计基本设计概念和处理流程项目实施计划系统描述技术规格书产品功能指标编写目的\运行环境界面设计开发工具概要设计详细设计版本控制功能需求和程序的关系