当前位置: 首页 > news >正文

对日项目工作总结

       从18年8月到23年中秋节,目前已经入职主营对日车载项目的公司满5年了,一般来说,在一家公司工作工作超过3年,如果是在比较大型以及流程规范的公司,那么该公司的工作流程,工作思维会深深地烙印在该员工的脑海中,感觉就像FATE动漫中魔术师的魔术回路那样。

        对日的项目的流程大致是这样的:

       1.用户提出大致的功能需求,并且提供大量和需求相关的技术/业务文档(里面甚至活包括用户往期项目中涉及该需求的文档以供参看)

       2.式样分析用户提供的文档,根据用户的需求和文档,整理出初步的功能点A,B,C,即针对用户提出的某个需求,我们作为乙方,需要怎么实现该需求,即我们需要做什么,这个就是功能点,并且这个功能点我们需要提供对应的用户文档来源,即我们是依据什么来判断为了实现这个需求,我们需要做A,B,C这三个功能。

       3.大致理解完用户的需求,并且阅读完用户提供的文档抽取出功能点后,式样就会和用户进行沟通确认,就是“打合”,双方就这些功能点进行逐个说明,沟通,确认/否定。就是我们作为乙方,需要向用户一一列出我们需要实现的功能点,这些功能点都是为了满足甲方的需求,并且功能点的实现内容和方式是参考了用户提供的文档后整理出来的,并不是自己假设或者猜想的(就是第2步中做的工作),用户会、逐个确认这些功能点,那些是合理需要实现的,那些是不合理或者过期的(例如用户提供的文档可能存在过老或者不符合当前项目的硬件条件无法实现其中的功能点),合理的功能点保留,有误或者不完整的进行补充修改,不合理或者不需要的功能点删除。

       4.经过上面的步骤,这次项目,我们乙方要实现的功能点基本就确认了,从A~Z,然后根据需求将不同的功能进行分类,形成式样书,就是功能说明书,里面整理出具体详细的一级功能,二级功能,三级功能等以及相关附件说明(参数,配置说明),这些功能点都需要说明其功能来源(客户提供的具体文档/沟通邮件等)

       5.一个公司分为很多机能组,例如media,hal,driver,hardware,framework,app这些,每个功能点的实现都需要一个或者多个机能组的参与,共同实现,式样会将式样书分发给不同的机能组做要件分析,就是分析这些功能点是否我机能组该当,是否主担当,或者是辅助,并且确认责务,就是这个功能点我这个机能组需要做什么,其他的机能组是否需要提供帮助,提供什么帮助,那么都需要在要件分析的文档中写出来,写清楚,并且展开给需要辅助我组实现该功能点的其他机能组让他们知晓。

        6..分析完成后,这次项目,每个机能组主负责那些功能点的实现,辅助其他机能组完成那些功能点的实现,这个就确认下来了,既然明确自己应该做什么,下一步就是做概要设计文档,就是根据要负责的功能点,做出接口说明,模块图,用例图,大致的类图以及时序图

        接口说明要描述依赖的其他模块的接口,以及自己模块提供给外部模块使用的接口

        模块图是基于整个车载系统进行模块划分,层次分为APP, FRAMEWORK, SYSTEM, DRIVER,HAL,大致是这样,每个层中有多个模块,例如APP中有电话,音乐,FM等APP, FRAMEWORK中有系统java服务和vendor服务,一个机能组一般负责一个或者多个模块。

        机能组的担当编写模块图的时候,需要根据自己要实现的功能点,判断依赖到哪些其他的模块,要在模块图上列出自己实现功能点所涉及的所有模块和模块间的大致依赖关系

        用例图就是该机能组具体还要实现的功能用例,根据用例画出后面的时序图,就是在实现具体某个用例的功能点时,步骤是怎样的,有哪些判断逻辑。

       7.详细设计,这一步是具体完成概要设计中的类图和时序图,类图要完整描述每个类的细节,时序要展开自己模块内部的类之间的调用时序

       8.编码,就是根据详细设计,完成实际的代码编译,编译,review和提交

       9.单元测试,一般使用gtest和junit来做自己模块的代码的单元测试,对于硬件和外部模块的接口依赖,通过mock来模拟,一般要求代码行和分支覆盖率在95%以上,对于实在无法覆盖到的地方,需要手动测试。

       10.集成测试,个人认为就是接口测试,测试模块和外部模块间的接口是否调用正常。

       11.功能测试,顾名思义,就是对于负责开发的功能点,涉及正常和异常测试用例,用不同的输入触发测试整个功能。

       12.交付,将系统编译出release交付给用户,交付之前需要对release做功能测试

       大致就是上面这套流程

相关文章:

对日项目工作总结

从18年8月到23年中秋节,目前已经入职主营对日车载项目的公司满5年了,一般来说,在一家公司工作工作超过3年,如果是在比较大型以及流程规范的公司,那么该公司的工作流程,工作思维会深深地烙印在该员工的脑海中…...

设计模式探索:从理论到实践的编码示例 (软件设计师笔记)

