文档介绍:第4章软件设计
软件设计概述
软件体系结构
优秀设计的概念
传统的结构化设计
用户界面设计
构件级设计
1
软件设计概述
1、软件设计中的主要活动
软件设计是将软件需求转换为软件表示的过程,是构造和验证软件所需的三项技术活动(设计、编码、测试)之一。设计过程主要有以下活动:
(1) 数据设计:将分析时创建的信息域模型(ERD、DD)转换成软件构件级的数据结构和应用级的数据库体系结构。
为满足当今企业对大中型规模的业务信息的需求,遍历现存的数据库以试图抽取合适的业务级信息而产生了数据挖掘技术。由于多个数据库结构不同、库中信息命名格式及详细程度不同以及许多其他因素造成了数据挖掘的困难,需建立不同于一般数据库的大的数据仓库,存放以主要业务主题进行组织的、展示统一定义标准的并在较长时间内保持稳定的数据。
2
(2)体系结构设计:定义软件系统的整体组织结构,有时称为软件系统设计。指系统中有哪些主要结构性元素,以什么样的模式连接,互相之间如何交互以及它们的接口。设计体系结构的作用:
•便于理解和沟通
•便于组织开发
•便于扩展
•便于重用
(3)接口设计:描述软件内部、软件与协作系统之间以及软件与人之间如何通信。一个接口意味着信息流(如数据、事件)和特定的行为类型。
(4)构件级设计:对体系结构中的结构性元素进行过程性描述(包括算法)并设计构件的接口。
3
2、软件设计文档
设计阶段的一个重要产品就是描述所构建的系统的文档。
主要内容:
•前言:系统目标;主要需求
•数据设计用一系列图形和符
•体系结构设计号描述系统、界面
•接口设计(人机交互、外部接口) 和构件的结构,包
•每个模块(或构件)的过程性设计括各级抽象。
•集成测试策略
•设计约束
•需求交叉引用表
•参考文献
•附录
文档中还可以包含描述系统如何运行的操作手册,以及出错后系统的重新配置或特定的安全措施。
4
软件体系结构
1、什么是软件体系结构
随着软件系统越来越大、越来越复杂,软件设计的核心已经转移到新的计算模式,非传统的“程序=算法+数据结构”,新的模式就是系统总体结的设计和规范。
软件体系结构(Architecture)为软件系统提供了一个结构、行为和属性的高级抽象。由构成系统的元素(构件)的描述、这些元素的相互作用、指导元素集成的模式以及模式的约束组成。
软件体系结构不仅指出了系统的组织结构和拓扑结构,并显示了系统需求和构成系统元素之间的对应关系,提供了一些设计决策的基本原理。
5
软件体系结构的模型有下列几种:
•结构模型:是构件、连接件(定义构件之间交互规则、消息协议的构造模块)有组织的集合。反映系统的重要语义内容,包括系统的配置、约束等。
•框架模型:与结构模型类似,不侧重细节,侧重于系统的整体结构(模式)。
•动态模型:补充模型,强调系统的行为性质。
•过程模型:注重系统系统必须适应业务和技术的过程。
•功能模型:一组功能构件按层次组成,下层向上层提供服务,是一种特殊的框架模型。
6
这些模型可用语言(ADL)描述,也可用图形(UML)描述。
Bass等人对软件体系结构的定义强调了软件构件的角色。ponent): 具有明确功能并可以分离出来的软件或硬件。在体系结构设计的语境内,一个软件构件可以是简单的程序模块,如:源程序文件、可执行文件,也可以扩展到包括数据库以及网络配置中的“中间件”。构件间的关系可以简单地从一个模块到另一个模块的过程调用,也可以是复杂的数据库访问协议。
7
2、体系结构的风格
体系结构风格也是构造的一种模式(Pattern),类似于建筑行业中的建筑风格,是描述某一特定应用域中系统组织方式的惯用模式,反映了领域中众多系统所共有的结构和语义特性。
研究体系结构风格的意义:
•有利于发现不同系统在较高级别上的共同特性。
•对体系结构的了解,使得在设计软件结构时选择合适的模式,进行正确地设计。
•使用常用的、规范的模式来组织结构,使别的设计者易于理解、便于交流。
•有利于较高级别上的软件复用。判断能否在不同的软件系统中使用同一体系结构。
Garlan和Shaw(1996)对体系结构的分类如下:
8
•数据流风格:批处理序列;管道/过滤器
•调用/返回风格:主程序/子程序;面向对象风格;层次结构
•仓库风格:数据库系统;超文本系统;黑板系统
•虚拟机风格:解释器
•独立构件风格:进程通信;基于事件系统
介绍几种主要的体系结构风格:
(1)仓库风格
基于一个共享数据库的系统模型。(见下图)
9
数据为中心的体系结构
仓库系统中有两类构件:中心数据存储构件及对中心数据进行各种操作的一组构件集。中