北京大学推出开放课程《软件工程理论与实践》教学计算机

作为软件产业的支撑学科,软件工程研究如何帮助人们在软件开发过程中提升效率和质量,具有过程性、抽象性、综合性、复杂性等特征,学生难理解、难运用、难发挥,如何将各种经典和新兴软件工程真实案例穿插入教学内容,并支持对不同类型软件开发工具和开发案例的在线体验与实操,成为软件工程在线课程长期面临的挑战性课题。

针对上述挑战,北京大学软件与微电子学院基于头歌打造了全新软件工程线上课程《软件工程理论与实践——思政与实战相结合的能力训练》,提供了100多个配套实战案例,面向全国高校软件工程系列课程教师和同学开放!

一、课程目标

经过多年的建设和实践,《软件工程理论与实践——思政与实战相结合的能力训练》课程取得了良好效果。本课程也是北京大学软件工程数十年科教成果融会贯通的完美诠释。本课程的教学目标是培养具有一定的软件开发能力与软件项目管理能力,并且能参加大型软件开发项目的人才。同时,提升学生的战略思维、历史思维、辩证思维、创新思维、系统思维,为成长为高素质、高层次、实用型、复合交叉型、国际化的工程技术创新与管理人才打下坚实的基础。

二、课程特色

本课程面向新工科需求,基于成果导向教育(Outcomes-basedEducation,OBE)思想,以学生成长为导向,坚持立德树人,融价值塑造、知识传授、能力培养为一体,坚持人才培养与产业建设互联互动,重视营造良好的人才成长生态环境,调动主动性,激发创新潜能,尊重学生个性化成长,坚持育人者先育己、教学相长。

一、在知识体系构建方面,聚焦学生能力培养,打通软件工程的思想、方法、技术和实践脉络,融会贯通北京大学软件工程数十年科教成果,展现中国软件工程学科前沿,全面提升学生的专业认知深度和广度。

二、在工程案例体验方面,在线构建多样化软件开发案例,突破了需求分析、概要设计、详细设计、系统实现、软件测试、智能化开发、互联网开发等系列软件工程真实场景的在线体验和实操挑战,可快速提升学生工程认知水平,形成良性认知循环。

三、在智能教学辅助方面,全流程在线教学工具和工程实践平台的无缝对接、便捷服务,实现了任务驱动、闯关演练、循序渐进、即学即练、即练即评、快速反馈的教学闭环,有助于学生自主思考、自主探索、自我测评,提升主动学习和实践的快乐体验。

四、在课程思政融通方面,将思政体系、软工技术和实战案例全面融合,集价值观塑造、方法论熏陶、知识点传授、工程化训练为一体,培养思想道德正、政治站位高的高素质软件人才。

三、课程内容

本课程打通软件工程的思想、理论、方法、技术脉络,具有全流程在线教学和实验平台的无缝对接、便捷服务的特点。从软件工程概述和可行性研究,到结构化分析和设计,都挑选出极具有代表性的题目供学习者体验;从面向对象分析和设计到软件的测试与管理,也有相应的实践题目让学习者深层次体验。基于此,《软件工程理论与实践——思政与实战相结合的能力训练》课程,结合经典教学案例建立了以下章节的课程和配套实验。

课程内容章节和知识体系

第一章软件工程初体验

第一节:软件危机来了

第二节:这个软件项目可行吗?

第三节:描述软件需求

第四节:紧耦合&高内聚

第五节:学画用例图

第六节:设计友好的人机交互

第七节:高质量的代码

第八节:找出代码中的bug

第九节:制定进度计划

第二章软件工程概述

第一节:软件危机

第二节:软件工程

第三节:软件过程模型

第三章可行性分析

第一节:项目立项和可行性分析基本概念

第二节:对现有的系统进行分析

第三节:技术可行性分析和经济可行性分析

第四节:社会因素可行性分析以及风险分析

第四章结构化分析

第一节:需求分析的基本概念

第二节:结构化分析的基本概念

第三节:结构化分析方法-数据流图

第四节:结构化分析方法-实体-联系图

第五节:结构化分析方法-状态转换图

第六节:结构化分析工具

第五章结构化设计

第一节:模块及模块化设计思想

第二节:面向数据流的设计方法-1

第三节:面向数据流的设计方法-2

第四节:软件详细设计-1

第五节:软件详细设计-2

第六节:软件设计规约及评审

第六章面向对象分析

第一节:面向对象分析的基本概念

第二节:面向对象分析之用例图

第三节:面向对象分析之类图

第四节:面向对象分析之顺序图

