软件工程师C++高级培训.docx

上传人:b****8 文档编号:13020248 上传时间:2023-06-10 格式:DOCX 页数:11 大小:32.77KB
下载 相关 举报
软件工程师C++高级培训.docx_第1页
第1页 / 共11页
软件工程师C++高级培训.docx_第2页
第2页 / 共11页
软件工程师C++高级培训.docx_第3页
第3页 / 共11页
软件工程师C++高级培训.docx_第4页
第4页 / 共11页
软件工程师C++高级培训.docx_第5页
第5页 / 共11页
软件工程师C++高级培训.docx_第6页
第6页 / 共11页
软件工程师C++高级培训.docx_第7页
第7页 / 共11页
软件工程师C++高级培训.docx_第8页
第8页 / 共11页
软件工程师C++高级培训.docx_第9页
第9页 / 共11页
软件工程师C++高级培训.docx_第10页
第10页 / 共11页
软件工程师C++高级培训.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程师C++高级培训.docx

《软件工程师C++高级培训.docx》由会员分享,可在线阅读,更多相关《软件工程师C++高级培训.docx(11页珍藏版)》请在冰点文库上搜索。

软件工程师C++高级培训.docx

软件工程师C++高级培训

第1部分:

LINUX操作系统基础入门

第1天第2天第3天LINUX操作系统基础LINUX基本命令LINUX下C编程基础

C/C++编程第2部分C/C++编程

第4天C/C++语言简介、数据类型和操作符第5天复合类型第6天指针第7天循环和关系表达式第8天分支语句和逻辑操作符第9天函数第10天类

(1)第11天类

(2)第12天继承第13天代码重用第14天友元、异常和类模板

数据结构和算法第3部分数据结构和算法

第15天第16天第17天第18天数据结构和算法

(1)数据结构和算法

(2)数据结构和算法(3)阶段考试

第4部分嵌入式系统和ARM介绍

第19天嵌入式系统和ARM介绍

第5部分嵌入式LINUX系统编程

第20天第21天第22天第23天第24天第25天第26天第27天嵌入式LINUX开发环境的搭建文件I/O编程进程控制开发进程间通讯多线程编程嵌入式LINUX网络编程嵌入式LINUX设备驱动开发QT图形编程

第6部分WINDOWS编程

第28天第29天第30天第31天第32天第33天第34天第35天第36天WINDOWS程序内部运行机制MFC框架简单绘图与文本编程菜单和对话框绘图控制和文件网络编程

(1)网络编程

(2)多线程

(1)静态、动态连接库、组件编程

第7部分WINCE编程

第37天第38天第39天第40天第41天第42天第43天WINDOWSCE操作系统的介绍建立WINDOWSCE开发环境平台模拟器的建立和使用WINCE操作系统设计WINDOWSCE窗口消息机制与屏幕输出WINCE下多线程编程,文件操作与串口通信WINDOWSCE下MFC程序的开发

第8部分MTK手机软件

第44天第45天第46天第47天第48天第49天手机设计基础理论MTK开发环境介绍MTK开发工具介绍MTK软件编译及工程源程序介绍由浅入深的手机软件开发如何在开发板上进行项目实践

结业考试第9部分结业考试

第50天结业考试

第10部分项目实战

第51~100天项目开发

C++&嵌入式软件工程师培训教学大纲C++&嵌入式软件工程师培训教学大纲

部分:

第1部分:

Linux操作系统基础入门

第1天Linux操作系统基础1.介绍Linux操作系统的基本知识,包括发展概述,目前应用情况,技术优势和特点等。

2.Linux系统的安装准备,Linux文件系统。

3.实验内容:

安装Linux操作系统第2天Linux基本命令

1、Linux常用操作命令,包括用户系统相关命令,文件目录相关命令,压缩打包相关命令,网络相关命令等。

2、Linux启动过程详解3、Linux系统服务4、实验内容:

Linux系统常用命令操作第3天Linux下C编程基础1.2.3.4.5.C语言编程概述Vi等编辑工具使用Gcc和GDB的使用Make工程管理器实验内容:

Vi使用,用GDB调试程序,编写简单的Makefile

C/C++编程第2部分C/C++编程

C/C++语言简介语言简介、第4天C/C++语言简介、数据类型和操作符1.软件开发流程和方法,行业现状2.c/c++语言起源和历史发展3.c/c++语言的特点和应用领域4.c++集成开发环境介绍。

