
在硬件产品开发的概念阶段软件的主要工作:
1. 系统方案:在概念阶段,软件工程师需要根据市场需求以及客户需求等方面进行分析,共同制定产品的整体方案,其中需要考虑硬件方面的性能指标,同时也需要考虑软件方面的功能实现方式和软件的设计。
2. 架构调研以及初步设计:在制定系统方案后,需要对软件架构进行调研,并进行初步的设计工作。软件工程师需要对整个产品的软件结构进行规划,同时也需要考虑软件的扩展性和可维护性等方面。
3. 需求分析和功能规划:在概念阶段,软件工程师需要在产品设计的基础上,对软件方面的需求进行分析,对整体的功能进行规划,完成功能模块的初步设计。
4. 用户界面(UI)设计:软件工程师需要在产品设计和需求分析的基础上,设计出符合用户需求的界面,以便用户使用。
5. 成本预估和风险评估:软件工程师需要对软件部分的制造成本进行预估,同时也要对产品实现的成功可能遇到的风险进行评估,以便在后续开发过程中进行风险控制。
在硬件产品开发的Demo阶段和立项阶段,软件的主要工作是什么呢?
1. 架构设计、评审以及搭建:在Demo阶段和立项阶段,软件工程师需要根据概念阶段的设计方案,进行软件架构的设计和评审,并完成软件架构的搭建工作,以确保软件能够顺利运行,并满足产品需求。
2. 核心板上编译成功:在开发过程中,软件工程师需要将软件代码编译为可执行程序,并确保能够在核心板上成功运行。
3. CI流水线构建、打包环境以及集成确认:为了保证软件开发的高质量和高效率,软件工程师需要采用CI(持续集成)的开发模式,搭建CI流水线并进行打包环境和集成确认,确保软件产品的版本管理和自动化测试等方面的有效性。
4. 开发环境确认:软件工程师需要确认各种驱动程序和AI(人工智能)视觉&语音拟用的推理框架&环境等开发环境是否可用,以保证软件开发环境的正常运行。
5. 在Demo原型机上可以实现展示功能:软件工程师需要在Demo原型机上进行实际测试和验证,确保软件能够实现产品所需的展示功能。
在硬件产品开发的Demo阶段和立项阶段,软件工程师需要完成架构设计和评审、核心板编译、CI流水线构建、开发环境确认以及Demo原型机测试等工作,从而为后续的软件开发工作奠定基础。
1. EVT1阶段:软件工程师需要在EVT1阶段开发可实现电源管理、全驱动调通的软件版本,并与硬件工程师配合,进行电气通路确认。此时,软件与硬件的接口也需要尽快确认和优化,以确保该版本能够顺利运行。
2. 各模块迭代滚动:在EVT阶段,软件工程师需要根据硬件工程师的进展情况,逐个迭代和优化软件模块。同时,需要将软件开发过程与硬件开发过程进行同步,进行不断的模块交付,并逐步完善产品的功能和性能。
3. 版本计划原则:软件开发需要按照主业务流程打通的原则,先出功能再调优性能。要确保软件能够逐步满足硬件模块的要求,并在不断的迭代中,提高软件的稳定性和可靠性。
在硬件产品开发的DVT(设计验证测试)阶段,软件的主要工作:
1. 全功能开发完成:在DVT阶段,软件工程师需要根据产品定义,完成软件的全功能开发,确保产品能够实现所有的功能,并且各个业务流程能够顺利运行,包括但不限于系统启动、设备驱动、网络连接、应用功能等等。
2. 整机性能优化提升:软件工程师还需要对整个系统进行性能优化,从功能体验层到系统内存管理等各个方面进行优化提升,以确保整个系统的性能达到最佳状态。
具体而言,软件工程师需要进行如下工作:
- 对系统资源占用情况进行分析,通过合理的内存管理、进程管理等方式,优化系统运行效率,提高响应速度。- 对各个业务流程的性能进行分析和优化,解决可能出现的卡顿、延迟等问题,提高用户体验。- 进行系统级别和应用级别的安全测试和漏洞修复,确保系统安全可靠。- 完善软件开发文档和用户手册,提供必要的技术支持和培训,使用户能够更好地了解、使用产品。
1. 整体软件功能优化完成:在PVT阶段,软件工程师需要根据用户反馈,对整个软件系统进行优化,改善用于体验。主要包括完善产品功能、提高系统稳定性和安全性、优化启动速度和响应速度等等。
2. 配合治具完善上位机工厂模式:PVT阶段是产品进入生产阶段前的最后一次机遇,此时需要完善治具和上位机,把函数漏洞、性能问题等处理好,确保产品能够稳定运行。软件工程师需要协同治具工程师和生产工程师进行工作,确保PVT测试能够顺利进行。
3. S/A类BUG关闭率≥95%,且100%有对策(pvr标准):在PVT阶段,软件工程师需要将所有发现的S/A级别的问题进行解决并关闭,同时需要提供具体的对策和解决方案,确保系统的稳定性和可靠性,保障产品质量。
在PVT阶段,软件工程师需要与团队密切合作,完善整体软件功能、配合治具完善上位机工厂模式,并且对所有S/A级别的BUG进行关闭,以确保产品能够顺利进入正式生产阶段。
1. 版本冻结:在MP阶段,软件版本需要进行冻结,确保产品在量产过程中使用固定版本的软件,以便于生产、维护和售后服务等方面。
2. 如无必要不升级电源MCU等底层模块:在MP阶段,软件工程师需要对产品的底层模块(如电源MCU等)进行评估,确保其稳定性和可靠性,并尽量避免升级,除非有必要解决某些重要的问题。
软件工程师需要进行如下工作:
- 确保产品的全面稳定性和可靠性,避免出现严重的软件问题或故障,尤其是对于S/A级别的问题,需要及时解决并提供有效的对策。
- 协同生产工程师和品质工程师,对产品进行全面的QA(Quality Assurance)测试,包括功能、性能、兼容性、安全等方面的测试,确保产品符合规格和质量标准。
- 对软件进行维护和升级,修复已知的问题和漏洞,以及不断完善产品的功能和体验。
在MP阶段,软件工程师需要确保产品的稳定性和可靠性,保障产品的质量,在必要时对软件进行升级和维护,以提高产品的性能和用户体验。同时,需要与其他团队紧密合作,协同完成产品的生产、测试、质量控制等工作。