第五节:面向对象分析之活动图

第七章面向对象设计

第一节:面向对象设计的基本概念

第二节:问题域分析基本概念

第三节:问题域分析部分设计实例

第四节:人机交互部分设计实例

第五节:控制驱动部分设计实例

第六节:数据管理部分设计实例

第八章系统实现

第一节:编程语言

第二节:编程风格

第九章软件测试

第一节:软件测试基础

第二节:黑盒测试

第三节:白盒测试

第四节:单元测试

第五节:集成测试和确认测试

第十章系统运维

第一节:软件维护的基本概念-1

第二节:软件维护的基本概念-2

第三节:一起动手维护代码

第四节:Hexo博客系统部署

第十一章软件项目管理

第一节:软件项目管理基础及软件项目规划

第二节:WBS工作分解及项目范围控制

第三节:项目进度控制及计划评审技术

第四节:软件项目成本管理

第五节:软件项目质量管理

第十二章软件工程前沿技术

第一节:软件自动生成补丁

第二节:aiXcoder工具体验

第三节:SnowGraph工具体验

以上是《软件工程理论与实践——思政与实战相结合的能力训练》课程的所有章节,每一章节都与经典教学案例紧密结合,下面将从结构化设计、UML自动化评测、系统运维、软件测试等方面重点介绍与展示本课程的核心知识点。

特色解读之一:结构化设计

结构化设计章节的目标是使学生了解模块化思想,掌握结构化设计的主要方法,理解软件设计规约及评审的概念。本章通过对网上商城系统案例的分析,使学生了解模块及模块化思想;通过对系统不同子模块的分析,让学生掌握面向数据流的设计方法以及数据流图映射到结构图的步骤,掌握软件详细设计时用到的各类工具;通过对软件设计规约及评审的讲解,让学生理解软件设计评审的概念、评审目标、评审原则,能够制作软件设计说明书。本章选取了经典的网上商城系统案例作为辅助教学,对案例进行了模块的分解,将网上商城系统拆分成了“订单系统”、“管理系统”、“购物系统”等不同子模块。本章第一小节从背景到功能需求对案例进行了详细的介绍,通过选择题的方式考察并加深学生对模块化的理解,如下图所示,通过举例的方式帮助学生理解不同的耦合及内聚。

第二、三小节让学生依次完成不同子模块的数据流图,左侧为相知识及闯关要求,右侧为学生作答界面。学生将按照指导步骤完成从数据流图到模块结构图的转换,以此来培养学生系统思维、战略思维以及结构化、模块化的思想。

第四、五小节对案例中的子模块进行详细分析,依次考察学生判定树、判定表、PAD图、N-S图以及程序流程图的概念及绘制,以此来培养学生的逻辑思维以及严谨、认真的工作态度。

第六小节对软件设计规约及评审中的概念及知识点进行讲解,考察学生对评审目标、评审原则以及软件设计说明书等知识点的掌握程度。

特色解读之二:UML自动化评测

面向对象分析章节内容

UML之用例图构建

UML自动化评测

特色解读之三:代码风格

关于代码风格的考查在系统实现章节。主要分为编程语言、编程风格两小节,教学目标为引导学生选择正确的编程语言、写出整洁、规范的代码,围绕命名、注释、布局、数据说明、语句构造等环节进行教学与关卡设计。

在每一个实训任务关卡中,依托头歌教学平台的技术环境支持,内置python脚本评测,对学生所提交的代码段进行自动检测、给予实时反馈。学生自主阅读课程提供的知识点、任务描述和闯关要求后,在右侧区域输入代码,点击评测按钮即可获得实时反馈。

在“代码的布局”关卡中,将竖直间隔、竖直顺序、空格和缩进等编码规范作为知识点呈现给学生,同时以一段类定义代码的实践环节融合并检验上述知识点,加深学生对知识的掌握,提升法治思维、底线思维。

特色解读之四:系统运维

总体界面图(左边学习材料,右边实际操作)

经典教学案例:Hexo博客系统的部署

讲解材料

配套系统中实操图

经过本小节的学习,学生最终能够在Ubuntu系统中部署一个真实可用的博客系统,最终部署效果如下图所示:

在配套系统中访问已部署的博客

Ubuntu系统中的VIM编辑图

特色解读之五:项目管理

软件项目范围管理章节旨在帮助学生了解软件项目范围管理的基础知识,要求学生能够掌握WBS工作分解的基本原则、方法、标准。同时,通过WBS的教学目标,培养学生化繁为简、厘清思路的能力,学会从微观与宏观两个角度充分理解项目的思想。

