实验三 程序体验类
一.实验内容
1.体验题2:模块设计概念与编码风格体验
利用ChatGPT、微软Copilot与CodiumAI等AI大模型生成一段代码,体验AI生成代码与人类代码的模块化、信息隐藏原理、模块的独立性比较设计(第5章), 以及运行效率的提高及编码风格的规范化(第7章)
(1.1)AI生成代码(python)
(1.2)人工编写代码(python)
(1.3)比较分析
(1.3.1)模块化
两个代码示例都遵循了模块化设计的原则,将计算功能封装在一个类中。
(1.3.2)信息隐藏原理
AI生成的代码和人类编写的代码都使用了类的封装性,隐藏了内部实现细节。
(1.3.3)模块独立性
两个模块都可以独立使用,便于维护和测试。
(1.3.4)运行效率
两者在效率上没有显著差异,但人类代码中添加的注释提高了可读性。
(1.3.5)编码风格
人类编写的代码更注重文档和注释,便于其他开发者理解。
2.体验题3:模块设计概念体验
结合计算机语言程序VC++、Java、C#、Python等,体验模块化、信息隐藏原理、模块的独立性比较设计
(2.1)代码
(2.2)比较分析
(2.2.1)模块化
BankAccount类将账户操作封装在一个模块中。
(2.2.2)信息隐藏原理
使用双下划线前缀隐藏内部属性,保护账户信息。
(2.2.3)模块独立性
该模块可以独立使用,便于扩展和维护。
3.体验题4:模块耦合概念体验
结合计算机语言程序VC++、Java、C#、Python等,体验模块的数据耦合、控制耦合、特征耦合、公共环境耦合的设计(第5章)
(3.1)代码
(3.2)数据耦合
calculate_circle_area 和 calculate_square_area 方法接收参数(radius 和 side_length)进行计算,彼此之间没有隐藏的共享状态。
(3.3)控制耦合
calculate_square_area 方法的行为受到外部配置变量 CONFIG['operation'] 的影响,这里定义了不同的操作类型(如 square 或其他)。
(3.4)特征耦合
process_shape 方法根据传入的形状(circle 或 square)决定调用哪个处理方法。形状特性的变化导致调用的不同,这种特性依赖于输入。
(3.5)公共环境耦合
全局变量 CONFIG 用于存储影响方法行为的设置,因此这些方法的行为和全局状态共享相同的环境。
二、实验总结
通过本次实验,我深入理解了模块设计的各个方面,包括模块化、信息隐藏、耦合与内聚等原则。这些原则在软件开发中至关重要,能够提升代码的可维护性、可读性和可测试性。在实际开发中,应尽量遵循这些设计原则,以构建高质量的软件系统。同时,AI生成代码的能力在某些方面可以加速开发,但人类开发者的经验和对代码风格的把控仍然不可或缺。希望未来能继续探索这些概念,并在实际项目中加以应用。