软件工程实验--程序体验类

实验三 程序体验类

一.实验内容

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生成代码的能力在某些方面可以加速开发,但人类开发者的经验和对代码风格的把控仍然不可或缺。希望未来能继续探索这些概念,并在实际项目中加以应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值