“软件工程实践/课程思路”的版本间的差异
(→参考书籍) |
|||
(未显示同一用户的10个中间版本) | |||
第1行: | 第1行: | ||
+ | {{MainNav}} | ||
{{SOFTEright}} | {{SOFTEright}} | ||
==学情分析== | ==学情分析== | ||
第16行: | 第17行: | ||
==主要措施== | ==主要措施== | ||
*鼓励学生从创业的角度拟定项目:从组队、创意、执行、交互和运营全面进行。 | *鼓励学生从创业的角度拟定项目:从组队、创意、执行、交互和运营全面进行。 | ||
+ | *引入“赛马”机制,创业项目要遴选。别的队也可以做同样的题目。 | ||
*还可以从毕业论文的角度思考,能否作为毕业论文的工程化部分 | *还可以从毕业论文的角度思考,能否作为毕业论文的工程化部分 | ||
*参考案例一定瞄准实际应用的项目,可以是已有项目的2.0、3.0…… | *参考案例一定瞄准实际应用的项目,可以是已有项目的2.0、3.0…… | ||
第21行: | 第23行: | ||
*加强业绩经验的分享,穿插几个讲座 | *加强业绩经验的分享,穿插几个讲座 | ||
*与软件工程理论课部分指标进行结合,用于最后项目的评审评优 | *与软件工程理论课部分指标进行结合,用于最后项目的评审评优 | ||
+ | |||
+ | ==实施顺序== | ||
+ | *'''第一阶段:先创业,利用软件工程课堂知识''' | ||
+ | #确定人才市场、定义创意,引入赛马和创业 | ||
+ | #可以网上找,一个Base版本,也可以直接开发一个alpha0.1版本,出具'''商业计划书'''。 | ||
+ | #需要明确第一步增量开发的内容,在开发过程熟悉相关代码和语言。 | ||
+ | #根据自己喜好采用瀑布模型、敏捷开发 | ||
+ | #穿插一次经验性讲座。 | ||
+ | #时间:4周 | ||
+ | #输出/整理:需求文档、数据库设计文档、用例和流程图等 | ||
+ | |||
+ | *'''第二阶段:应对变化''' | ||
+ | #尝试运行、寻找用户、收集新需求 | ||
+ | #墨刀工具 | ||
+ | #回顾第一阶段遇到的问题,讲解DevOps,采用Gitee/GitLab,并将现有项目纳入相关工具 | ||
+ | #穿插一次讲座 | ||
+ | #时间:4周 | ||
+ | |||
+ | *'''第三阶段:再出发'''在DevOps的思想指导下逐步实践,完成一个项目的构建V1.0。 | ||
+ | #制作V1.0的墨刀文档 | ||
+ | #运营并更新 | ||
+ | #时间:7+1,1周用于展示 | ||
==可选案例== | ==可选案例== | ||
*计算机机房简易管理系统:教师预约、巡检和统计。(2.0版可以加上学生预约,面向机房开放) | *计算机机房简易管理系统:教师预约、巡检和统计。(2.0版可以加上学生预约,面向机房开放) | ||
*计算机机房绿化(鱼养殖)智慧运行系统 | *计算机机房绿化(鱼养殖)智慧运行系统 | ||
− | * | + | *其他可能能成为毕业论文的内容 |
+ | |||
+ | |||
+ | ==头脑风暴== | ||
+ | ===我的头脑=== | ||
+ | *做一个项目、接一个项目、创意一个项目的流程是啥?组队伍,分工 | ||
+ | *需求与表达: | ||
+ | *找资源与环境: | ||
+ | *技术评估 | ||
+ | *第一版本的产生:原型设计、开发、测试、发布 | ||
+ | *敏捷开发促进升级:用户? | ||
+ | ===文心一言=== | ||
+ | *项目分组与选题:根据学生的兴趣和特长进行分组,并让他们选择一个适合小组规模的实践项目。选题可以是理论课程中的案例延伸,也可以是学生自己提出的项目。 | ||
+ | *需求分析实践:让学生在所选项目中实践需求分析的方法和技术,如制作原型、编写用户故事等。通过实际操作,加深对需求分析理论的理解。 | ||
+ | *设计模式与架构实践:让学生在项目中实际应用设计模式和软件架构知识,提高代码质量和系统可维护性。 | ||
+ | *版本控制和团队协作:引导学生使用版本控制系统(如Git),并让他们了解团队协作的重要性。可以通过使用敏捷开发方法等来加强实践。 | ||
+ | *测试与质量保证:要求学生编写单元测试和集成测试,并使用自动化工具进行持续集成和持续部署。这可以加深他们对测试理论的理解。 | ||
+ | *系统部署与运维:让学生在云平台上部署自己的项目,并学习如何进行系统的监控和维护。 | ||
+ | *文档编写与答辩:要求学生为他们的项目编写相应的技术文档,并在课程结束时进行项目答辩。这有助于提高他们的沟通和表达能力。 | ||
+ | *课程反馈与改进:在课程结束时,让学生提供对课程的反馈,以帮助不断完善课程设计。 | ||
+ | *通过以上内容,学生可以将在《软件工程》理论课程中学到的知识应用到实践中,从而更好地理解和掌握软件工程的实际操作。希望这些建议对你有所帮助! | ||
==参考书籍== | ==参考书籍== | ||
− | *'''现代软件工程基础''',彭鑫、游依勇、赵文耘 /2022 | + | *'''软件工程——理论与实践''',毛新军 董威 编著 / 2024.1 / 高等教育出版社(“101计划”工作组) |
+ | *'''现代软件工程基础''',彭鑫、游依勇、赵文耘 / 2022.7 / 清华大学出版社 |
2024年8月16日 (五) 07:45的最新版本
百科首页 - 3D虚拟世界 - 音乐与人工智能 - 人工智能机器人 - 知识百科 - 关于我们 - 网站首页
百科首页 | 课程思路 | 课程大纲 | 主题讲座 | 支撑工具 | 点滴知识 | 历届作品
学情分析
学生为大三计算机专业学生,在大三上学期学习了软件工程理论课程。主要专业课程包括:计算机科学导论、人工智能导论、信息伦理与道德、程序设计基础、数据结构、算法设计与分析、面向对象方法与技术、数据库系统、软件工程、计算机系统导论、计算机组成与结构、操作系统、计算机网络、编译原理等。这里面包括计算机通用知识,也包括编程、数据库、数据结构、算法和软件工程等相关课程。从以往的经历来看,大家的工程化能力和体系性综合能力较弱。
大三下的 学生面临考研、找工作等现实 问题,如果课程任务太重,比如课后还需要花很多时间的话,会让学生难以接受。当然也要考虑部分学生还是愿意学习得更深入。所以课程安排,要有梯度:
- 能在课堂上完成任务,课后基本不需要花时间,这类学生应该要在70%,但这部分学生可能很难拿到优秀。
- 如果以上都不认真参与,可能处于及格或几个以下。
- 要给30%的学生拿到优秀的机会,这部分除了在课堂上认真完成、全力以赴之外,课后还需要花一些精力,比如每周2小时左右。
总体原则
根据我院培养学生的目标,本课程应该是计算机专业用于加强前期各课程学习综合应用的机会。也是为其进入社会的提前演习,因此,我们要尽量来到真实世界。
- 模仿社会实践中软件工程项目如何开展的。因为在现实情况下,工程项目因资金等条件限制,开展的方式方法也是不尽相同。如外包企业、创业项目、企业自研等,在流程上、组织上也差异较大。
- 根据学情分析,首先要至少服务于60%的学生,30%有高要求的学生,10%的学生可能表现较差。
- 要尽量让学生对课程活动提升兴趣,因此计划采用创业项目的方式。
主要措施
- 鼓励学生从创业的角度拟定项目:从组队、创意、执行、交互和运营全面进行。
- 引入“赛马”机制,创业项目要遴选。别的队也可以做同样的题目。
- 还可以从毕业论文的角度思考,能否作为毕业论文的工程化部分
- 参考案例一定瞄准实际应用的项目,可以是已有项目的2.0、3.0……
- 实现和编程环境可选:可以是小程序开发、可以是应用系统实现、可以是结合AI硬件等等
- 加强业绩经验的分享,穿插几个讲座
- 与软件工程理论课部分指标进行结合,用于最后项目的评审评优
实施顺序
- 第一阶段:先创业,利用软件工程课堂知识
- 确定人才市场、定义创意,引入赛马和创业
- 可以网上找,一个Base版本,也可以直接开发一个alpha0.1版本,出具商业计划书。
- 需要明确第一步增量开发的内容,在开发过程熟悉相关代码和语言。
- 根据自己喜好采用瀑布模型、敏捷开发
- 穿插一次经验性讲座。
- 时间:4周
- 输出/整理:需求文档、数据库设计文档、用例和流程图等
- 第二阶段:应对变化
- 尝试运行、寻找用户、收集新需求
- 墨刀工具
- 回顾第一阶段遇到的问题,讲解DevOps,采用Gitee/GitLab,并将现有项目纳入相关工具
- 穿插一次讲座
- 时间:4周
- 第三阶段:再出发在DevOps的思想指导下逐步实践,完成一个项目的构建V1.0。
- 制作V1.0的墨刀文档
- 运营并更新
- 时间:7+1,1周用于展示
可选案例
- 计算机机房简易管理系统:教师预约、巡检和统计。(2.0版可以加上学生预约,面向机房开放)
- 计算机机房绿化(鱼养殖)智慧运行系统
- 其他可能能成为毕业论文的内容
头脑风暴
我的头脑
- 做一个项目、接一个项目、创意一个项目的流程是啥?组队伍,分工
- 需求与表达:
- 找资源与环境:
- 技术评估
- 第一版本的产生:原型设计、开发、测试、发布
- 敏捷开发促进升级:用户?
文心一言
- 项目分组与选题:根据学生的兴趣和特长进行分组,并让他们选择一个适合小组规模的实践项目。选题可以是理论课程中的案例延伸,也可以是学生自己提出的项目。
- 需求分析实践:让学生在所选项目中实践需求分析的方法和技术,如制作原型、编写用户故事等。通过实际操作,加深对需求分析理论的理解。
- 设计模式与架构实践:让学生在项目中实际应用设计模式和软件架构知识,提高代码质量和系统可维护性。
- 版本控制和团队协作:引导学生使用版本控制系统(如Git),并让他们了解团队协作的重要性。可以通过使用敏捷开发方法等来加强实践。
- 测试与质量保证:要求学生编写单元测试和集成测试,并使用自动化工具进行持续集成和持续部署。这可以加深他们对测试理论的理解。
- 系统部署与运维:让学生在云平台上部署自己的项目,并学习如何进行系统的监控和维护。
- 文档编写与答辩:要求学生为他们的项目编写相应的技术文档,并在课程结束时进行项目答辩。这有助于提高他们的沟通和表达能力。
- 课程反馈与改进:在课程结束时,让学生提供对课程的反馈,以帮助不断完善课程设计。
- 通过以上内容,学生可以将在《软件工程》理论课程中学到的知识应用到实践中,从而更好地理解和掌握软件工程的实际操作。希望这些建议对你有所帮助!
参考书籍
- 软件工程——理论与实践,毛新军 董威 编著 / 2024.1 / 高等教育出版社(“101计划”工作组)
- 现代软件工程基础,彭鑫、游依勇、赵文耘 / 2022.7 / 清华大学出版社