《软件工程》第三章——软件设计综述

1. 软件设计的任务与目标
任务和目标:以软件需求规格设计说明书为依据,根据其提出的系统目标,进行数据设 计(数据结构),系统结构设计(软件系统的体系结构),过程设计(吧结构转换为软件的过程性描述),并且形成软件的具体实现方案,撰写《软件设计说明书》。
根据《软件需求规格说明书》提出的系统目标,设计出软件系 统的体系结构、接口、数据结构和处理流程,形成软件的具体实现方案,并撰写《软件设计说明书》。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事 物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使 得设计者考虑更多的模块之间耦合度的情况。

2. 软件体系结构的内涵与主要类型
软件体系结构的内涵:软件体系是一个系统的高层次的组织结购,是系统的组件和组件 之间的关系,组件与系统之间的关系,以及其中的设计和原理。其中,体系是针对一个系统 而言,每个系统都有其自身的独特体系结构,而体系结构也是决定软件的开发。如何组织一个系统的体系结构,如何对当前系统的总体结构进行设计,关乎于系统开发的顺利进行,是 软件设计的第一步。
软件体系结构有一个模式为体系结构模式,这个模式是根据软件开发经验总结出来,且 命名的,是针对某一类型软件具有通用性和推广价值的设计方案。
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件 和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结 构的不同部分组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法 在其他的定义和方法中基本上得到保持。
UML 的架构:“4+1”视图,包含 4 种架构视图,如下所示:

  1. 逻辑结构:
    (1) 整体/模块化结构
    (2) 分层架构
    较高的层可以调用较低的层
    (3) MVC 架构
    Model View ConTroller,典型的软件开发架构,分为三层,持久化层,控制层,界面层, 这三层可以单独存在,也可以连在一起,即可以同时开发这三个层面,从而使得开发的效率变快,开发的时间变短,并且代码组织清晰,更易于维护,还有很高的代码重用性,更好的团队开发体验性,更高的代码清晰度。
  2. 物理架构:
    (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 编写目的
    1.2 项目概述
    1.3 术语定义、缩写词
    1.4 引用文档
  2. 设计约束
    2.1 设计目标
    2.2 设计原则
    2.3 设计约束
    2.3.1 遵循标准
    2.3.2 环境与工具
    2.3.3 技术限制
  3. 逻辑架构设计
    3.1 设计决策
    3.2 软件单元
    3.3 处理流程
  4. 接口设计
    4.1 外部接口(包括界面、与外部系统)
    4.2 内部接口
  5. 数据库存储设计
    5.1 数据库表
    5.2 视图、函数及存储过程
  6. 详细设计
    6.1 软件单元 1
    6.1.1 功能描述
    6.1.2 处理流程
    6.1.3 内部数据
    6.1.4 出错处理
  7. 开发架构设计
    7.1 工程结构
    7.2 源代码文件
    7.3 系统组件
  8. 物理架构设计
    8.1 络环境
    8.2 部署方案 9.安全保密设计10.运行设计

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月15日
下一篇 2020年3月15日

相关推荐