目录

  • 1 软件工程与软件设计
    • 1.1 课程教学大纲和教学日历
    • 1.2 软件工程
    • 1.3 软件的生存周期
    • 1.4 软件开发过程模型
    • 1.5 软件设计
    • 1.6 软件体系结构
    • 1.7 本章课件
    • 1.8 课堂笔记
    • 1.9 作业
  • 2 统一建模语言UML
    • 2.1 UML概述
    • 2.2 面向对象开发方法
    • 2.3 UML2.0结构建模
    • 2.4 UML2.0行为建模
    • 2.5 本章课件
    • 2.6 课堂笔记
    • 2.7 作业
  • 3 软件设计基础
    • 3.1 软件设计的基本概念
    • 3.2 软件设计过程
    • 3.3 软件设计质量
    • 3.4 软件体系结构设计
      • 3.4.1 软件体系结构设计一般过程
        • 3.4.1.1 软件体系结构设计步骤
    • 3.5 高可信软件
    • 3.6 软件设计规格说明及软件设计评审
    • 3.7 本章课件
    • 3.8 本章作业
    • 3.9 第三章课堂笔记一
    • 3.10 第三章课堂笔记二
    • 3.11 课程引导单
  • 4 第4章
    • 4.1 整体概述
    • 4.2 基于UML的分析与设计过程
    • 4.3 用例分析与设计
    • 4.4 概念模型与顶层架构设计
    • 4.5 用户界面设计
    • 4.6 数据模型设计
    • 4.7 设计精化
    • 4.8 类设计
    • 4.9 部署模型设计
    • 4.10 本章课件
    • 4.11 本章作业
    • 4.12 第四章课堂笔记一
    • 4.13 第四章课堂笔记二
    • 4.14 课程引导单
  • 5 第5章 面向数据流的软件设计方法
    • 5.1 略讲
  • 6 第6章 用户界面设计
    • 6.1 界面设计的基本原则
    • 6.2 设计良好界面的主要途径
    • 6.3 用户界面的分析与设计过程
    • 6.4 用户界面分析
    • 6.5 用户界面设计
    • 6.6 用户界面原型
    • 6.7 界面设计的评估
    • 6.8 本章小结
    • 6.9 课程引导单
    • 6.10 本章课件
    • 6.11 本章作业
    • 6.12 课堂笔记1
    • 6.13 课堂笔记2
  • 7 体系结构风格与设计模式
    • 7.1 体系结构概念、描述、风格
    • 7.2 设计模式基础 代码资源
      • 7.2.1 基础回顾视频
    • 7.3 设计模式-工厂方法
    • 7.4 设计模式-抽象工厂
    • 7.5 设计模式-单件
    • 7.6 设计模式-组合 迭代器 观察者
    • 7.7 本章课件
    • 7.8 本章作业
    • 7.9 课堂笔记
  • 8 基于分布构件的体系结构
    • 8.1 8.1 EJB分布构件
    • 8.2 8.2 DCOM分布构件
    • 8.3 8.3 CORBA分布构件
    • 8.4 本章课件
    • 8.5 本章作业
    • 8.6 课堂笔记
  • 9 软件体系结构评估
    • 9.1 软件体系结构评估概述
      • 9.1.1 课件
      • 9.1.2 视频
    • 9.2 软件体系结构评估方法
      • 9.2.1 课件
      • 9.2.2 视频
    • 9.3 实例分析
      • 9.3.1 课件
      • 9.3.2 视频
    • 9.4 作业
    • 9.5 9.1-9.2课堂笔记
    • 9.6 9.3课堂笔记
  • 10 软件设计的进化
    • 10.1 遗留系统
      • 10.1.1 课件
      • 10.1.2 视频
    • 10.2 软件的进化策略
      • 10.2.1 课件
      • 10.2.2 视频
    • 10.3 软件再工程
      • 10.3.1 课件
      • 10.3.2 视频
    • 10.4 软件体系结构的进化
      • 10.4.1 课件
      • 10.4.2 视频
    • 10.5 代码重构和数据重构、软件移植
      • 10.5.1 课件
      • 10.5.2 视频
    • 10.6 作业
    • 10.7 10.1-10.3课堂笔记
    • 10.8 10.4-10.5课堂笔记
  • 11 实验
    • 11.1 实验教学大纲
    • 11.2 实验PPT
    • 11.3 实验讲解视频
    • 11.4 实验2 UML类图设计
    • 11.5 实验3 编程视频 代码下载
    • 11.6 实验3 简易写法
    • 11.7 实验4 工厂方法复习视频
    • 11.8 实验4 协作图 类图 代码
    • 11.9 实验4 适配器模式
    • 11.10 拓展内容5 后续改进
    • 11.11 实验参考资料
    • 11.12 实验报告模板
    • 11.13 实验报告提交
    • 11.14 软件常见功能模块