😀前言 设计模式,作为软件工程领域的核心概念之一,向我们展示了开发过程中面对的典型问题的经典解决方案。这些模式不仅帮助开发者创建更加结构化、模块化和可维护的代码,而且也促进了代码的复用性。通过这篇文章,我们…...

【内网穿透】在Ubuntu搭建Web小游戏网站,并将其发布到公网访问

目录 前言 1. 本地环境服务搭建 2. 局域网测试访问 3. 内网穿透 3.1 ubuntu本地安装cpolar 3.2 创建隧道 3.3 测试公网访问 4. 配置固定二级子域名 4.1 保留一个二级子域名 4.2 配置二级子域名 4.3 测试访问公网固定二级子域名 前言 网:我们通常说的是互…...

在cesuim上展示二维模型

前提问题:在cesuim上展示二维模型 解决过程: 1.获取或定义所需变量 2.通过window.cesium.viewer.imageryLayers.addImageryProvider和new Cesium.UrlTemplateImageryProvider进行建模 3.传入url路径后拼接{z}/{x}/{y}.png 4.聚焦到此模型window.ces…...

c/c++中如何输入pi

标准的 C/C 语言中没有π这个符号及常量,一般在开发过程中是通过开发人员自己定义这个常量的,最常见的方式是使用宏定义: 方法1:#define pi 3.1415926 方法2:使用反三角函数const double pi acos(-1.0);...

python爬虫:JavaScript 混淆、逆向技术

Python爬虫在面对JavaScript混淆和逆向技术时可能会遇到一些挑战,因为JavaScript混淆技术和逆向技术可以有效地阻止爬虫对网站内容的正常抓取。以下是一些应对这些挑战的方法: 分析网页源代码:首先,尝试分析网页的源代码&#xf…...

Vue error:0308010C:digital envelope routines::unsupported

vue项目,npm run dev的时候出现:Error: error:0308010C:digital envelope routines::unsupported vue项目,npm run dev的时候出现:Error: error:0308010C:digital envelope routines::unsupported 这个是node的版本问题。我的nod…...

gitee 远程仓库操作基础(一)

git remote add <远程仓库名> <仓库远程地址> :给远程仓库取个别名,简化一大堆字符串操作 git remote add origin xxx.git :取个Origin名字 git remote -v :查看本地存在的远程仓库 git pull <远程仓库名><远程分支名>:<本地分支名> 相同可取消…...

DRM全解析 —— ADD_FB2(0)

本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 在笔者之前的libdrm全解析系列文章中&#xff0c;讲到了drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f)以及其封装函数drmModeAddFB。对应的文章链接为&#xff1a; libdrm全解…...

01Redis的安装和开机自启的配置

安装Redis 单机安装Redis 大多数企业都是基于Linux服务器来部署项目&#xff0c;而且Redis官方也没有提供Windows版本的安装包(此处选择的Linux版本的CentOS 7) Windows版直接下载对应版本的.zip压缩包解压即可使用 第一步: Redis是基于C语言编写的&#xff0c;因此首先需要…...

进入IT行业:选择前端开发还是后端开发?

一、前言 开发做前端好还是后端好&#xff1f;这是一个常见的问题&#xff0c;特别是对于初学者来说。在编程世界中&#xff0c;前端开发和后端开发分别代表着用户界面和数据逻辑&#xff0c;就像城市的两个不同街区一样。但是&#xff0c;究竟哪个街区更适合我们作为开发者呢…...

Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice

安装Onlyoffice 拉取onlyoffice镜像 docker pull onlyoffice/documentserver 查看镜像是否下载完成 docker images 启动onlyoffice 以下是将本机的9001端口映射到docker的80端口上&#xff0c;访问时通过服务器ip&#xff1a;9001访问&#xff0c;并且用 -v 将本机机/data/a…...

编程面试_动态规划

题目1 最大连续乘积子串 题目描述给一个浮点数序列&#xff0c;取最大乘积连续子串的值&#xff0c;例如 -2.5&#xff0c;4&#xff0c;0&#xff0c;3&#xff0c;0.5&#xff0c;8&#xff0c;-1&#xff0c;则取出的最大乘积连续子串为3&#xff0c;0.5&#xff0c;8。也就…...

ip地址可以精确定位吗

在互联网时代&#xff0c;IP地址的重要性不言而喻。作为网络通信的基础&#xff0c;IP地址用于标识每一台连接到互联网的设备。然而&#xff0c;传统的IP地址定位方式仅能粗略地确定设备的大致位置&#xff0c;无法实现精确定位。那么&#xff0c;IP地址能否实现精确定位呢&…...

Xamarin体验:使用C#开发iOS/Android应用

http://www.cnblogs.com/lwme/p/use-xamarin-develop-Android-iOS-app.html Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发。 简介 Xamarin是基于Mono的平台,目前主要有以下产品(更具体请见:h…...

聊聊druid连接池的监控

