课程大纲

课程大纲

高级软件工程

课程编码:081202M04001H-2 英文名称:Advanced Software Engineering 课时:60 学分:3.00 课程属性:专业核心课 主讲教师:罗铁坚

教学目的要求
本课程为计算机科学与技术学科研究生的学科基础课。本课程主要讲解当今软件工程面临的新态势,以及为解决这些问题的新技术发展,包括软件架构、敏捷软件过程、测试驱动开发、软件持续交付等。通过本课程的学习,使学生能充分理解当今软件工程的主要方法和最新发展,并增强实际系统设计的能力。

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

大纲内容
第一章 软件工程简介:SaaS(软件即服务)与敏捷开发介绍 6学时 罗铁坚
第1节 软件工程简介
第2节 SaaS软件与敏捷方法
第二章 SaaS软件架构简介 3学时 罗铁坚
第1节 SOA架构介绍
第2节 云计算与SaaS
第三章 SaaS框架:程序设计语言Ruby介绍 3学时 罗铁坚
第1节 Ruby语言基础
第2节 Ruby语言高级特性
第四章 SaaS客户端框架:JavaScript介绍 3学时 罗铁坚
第1节 Javascript简介
第2节 基于Javascript的客户端框架
第五章 SaaS框架:Rails应用框架 8学时 罗铁坚
第1节 MVC架构的介绍
第2节 Rails基础-从零到CRUD应用开发
第3节 Rails高级-面向MVC的复用与复杂数据库应用开发
第六章 敏捷开发的需求获取:行为驱动设计 4学时 罗铁坚
第1节 行为驱动的设计与用户故事
第2节 基于工具的BDD开发过程
第七章 软件测试:测试驱动开发 4学时 罗铁坚
第1节 TDD方法
第2节 TDD与传统的测试
第八章 软件维护:基于代码重构与敏捷过程的方法 6学时 罗铁坚
第1节 遗留系统与代码重构
第2节 敏捷过程
第九章 软件项目管理:Scrum与版本控制GIT 4学时 罗铁坚
第1节 Scrum与结对编程
第2节 VCS与Git
第十章 SaaS软件的设计模式 4学时 罗铁坚
第1节 设计模式与反模式介绍
第2节 SOLID设计准测
第十一章 SaaS软件的非功能保障:性能、可靠性和持续交付 6学时 罗铁坚
第1节 SaaS软件性能优化
第2节 SaaS软件可靠性保障
第3节 DevOps与持续演化

教材信息
1、 SaaS软件工程-云计算时代的敏捷开发 Armando Fox, David Patterson著,徐葳、曹锐创译 2015 清华大学出版社

参考书
1、 软件工程 伊恩·萨默维尔(Ian Sommerville) 著;彭鑫 等 译 2018 机械工业出版社

课程教师信息
魏峻,中国科学院软件研究所研究员,博士研究生导师,中国科学院大学教授,中国科学院软件研究所软件工程技术研发中心副主任。兼任中国计算机学会服务计算专委会副主任委员、软件工程专业委员会委员,《软件学报》责任编委、《计算机科学与探索》执行编委、《计算机集成制造系统》编委。研究兴趣包括软件工程方法与技术在人工智能、云计算、大数据处理等分布式软件系统中的运用,解决正确性、可靠性、性能、安全等方面的问题。
近年主要工作在新型分布式软件系统架构(如微服务、无服务器)的评估与优化、大规模复杂分布式系统可靠性保障方面,承担了国家自然科学基金委重点和面上项目,国家973,863,重点研发计划专项等二十余项科研项目,在TSE, TKDE, JSS, ICSE, FSE, ASE, VLDB, ICDCS, IPDPS, SC, Middleware等国内外重要学术刊物和国际会议上发表学术论文200余篇,获发明专利授权20多项,获得国家技术发明二等奖、国家科技进步二等奖、湖南省技术发明一等奖、电子学会电子信息科学技术一等奖、北京市科学技术一等奖。
罗铁坚,男,中国科学院大学教授,博士生导师。曾任中国科学院研究生院信息科学与工程学院执行院长。主持过10多项国家级和企业科研项目。发表文章共112 篇、英文专著一部。拥有30多项软件著作权和发明专利。2003年起,领导国科大团队设计与实现了中科院教育云,并成功运行10多年至今。国科大拥有该云平台的30 多个应用系统(共600 多万行源代码),的全部知识产权。近年在人工智能顶级会议AAAI 和IEEE Transactions on Cybernetics 等期刊发表多篇学术论文,对自然语言理解和计算机视觉领域中特定问题提出了新模型,刷新了相关公开数据集的精度。获2017年中国科学院优秀教师奖。2014年中国人工智能学会《全国大学生智能设计竞赛》优秀指导教师一等奖。