当前课程知识点:软件理论与工程 >  第3章 软件设计 >  3.8 基于模式的设计 >  3.8 基于模式的设计

返回《软件理论与工程》慕课在线视频课程列表

3.8 基于模式的设计在线视频

下一节:4.1 UML概述

返回《软件理论与工程》慕课在线视频列表

3.8 基于模式的设计课程教案、知识点、字幕

大家好

今天我们来一起看一下

软件设计当中

基于模式的设计

在基于模式的设计内容当中

我们会看一下基于模式设计的基本概念

模式的种类

模式如何进行描述

和如何进行基于模式设计

另外 我们再看一下体系结构模式

构件级设计模式

用户界面设计模式

WebApp模式

和移动用户界面模式

设计模式

我们每个人都会遇到过设计问题

并且会想

是否已经有人研究出了这个问题的解决方案呢

如果有某种描述问题的标准方式

并用有组织的方式

来描述问题的解决方案

结果 会如何呢

设计模式

是用来描述问题

以及解决方案的规范化方法

在某种程度上

允许软件工程界获取设计知识

使解决方案能够得到重用

每个模式都描述了我们所处环境内

反复出现的问题

然后描述该问题的核心解决方案

这样你就可以

几百万次的重复使用该解决方案

而不必用同样的方式

重新工作两次

所以我们说模式是

表示特定上下文

问题和解决方案三者之间关系的

三步规则

上下文使读者理解问题所发生的环境

以及在此环境中

什么样的解决方案才是合适的

一组需求

包括限制

约束

起到影响因素的作用

比如 如何在此问题的上下文环境中

对问题进行解释

如何有效的应用这个解决方案

模式有很多个种类

比如有体系结构模式

数据模式

构件模式

体系结构模式描述了很多

可以用结构化方法解决的设计问题

数据模式

描述了重现的面向数据的问题

以及用来解决这些问题的

数据建模解决方案

构件模式

也可以叫做设计模式

涉及与开发子系统和构件相关的一些问题

它们之间相互通信的方式

以及

它们在一个较大的体系结构当中的位置

界面设计模式

描述了公共用户界面问题

以及具有影响因素

包括最终用户的具体特征的解决方案

Web应用模式解决了

构建Web应用时遇到的问题

而且往往还包括很多

我们前面提到的一些其它的模式

既然模式可以被复用

来解决后面遇到的类似的问题

那么我们应该对模式进行一个有效的表示

在模式的表示当中

我们要表示模式的名称

以简短但富表现力的名字描述模式的本质

第二

我们要描述这个模式应对的问题

也就是描述模式涉及的问题

第三我们要描述动机

提供问题的一些实例

还有 我们要描述模式使用的环境

也就是描述问题所在的环境

包括应用领域

另外 还要描述

模式的影响因素

列出影响问题解决方案的全部影响因素

包括必须要考虑的限制

和约束的相关讨论

当然 最重要的我们要列出解决方案

这才是我们要复用模式的一个核心价值

解决方案

提供了问题解决方案的详细描述

另外 我们还可以描述模式的目的

协作

效果

和实现

和已知应用

以及相关模式

目的指的是描述模式以及模式所做的工作

协作指的是描述其它模式对解决方案的贡献

效果 描述实现模式时

必须考虑的可能

要做的折中

以及使用模式的最终效果

实现描述的是 当实现模式时

确定应该考虑的特殊问题

已知应用

提供了设计模式在实际应用系统中

使用的实例

相关模式

描述的是

我们相关的设计模式的一些交叉索引

那我们下面看一下如何基于模式进行设计

软件设计师从描述系统抽象

表示的需求模型

开始工作

这些需求模型包括

明确的

和隐含的

需求模型描述了问题的集合

建立的上下文环境

并明确了主要的影响因素

那么我们可以看到

需求模型

描述了我们所关心的问题

上下文

和即将要对应的解决方案

那么需求模型对

问题和上下文进行了描述

我们就可以基于这个问题和上下文

找到可复用的解决方案的模式

那么基于模式的设计

开始于需求模型

之后我们的设计就开始了

我们提取出

需求模型当中的问题

和环境影响因素

然后

考虑设计的概念

和考虑设计的质量属性

我们综合考虑了设计的概念

提取出的问题和环境影响因素

以及设计的质量属性之后

我们会考虑一下

是否可以通过模式来解决这个问题

如果可以

那么我们就开始了基于模式的设计任务

产生我们最终的设计模型

如果不能够通过模式来解决

我们就应用其它的设计方法

或表示法

来产生设计模型

这个图展示了我们基于模式的

设计的过程的基本框架

那么我们有体系结构模式

有数据模式 有构件模式

我们先来看一下体系结构模式

体系结构

这个概念就比较抽象

模式的概念也有点抽象

那么体系结构模式

到底是一个什么样的东西呢

我们先来通过一个比喻理解一下

比如

每一户都要使用厨房的模式

每一个在建造房子的时候

都要建造一个厨房

那么厨房的模式就可以被复用

