hi,小慕
课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
期末考试会员
认证学习
软件构造
第11次开课
开课时间: 2024年09月01日 ~ 2025年01月05日
学时安排: 3-5小时每周
当前开课已结束 已有 247 人参加
认证学习
认证成绩和证书
智能问答和解析
视频学习辅助
立即自学
往期不提供结课证书,想参加下学期课程, 点击这里预约>>
课程详情
课程评价(94)
spContent=课程以一个案例的演变,模拟不断变化的用户需求,用增量迭代的开发模式,组织软件构造的教学:按照需求学习、增量渐进编程。 每章以案例故事引出构造问题,讨论解决问题的基本原理、方法和技术,给出1-2个可操作的构造方案供学生实践,指导学生自学更新更深更广的相关知识。学完每章学生都有可用的、实现用户要求的程序,直至最终一个完整的软件。 课程以山东省一流本科教材为基础,是国家级一流本科混合式课程的线上课程。
课程以一个案例的演变,模拟不断变化的用户需求,用增量迭代的开发模式,组织软件构造的教学:按照需求学习、增量渐进编程。 每章以案例故事引出构造问题,讨论解决问题的基本原理、方法和技术,给出1-2个可操作的构造方案供学生实践,指导学生自学更新更深更广的相关知识。学完每章学生都有可用的、实现用户要求的程序,直至最终一个完整的软件。 课程以山东省一流本科教材为基础,是国家级一流本科混合式课程的线上课程。
—— 课程团队
课程概述

  随着计算机与互联网在社会经济与日常生活中的渗透,各种形态的软件层出不穷,如传统的桌面软件、Web应用、软件和服务SaaS及移动应用程序app等,社会对软件的需求日益增长。本课程旨在学习如何把编程语言、软件设计的原则和方法、软件测试技术及数据处理、用户交互等方面的知识和工具,融合到增量迭代的开发流程,通过“设计、编写、测试和调试”的软件构造过程把实际问题逐步地转换为实用软件的能力。

  软件构造实际上就是学习如何构造一个有用的软件,类比如何写出一手好文章:正如你掌握了丰富的单词和句型、精读了优秀范文,不足以写出一篇漂亮文章。学习了编程语言、数据结构等知识,不能保证你自然而然地写出好程序。作为程序员的你还需要学习如何把知识、工具、技能融合在编程中,构造出一个好的软件。


  学完本课程,你能够:

l 理解和应用软件构造的一般原理:模块化,信息隐藏,逐步求精,面向对象原则,增量迭代,软件复用,软件质量。

l 使用软件构造的常用技巧:表驱动编程,防御式编程,按意图编程,事件驱动编程,代码重构,框架与程序包,测试驱动开发。

l 使用基本的软件设计:软件建模及UMLE-R图,控制流图,状态图,设计原则,设计模式,契约式设计,面向对象设计,用户交互,数据库的设计与实现。并能评价设计和实现。

l 选择、评价和运用软件知识:软件过程,敏捷开发,最佳实践,面向对象编程,数据结构与算法,数据库编程,软件复用。

l 深入理解软件构造的工作要素(如编码及其规范),使用构造工具如IDEJUnit、jchart、windowBuilder以及其它开源工具

l 熟练应用软件构造的活动:设计-编码-调试-集成-测试(单元测试、回归测试、集成测试、静态测试)。

  课程设计:依据能力优先知识、理论支撑应用、灵活自主学习的原则,对知识的引入遵循足够、按需和渐进的策略,通过案例的展开由浅及深地融合软件构造的原理、原则、方法、技术、流程和工具。多方面的知识(如调试、测试、设计、复用)逐步深入地分布在若干章节。习者最好把书中的知识通过案例连写起来,根据需要,提前看某个章节、跳过某个章节、需要时回过头来再看前面章节的内容或者查阅相关资料。强烈建议习者一边思考和分析案例问题,一边补充必要的知识、动手构造案例。只有同时完成案例构造和理论测评才可能通过本课程。

  课程以授课团队的山东省一流教材《基于案例的软件构造》为基础,按照MOOC的原则、方法和技术,优化课程内容、重构授课组织和授课方式,将教材、录课、PPT、程序代码、课后辅助材料以及在线辅导等有机整合,形成一体化教学。

  建议教师采用混合式教学方式,按需增补知识和工具使用,并一起研讨教学。

授课目标

课程适合我国普通高校计算机类本科大学生。学完课程之后,学生能够:

1、理解SEBOK3.0“软件构造”知识域的主要内容:软件构造的一般原理、常用方法、工作要素、构造活动以及软件设计技术和软件知识;