项目进度管理章节旨在帮助学生掌握软件项目进度管理的基础知识,学习计划评审技术的基本概念与计算方法,掌握关键路径法的基本概念,了解两种常用的构造图,理解跟踪项目进展的方法。

本节通过实际案例的讲解,并给出详细计算步骤,帮助学生掌握关键路径法及三点估计法等进度控制方法,并通过右侧题目,结合案例进行练习和实践。

软件项目成本管理和质量管理旨在帮助学生了解软件项目成本管理的基础知识,了解项目成本的构成,理解成本估计和计划的方法,理解软件过程的度量及项目成本管控以及帮助学生掌握如何更好地定义软件的质量,了解如何使用能够增进质量的规程来开发系统。同时,通过质量保障的教学内容,促进学生对软件质量的重视,树立高质量发展的意识。

特色解读之六:软件测试

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试这一章的目标是使学生理解软件测试的目标、准则、方法和步骤,掌握黑盒测试中的等价类划分法和边界值分析法,掌握白盒测试中常用的几种逻辑覆盖,掌握单元测试中的Junit单元测试和改进的Junit参数化测试。这一章通过对软件测试具体案例的分析,使学生能将所学理论知识应用于实践,加强学生对软件测试中实际问题的分析能力和解决能力。

四、作者介绍

本课程为北京大学朱郑州副教授、谢冰教授、王立福教授、李戈副教授、邹艳珍副教授、熊英飞研究员,以及一批优秀的研究生团队联合创作和研发。期间头歌平台与团队给以全方位的技术与资源支持。

课程教学团队先后获电子工业部科进步特等奖、教育部高等学校科学研究优秀成果奖科技进步一等奖、CCF科学技术奖技术发明一等奖、国家科学技术进步二等奖、北京市科学技术奖技术发明类二等奖、教育部科技进步一等奖、国家技术发明二等奖、北京大学科技进步一等奖、全国高校混合式教学设计创新大赛特等奖、CCF软件工程实践教学案例比赛二等奖、北京大学创新教与学应用大赛微课组二等奖。选课学生参加全国高等院校项目管理大赛、下一代互联网技术创新大赛、全国高校数据驱动创新研究大赛、北京大学挑战杯大赛,屡获大奖。

1.朱郑州

北京大学软件与微电子学院副教授,CCF高级会员,工信部ITSS应用示范区评估专家组组长,中国项目管理学会青年委员会秘书长,主持和参与了十多项国家自然科学基金、国家重点研发计划、国家重大科技攻关、高等学校博士学科点专项科研基金、863、核高基等项目。长期从事软件工程和软件项目管理领域的教学研究工作,曾荣获第二届全国高校混合式教学设计创新大赛特等奖、CCF软件工程实践教学案例比赛二等奖、北京大学第九届创新教与学应用大赛微课组二等奖。选课学生还曾在全国高等院校项目管理大赛、下一代互联网技术创新大赛、全国高校数据驱动创新研究大赛、北京大学“挑战杯”大赛屡获大奖。

2.谢冰

1970年生于湖南省,现任北京大学信息科学技术学院副院长,软件研究所所长,教授,国家杰出青年基金获得者,入选教育部新世纪优秀人才计划、北京市科技新星计划,获“中创软件人才奖”。

1998年毕业于国防科技大学计算机学院,获博士学位。主要研究领域包括软件工程、计算机理论科学和分布式系统等。作为课题负责人,先后承担了国家863计划、科技支撑计划、国家重点专项、北京市科委重点课题、国家自然科学基金委杰出青年基金等重点项目9项,参与973、863计划、基金重点等课题5项。在软件工程技术研发和国产软件工具研发与产业化方面做出了重要的贡献,主要成果在软件行业、信息服务业、国防军工领域、集成电路设计领域中广泛应用。在FSE、POPL、ASE等软件工程与程序语言领域顶级会议、主流会议和期刊上发表论文80余篇。学术兼职包括:中国软件行业协会理事、中国计算机学会高级会员,电子学报英文版编委。曾获2006年国家科技进步二等奖(排名第3,“基于Internet、以构件库为核心的软件开发平台”)、2009年北京市科学技术奖技术发明类二等奖(排名第1,“青鸟软件质量保证支撑工具体系”)、2012年教育部高等学校科学技术进步一等奖(排名第1,“可信软件资源生产与共享环境Trustie-TSE”),2015年国家技术发明二等奖(排名第2,“基于网络的软件开发群体化方法及核心技术”)。

3.王立福

