• 软件工程导论第六版 第五章 总体设计


    总体设计概述

    目的

    总体设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题。因此,总体设计又称为概要设计或初步设计。

    任务

    划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等(但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计)
    ② 总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

    设计过程

    总体设计过程通常由两个主要阶段组成

    • 系统设计阶段(确定系统的具体实现方案)
    • 结构设计阶段(确定软件结构)。

    典型的总体设计过程包括以下9个步骤:

    • 设想供选择的方案。需求分析阶段得出的数据流图是总体设计的极好的出发点(上一阶段的DFD在本阶段细化之后可以被下一阶段使用)
    • 选取合理的方案
    • 推荐最佳方案
    • 功能分解。功能分解导致数据流图的进一步细化,同时还应该用IPO图或其他适当的工具简要描述细化后每个处理的算法。
    • 设计软件结构。通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块从而完成程序的一个子功能,最下层的模块完成最具体的功能软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘
    • 设计数据库
    • 制定测试计划
    • 书写文档
    • 审查和复审

    设计原理

    什么是模块?什么是模块化?

    答:模块是由边界元素限定的相邻程序元素序列,而且有一个总体标识符代表它。像C、C++和Java语言中的{…}对,都是边界元素的例子。按照模块的定义,函数、子程序都可作为模块。面向对象方法学中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。
    模块化就是把程序划分成为独立命名且可以独立访问的模块,每个模块完成一个子功能,把所有的模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。

    模块化的优点

    • 采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。
    • 因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。
    • 因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。
    • 模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。

    模块化和软件成本

    如果无限地分割软件,最后为了开发软件而需要的工作量就小得可以忽略了。上述结论不能成立,如下图,当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本确实减少了,但是随着模块数目增加,设计模块间接口所需要的工作量也将增加。根据这两个因素。得出了图中的总成本曲线。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。
    在这里插入图片描述

    本章练习

    1、模块是构成程序的基本构件。

    2、模块是构成程序的基本构件。

    3、如果无限地分割软件,最后为了开发软件而需要的工作量就小得可以忽略了。(×)

  • 相关阅读:
    js 基础 (ES 模块)
    计算机三级数据库分析与设计练习题(三)
    [附源码]Python计算机毕业设计SSM家教管理系统(程序+LW)
    云原生之Docker的容器资源管理
    本质安全设备标准(IEC60079-11)的理解(一)
    电机控制器HIL测试系统:实现高效、安全的硬件在环验证
    高性能MySQL(第4版) 第一章 MySQL架构 读书笔记
    m基于3GPP-LTE通信网络的认知家庭网络Cognitive-femtocell性能matlab仿真
    Mybatis重点知识点理解
    【Kafka】分区与复制机制:解锁高性能与容错的密钥
  • 原文地址:https://blog.csdn.net/smallrain6/article/details/126296544