2、根据任务需求,整合应用碎片化的软件知识(如编程语言、数据结构、算法、数据库、UI)和软件工具,迭代运用“设计、编码、调试、测试”的构造过程,增量开发出具有多个功能、处理数据和用户交互等特征的高质量软件(3千行左右Java源码),能评价构造的设计与实现的优劣;

3、应用问题导向、目标牵引、用现代软件构造技术解决问题,加快从程序编写到软件开发的转变,通过后续课程(如软件工程、综合课程设计和实习实训),奠定能解决实际复杂工程问题的软件工程师的基础。

课程大纲

第 1 章 软件开发概述

1.1 程序与软件 &1.2 软件生存周期

1.3 软件开发过程

1.4 敏捷开发

1.5 软件构造

1.6 为什么不直接编写软件

1.7 案例导读

1 软件开发概述-单元测验1

第 2 章 模块化软件构造

2.1 分解与模块化

2.2 数据结构与算法

2.3 模块化设计理论初步

2.4 测试程序

2.5 调试程序

2.6 案例分析与实践

2.7 讨论与提高

构造实践作业1 —— warm up

2 模块化软件构造测验- 单元测试2

第 3 章 面向对象的软件构造

3.1 抽象与封装

3.2 认识面向对象

3.3 面向对象的设计

3.4 调试的基本技术

3.5 软件自动化测试

3.6 案例分析与实践

3.7 讨论与提高

构造任务3.2:面向对象构造加法、减法、加减混合50道题- 阶段1

3 面向对象的软件构造测验 - 单元测试3

第 4 章 数据处理的软件构造

4.1 数据及其持久化

4.2 文件与输入/输出流

4.3 编写健壮的程序

4.4 字符串处理与正则表达式

4.5 程序中数据集的使用

4.6 基于程序结构的调试

4.7 运用JUnit

4.8 案例分析与实践

4.9 讨论与提高

面向数据的案例构造任务-阶段2

4 数据处理的软件构造测验 - 单元测试4

第 5 章 用户交互的软件构造

5.1 程序及其功能的使用

5.2 用户交互概述

5.3 用户交互的开发

5.4 静态测试

5.5 软件集成与测试

5.6 案例分析与实践

5.7 讨论与提高

基于菜单的交互构造任务

用户交互的软件构造测验

第 6 章 软件重构与交付

6.1 代码重构

6.2 软件交付

6.3 案例分析与实践

6.4 讨论与提高

软件重构与交付测验

第 7 章 GUI软件构造

7.1 GUI简介

7.2 GUI的基本元素与设计规范

7.3 Java GUI设计模式

7.4 事件驱动编程

7.5 案例分析与实践

案例构造GUI及最终交付版

GUI 软件构造测验

第 8 章 应用数据库

8.1 数据库概述

8.2 结构化查询语言

8.3 数据库的开发过程

8.4 编程操作数据库

8.5 案例分析与实践

第 9 章 基于复用的软件构造

9.1 软件复用

9.2 设计模式

9.3 框架

9.4 案例分析与实践

9.5 讨论与提高

9 基于复用的软件构造测验

展开全部
预备知识

1. 高级语言程序设计,Java编程基础或面向对象程序设计

2. 数据结构基础

参考资料

教材:李劲华 等:基于案例的软件构造,电子工业出版社

Java语言 https://www.oracle.com/java/

集成化开发环境Eclipse https://www.eclipse.org/downloads/

其它参考资料:

[1]   S. McConnel. 金戈,等译. 代码大全(第二版). 北京:电子工业出版社,2011.

[2]   B. Liskov, J. Guttag. 裘健,译. 程序开发原理. 北京:电子工业出版社,2006.

[3]   骆斌. 软件工程与计算(三卷). 北京:机械工业出版社,2012.

[4]   M. Fowler. 熊节,译. 重构:改进既有代码的设计. 北京:人民邮电出版社,2010.

[5]   Robert C. Martin. 邓辉,译. 敏捷软件开发:原则、模式与实践. 北京:清华大学出版社,2003.

[6]   Capers Jones. 吴舜贤,等译. 软件工程最佳实践. 北京:机械工业出版社,2014.

[7]   E. Gamma, R.Helm, R. Johnson, and J. Vlissides. 李英军,等译. 设计模式. 北京:机械工业出版社,2004.

[8]   C. Larman. 李洋,等译. UML和模式应用(原书3rd Ed.),北京:机械工业出版社,2006.

青岛大学
2 位授课老师
李劲华

李劲华

教授

陈宇

陈宇

副教授

推荐课程

【DeepSeek适用】小白玩转AI大模型应用开发

林粒粒

226人参加

小白玩转 Python 数据分析

林粒粒

92人参加
下载
下载

下载App