当前课程知识点:软件理论与工程 >  第3章 软件设计 >  3.3 设计模型元素 >  3.3 设计模型元素

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

3.3 设计模型元素在线视频

下一节:3.4 体系结构概述

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

3.3 设计模型元素课程教案、知识点、字幕

大家好

这一节我们讲述一下

在设计章节当中的

设计模型元素

我们先来看一下这一张图

这一张图的横轴

是系统结构元素

接口元素

构件级元素和部署级元素

我们的横轴是沿着设计的过程维度

从系统结构元素开始

然后设计接口元素和构件级元素

最后设计部署级元素

这张图的纵轴从上向下

是从分析模型向设计模型的转变

随着分析模型向设计模型的转变

我们的抽象程度变得越来越低

越来越增加了设计的细节

我们的体系结构设计元素

相当于房间的平面图

平面图描述了房间的整体布局

包括各个房间的尺寸 形状

相互之间的联系

能够进出房间的门窗

平面图为我们提供了房间整体的视图

而软件体系结构设计元素

和房间的平面图一样

为我们提供了软件的整体视图

那么在这张图中

从分析模型向设计模型转变的过程当中

我们先看一下

系统体系结构元素这一个部分

在这张图的最左边这一列

这一列在分析模型当中

有类图 分析包 CRC模型

还有协作图 数据流图和控制流图

然后转变到设计模型的时候

转变成为设计类的实现

子系统和协作图

通过对设计的进一步求精的过程

变成了设计类的实现

以及更详细描述的子系统和协作图

那我们沿横轴表示的模型元素

并不总是顺序的开发的

初步的体系结构是基础

随后是接口设计和构件级的设计

通常接口设计和构件级设计是

并行进行的

直到设计全部完成以后

我们才开始了部署模型的设计工作

在整个设计过程当中的任何地方

我们都可以应用设计模式

因为这些模式能够使设计人员

将设计的知识应用到他人

已经遇到并解决的特定领域问题当中

那在接口元素这一列当中我们看

在分析模型的时候

我们有用例文本

用例图

活动图

泳道图

协作图

状态图和顺序图

那么通过这些图形

我们可以直接导出一些个技术接口设计

导航设计和图形用户界面设计

这些都是我们的接口设计元素当中的设计成果

那么在构件级的设计元素当中

我们从分析模型当中的类图

分析包

CRC模型

协作图

数据流图

控制流图

处理过程描述

状态图和顺序图

我们可以导出构件图 设计类

活动图和顺序图

这些作为初步的设计结果

然后随着逐步求精的过程

我们可以导出更加详细的设计的构件图

设计类

更加详细的活动图和顺序图

那么在最后这一列部署级的元素当中

我们根据分析模型当中的

系统的分析需求当中的约束

和交互操作

以及我们的目标和配置

我们可以推导出设计当中的设计类实现

子系统

协作图

构件图

设计类

活动图和顺序图

然后进一步通过这些设计类实现

子系统

协作图

构件图还有设计类和活动图 顺序图等

来推导出我们的部署局设计元素的最终成果

也就是我们的部署图

关于体系结构模型

我们可以从以下三个来源导出

第一个是

我们要构建的软件的应用领域的信息

我们根据应用领域的信息

可以导出一些个常见的系统的体系结构

第二个

特定的需求模型元素

如数据流图或分析图

或者在现有问题当中它们的关系和协作

我们可以推导出一些个体系结构模型当中的

体系结构模型元素

第三个

我们可以通过已经获得的体系结构的风格和模式

来导出体系结构设计模型的设计元素

体系结构设计元素通常被描述为一组

相互联系的子系统

而且

常常从需求模型当中的

分析包中可以派生出来

每个子系统都有其自己的体系结构

比如

图形用户界面

可能根据之前存在的用户接口体系结构

进行了结构化而得到 等等

那我们的设计元素主要就包括五个部分

设计元素包括数据元素

体系结构元素

接口元素

构件元素和部署元素

在我们的数据元素当中

我们可以通过数据模型推导出数据结构

我们还可以通过数据模型

设计出数据库的体系结构

但是我们的数据结构和数据库体系结构

分别有两门专门的课程来讲述相关的内容

在我们的软件工程理论这个课程里面

就不做过多的解释

那么下面我们看一下体系结构元素

我们的体系结构元素包括了应用领域

包括了分析类和它们的关系

协作和行为

被转换成设计实现

以及我们的模式和“风格”

也可以总结出我们的体系结构元素

那么还有我们的接口元素

我们的接口元素包括用户界面

以及

我们的系统与其他系统的外部接口

设备

和网络

或者是其他生产者或信息的使用者之间的接口

以及在我们的系统内部的不同构件之间的

内部接口

所以

我们的接口元素包括三个方面

首先是系统与用户的接口

也就是我们的用户界面

然后是

系统与其他系统的外部接口

与其他的外部软件系统

硬件系统

网络和其他的生产者和使用者的接口

那么第三个就是在我们的系统内部的

不同构件之间的内部接口

这三个接口的主要内容

都是我们设计当中的接口元素的重要组成部分

那么 下一个是构件元素

构件元素是我们设计当中的很重要的一部分内容