讲解vc++IDE环境的使用,包括编译,,运行和调试。

5.学习c/c++程序设计的方法6.c/c++简单程序的结构7.计算机处理数据的抽象层次8.c++的基本数据类型的处理9.数据溢出的结果和应对方法10.C++的算术操作符11.自动类型转换12.强制类型转换第5天复合类型1.2.3.4.5.6.数组字符串string类结构共同体枚举

第6天指针1.指针2.内存分配

3.4.5.6.7.8.

指针、数组、字符串之间的关系指针算术字符串的指针操作。

多维数组和指针访问。

空指针的意义。

指针练习。

第7天循环和关系表达式1.2.3.4.5.6.7.for循环关系表达式while循环dowhile循环嵌套循环多维数组控制台输入输出

第8天分支语句和逻辑操作符1.2.3.4.5.6.7.8.if语句逻辑表达式?

:

操作符switch语句breakcontinuereturn简单文件输入输出

第9天函数1.函数原型2.函数参数和按值传递3.参数为数组(一维和多维)的函数4.参数为指针的函数5.参数和返回类型维结构的函数6.处理string对象的函数7.函数指针8.内联函数和宏的使用9.引用变量10.函数重载的机制11.函数模板12.c++程序的内存模型和几种内存的分配方式13.结构化程序设计的原则14.源文件和头文件的物理布局以及对程序模块划分和程序编译的影响

15.静态变量16.名称空间第10天类

(1)1.2.3.4.5.6.7.面向过程编程和面向对象编程的区别面向对象和程序设计语言的关系类的概念和抽象层次接口的概念和客户/服务器模型类的定义和数据封装构造函数和析构函数this指针和对象数组

第11天类

(2)1.2.3.4.5.6.7.指针类成员以及动态分配内存的初始化含指针成员的类的=操作符重载和拷贝构造函数的定义按成员拷贝(bit-wisecopy)和deepcopy的区别什么时候需要考虑深拷贝(deepcopy)操作符重载友元类和友元函数类的自动转换和强制类型转换

第12天继承1.继承和派生的概念2.继承的访问控制和继承方式3.构造函数成员初始化列表4.基类和派生类对象的构造顺序5.继承和对象模型(对象的赋值和切割)6.虚函数的语法和定义7.继承和多态的关系8.静态联编和动态联编9.虚析构函数10.虚函数表和多态实现的编译器机制11.含有虚函数的类的对象模型第13天代码重用1.2.3.4.5.Has-a关系包含成员对象的类私有和保护继承多重继承虚基类

友元、第14天友元、异常和类模板1.友元2.异常3.类模板和具体化

第3部分数据结构和算法

