4.28日报
完成软件过程管理实验三
软件过程与管理实验 石家庄铁道大学信息学院
实验3:编码规范
本次实验内容是个人软件过程部分,通过本次实验,学生将掌握以下内容:
1、建立自己的编码规范和代码审查表。
2、会用COCOMO II模型对软件工作量进行估计。
[实验任务一]:COCOMO II 软件的使用
实验要求:
- 通过自己看Manual,熟悉COCOMO II软件的使用;
- 验证软件工作量估计_例子.ppt中的例子,结果如下所示:
- 提交扩展名为est的COCOMO项目文件,并将结果进行截图。
- 重点学习:GUI的开发以及如何将一个功能不是很复杂的软件做到可用性很好,做到极致。
新建module
输入name和size,起名为moduleA,size为10000
Scale Factor设置
改成如图的设置:
EAF相关设置:
改成图片中的内容:
结果:
保存文件
[实验任务二]:代码规范和评审模板的建立
实验要求:
- 根据自己的编程习惯和缺陷,建立自己的代码规范和代码评审检查表,并且今后务必加以使用;
- 需要提交代码规范和代码评审检查表两个表格,使用Word即可。
- 可参考google的代码规范https://google.github.io/styleguide/,也可以参考deepseek。
- 需要提供两种常用语言的代码规范和评审检查表,建议是C++和python或Java和python,两种语言共四个表格。
C++代码规范
|
序号 |
规范类别 |
具体要求 |
示例 |
说明 |
|
1 |
命名规范 |
变量命名 |
使用小驼峰命名法(camelCase) |
int studentCount; |
|
2 |
全局变量命名 |
前加g_前缀 |
int g_totalCount; |
|
|
3 |
常量命名 |
使用大写,单词间用下划线分隔 |
const int MAX_SIZE = 100; |
|
|
4 |
函数命名 |
使用大驼峰命名法(PascalCase) |
void CalculateSum(); |
|
|
5 |
类命名 |
使用大驼峰命名法(PascalCase) |
class StudentInfo; |
|
|
6 |
代码格式 |
缩进 |
使用4个空格缩进,禁止使用Tab |
if (condition) {<br> // code<br>} |
|
7 |
大括号 |
左大括号与语句同行,函数定义左大括号独占一行 |
if (condition) {<br> // code<br>}<br>void FunctionName() {<br> // code<br>} |
|
|
8 |
空行 |
在逻辑块之间和函数定义之间添加空行 |
void FunctionName() {<br> // code<br>}<br>// Another function<br>void AnotherFunction() {<br> // code<br>} |
|
|
9 |
注释规范 |
文件头注释 |
包含文件名、作者、日期和描述 |
// File: main.cpp<br>// Author: Your Name<br>// Date: 2025-04-29<br>// Description: Main entry point of the application. |
|
10 |
函数注释 |
使用多行注释,说明功能、参数和返回值 |
/**<br> * Calculates the sum of two integers.<br> * @param a First integer.<br> * @param b Second integer.<br> * @return Sum of a and b.<br> */<br>int Add(int a, int b); |
|
|
11 |
编码实践 |
避免全局变量 |
尽量使用局部变量或通过函数参数传递数据 |
- |
|
12 |
错误处理 |
使用异常处理机制(try-catch) |
try {<br> // code<br>} catch (const std::exception& e) {<br> // handle error<br>} |
|
|
13 |
内存管理 |
使用智能指针(如std::unique_ptr和std::shared_ptr) |
std::unique_ptr<int> ptr(new int(10)); |
Python代码规范
|
序号 |
规范类别 |
具体要求 |
示例 |
说明 |
|
1 |
命名规范 |
变量命名 |
使用小写字母和下划线分隔(snake_case) |
student_count |
|
2 |
全局变量命名 |
前加g_前缀 |
g_total_count |
|
|
3 |
常量命名 |
使用大写,单词间用下划线分隔 |
MAX_SIZE = 100 |
|
|
4 |
函数命名 |
使用小写字母和下划线分隔(snake_case) |
def calculate_sum(): |
|
|
5 |
类命名 |
使用大驼峰命名法(PascalCase) |
class StudentInfo: |
|
|
6 |
代码格式 |
缩进 |
使用4个空格缩进,禁止使用Tab |
if condition:<br> # code |
|
7 |
空行 |
在逻辑块之间和函数定义之间添加空行 |
def function_name():<br> # code<br># Another function<br>def another_function():<br> # code |
|
|
8 |
括号 |
避免不必要的括号 |
if condition:<br> # code |
|
|
9 |
注释规范 |
文件头注释 |
包含文件名、作者、日期和描述 |
"""<br>File: main.py<br>Author: Your Name<br>Date: 2025-04-29<br>Description: Main entry point of the application.<br>""" |
|
10 |
函数注释 |
使用多行注释,说明功能、参数和返回值 |
def add(a, b):<br> """<br> Calculates the sum of two integers.<br> :param a: First integer.<br> :param b: Second integer.<br> :return: Sum of a and b.<br> """<br> return a + b |
|
|
11 |
编码实践 |
避免全局变量 |
尽量使用局部变量或通过函数参数传递数据 |
- |
|
12 |
错误处理 |
使用try-except块 |
try:<br> # code<br>except Exception as e:<br> # handle error |
|
|
13 |
代码简洁性 |
遵循PEP 8的编码风格,保持代码简洁易读 |
- |
C++代码评审检查表
|
序号 |
检查项 |
描述 |
符合 |
不符合 |
备注 |
|
1 |
命名规范 |
变量、函数、类命名是否符合规范 |
|||
|
2 |
缩进格式 |
是否使用4个空格缩进 |
|||
|
3 |
大括号使用 |
是否符合大括号的使用规范 |
|||
|
4 |
空行使用 |
是否在逻辑块之间添加空行 |
|||
|
5 |
文件头注释 |
是否包含文件名、作者、日期和描述 |
|||
|
6 |
函数注释 |
是否有清晰的函数注释 |
|||
|
7 |
全局变量 |
是否尽量避免使用全局变量 |
|||
|
8 |
错误处理 |
是否使用异常处理机制 |
|||
|
9 |
内存管理 |
是否正确使用智能指针 |
|||
|
10 |
代码可读性 |
代码是否清晰易读 |
Python代码评审检查表:
|
序号 |
检查项 |
描述 |
符合 |
不符合 |
备注 |
|
1 |
命名规范 |
变量、函数、类命名是否符合规范 |
|||
|
2 |
缩进格式 |
是否使用4个空格缩进 |
|||
|
3 |
空行使用 |
是否在逻辑块之间添加空行 |
|||
|
4 |
文件头注释 |
是否包含文件名、作者、日期和描述 |
|||
|
5 |
函数注释 |
是否有清晰的函数注释 |
|||
|
6 |
全局变量 |
是否尽量避免使用全局变量 |
|||
|
7 |
错误处理 |
是否使用try-except块 |
|||
|
8 |
代码简洁性 |
是否遵循PEP 8的编码风格 |
|||
|
9 |
代码可读性 |
代码是否清晰易读 |

浙公网安备 33010602011771号