人工智能+
       

聚焦高阶能力

        大模型技术给软件开发带来了强大的智能开发助手,它不仅能自主地分析软件需求,而且能生成和理解代码,检查和改进代码质量,部署和运维软件。但软件工程的内在复杂性和可变性等特性并没有发生本质上的变化,相反,需求和设计正变得更为重要。因此,本课程体系聚焦在抽象层次较高的知识,关注以下能力的培养:抓住问题本质的能力、需求理解和需求分析的能力、架构设计和设计评估的能力、代码审查的能力。

        如何培养高层次的能力?除了加强软件需求、设计和质量的知识传授和作业练习外,我们采取了以下措施:

        1)抛锚式教学。通过真实软件开发案例,培养学生抓住问题本质的能力、抽象和分解能力。给出历史软件案例中的问题,让学生沉浸式思考。对于成功案例,把学生的答案与最佳实践进行对比分析,寻找关键的优化点;对于失败案例,引导学生运用批判性思维进行深入剖析,识别问题根源,并鼓励他们创造性地提出优化的方案。

        2)基于反馈的优化。在大模型生成代码时,指导学生通过与大模型的多轮对话,根据大模型的反馈(即所生成的代码),不断优化软件需求和设计(即prompt),提升其需求和设计的精确表达能力。

        3)方案评估。 鼓励学生针对同一问题提出多种方案,通过AI赋能,为每种方案快速搭建软件原型,运行原型进行评测和实验对比,根据实际结果从中选出最好的方案,从而培养学生更强的分析、设计与评估能力

        4)质量关卡。开展多人协同的版本控制,实施持续集成实践,在代码提交与合并时设置质量关卡,代码审查不通过的代码不能进入代码库,从而增加学生的质量意识,以及对大模型生成的代码和人工代码的审查能力

Copyright © 2024 上海交通大学软件工程原理与实践 版权所有
l>l>l>>