1. 软件设计的任务与目标
任务和目标:以软件需求规格设计说明书为依据,根据其提出的系统目标,进行数据设 计(数据结构),系统结构设计(软件系统的体系结构),过程设计(吧结构转换为软件的过程性描述),并且形成软件的具体实现方案,撰写《软件设计说明书》。
根据《软件需求规格说明书》提出的系统目标,设计出软件系 统的体系结构、接口、数据结构和处理流程,形成软件的具体实现方案,并撰写《软件设计说明书》。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事 物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使 得设计者考虑更多的模块之间耦合度的情况。
2. 软件体系结构的内涵与主要类型
软件体系结构的内涵:软件体系是一个系统的高层次的组织结购,是系统的组件和组件 之间的关系,组件与系统之间的关系,以及其中的设计和原理。其中,体系是针对一个系统 而言,每个系统都有其自身的独特体系结构,而体系结构也是决定软件的开发。如何组织一个系统的体系结构,如何对当前系统的总体结构进行设计,关乎于系统开发的顺利进行,是 软件设计的第一步。
软件体系结构有一个模式为体系结构模式,这个模式是根据软件开发经验总结出来,且 命名的,是针对某一类型软件具有通用性和推广价值的设计方案。
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件 和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结 构的不同部分组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法 在其他的定义和方法中基本上得到保持。
UML 的架构:“4+1”视图,包含 4 种架构视图,如下所示:
- 逻辑结构:
(1) 整体/模块化结构
(2) 分层架构
较高的层可以调用较低的层
(3) MVC 架构
Model View ConTroller,典型的软件开发架构,分为三层,持久化层,控制层,界面层, 这三层可以单独存在,也可以连在一起,即可以同时开发这三个层面,从而使得开发的效率变快,开发的时间变短,并且代码组织清晰,更易于维护,还有很高的代码重用性,更好的团队开发体验性,更高的代码清晰度。 - 物理架构:
(1) 单机模式(单机版)
特点:不依赖 络,信息无法
实现了信息共享,有一部分源码会在本地计算机上,人机交互性比较好(时间上响应会比较块),系统效率比较高,维护升级比较困难,胖客户端瘦服务器,数据安全性差,
(2) B/S 架构
B/S 是浏览器服务器的系统,安装比较便利,与平台没有关系,这个在本地计算机的代码会很少,所以与 C/S 比较的话,响应时间会比较长。
(3) 混合架构
既然 B/S,C/S 各有优缺点,那么就会想到将两种架构结合起来,因此就有了混合架构。
3. 进程架构:
系统运行时线程的构成及其控制,与系统性能有关。
4. 开发架构:
软件物理单元的组成及其关系,与软件开发管理及开发过程的设计有关。
3. 软件设计的流程、内容与主要的技术
设计流程: 1)需求 2).功能定义 3)交互设计:生成产品原型的线框图 4)视觉设计:生成产品模型 5)DEMO:生成产品 DEMO 6)实现:实现产品(最终阶段) 软件设计的内容及技术: 1、软件设计的描述与建模: 类图:类图表示系统中类及类和类之间的关系,用于对系统的静态结构进行描述。类用 来表示系统中需要处理的事物;类之间的关系包括关联、依赖、泛化或打包(Package)等。类 之间的关系体现在类的内部结构中,通过类的属性和操作进行反映。一个典型的系统中通有 若干个类图,一个类图不一定包含系统中所有的类,一个类还可以添加到多个类图。 2、图由类及类与类之间的关系组成,类与类之间通常有: 1)关联:关联表示两个类的对象之间存在某种语义上的联系。 2)聚集:聚集也称为聚合,关联的特例。聚集表示类与类之间的关系是整体与部分的 关系。 3)泛化(继承):UML 中的泛化关系就是通常所说的继承关系,它是通用元素和具体 元素之间的一种分类关系。 4)依赖和细化。 3、关联的图形符 : 普通关联 关联的角色 限定关联 关联类 聚合: 共享聚集 组合聚集 泛化: 1) 普通泛化2) 泛化受限: 多重继承 不相交继承 完全继承 不完全继承 依赖和细化 状态图:状态图是一个类对象所可能经历的所有历程的模型图。状态机由对象的各个态 和连接这些状态的转换组成。 包:(Package)是 UML 为复杂系统建模所提供的模型元素组织与管理的通用机制。包用 于定义一个名字空包用于定义一个名字空间或容器间或容器(Container),通过包可以把类、 用例、组件等语义联系紧密元素聚在一起,从而实现从不同抽象层次、不同角度对系统或子 系统进行建模描述,将对包中的元素作为一个整体对待对包中的元素作为一个整体对待,并 且控制它们的并且控制它们的可视性和存取。 构件图:构件图用来描述代码构件的物理结构及各个构件之间的物理关系。代码组件可 以是源代码、动态链接库、子程序、独立线程或可执行文件组件。使用构件图有助于分析和 理解构件之间的相互影响程度。构件是定义了良好接口的物理实现单元,它是系统中可替换 的部分。每构件体现了系统设计中特定类的实现。良好定义的构件不直接依赖于其他构件而 依赖于构件所支持的接口。 部署视图:部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资如 计算机、设备或存储器。这个视图允许评估分配结果和资源分配。 4、体系结构设计:根据软件设计开发经验总结出来,且命名的,针对某一类型软件软 件具有通用性和推广价值的设计方案。UML“4+1”视图 逻辑架构 进程架构 开发架构 物 理架构 软件逻辑架构: 整体/模块化结构 分层架构 MVC 架构 三层架构 软件物理架构: C/S 架构 :特点:信息共享;人机交互性好;系统效率高;维护升级困难;胖客户端 瘦服务器;数据安全性差。 B/S 架构:安装维护便利;平台无关;交互性较差 处理流程: 浏览器 web 服务器 数据库服务器 C/S 与 B/S 混合架构 软件物理架构: OMG 的组件定义:系统中一种一种物理的、可部署的、可替代的部 件、他封装了实现并提供一系列可用的接口。
4. 软件设计说明书的用途和主要内容
用途:主要从软件开发(程序员)角度描述软件需要实现功能,如何划分这些功能模块, 各个功能模块的关系,软件的业务流程等。
主要内容:
- 前言
1.1 编写目的
1.2 项目概述
1.3 术语定义、缩写词
1.4 引用文档 - 设计约束
2.1 设计目标
2.2 设计原则
2.3 设计约束
2.3.1 遵循标准
2.3.2 环境与工具
2.3.3 技术限制 - 逻辑架构设计
3.1 设计决策
3.2 软件单元
3.3 处理流程 - 接口设计
4.1 外部接口(包括界面、与外部系统)
4.2 内部接口 - 数据库存储设计
5.1 数据库表
5.2 视图、函数及存储过程 - 详细设计
6.1 软件单元 1
6.1.1 功能描述
6.1.2 处理流程
6.1.3 内部数据
6.1.4 出错处理 - 开发架构设计
7.1 工程结构
7.2 源代码文件
7.3 系统组件 - 物理架构设计
8.1 络环境
8.2 部署方案 9.安全保密设计10.运行设计
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!