北京大学软件工程国家工程研究中心副主任、信息科学技术学院计算机系教授、博士生导师,公安部信息安全标准委员会成员。曾参加国家重点科技攻关课题:“软件工程环境标准化与实用化”,“软件工程环境工业化生产技术与系统的研究开发”。发表学术论文30余篇,编著教材一本。曾获国家科技攻关先进个人、国家科技进步二等奖、电子工业部科进步特等奖、北京大学科技进步一等奖等奖项。

4.李戈

北京大学信息科学技术学院计算机科学技术系副教授,主要研究领域:程序分析与生成,深度学习与知识工程。毕业于北京大学计算机系,曾赴斯坦福大学计算机系人工智能实验室从事深度学习方面的合作研究,任职访问副教授,CCF软件工程专委会秘书长。所在研究团队聚焦于基于机器学习概率模型的程序语言处理、程序分析与生成等,在程序代码理解、代码自动生成、代码特征检测等方面一直保持着国际上领先的研究成果,在NIPS/AAAI/IJCAI/ACL/ICSE/ASE/ICPC/TOSEM/EMSE等发表论文70余篇,曾获教育部高等学校科学研究优秀成果奖科技进步一等奖,CCF科学技术奖技术发明一等奖。科研转化成果aiXcoder正在为多家头部企业的开发者提供服务。

5.邹艳珍

主要研究领域为软件工程、软件复用、知识图谱等,2002年于吉林大学计算机系获硕士学位,同年7月开始在北京大学任教。2010年在北京大学计算机软件与理论专业获博士学位。目前已在国内外期刊、国际会议上发表学术论文50余篇,主持和参与国家自然科学基金、国家重点研发计划、863计划等10余项国家级项目。研发成果“软件资源库管理系统JBCLMS”、“软件项目知识图谱自动构造及智能问答SnowGraph”已在多家大型软件企业得到应用。参与完成的“基于Internet、以构件库为核心的软件开发平台”获得2006年度国家科学技术进步二等奖;参与完成的“可信的软件资源生产与共享环境(Trustie-TSE)”获得2013年教育部科技进步一等奖。

6.熊英飞

北京大学软件研究所研究员。熊英飞于2009年从日本东京大学获得博士学位,2009-2011年在加拿大滑铁卢大学工作,2012年加入北京大学,现任新体制长聘副教授。熊英飞的研究兴趣是程序设计语言和软件工程,特别是程序分析、综合和修复。他提出了理论和方法降低程序编写和缺陷修复的代价。比如,基于差别的双向变换框架是最广泛使用的双向变换框架之一,ACS将程序修复技术在公共数据集上的正确率从此前不到40%提升到70%以上。他的工作也被工业界采用,比如新一代Linux内核配置项目、燕云DaaS系统、华为公司等。他是SATE18的程序委员会联合主席,也在ICSE、FSE、ASE、ISSTA等会议担任PC。

