课程大纲

课程大纲

现代软件开发方法

课程编码:280223085405P2003 英文名称:Modern Software Development Process 课时:60 学分:3.00 课程属性:专业核心课 主讲教师:吴国全等

教学目的要求
本课程为计算机科学与技术学科研究生的学科基础课。本课程主要讲解当今软件开发实践和研究的新趋势,包括软件架构、敏捷软件过程、测试驱动开发、软件持续交付、开源软件等。通过本课程的学习,使学生能充分理解当今软件开发,特别是开源软件开发的主要方法和最新发展,并增强复杂软件系统的开发能力

预修课程
程序设计方法、数据结构、数据库

大纲内容
第一章 软件工程概述
第1节 传统软件工程概述 1.5学时 吴国全
第2节 SaaS(软件即服务)、敏捷开发 1.5学时 吴国全
第二章 SaaS软件架构
第1节 Web 客户端服务器架构 1.5学时 吴国全
第2节 面向服务架构 1.5学时 吴国全
第3节 MVC框架 1.5学时 吴国全
第4节 微服务开发框架 1.5学时 吴国全
第三章 SaaS客户端开发
第1节 JavaScript语言介绍 1学时 吴国全
第2节 文档对象模型 1学时 吴国全
第3节 Ajax技术 1学时 吴国全
第四章 敏捷开发的需求分析
第1节 行为驱动的设计(BDD) 2学时 吴国全
第2节 用户故事需求建模方法 2学时 吴国全
第3节 基于工具的BDD实践 2学时 吴国全
第五章 测试驱动的开发
第1节 TDD测试驱动开发基本原理 3学时 吴国全
第2节 TDD实践 3学时 吴国全
第六章 软件维护
第1节 面向遗留代码的软件维护 2学时 窦文生
第2节 代码坏味与度量 2学时 窦文生
第3节 代码重构方法 2学时 窦文生
第七章 软件项目管理:Scrum与版本控制GIT
第1节 Scrum、结队编程、敏捷过程 3学时 朱家鑫
第2节 版本控制与基于GIT的协作开发 3学时 朱家鑫
第八章 SaaS软件的设计模式
第1节 设计模式与分类 2学时 窦文生
第2节 UML 2学时 窦文生
第3节 SOLID原则 2学时 窦文生
第九章 SaaS软件部署运维
第1节 SaaS软件运维 3学时 朱家鑫
第2节 SaaS软件开发运维一体化 3学时 朱家鑫
第十章 开源软件与开源生态
第1节 开源软件概述 1.5学时 朱家鑫
第2节 开源贡献指南 1.5学时 朱家鑫
第3节 开源软件供应链 1.5学时 朱家鑫
第4节 开源治理 1.5学时 朱家鑫
第十一章 数据驱动的软件工程
第1节 软件工程数据 3学时 朱家鑫
第2节 软件工程数据挖掘 3学时 朱家鑫

参考书
1、 人月神话 弗雷德里克·布鲁克斯 2007-09-01 清华大学出版社

课程教师信息
吴国全,中国科学院软件研究所研究员,博士研究生导师。主要研究方向为软件工程、软件测试与维护、面向服务计算等。目前主要关注企业信息系统智能测试与分析,基于AI的无人自主系统(如:自动驾驶系统)仿真测试与验证、工业软件的低代码开发与自动构造技术等。主持参与多项国家自然科学基金、国家重点研发计划项目和国家高技术研究发展计划(863 计划)项目,与国内多家企事业单位(南方电网、中软、北京市交通委等)开展项目合作。在TSC、JSS、JCST、FSE、ASE、ICSME、ISSRE、ICWS、ICST等国内外重要学术期刊和会议发表论文50余篇,获中科院软件所优秀青年科技人才、广东电网科技进步二等奖、南方电网科技进步三等奖、北京市科技进步奖二等奖。
朱家鑫,中国科学院软件研究所副研究员,主要研究兴趣有DevOps、软件度量、软件开放生态,开展了面向开源协作、DevOps的一系列软件度量技术研究,特别关注了度量的有效性问题,促进数据驱动研究社区的良性发展;较早提出了开源开发者协作模式演化的量化分析技术;开展了国内外开源生态发展的研究工作,特别参与研发了我国首个得到国际开源组织OSI认证的“木兰宽松许可证(第二版)”,填补了国内空白。相关研究成果在FSE、ISSTA、ESEM等国内外权威学术会议期刊发表,入选2021年度软件所优秀青年科技人才计划。
窦文生博士现任中国科学院软件研究所研究员,博士生导师;主要研究分布式系统、数据库系统、电子表格等关键基础软件的质量保障技术,在软件工程与系统领域的高水平学术期刊和会议发表论文50余篇;曾获ACM SIGSOFT杰出论文奖、中国计算机学会优秀博士学位论文奖、中国科学院青年创新促进会优秀会员、NASAC青年软件创新奖等荣誉。