数据结构和算法(第15天数据结构和算法

(1)1.2.3.4.5.6.常用的字符串的c函数的具体的代码实现数据结构概论算法基本概念时间和空间复杂度单链表的实现及其应用循环链表的实现及其应用

数据结构和算法(第16天数据结构和算法

(2)1.双向链表的实现2.堆栈实现及其应用数据结构和算法(第17天数据结构和算法(3)1.2.3.4.5.6.7.8.队列的实现及应用字符串的查找,替换,连接等操作数组,字符串,指针,多维数组的相互关系和归纳递归算法二叉排序树的实现及应用二叉树的前序遍历、中序遍历、后序遍历。

常见排序方法和二分查找

第18天阶段考试

第4部分嵌入式系统和ARM介绍

第19天嵌入式系统和ARM介绍1.2.3.4.嵌入式系统概述ARM硬件平台介绍,ARM处理器体系结构嵌入式软件开发流程实验内容:

用JTAG工具烧写NANDFLASH

第5部分嵌入式Linux系统编程

第20天嵌入式Linux开发环境的搭建1、2、3、4、5、6、嵌入式交叉编译环境的搭建超级终端的配置和使用编译嵌入式linux内核制作文件系统Bootloader介绍实验内容:

移植Linux内核

第21天文件I/O编程1、2、3、4、5、6、Linux系统调用和用户编程接口Linux中文件和文件描述符介绍不带缓存的文件I/O操作嵌入式Linux串口应用开发标准I/O开发实验内容:

文件读写和上锁,串口读写

第22天进程控制开发1、2、3、4、Linux下进程概述Linux进程控制编程Linux守护进程实验内容:

编写多进程程序,编写守护进程

第23天进程间通讯1、2、3、4、5、管道通信的创建和关闭信号通信的发送和捕捉共享内存的实现消息队列的实现实验内容:

管道通信编写程序,共享内存实验

第24天多线程编程1、Linux下线程概述2、Linux线程实现3、实验内容:

“生产者消费者”实验第25天嵌入式Linux网络编程1、TCP/IP协议介绍2、Socket基础编程

3、网络高级编程4、Ping源代码分析5、实验内容:

NTP协议实现第26天嵌入式Linux设备驱动开发1、2、3、4、5、6、Linux设备驱动概述字符设备驱动编写块设备驱动编写中断编程实例介绍:

LCD驱动和键盘驱动的实现实验内容:

Skull驱动

第27天Qt图形编程1、嵌入式GUI概述2、Qt/Embeded开发入门3、搭建Qt/Embeded开发环境4、Qt/Embeded图形界面编程5、实验内容:

使用QT编写“HELLOWORLD”程序

第6部分Windows编程

第28天Windows程序内部运行机制1.2.3.4.5.6.7.API与SDK窗口与句柄消息与消息队列WinMain函数第一个windows程序消息循环的错误分析变量的命令约定

第29天MFC框架1.MFCAppWizard2.基于MFC的程序框架剖析3.窗口类、窗口类对象与窗口第30天简单绘图与文本编程1.MFC消息映射机制2.绘制线条3.使用画刷绘图

4.5.6.7.8.9.

绘制连续线条绘制扇形效果线条插入字符窗口重绘路径字符输入

第31天菜单和对话框1.菜单命令响应函数2.菜单命令的路由3.基本菜单操作4.动态菜单操作5.本示例程序6.对话框基本知识7.对话框的创建和显示8.动态创建按钮9.控件的访问10.对话框伸缩功能的实现11.输入焦点的传递12.默认按钮的进一步说明第32天绘图控制和文件1.简单绘图2.设置对话框3.颜色对话框4.字体对话框5.改变对话框和控件的背景和文本颜色6.显示位图7.坐标空间和转换8.图形的保存和重绘9.窗口滚动功能的实现10.元文件11.兼容设备描述表网络编程(第33天网络编程

(1)1.2.3.4.5.6.计算机网络概述OSI七层模型和TCP/IP协议栈客户机/服务器的通信方式物理层和数据链路层传输层TCP和UDP协议

网络编程(第34天网络编程

(2)1.2.3.4.5.6.7.基于WinAPISOCKET编程基础面向无连接的协议和面向连接的协议流式协议和数据报协议的区别套接字选项的配置网络层相关技术字节顺序(Byte-order)基于MFC的CSocket类的网络编程

多线程(第35天多线程

(1)1.2.3.4.5.进程和线程线程创建函数Sleep函数使用互斥对象实现线程同步保证应用程序只有一个实例运行

静态、动态连接库、第36天静态、动态连接库、组件编程1.2.3.4.5.6.7.事件对象关键代码段线程死锁互斥对象、时间对象与关键代码段的比较基于消息的异步套接字静态库动态库

第7部分WinCE编程

第37天WindowsCE操作系统的介绍1、2、3、4、5、6、7、WindowsCE的结构功能概览进程、线程与调度内存管理存储管理与文件系统驱动管理与服务用户界面与图形系统WindowsCE的应用特性

第38天建立WindowsCE开发环境1.WindowsCE应用程序开发的几点说明2.应用程序开发流程

3.WindowsCE的应用编程接口4.开发工具介绍及对比第39天平台模拟器的建立和使用1.建立模拟器环境2.建立硬件开发板环境第40天WinCE操作系统设计1.2.3.4.在PC机上运行WindowsCEPlatfromBuilder集成开发环境定制WindowsCE操作系统的一般流程WindowsCE的目录组织

Windows第41天WindowsCE窗口消息机制与屏幕输出1.建立一个HelloWorld程序6、添加窗口消息响应函数7、编写文字输出程序8、编写屏幕绘图程序下多线程编程,第42天WinCE下多线程编程,文件操作与串口通信1.多线程的实现2.WindowsCE中的文件操作3.WindowsCE中的串口通信第43天WindowsCE下MFC程序的开发1.2.3.4.建立基于MFC框架的WindowsCE应用程序编程实现菜单,对话框,窗口的操作与消息通讯编程实现MFC中的基本控件的功能编写WindowsCE下的串口调试工具

第8部分MTK手机软件

第44天手机设计基础理论1、手机软硬件原理介绍2、手机重要技术指标介绍第45天MTK开发环境介绍

1、MTK手机芯片介绍2、MTK软件架构分析第46天MTK开发工具介绍1.2.3.4.烧写程序下载工具FlashTools编译工具和辅助工具:

ADS1.2,ADS1.2update,ActivePerlTrace工具:

catcher手机工程测试工具:

META(MobileEngineeringTestingArchitecture)

第47天MTK软件编译及工程源程序介绍

第48天由浅入深的手机软件开发1.2.3.4.5.6.7.熟悉编译过程改变编译参数/宏定义来实现手机配置的改变或设定更换资源文件实现新的手机界面利用MTK辅助工具实现手机新功能修改源程序实现复杂的功能更改或增加修改NVRAM数据来改变手机的功能/性能新功能模块的开发

第49天如何在开发板上进行项目实践

第9部分结业考试

第50天结业考试

第10部分项目实战

51~第51~100天项目开发

项目阶段

1前言项目实战是让学生参与一个真实完整的软件项目的开发,是培训过程中的一个重要环节。

目的在于通过项目开发实践使学生了解软件开发过程,巩固在教学阶段所学的知识,全面提升学生的软件水平,为学生未来的就业打下坚实的基

础。

项目实战过程旨在规定统一的项目开发的方法和流程。

它是在参考RUP、敏捷、SCRUM、CMMI多种软件开发过程的基础上,结合我司的具体情况以及培训的特殊规律定制而成的,是我司进行软件开发过程管理的企业标准。

项目周期2项目周期学生教学阶段结束后的五十天时间。

原则上在项目实战阶段不安排学生面试,也不允许学生自行面试。

3项目选择项目的选择至关重要。

因为项目的规模和复杂度不能太大,否则我们的项目将失去控制。

目前我们正在建立统一的项目池,以后原则上学生实战项目都从项目池中获取。

项目池也会定期更新维护。

整个项目的规模以4×50人天为宜。

4项目组织教师应将进入项目实战的学生划分为若干个小组,每个小组由4到5名学生组成。

每个小组任命一名小组长。

小组长一般由技术和沟通能力突出的学生担任。

一般情况下所有小组开发同一个项目。

教师是整个项目开发的总负责人,负责项目计划的制定和监控,给各小组配置足够的资源。

教师应经常与小组长进行沟通,了解各个小组的项目进展情况,以及解决开发小组出现的技术和非技术问题。

开发组长负责本小组的项目开发管理。

包括本小组内每个成员的工组安排,协调组内成员的工作,文档和代码的管理,开发版本的管理。

开发组长应密切配合教师的工作,定期向教师汇报本小组的开发进度,随时向教师寻求必要的帮助。

5项目过程管理平台作为XX软件园的培训基地,我们的项目将在如下三个平台上开发:

IBMRTC(RationalTeamConcert)和IBMJAZZ平台。

MicrosoftVSTS(VisualStudioTeamSystem)平台。

HP测试平台。

6SCRUM开发过程Scrum是敏捷开发中的一种方法。

Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。

开发软件时我们无法一开始就能定义软件产品最终的规格,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功。

Scrum将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典X与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。

Scrum开发流程通常以30天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于30天后交付成果,团队每天用15分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。

7需求分析需求分析描述系统的功能,定义了一个项目开发小组要做什么。

在需求分析中要完成以下一些工作:

详细描述系统的功能。

找出角色和用例,画出用例图。

建立需求模型,描述角色和用例之间的交互。

排序用例。

将收集的用例按照风险大小依次排列,在迭代开发中,每次迭代优先选择风险大的用例。

需求分析由教师负责,输出<<软件需求规格说明书>>。

教师应详细讲解需求分析的内容,使每个开发人员能够清楚地了解系统需求。

8项目计划

项目计划就是将系统功能分配到项目开发周期中。

在项目计划中规定每个功能的开始时间点和结束时间点。

在为功能分配时间段时,必须考虑各个功能之间的依赖关系,被依赖的功能必须先于依赖功能之前完成。

在重要的时间点设置检查点和里程碑。

开发小组长必须每天检查本小组内项目开发的进展情况,确保任务的按时完成。

教师要全面了解各小组项目开发的进展情况,对项目进度滞后的小组要督促其加班来完成。

如果在项目开发中,发现项目计划确有不合理的地方,应及时修正。

项目计划的制定和修正由教师负责,输出<<项目计划>>。

9分析和设计分析和设计就是建立系统架构,将需求转化到未来系统中去。

分析设计的最终目的就是要对需求分析中的用例进行实现。

在分析设计中,一般采用层次的设计思想。

一个典型的系统由边界层、控制层、实体层组成。

边界层对应系统的用户界面,控制层对应系统的业务流程控制,而实体层与数据库交互。

在分析和设计阶段,必须提供如下制品:

类图

包括边界类、控制类和实体类。

首先根据业务需求找出分析类以及类之间的关系。

然后逐步细化分析类得到设计类,设计类是实现的基础。

细化分析类之间的关系得到设计类之间的关系。

用例实现

类设计完之后,下一步就是要用这些类来完成用例实现,即通过类的实例之间的交互实现用例的功能。

提供各个用例实现的顺序图。

数据库设计

完成实体类和数据库表之间的映射,实体类之间的关系和数据库表之间的关系的映射。

通讯设计

完成高层通信协议的设计。

对C/S系统,必须制定客户端和服务器之间的系统协议和各模块间的协议。

协议应考虑扩展性。

对C++系统,一般采用结构来定义协议,并通过TCP流的形式传递数据。

对JAVA系统,一般采用类来定义协议,并通过TCP传递序列化对象。

框架采用框架是为了简化系统的开发,提高我们的开发效率。

例如对JAVA系统,可选的WEB框架struts,它实现了控制层的功能。

对实体层可以选择hibernate和e,它们实现了实体类和数据模型的映射。

对业务流程控制可以选择Spring框架。

分析和设计由教师完成。

教师在<<软件需求规格说明书>>的基础上,对系统进行分析和设计,并撰写<<分析设计说明书>>。

教师应详细讲解分析和设计的内容,使每个开发人员能够清楚地理解。

10实现

实现是学生在项目实战中要完成的核心工作。

学生的主要工作就是根据<<分析设计说明书>>完成编码,从而实现系统的功能。

在此阶段要完成的工作包括:

小组长根据<<分析设计说明书>>,将实现的内容分配给小组各成员。

搭建开发环境。

包括集成开发环境、工具、框架、数据库环境等。

在小组长的带领下,各个小组科学规划代码的存放结构,如目录结构、包结构。

创建数据库,建立数据库对象。

按照分工,小组成员各自完成类的编码(主要是方法和函数的实现)。

完成单元测试。

单元测试由开发小组中的每个成员独自完成,主要是完成方法和函数的测试。

在单元测试中发现的问题,由小组成员定位并改正。

小组成员协作完成各个用例的实现。

一个用例可能涉及到多个层面。

如一个登录用例可能涉及到界面、控制、数据库等部分。

建立版本服务器,并将正确的代码合入服务器中。

小组长负责管理版本服务器。

小组长合出每次迭代后的新版本。

教师检查各个小组的提供的新版本。

教师应和学生同步进行实现阶段的编码。

在实现过程结束时,教师应详细讲解本次迭代的实现代码,并将自己的代码释放给各开发小组以供参考。

11测试根据实现,完成集成测试和系统测试。

集成测试由开发小组的成员协作完成各个用例的测试。

系统测试由开发小组的所有成员共同完成系统的所有用例的测试。

在集成测试中发现的问题,由相关的小组成员集体定位,并由相关的责任人改正。

在系统测试中发现的问题,由开发小组长负责组织小组成员集体定位问题,并由相关的责任人改正。

改正后的版本必须经过回归测试。

12部署将每次迭代后产生的可运行的版本在真实环境中运行,确保最终用户可以正常使用系统。

例如,对JAVA系统来说,应用服务器应安装成产品模式。

C++系统应提供release版本。

开发小组应该按照需求逐一验证系统功能,确保系统功能可用。

13版本控制版本控制是指对本项目的文档和代码进行集中管理和维护。

每个开发小组应该建立一个版本服务器,由小组长管理。

每个小组成员应定期将代码放到版本服务器中。

由于各个小组成员完成的是本项目的不同模块,因此小组长应正确管理并发开发和版本冲突,并且在部署阶段合出完整的一个可运行的版本。

14项目宣讲项目宣讲就

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2