课程大纲

课程大纲

现代软件开发方法

课程编码:180086085405P2003Y 英文名称: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.0学时
第2节 文档对象模型 1.0学时
第3节 Ajax技术 1.0学时
第四章 敏捷开发的需求分析
第1节 行为驱动的设计(BDD) 2.0学时
第2节 用户故事需求建模方法 2.0学时
第3节 基于工具的BDD实践 2.0学时
第五章 测试驱动的开发
第1节 TDD测试驱动开发基本原理 3.0学时
第2节 TDD实践 3.0学时
第六章 软件维护
第1节 面向遗留代码的软件维护 2.0学时
第2节 代码坏味与度量 2.0学时
第3节 代码重构方法 2.0学时
第七章 软件项目管理:Scrum与版本控制GIT
第1节 Scrum、结队编程、敏捷过程 3.0学时
第2节 版本控制与基于GIT的协作开发 3.0学时
第八章 SaaS软件的设计模式
第1节 设计模式与分类 2.0学时
第2节 UML 2.0学时
第3节 SOLID原则 2.0学时
第九章 SaaS软件部署运维
第1节 SaaS软件运维 3.0学时
第2节 SaaS软件开发运维一体化 3.0学时
第十章 开源软件与开源生态
第1节 开源软件概述 1.5学时
第2节 开源贡献指南 1.5学时
第3节 开源软件供应链 1.5学时
第4节 开源治理 1.5学时
第十一章 数据驱动的软件工程
第1节 软件工程数据 3.0学时
第2节 软件工程数据挖掘 3.0学时

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

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