还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件工程与编程C++融合软件工程方法论与编程技术C++系统学习软件开发全流程课程概述1课程目标2学习内容掌握软件工程基本理论与软件工程流程、基础与高C++C++编程技术级特性、实战项目考核方式第一部分软件工程基础基础理论1软件生命周期与开发模型工程方法2需求分析、设计与测试项目管理3进度控制、风险管理什么是软件工程?定义目标重要性应用系统化方法开发和维护软件的工程高质量、可靠、高效、可维护的软件产降低成本、提高质量、控制风险学科品软件生命周期设计需求分析2系统架构与详细设计1明确用户需求实现编码与单元测试35维护测试修复与功能增强4集成与系统测试软件开发模型瀑布模型1线性顺序开发,阶段完成后才进入下一阶段迭代模型2循环渐进开发,不断完善软件功能敏捷开发3快速迭代,重视变化,注重客户协作需求分析功能需求非功能需求系统应提供的功能与服务性能、安全性、可用性等质量属性需求获取技术访谈、问卷、观察、原型法软件设计架构设计系统整体结构,模块划分详细设计各模块内部实现细节UML图用例图、类图、时序图等可视化工具代码实现编码规范版本控制代码审查命名规则、格式约定、代码历史管理,协作开发现问题,确保质量注释要求发软件测试验收测试1用户确认系统测试2完整功能验证集成测试3模块间接口测试单元测试4最小功能单元测试软件维护1错误修复2功能增强3性能优化修复程序缺陷和系统错误增加新功能,改进用户体验提高系统响应速度和资源利用率项目管理风险管理识别风险,制定应对策略进度管理质量管理任务分解,时间控制质量保证,持续改进213第二部分编程基础C++语言基础语法、数据类型、控制结构面向对象类与对象、继承、多态标准库容器、算法、工具STL语言简介C++历史1年创建,语言扩展1979Bjarne StroustrupC特点2高效、面向对象、通用性强应用领域3系统软件、游戏开发、高性能计算开发环境搭建C++编译器选择、、GCC MSVCClangIDE安装、、Visual StudioCLion Code::Blocks第一个C++程序创建、编译、运行Hello World基本语法C++数据类型变量与常量运算符整型、浮点型、字符型、布尔型声明、初始化、作用域、生命周期算术、关系、逻辑、位运算控制结构if-else语句switch语句循环语句条件判断,选择执行多分支选择结构for、while、do-while函数函数定义函数调用返回类型、函数名、参数列表、传递实参,接收返回值函数体参数传递值传递、引用传递、指针传递数组与指针一维数组固定大小的同类元素集合多维数组数组的数组,处理矩阵数据指针基础存储内存地址的变量字符串处理C风格字符串字符数组,以结尾\0string类标准库字符串,更安全便捷C++结构体与类结构体定义struct关键字,成员默认公有类的基本概念class关键字,成员默认私有对象创建实例化类,构造函数,析构函数面向对象编程
(一)继承2派生类复用基类功能封装1数据与方法组合,信息隐藏多态统一接口,不同实现3面向对象编程
(二)1虚函数2抽象类允许派生类重写基类方法含纯虚函数的类,不能实例化3接口纯虚函数集合,定义行为规范模板编程函数模板1创建类型无关的函数类模板2创建类型无关的类模板特化3为特定类型提供特殊实现异常处理try-catch语句尝试执行代码,捕获异常异常类标准异常层次结构自定义异常创建特定于应用的异常类容器STLvector listmap动态数组,随机访问双向链表,快速插入删除键值对映射,自动排序算法STL排序算法查找算法其他常用算法、、、、、、sort partial_sort stable_sort findbinary_search lower_bound for_each transformaccumulate文件操作文本文件读写二进制文件读写、流操作ifstream ofstream、函数,随机访问read write第三部分在软件工程中的应用C++实践应用1实际项目开发工程技术2测试、调试、优化设计模式3常用模式与实现代码规范4编码标准与最佳实践项目结构C++源文件2实现功能,定义方法头文件1声明接口,类定义项目组织3模块划分,目录结构代码规范1命名规范2注释规范类、变量、函数命名约定文档注释,行内注释3格式规范缩进,括号,空格使用设计模式
(一)单例模式工厂模式确保类只有一个实例创建对象而不暴露创建逻辑观察者模式对象间一对多的依赖关系设计模式
(二)策略模式算法族,相互替换装饰器模式动态添加功能适配器模式接口转换,兼容性单元测试1Google Test框架测试套件,测试夹具,断言测试用例编写2边界条件,异常情况,典型场景测试覆盖率3语句覆盖,分支覆盖,路径覆盖性能优化多线程编程内存管理并行计算,任务分解代码优化技巧避免泄漏,减少碎片减少复制,内联函数,算法改进调试技巧断点调试内存泄漏检测日志记录设置断点,单步执行,观察变量Valgrind,Address Sanitizer跟踪程序执行,记录关键信息版本控制Git基础仓库创建,提交,推送分支管理创建分支,切换,合并代码合并解决冲突,Pull Request持续集成自动化构建自动化测试JenkinsCI/CD平台,构建流水线编译,链接,打包单元测试,集成测试自动执行代码审查常见问题2错误处理,命名,复杂度代码审查流程1提交,分配,反馈,修改最佳实践小批量提交,及时反馈3第四部分高级特性C++C++20新特性1现代新标准C++现代C++特性2新功能C++11/14/17高级编程技术3多线程,智能指针智能指针unique_ptr shared_ptr weak_ptr独占所有权,不可复制共享所有权,引用计数弱引用,避免循环引用多线程编程thread类互斥锁创建线程,传递参数,等待完成保护共享资源,避免竞态条件条件变量线程同步,等待通知表达式Lambda右值引用与移动语义左值与右值持久对象与临时对象移动构造函数资源转移而非复制完美转发保持参数类型与值类别新特性C++111auto关键字2范围for循环自动类型推导,简化代码简化容器遍历写法3nullptr替代的类型安全的空指针NULL新特性C++141+2+支持auto参数类型参数化的变量3+更灵活的编译期计算新特性C++17结构化绑定if constexprstd::optional解构元组和结构体到多个变量编译期条件判断可能存在或不存在的值新特性C++20模块Modules替代头文件的新组织方式协程Coroutines可暂停和恢复的函数概念Concepts定义模板约束条件第五部分实战项目C++部署与维护实现与测试项目发布与后续维护系统设计编码实现各功能模块需求分析架构设计与模块划分明确项目目标与功能项目介绍2功能需求核心功能,用户交互项目背景1解决的问题,市场需求技术选型,,框架C++17SQLite Qt3系统设计架构设计1分层架构,模块间通信模块划分2层,业务层,数据层UI类图设计3核心类及其关系数据库设计ER图表结构设计SQL语句实体关系模型设计字段定义,索引设计数据查询,更新操作用户界面设计Qt框架简介跨平台库,信号槽机制UI事件处理界面布局用户交互响应窗口组织,控件摆放核心功能实现
(一)用户管理模块数据存储模块登录,注册,权限控制数据持久化,缓存机制业务逻辑模块核心算法,业务规则核心功能实现
(二)算法实现核心算法设计与优化多线程优化并行处理提高响应速度异常处理错误捕获与恢复机制单元测试与集成测试测试用例设计2输入,预期输出,执行条件测试计划1测试范围,进度安排测试执行与报告执行测试,记录结果3性能优化与调优1性能瓶颈分析2内存优化分析工具,热点识别减少内存占用,避免泄漏3算法优化改进时间复杂度,空间复杂度项目部署与维护打包与发布安装与配置日志与监控创建安装包,版本管理部署指南,用户配置运行状态监控,异常检测课程总结未来展望1技术发展方向学习心得2关键收获与体会知识点回顾3软件工程与核心内容C++参考资料与延伸阅读推荐书籍《》《》《设计模式》C++Primer EffectiveC++在线资源,,CPlusPlus.com stackoverflowGitHub技术社区,知乎专栏,开源项目CSDN C++GitHub。
个人认证
优秀文档
获得点赞 0