厨房的模式以及它合作的其它模式

能涉及的问题有

食物的存储与储备

完成这些任务所需要的工具

以及这些与工作流程相关的工具

在房间中的放置规则等等

另外 这个厨房模式

还会涉及到的有关问题有

厨房的台面

照明

墙壁开关

中心岛

室内的地面等等

显然对一个厨房会存在多种设计

通常会取决于环境和影响因素

但是我们可以在厨房模式

所建议的解决方案的环境内

构思具体化

你的个性化的设计

既然我们要使用这些模式

我们就应该要找到模式存储库

在网上有很多设计模式的原始资料

一些模式可以从

独立发布的模式语言中得到

另一些模式可以从模式门户

或模式库中得到

我们再看一下

构件级的设计模式

构件级设计模式

可以提供验证了的解决方案

这些解决方案可以解决从需求模型中

提取出的一个或者是多个子问题

在很多情况下

这种类型的设计模式

关注系统的某些功能元素

另外 我们还有用户界面设计模式

用户界面设计模式

整个用户界面

界面布局

表单和输入

表格等等

为最高级的结构以及整个用户界面的导航

提供设计指导的就是整个用户界面模式

我们的处理页面网站的

页面布局模式要清晰的显示出

屏幕的显示的一般组织结构

另外 表单和输入的设计模式

要考虑完成表单及输入的各种设计技术

表格的设计模式

为各种类型的表格数据的创建和操作

提供设计指导

另外

我们还有直接进行数据处理的设计模式

可以处理数据的编辑

修改和转换

导航的设计模式

辅助用户在层次菜单 网页

以及交互式显示的屏幕中进行导航

搜索的模式可以满足对网站中存在的信息

或者可通过交互式应用程序访问的

永久性数据存储的

特定搜索

页面元素的设计模式

可以实现网页

或显示屏的特定元素显示

电子商务的设计模式

可以针对网站

这些模式

实现电子商务应用系统的重复性的元素

那么再有WebApp的模式

WebApp的模式可以包括

信息体系结构模式

涉及了信息空间的总体结构

以及用户与信息的进行交互的方式

导航模式

在WebApp中定义了导航链接结构

例如层次

导航路径等等

交互模式的WebApp的模式当中

可以有助于用户界面的设计

这种模式解决的是

界面如何将特定的动作的结果

通知给用户

用户如何扩展

基于上下文环境的内容

和用户的愿望

如何最好的描述一个链接

所隐含的目的地

如何通知用户正在进行的交互的状态

以及界面的相关问题

WebApp的表示模式是

用于协助介绍内容

由于它是通过界面的呈现给用户的

这种模式解决的是

如何组织用户界面控制功能

以获得更好的可用性

如何表现界面的动作

与所影响的内容对象之间的关系

以及如何建立有效的内容层次

功能模式在WebApp中定义了工作流

行为

过程

通信

以及WebApp中的其它算法元素

那么WebApp的模式

会有不同的设计力度

当我们要解决的问题涉及到全局的问题的时候

我们可以试着开发

关注全局解决的方案的相关模式

相反

当焦点很窄的时候

例如

从包含五项

或者更少的元素集合中选择一项的话

我们的解决方案的目标

也会变得相对比较窄

那么 根据粒度的级别

WebApp模式可以描述为

以下几个层次

比如 可以描述为WebApp的体系结构模式

Architectural patterns

这个层次的抽象

通常会涉及到的

模式定义WebApp的总体结构

表示不同构件

或增量间的关系

为指定的体系结构元素

网页

构件

子系统

这些之间的关系来定义规则

这个是WebApp的体系结构模式

那么WebApp的设计模式

是用来处理特定的设计元素

例如 构件的聚合

来解决一些设计问题

比如说网页上的元素之间的关系

或影响构件间的通信的机制

一个WebApp的主页的布局就是这种

大格局的一个模式的例子

另外

WebApp模式也可以在小的

粒度层次上

比如说构件模式

WebApp的构件模式这个层次的抽象

与WebApp的个别小规模的元素有关

WebApp的构件模式

可以有

个别的交互元素

例如单选按钮

文本框

导航元素

例如如何格式化链接

或者是功能性的元素

例如一些特定的算法等等

那么我们最后再简单的看一下

移动用户的界面模式

随着我们手机移动应用的广泛的开展

我们移动用户的应用程序

应用越来越广泛

那么 移动用户的界面模式当中

可能会涉及到一些登录屏幕的模式

地图的模式

漂浮选单的模式

注册流程的模式

自定义选项卡导航模式

或者是邀请模式等等

一些

移动用户经常会用到的界面模式

那么 通过以上的这些讲述

我们今天

讲述了基于模式设计的主要内容

我们讲述了什么是模式

如何进行模式的设计

并且我们结合了具体的

WebApp的模式

移动用户的

App设计模式等等

来解释了一下基于模式设计的概念

让大家进一步的理解了抽象的

模式的概念

今天我们的内容就这么多

谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

3.8 基于模式的设计笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。