大数据时代的软件开发模式与技术
课程编码:180086081200P0002H
英文名称:Software Development Paradigm in the Era of Big Data
课时:20
学分:1.00
课程属性:高级强化课
主讲教师:HAI KUAN LI
教学目的要求
随着大数据和人工智能时代的到来,我们正站在软件革命的前沿。传统的软件开发范式正在逐渐淡出,而以数据化和智能化为核心的新一代软件开发范式正在迅速形成。一个软件“智能制造”的时代正在到来。
本课程将全面梳理这一新范式的演变历程、核心思想、基本原理、关键技术及其工业实践。课程将从软件工程的角度出发,深入剖析软件开发的数据化模式、智能化技术、动态软件架构和动态软件集成的创新, 以及系统自动重架构和新一代软件产品线技术的突破。此外,课程还将特别分享主讲老师本人在上述诸方面的理论研究与实践经验,以期为学员提供更全面、更深入的学习体验。
本课程将要求学生了解大数据和人工智能时代软件工程学术前沿的重大变化与发展趋势。学习大数据和人工智能时代软件开发的基础知识和基本理论,掌握这个时代软件开发的新需求,新范式和新机遇。
预修课程
无
大纲内容
第一章 Dynamic Software Resources and Very-Large-Scale Software Reuse 4.0学时 HAI KUAN LI
第1节 1.1 Software Era
第2节 1.2 Software as Data
第3节 1.3 Software Resources = Static Resources + Active Resources
第4节 1.4 The Shift from Small to Large-Scale Software Reuse
第5节 1.5 The Shift from Large to Very Large-Scale Software Reuse
第6节 1.6 The Large Language Model for Software Development
第二章 Very High-Level Programming and No/Low Code Platform 4.0学时 HAI KUAN LI
第1节 2.1 System = Architecture + Components
第2节 2.2 Programming Language in Different Generations
第3节 2.3 Programming in Different Levels of Abstraction
第4节 2.4 From Low-level, High-level to Very-High-level Programming
第5节 2.5 Network Style Architecture & Cluster-based Software Development
第三章 Dynamic Architecture and Dynamic Software Development 4.0学时 HAI KUAN LI
第1节 3.1 Processes as Software Components
第2节 3.2 The Development from Static Programming to Dynamic Programming
第3节 3.3 Very high-level Programming with Active Components
第4节 3.4 Dynamic System Architecture
第5节 3.5 Dynamic Programming = Dynamic Architecture + Active Components
第6节 3.6 The Seven Features of Dynamic Programming
第7节 3.7 Intelligent System Development with Dynamic Programming
第四章 System Complexity: Problems & Solutions 4.0学时 HAI KUAN LI
第1节 4.1 The Second Software Crisis
第2节 4.2 Lehman's Laws About System Complexity
第3节 4.3 Refactoring and Re-architecting
第4节 4.4 Data Mining and Machine Learning for System Re-Architecting
第5节 4.5 Three-Step Approach to Reduce System Complexity
第五章 Software Architecture: Theories & Challenges 4.0学时 HAI KUAN LI
第1节 5.1 A Series of Questions About Software Architecture
第2节 5.2 How Many Different Architectures That a Subject System May Have?
第3节 5.3 Can you Change System Architecture Without Changing Code?
第4节 5.4 Architecture as a Blueprint in Multiple Views
第5节 5.5 The Features of Different Architecture Styles
第6节 5.6 An Approach for System Architecting and Rearchitecting
第六章 ROA: A Computable Architecture Style 4.0学时 HAI KUAN LI
第1节 6.1 About Function, Object and Service Orientation
第2节 6.2 Relation-Oriented Architecture(ROA)
第3节 6.3 ROA as a Computable Architecture Style
第4节 6.4 ROA-Based Automatic Software Data Mining
第5节 6.5 ROA-Based Automatic Software Re-Architecting
第七章 Learning-Based Automatic Software Re-Architecting 4.0学时 HAI KUAN LI
第1节 7.1 Principles of Software Re-Architecting
第2节 7.2 Logical Re-Architecting
第3节 7.3 Physical Re-Architecting
第4节 7.4 Algorithm for Automatic Architecture Recovery
第5节 7.5 Algorithm for Automatic Architecture Transformation
第6节 7.6 Algorithm for Architecture Implantation
第7节 7.7 A Case Study of Automatic System Rearchitecting
第八章 Intensive Software Development with Large-scale Software Reuse 4.0学时 HAI KUAN LI
第1节 8.1 Domain-Based Software Reuse-in-the-Very-Large
第2节 8.2 Architecture-based Dynamic Software Product Lines
第3节 8.3 Assets Mining and Development
第4节 8.4 Organizational Model of Asset Management
第5节 8.5 Operating Model of Intensive Software Development
参考书
1、
Refactoring: Improving the Design of Existing Code,” Addison-Wesley Professional, 2nd Edition (?(November 30, 2018)
M. Fowler
43435
Addison-Wesley Professional
课程教师信息
李海宽,毕业于北京大学,在荷兰代尔夫特理工大学获得博士学位。有中国科学院研究生院计算机领域十几年的教学经历与在欧洲学术界与工业界三十年多的科研与实践经验。从上世纪90年代前开始,他就从事人工智能与软件重用的学术研究,提出了动态程序设计的理论与方法;后与荷兰科学家,代尔夫特理工大学教授 J. van Katwijk、M. Looijen和H.G. Sol一起提出了大规模软件重用的概念和模型。之后,他在欧洲一家国际知名企业的战略部工作,负责策划软件复用战略并亲自主持基于机器学习的大型复杂系统重构项目。他出版了关于大规模软件复用的专著并就所研究的内容在国际会议上发表主题演讲。近年来,在欧洲组建并领导国际合作研究。团队组成员来自荷兰,中国,美国和日本,包括科学家和工程技术领域的专家,专业方向覆盖软件工程,信息技术,自动翻译,通讯协议和智能信息处理等领域。他个人目前的研究兴趣是基于机器学习的大型复杂系统重架构技术与大数据时代的软件开发模式与技术,包括软件开发的数据化、智能化、架构化与集约化。