课程大纲

课程大纲

高级软件工程

课程编码:280227081200P1006 英文名称:Advanced Software Engineering 课时:60 学分:3.00 课程属性:学科核心课 主讲教师:杨凡

教学目的要求
软件是包含计算机程序代码、数据及其表示的系统,它是解决领域(如生产、生活、科研等)问题的智力工具。
软件工程是研究如何实现高效率、高质量和低成本开发有价值软件的理论方法。通过案例讲解和思考实践,
希望学习者在下面五个方面认知能力有所提升。
1、评价现代软件工程的理论方法特点及其适应范围;
2、给定领域问题,使用用例或用户故事梳理出需求和软件预期效果,给出实施计划;
3、调研类似软件系统,列举新系统与类似系统的差异或特色;
4、设计支持高效开发与迭代演化的软件架构,确保新增功能而不影响原软件版本的正常运行;
5、反思开发过程,提出重构当前版本软件的建议;
课程的考核内容和评分标准为:(1)课外作业(15%)(2)课堂讨论(5%)(3)小组项目(40%)(4)期末考试(40%)

预修课程
程序设计

大纲内容
第一章 引言(第1周) 4.0学时 杨凡
第1节 学科发展动机
第2节 预期学习效果
第3节 知识能力及学习策略
第4节 课程目的和考核要求
第二章 研究主题(第2周) 4.0学时 杨凡
第1节 软件理论的奠基者
第2节 软件工程的三类基础问题
第3节 软件开发的二种途径
第4节 软件开发的九项任务
第5节 练习题和阅读文献
第三章 领域问题和应用场景(第3、4周) 8.0学时 杨凡
第1节 本章学习目的
第2节 案例1操作系统和应用框架(Linux and Ruby on Rail)
第3节 案例2交互程序设计语言环境(Jupyter notebook)
第4节 案例3玩魔方软件(Web 版与实体版)
第5节 案例4池塘大战软件(智能体博弈)
第6节 案例5软件版本管理与持续集成平台(GitHub等)
第7节 练习题和阅读文献
第四章 业务建模和数据模型(第5、6周) 8.0学时 杨凡
第1节 学习目的
第2节 领域知识与建模语言
第3节 业务数据的外在形式与计算机的内部表示
第4节 数据表示与应用功能
第5节 练习题和阅读文献
第五章 软件架构和应用框架(第7、8周) 8.0学时 杨凡
第1节 学习目的
第2节 架构与功能
第3节 架构与数据
第4节 抽象共性与知识重用
第5节 练习题和阅读文献
第六章 设计模式和代码重构(第9周) 4.0学时 杨凡
第1节 学习目的
第2节 共性与特殊功能的分离
第3节 应对功能变化的策略
第4节 案例分析
第5节 练习题和阅读文献
第七章 用户体验和接口设计(第10周) 4.0学时 杨凡
第1节 学习目的
第2节 用户体验设计原则
第3节 信息表示的目的与方法
第4节 选择合适的可视化形式
第5节 练习题和阅读文献
第八章 软件验证与自动测试(第11周) 4.0学时 杨凡
第1节 学习目的
第2节 程序正确性证明
第3节 软件验证方法
第4节 构造测试用例
第5节 练习题和阅读文献
第九章 系统安全和防御设计(第12周) 4.0学时 杨凡
第1节 学习目的
第2节 软件安全的原因
第3节 防御措施的建构
第4节 练习题和阅读文献
第十章 规模应用与性能评价(第13周) 4.0学时 杨凡
第1节 学习目的
第2节 观察性能指标
第3节 提升应用性能
第4节 练习题和阅读文献
第十一章 集成部署和运营服务(第14周) 4.0学时 杨凡
第1节 学习目的
第2节 持续集成与部署
第3节 软件上线与服务模式
第4节 练习题和阅读文献

参考书
1、 Engineering Software as a Service: An Agile Approach Using Cloud Computing Armando Fox and David Patterson 2013年4月 Strawberry Canyon LLC; 1st edition (April 16, 2013)

课程教师信息
博士,天府学者,四川省特聘专家。曾先后在香港理工大学、美国辛辛那提大学、韩国CIES集团等知名研究机构从事人工智能基础理论研究与通用软件产品研发,近年来在大数据、人工智能、软件工程、信创适配等领域有深入的理论研究与工程实践。