当前位置:网站首页>Embedded development: skills and tricks -- seven skills to improve the quality of embedded software code
Embedded development: skills and tricks -- seven skills to improve the quality of embedded software code
2022-07-04 22:19:00 【Guangdong embedded Education】
For developers , Nothing is worse than trying to maintain and update code of such poor quality . For many development teams , Software code quality is not required . To improve code quality , Here are a few tips that embedded developers can follow , And integrate it into your own process , This will help improve their code quality .
skill 1—— Follow coding standards
Developers interested in improving code quality should start by examining industry standards . Developers can use many industry standards to improve the way they write code , Include :
l MISRA-C
l Cert-C
l IEC 12207
l IEC 62304
These standards establish a framework for developing high-quality software . Anyone who wants to improve software quality should review what has been done , And start implementing industry recommendations .
skill 2—— Analyze and maintain software complexity
It has been proved many times , Minimizing software complexity also minimizes error rates . The more complex the software is , The greater the change , Not only will there be software bug, And the maintenance of the system will also increase bug. Developers should monitor their function complexity by using cyclomatic complexity .
skill 3—— Conduct regular code reviews
Code review has proved to be the most effective way to reduce software errors . Integrating peer reviews into the development cycle is crucial to ensure that software quality remains at a high level . In order to have an effective code review process , Embedded developers should follow several key factors :
Limit code reviews to 60 Within a
Don't comment more than 400 individual LOC
Schedule a code review at least once a week ( If you generate more than per week 400 individual LOC, More )
skill 4—— Requirements must be traceable
If a requirement cannot be tested and verified in some way , It's better to be automated , Then it is not a real demand . Even before the development starts , Requirements should be broken down into traceable test cases , These use cases can be used later to verify that all requirements have been met . Of course , Needs change , Will use different design methods , But there needs to be a way to track software features and functions , Trace back to the requirements that produced them , And prove that they work as expected .
skill 5—— Compile without errors and warnings
Many teams and developers who ignore compiler warnings , Sometimes there are only oneortwo warnings that developers need to dig deep , Or trivial , So they were ignored , Just hang there . If the compiler does not trust the code and gives a warning , Then developers should treat it as a compiler error and resolve the warning . Warnings are the way the compiler says it doesn't like something . honestly ,C Compilers like everything , So if it has problems with something , So as embedded developers, we should do the same . Code quality means no errors and warnings .
skill 6– Static analysis
Static code analyzer is one of the fastest ways to find potential problems in embedded software . Static code analyzer can find syntax problems 、 Potential glitches , And identify the non portable structure in the code , The static analyzer can even check whether the coding standard is followed , Integrating static analyzers into a continuous build process is a good way to improve code quality and minimize software errors .
skill 7—— All code must be thoroughly tested
Many small and medium-sized enterprises release products without completely testing the software . These companies tend to carry out high-level spot checks , To see if the system works as they expect , Then send them to the wild . When most readers learn that the products of these companies encounter problems in this field , May not be surprised . As an embedded developer , We can't think that our code is working properly just because we don't see the improper behavior of the system . Our code needs to be fully tested ! Comprehensive testing means :
l High level test cases have been verified
l Unit tests have been performed
l Integration tests have been performed
l Code coverage testing has been completed , To verify that each line of code is executed during the test
l System tracking analysis , To verify the time 、 Performance and system behavior are correct , It's not just right for users .
If a line of code is not executed during the test , There is no way to know whether this line of code contains errors that will occur when users use the system one day .
Conclusion
Improving code quality is not necessarily a major 、 Expensive tasks . These suggestions are easy to implement , It can even be completed in a few weeks or months . The end result will be higher quality software , Provide a better user experience , At the same time, reduce the cost of embedded development .
边栏推荐
- 赋能数字经济 福昕软件出席金砖国家可持续发展高层论坛
- 关系型数据库
- Huawei Nova 10 series released Huawei application market to build a solid application security firewall
- HUAWEI nova 10系列发布 华为应用市场筑牢应用安全防火墙
- 如何实现轻松管理1500万员工?
- Radio and television Wuzhou signed a cooperation agreement with Huawei to jointly promote the sustainable development of shengteng AI industry
- Cadre WebGIS - kalrry
- 制作条形码的手机App推荐
- QT - plot other problems
- Mysql root 账号如何重置密码
猜你喜欢
The use of complex numbers in number theory and geometry - Cao Zexian
Nat. Commun.| 机器学习对可突变的治疗性抗体的亲和力和特异性进行共同优化
TCP protocol three times handshake process
QT - plot other problems
el-tree结合el-table,树形添加修改操作
Huawei Nova 10 series released Huawei application market to build a solid application security firewall
玩转gRPC—深入概念与原理
将QA引入软件开发生命周期是工程师要遵循的最佳实践
【米哈游2023届秋招】开启【校招唯一专属内推码EYTUC】
傳智教育|如何轉行互聯網高薪崗比特之一的軟件測試?(附軟件測試學習路線圖)
随机推荐
Why should garment enterprises talk about informatization?
el-tree结合el-table,树形添加修改操作
2022-07-04:以下go语言代码输出什么?A:true;B:false;C:编译错误。 package main import “fmt“ func main() { fmt.Pri
You don't have to run away to delete the library! Detailed MySQL data recovery
Convolutional neural network model -- lenet network structure and code implementation
国产数据库乱象
A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo
【米哈游2023届秋招】开启【校招唯一专属内推码EYTUC】
Service online governance
置信区间的画法
UML图记忆技巧
傳智教育|如何轉行互聯網高薪崗比特之一的軟件測試?(附軟件測試學習路線圖)
i.MX6ULL驱动开发 | 24 - 基于platform平台驱动模型点亮LED
TCP protocol three times handshake process
new IntersectionObserver 使用笔记
Radio and television Wuzhou signed a cooperation agreement with Huawei to jointly promote the sustainable development of shengteng AI industry
[acwing] solution of the 58th weekly match
并发网络模块化 读书笔记转
283. 移动零-c与语言辅助数组法
Mysql root 账号如何重置密码