目录

  • 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 软件常见功能模块
实验4 协作图 类图 代码

一、应用情景:

多人团队开发教务系统,张三复杂网页端、后台、数据库,李四负责安卓端,王五用java制作PC客户端。

每个人根据自身技术能力,在各自的终端上,逐渐增加功能模块。

张三的单节课课程数据JavaBean设计为:public class LessonDBBean(用于网页和后台数据库)。

李四设计为 public class LessonAppBean.

王五设计为 public class LessonPCBean.

随着三种终端上功能的扩展,成员变量的个数、命名不尽相同。

使用工厂方法模式,当后台收到三种终端的课程数据,生成实体类LessonDBBean的对象;终端收到课程数据,生成LessonAppBean、LessonPCBean。

二、数据样例:

所有终端和后台,用一个字符串,封装一节课的信息。

比如:第6周第1大节,实验课,课程名是体系结构,...

PC客户端的数据:“zhou=6&time_id=1&lessonType=2&lessonName=体系结构...

网页、后台的数据:week=6&timeid=1&lesson_type=2&lesson_name=体系结构...

   移动端的数据:week_id=6&time_num=1&lessonType=2&course_Name=体系结构...

用工厂方法模式完成编程。

三、其他方案:

  1. 用适配器模式。

  2. 不用设计模式,用四个函数完成转换:

    LessonDBBean getBean_AppToDB(String app_msg);

    LessonDBBean getBean_PcToDB(String pc_msg);

    LessonAppBean getBean_DBToApp(String db_msg);

    LessonPCBean getBean_DBToPc(String db_msg);

  3. 用工厂方法、抽象工厂完成转换。

  4. 如果理论课和实验课分成两个不同的类,程序繁琐,不如用一个int lessonType区分课程类型。


UML协作图:

UML类图:

体系结构实验4 代码 类图:


拓展:

了解现有的“课程表APP”,设计在每节课的上课前10分钟启动手机闹钟。

了解JSON格式的数据收发,JSON和JavaBean、Map<String,Object>格式之间的转换。

参考资料:

钉钉群加群网络请求(数据已修改):

https://h5.dingtalk.com/circle/healthCheckin.html?corpId=ding9f3ac5cd853&f0b5=d925cdb8&from=singlemessage