THE END
1.酒店管理系统(附完整说明书)酒店管理系统(附完整说明书) 评分: VB.NET+SQL 随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日益流行。同时,酒店和餐厅娱乐业引入电脑服务和管理也取得了优良的经济效益和社会效益。为此,国家建设部已于最近作出明确规定:凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,...https://www.iteye.com/resource/chinatang21-1441972
2.软件工程综合实战具体的,本章通过对网上商城系统案例的分析,使学生了解模块及模块化思想;通过对系统不同子模块的分析,让学生掌握面向数据流的设计方法以及数据流图映射到结构图的步骤,掌握软件详细设计时用到的各类工具;通过对软件设计规约及评审的讲解,让学生理解软件设计评审的概念、评审目标、评审原则,能够制作软件设计说明书。本章...https://pgedu.educoder.net/paths/9430
1.酒店管理系统需求规格说明书.doc其他书籍源码源码资源说明:本系统是一个独立的酒店管理系统,具有客房预定系统、前台接待系统、前台收银系统、账务系统、管家系统、电话系统、客历系统、合约系统、经理系统、总经理系统、密码管理系统、报表系统、账务报表系统这12个子系统。各个系统具有自己独立的功能,这些系统组成一个完整的管理系统 ...http://www.verysource.com/item/hotel_management_system_requirements_specification_book_doc-1926153.html
2.酒店管理系统课程设计报告(通用8篇)10BHMS瑞士工商酒店管理学院MBA课程详解 相关推荐 1酒店管理系统软件设计 2酒店信息管理系统设计 3酒店信息管理系统设计论文 4酒店信息搜索系统设计 5酒店管理系统实验报告 6酒店管理信息系统报告 7酒店管理系统软件设计说明书 8酒店管理系统调研报告 9酒店管理系统调研报告 10酒店品牌价值设计管理论文 一键复制此文档资料...https://www.360wenmi.com/f/filex7g7179v.html
3.酒店管理系统详细设计说明书酒店管理系统详细设计说明书本文档为**酒店管理系统详细设计说明书,为**酒店管理系统编码的主要依据。 1.2背景 本软件全称为**酒店管理系统。 软件适用于普通二星级酒店、宾馆。 2界面功能描述 2.0主界面 系统运行主框架,实时显示房态信息。 2.1散客开单 完成对散客的开单任务。最多能追加五个相同类型的房间。 https://blog.csdn.net/chenzhanhai/article/details/6054943
4.酒店管理系统说明8篇(全文)酒店管理系统说明 第1篇 黑山印象假日酒店 远程系统使用说明书 第一步:将您的光碟放入光驱,将碟上的2个数据包拷贝到电脑上,并解压数据包! 第二步:打开ssvpn文件包,安装sslvpn程序.(注:为了不影响网速,请在安装的时候注意把开启自动运行程序关掉;另如发现安装错误时,先点击仍然安装,再安装补丁文件,如果没有安装...https://www.99xueshu.com/w/filepamw2i02.html
5.软件工程详细设计说明书设计说明书 定义 实体关系图(ERD),用于表示实体(数据对象)和它们之间的相互关系。 数据流图(DFD),描述信息和数据从输入移动到输出时被应用的变换的图形化 技术。 总体设计 概念设计和处理流程 该酒店管理系统的总体设计思路与开发流程如下: 图 1 总体设计思路与开发流程 系统功能模块结构 根据客户需求酒店需求分析,...https://doc.mbalib.com/view/92aaa70c7cb5add5d82cf10f6b257706.html
6.软件项目建议书由于国内绝大多数的大学不开设“用户界面设计课程”,这导致大部分软件开发人员不善于设计用户界面。项目开发小组应当设法邀请用户界面设计专家参与(或指导)本软件的 界面设计。 对系统设计过程中产生的所有有价值的文档进行配置管理。 输出文档: 产品详细设计说明书、数据物理设计模型(PDM)、自定义数据类型及BO数据类型文...https://www.ruiwen.com/gongwen/jianyishu/1361675.html
7.实验二结构化分析与设计粥粥alg(3)掌握数据流图映射为软件结构图的方法; (4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写; (5)掌握测试的基本方法。 二.实验内容 (1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求; ...https://www.cnblogs.com/3456939606zwp/p/14041108.html
8.酒店客房管理毕业论文基于J2EE酒店管理系统设计与实现包括论文,设计,论文字数:10293,页数:30摘 要为了提高酒店的经济效益,对人流、物流、资金流进行科学管理和有效控制,开发一个稳定可靠的酒店管理系统用以提高员工的工作效率与降低各种经营成本具有现实的必要性和重要意义。本系统基于JAVA的Application模式,采用JAVA的图形化开发工具JCreator和Ac...https://www.zzmce.com/lunwen/31746.html
9.库存管理系统uml1.1系统开发目的 (1)大大提高超市的运作效率; (2)通过全面的信息采集和处理,辅助提高超市的决策水平; (3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。 1.2背景说明 21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争...https://www.zboao.com/cgal/9126.html
10.软件工程专业毕业设计十篇在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高[1]。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程...https://www.mingkanw.com/w/keyidq4whyoi.html
11.最新完整版坐标转换软件Coord(含说明书).rar码农集市专业分享IT...酒店管理系统源码下载-客房信息管理系统源码下载 java开发 2024-10-28 15:14:18 积分:1 基于Yolov5_3.1、LPRNet、PySide6开发的车牌识别系统_Yolov5_61_LPRNet 2024-10-28 11:05:12 积分:1 基于YOLOV8N(v8.2).11)笑脸检测模型的ncnn安卓部署demo_ncnn-android-y ...https://www.coder100.com/index/index/content/id/604838
12.软件测试工程师面试英文自我介绍(共13篇)软件采用先进的计算机网络通信技术,改变了酒店业务模式,大大提高了工作效率。本系统的功能包括房间状况管理、添加房间信息、维修管理、退房管理、客户入住等,是为了不让人工繁琐去操作,而设计的一个管理系统。 责任描述: 1、测试软件是否达到需求规格书的要求,包括:各个功能点是否以实现,业务流程是否正确;...https://www.hrrsj.com/wenshu/gerenjieshao/710389.html