拓展内容5 后续改进

后续改进:

除了将实验1到实验4,整合做出一个项目。还有很多提高编程能力的项目,可以尝试设计、编码:

  1. 了解工作事务流。

  2. 适配器模式,实现数据类型转换。

  3. 创建型的原型模式,从一个javabean得到另一个javabean。

  4. 策略模式、模板方法模式,实现不同的排课算法。

  5. 外观模式,把排课算法封装成一个工具类。

  6. 装饰模式、代理模式,实现函数执行前后触发拦截器功能,比如行为统计、时长统计和用户积分处理。

  7. 装饰模式、责任链模式,实现多个拦截器。

  8. 使用观察者模式,业务类包含主题Subject(不要继承Subject)。执行函数前后,发出消息,由观察者完成行为统计和用户积分处理。

  9. 宏命令,实现批量处理;自动发出消息,实现批量化测试。

  10. 熟悉JSON、xml、map格式的数据处理,用javascript、python改写实验3、实验4的程序。




其他应用类项目:

  1. 设计一款客户端、服务端软件。

  2. 使用第三方网络接口,查询股票信息。

  3. 学习Model、View、Control架构。不同专业方向,View差别很大、Control基本接近。不同终端,Model可能不同。

  4. 设计一个功能全面的图书管理系统。图书管理系统,同样是由增删改查、用户权限、工作事务流、用户行为统计和积分管理、数据汇总和统计分析,五部分组成。


一、后台工程师

当SSH、SSM框架的拦截器技术更新换代,用装饰模式一样可以实现多种功能,完成面向切面编程。

应用装饰模式,使得程序不变、替换JAR包,动态改变业务功能。

使用装饰模式,实现以下功能:

  1. 检查用户是否已登录

  2. 获取用户身份

  3. 判断用户是否有当前操作的权限

  4. 记录用户看网页的起始时间、结束时间,看视频的起止时间,计算时长

  5. 根据积分规则,增加用户积分

积分规则作为独立的JAR包、插件、补丁。

规则1:看文章不足1分钟,积分为0. 看视频不足1分钟,积分为0. 

         看视频累计10分钟,积6分,上限6分。

规则2:打开文章积1分,不限时间.  看视频累计10分钟,积6分。后续每多看5分钟,增加0.5分,无上限。

规则3:分数增加较快的项目,降低权重。

了解电商网站程序不变,使用数据库设计,实现一项或多项优惠活动;或者使用JAR包(或者XML等配置文件),实现优惠规则的动态变化。

二、前端工程师

1.使用jq、jQuery、html、H5、jsp等技术,制作彩色课程表。

了解后台用java语句生成一张图片,发送到网页上显示(验证码技术)。

2.课程表的两种展示方式:

 (1)一张课程表,展示整个学期的课程。比如:周一,第1大节,6-9周体系结构,11-14周人机交互。

(2)按周分页,每次展示某一周的课程。

3. 交换课程: 

(1)点击某节课,变为选中状态。点击另一节课,变为选中状态。点击交换按钮,两节课交换。

(2)拖动某节课,到一个新的空闲时间段;拖动某节课到另一节课上,两节课交换。

4. 双击某节课,点击确认对话框后,删除一节课。

5. 拖拽鼠标,画出选择框,覆盖的课程同时被选中。

6.录入成绩时,假设有90行、6列的成绩输入框。

(1)按方向键,使相邻的另一个输入框激活。

(2)录入成绩时,每输完一个成绩,按Tab键激活右侧输入框,按回车键激活下方输入框,按Q键激活左侧输入框。按键可以自定义。

前端的表单组件、表格,后台的增删改查,这都属于通用功能。复杂的功能、插件库没有的功能,需要编程技术能力实现。