序 本文主要研究一下druid连接池的监控 init com/alibaba/druid/pool/DruidDataSource.java public void init() throws SQLException {//......registerMbean();//...... }DruidDataSource的init方法会执行registerMbean registerMbean com/alibaba/druid/pool/DruidData…...

CentOS 7 安装 Docker 的详细步骤

文章目录 Docker简介1.更新2.安装必要的软件包3.添加Docker仓库4.安装5.安装后的一些常规设置及常用的命令5.1 启动 Docker5.2 Docker 在系统启动时自动运行5.3 运行一个 Hello World 镜像5.4 查看docker运行状态5.5 docker ps5.6 查看docker版本 6.安装种常见的错误错误1:yum-…...

竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…...

数据结构之【泛型】

泛型&#xff1a;定义阶段不明确具体类型&#xff0c;产生对象时明确具体类型。 //Object是Java中的最高参数统一化&#xff0c;能够接受所有的引用类型&#xff1b; //有了包装类的自动拆装箱之后&#xff0c;Object还能够接收基本类型数值&#xff08;自动装箱&#xff09; …...

华为ac无线侧命令行配置思路和步骤

无线侧配置思路&#xff1a; Ap和ac在同一个广播域内&#xff0c;不用配置 option 43 source 源ip回包哪个模式都得配置 Cli配置业务模版流程&#xff1a; 1、 AC控制器上全局配置capwap回包接口地址 1、配置ssid&#xff1a;wifi名称 2、配置安全模版&#xff1a;用户连接密码…...

接口自动化测试框架搭建:基于Python+Requests+Pytest的实战教程

在软件测试领域&#xff0c;接口自动化测试是保障系统稳定性、提升测试效率的关键手段。随着敏捷开发和DevOps理念的普及&#xff0c;自动化测试的重要性愈发凸显。Python凭借其简洁的语法、丰富的库生态&#xff0c;成为接口自动化测试的首选语言&#xff1b;Requests库让HTTP…...

PL2303老芯片终极解决方案:3步让Windows 10/11识别你的停产串口设备

PL2303老芯片终极解决方案&#xff1a;3步让Windows 10/11识别你的停产串口设备 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 你是否在Windows 10或Windows 11系统上…...

基于Unity的地牢游戏开发

1.数字字符串转数字System.Globalization.NumberStyles hexNum; // 专门的枚举成员&#xff0c;解析16进制字符串 hexNum System.Globalization.NumberStyles.HexNumber;int.Parse(tileNums[i], hexNum);2.注意&#xff1a;文件读取是从上到下&#xff0c;而 Unity y轴 …...

Perplexity招聘搜索失效?别再用Google了!工程师亲测有效的4层穿透式检索法(含Chrome插件配置清单)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity招聘信息搜索 Perplexity AI 作为一家快速发展的生成式人工智能公司&#xff0c;其招聘动态常通过官方渠道与技术社区同步更新。掌握高效、可复现的招聘信息检索方法&#xff0c;对求职者与行业观察…...

别再复制粘贴了!深度解析STM32F429的OLED驱动代码,让你的显示更稳定

从能用走向卓越&#xff1a;STM32F429 OLED驱动深度优化实战 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和快速响应等优势&#xff0c;成为许多项目的首选显示方案。然而&#xff0c;很多开发者在使用STM32F429驱动OLED时&#xff0c;往往止步于"能用&quo…...

ARM Cortex-M微控制器与瑞萨RA系列开发实战指南

1. 项目概述&#xff1a;从“ARM”到“瑞萨RA”的认知之旅在嵌入式开发的江湖里&#xff0c;如果你还在纠结于8位、16位单片机的选型&#xff0c;或者对“ARM Cortex-M”这个名词感到既熟悉又陌生&#xff0c;那么这篇文章就是为你准备的。我接触过不少从传统8051、AVR转型过来…...

IO杂记I

IO 杂记 一、Selector 与 select() selector.select() 不会创建新线程&#xff0c;而是让当前线程阻塞等待&#xff0c;直到有 I/O 事件就绪。 比喻&#xff1a;一个人站在门口&#xff0c;不来客人就不动。selector.selectNow() 是非阻塞版本&#xff1a;瞥一眼门口&#xff0…...

无王无帝定乾坤,来自田间第一人 凰标重塑新风骨

一、破题&#xff1a;王权不是答案旧认知新真相山河气运系于帝王扭转乾坤藏于民间位高者裁定是非布衣亦可定乾坤权贵定义风骨凰标重塑精神二、旧世风骨之殇等级枷锁 王权为纲 → 尊卑为界 → 精神镣铐千年。世俗偏见 财富分贵贱 → 地位论高低 → 人心逐利忘本。结局 风骨消磨 …...

网盘直链解析助手:一站式解决多平台文件下载难题

网盘直链解析助手&#xff1a;一站式解决多平台文件下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

如何高效使用AutoHotkey编译器:Ahk2Exe完整指南与实战技巧

如何高效使用AutoHotkey编译器&#xff1a;Ahk2Exe完整指南与实战技巧 【免费下载链接】Ahk2Exe Official AutoHotkey script compiler - written itself in AutoHotkey 项目地址: https://gitcode.com/gh_mirrors/ah/Ahk2Exe 对于Windows自动化脚本开发者而言&#xff…...