也就是我们系统当中的所有的构件的设计

最后是部署元素

部署元素是在完成了构件和接口设计之后

我们描述的我们系统 子系统以及构件

在硬件或者是其他的环境当中的部署关系

那么我们先看一下体系结构元素

体系结构元素

我们有三个获取的来源

第一个就是

关于将要构件的软件的应用领域的相关信息

第二个是

特定的需求模型元素

比如数据流图或者分析类

以及在现有问题中它们的关系和协作

再有就是

我们可以通过体系结构的模式和风格

来获得

体系结构非常重要

因为体系结构

使得人们可以更好的理解系统的整体结构

然后我们看一下接口元素

我们说接口元素包括用户界面

包括与其他系统的外部接口

与其他的设备网络

或者其他的生产者

和信息使用者之间的外部接口

接口元素还包括不同的设计构件之间的内部接口

那么我们下面看一下右面这张图

接口设计相当于一组房屋的门

和外部设施的详细绘图以及规格说明

门窗

外部设施的详细图纸

以及规格说明

作为平面图的一个部分

它们大体上可以告诉我们

事件和信息如何流入和流出

我们见到的这个住宅

以及

如何在平面图的房间内进行流动的

那我们的软件接口设计元素

描述的是信息如何流入

和流出我们的系统

以及

被定义为体系结构的一部分的构件之间

是如何通信的

我们图中这个例子的ControlPanel的类

提供了和键盘相关的行为

因此

必须实现它的操作

比如read KeyStroke

和decode key这两个操作

如果我们要把这些操作提供给其他的类

比如 在我们的例子当中

操作提供给了WirelessPDA

和Mobilephone

来使用的话

那么我们就要定义如图所示的接口

这样是会十分有帮助

在图中 我们定义了名为keyPad的接口

它表示为一个interface的构造型

或者用一个带有标识

且用一条线

和类相连的小圆圈来表示

我们定义接口时

并没有实现键盘的行为所需的属性和操作的集合

带有三角箭头的虚线

表示了Control panel类

提供了keyPad操作

以作为其行为的一个部分

那么 在UML中

被称为实现

也就是说

ControlPanel行为的一部分

将通过实现keypad操作来实现

这些操作将被提供给那些

访问这个接口的其他类

我们下面看一下构件设计元素

构件级设计完整的描述了

每个软件构件的内部的细节

构件级设计为所有局部数据对象

定义了数据结构

构件级设计

为所有在构件内发生的处理定义

算法的相关细节

构件级的设计

定义了允许访问所有构件的这些操作

或者是行为的接口

构件级设计元素

相当于一个房屋中的

每个房间的一组详细图

以及相关的规格说明

这些图描绘了每个房间内的布线和管道

电器插座和墙上的开关

水龙头 水池等等

这些与该房间相关的任何其他的细节

构件级的设计

完整的描述了

每个软件构件的内部细节

为此

构件级的设计

为所有的局部数据对象定义了数据结构

而且

为所有在构件内发生的处理

定义了相关的算法的细节

并定义了允许

该方法所有构件操作的接口

图中的例子

我们有一个SensorManagement的构件

虚线连接到了Sensor类

那么

SensorManagement这个构件

完成了所有和sensor相关的功能

那包括可能的监控

和配置sensor的相关的功能

我们下面再看一下部署级的设计元素

我们说在完成了接口设计和构件级设计之后

我们可以进行系统的部署级设计

我们的部署级设计元素主要是完成我们的

相关的软件构件

和子系统

将如何在支持软件的物理计算环境内进行分布

例如

我们图中的例子的SafeHome产品的元素

会被配置在三种主要的计算环境中运行

包括基于住宅的PC

和SafeHome这个产品的控制面板

和位于CPI公司的服务器

那么 图中的标号标出了

每个计算元素中

含有的子系统的相关的功能

例如

在个人计算机PC中有完成

安全

监视

住宅管理和通信功能的子系统

此外 还有供外部访问的子系统

以管理外界资源对SafeHome系统的访问

每个子系统都需要进行细化

用以说明该子系统所实现的所有相关构件

那么 下面我们进行一下设计模型元素的总结

在设计模型元素中

我们有五个组成部分

数据元素

体系结构元素

接口元素

构件元素和部署元素

其中 数据元素会在其他的课程当中进行讲解

那么 在我们这里边讲的体系结构元素

包括我们的应用领域信息

包括从分析类

和分析类之间的关系协作

和行为转换的设计的实现

还有从模式和风格导出的体系结构元素

那么体系结构元素是我们后面的接口元素

和构件元素设计的基础

接口元素中我们包括用户界面

包括与其他系统的外部接口

包括与设备网络

和其他生产者或者信息的使用者的接口

以及在系统内部不同的构件之间的内部接口

那么再有就是构件元素和部署元素

构件元素完成了在一个构件内部的

数据和算法的相关设计

那么部署元素是完成了

一个子系统或者是几个子系统

以及其含有的构件

在物理计算环境的部署关系

好 以上就是我们今天关于设计模型元素的讲解

谢谢大家

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

课程概述

-课程概述

第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.3 设计模型元素笔记与讨论

也许你还感兴趣的课程:

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