• 系统架构:软件工程速成


    参考

    软件工程速成(期末+考研复试+软考)均适用. 支持4K

    概述

    软件工程概述

    定义:采用工程的概念、原理、技术和方法来开发与维护软件。

    三要素:

    • 方法:完成软件开发各项任务的技术方法,回答“怎么做”。
    • 工具:为运用方法提供的自动或半自动软件工程支撑环境。
    • 过程:为了获得高质量软件所需要完成的一系列任务框架,回答“什么时候做”

    软件生命周期三时期、八阶段。

    1. 软件定义时期。包括的阶段有:
      问题定义阶段:用户需要解决什么样的问题。
      可行性研究阶段:软件开发是否可行。
      需求分析:明确客户需求,输出标准化的需求说明书。
    2. 软件开发时期,包括的阶段有:
      总体设计:设计整体结构、确定综合测试目标
      详细设计
      编码和单元测试
      综合测试
    3. 软件维护时期(持续时间最长、花费最大)
      软件运维

    软件过程

    主要包括瀑布模型、增量模型、螺旋模型、喷泉模型等,是任务框架。

    1. 瀑布模型
      在这里插入图片描述
      特点:是最基本的软件开发生命周期模型。
      优点:方便组织管理,提高了大型软件开发的质量和效率。
      缺点:开发过程死板,不便修改,很难实践

    2. 增量模型
      在这里插入图片描述
      优点:人员分配灵活、可先发布部分功能给客户。
      缺点:并行开发有难以集成的风险。

    3. 螺旋模型
      在这里插入图片描述特点:引入了风险分析,每个螺旋周期大致是瀑布模型。
      优点:设计灵活,方便变更、每个周期均要求用户评估。
      缺点:迭代次数太多导致成本高。

    4. 喷泉模型
      在这里插入图片描述
      特点:划分为多个阶段,但无明显界限,可迭代交叉。

    可行性分析

    可行性分析概述

    可行性分析:用最小代价在最短时间内确定问题是否可解决。
    可行性研究:了解客户要求,从技术、经济、社会因素等方面论证可行性

    数据流图

    数据流图也称为数据流程图DFD,是一种便于用户理解、分析系统数据流程的图形工具,其基本元素包括:

    • 外部实体:表示数据的源点和终点,为软件系统外的人员或组织。
    • 加工:数据的处理。
    • 数据存储:信息的静态存储。
    • 数据流:转移了什么数据。

    在这里插入图片描述

    例题:零件入库或出库称为事务,通过放在仓库中的CAT终端把出入库事务报告给订货系统。当某种零件的库存数小于阈值时应该再次订货。采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件,这些零件具有如下数据(零件编号、零件名称、订货数量、目前价格、主要供应商、次要供应商)。

    解题:
    一、从问题描述中提取数据流的四种成分

    • 源点和终点:通过仓库的CAT终端把事务报告给订货系统,进而到采购部,源点是仓库管理员,终点是采购人员。
    • 加工:采购部需要订货报表,因此需要生成订货报表。出入库改变零件数量也是一个加工。
    • 数据流:一是从仓库把出入库事务报告给订货系统,二是订货报表送到采购部。
    • 数据存储:需要订货的零件的信息、库存信息。

    二、画大致模型

    在这里插入图片描述
    三、进一步细化

    在这里插入图片描述

    数据字典

    数据流图描述了系统的分解,数据字典用于为数据流图中的每个数据流、文件、加工、数据项等作出说明,有以下四类条目:

    • 数据流条目:描述数据组成部分(如:内部号码=非零数字+3{数字}3)
    • 数据存储条目:
    • 数据项条目:
    • 处理条目:

    在数据字典中,通常采用以下符号表示系统中使用数据项的情况,以及数据项之间的相互关系。
    =:表示“等价于”或“定义为”。
    +:表示“和”,连接两个数据元素。
    [ ]:表示“或”,对[ ]中列举的各数据元素,用“〡”分隔,表示可任选其中某一项。
    例如,储户到银行存款时,可选择存款期限为活期、半年期、1年期、3年期或5年期中的某一种,可表示为存款期限=[活期半年|1年|3年|5年]
    { }:表示“重复”,对{ }中的内容可重复使用。
    ( ):表示“可选”,对( )中的内容可选、可不选,各选项之间用“,”号隔开。
    如果要对{ }表示的重复次数加以限制,可将重复次数的下限和上限写在花括号的左右(或在花括号左边分别用下角标和上角标表示)。
    特别地,1{A}表示A的内容至少要出现1次;{B}表示B的内容允许重复零至任意次。

    例题:某校可用的电话号码有以下几类。
    校内电话号码由4位数字组成,第一位数字不是0;
    校外电话第一位是0,分为本市电话和外地电话;
    本市电话接着拨8位号码,其中第一位不是0;
    外地电话先拨区号(3-5位),再拨当地电话号(7或8位,且第一位不是0)。
    请描述其数据字典。

    解:从大到小,逐步精细。
    电话号码 = [校内电话 | 校外电话]
    校内电话 = 非零数字 + 3{数字}3
    非零数字 = [1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9]
    数字 = [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9]
    校外号码 = [本市电话 | 外地电话]
    本市电话 = 0 + 非零数字 + 7{数字}7
    外地电话 = 0 + 区号 + 当地号码
    区号 = 3{数字}5
    当地号码 = 非零数字 +6{数字}7

    需求分析

    需求分析概述

    定义:需求分析是指开发人员要准确理解客户要求,进行详细调查研究,将用户的非形式话的需求描述转换为完整的需求定义,进而生成软件需求规格说明书的过程。

    ER图

    提供了表示实体类型、属性和联系的方法。

    状态转换图

    通过描绘系统状态及引起系统状态转换的事件,来表示系统的行为,其符号包括:

    • 初态:用实心圆表示。
    • 中间状态:用圆角矩形表示,可分为上中下三部分,分别代表状态的名称、变量说明(可选)和活动表(可选)。
    • 终态:用一对同心圆表示。
    • 状态转换:用箭头表示。如转换由事件触发则应在箭头上标明,不标明则表示在原状态内部活动执行完之后自动触发。

    在这里插入图片描述
    例题:复印机的工作过程大致如下:
    未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后回到闲置状态继续等待。
    如果执行复印命令时发现没纸则进入缺纸状态,等待装纸,装纸后回到闲置状态。
    如果复印时卡纸则进入卡纸状态,维修后回到闲置状态。
    在这里插入图片描述

    软件设计

    总体设计

    总体设计工具
    H图(层次图):适用于自顶向下设计软件的过程中使用,基本元素有模块(用矩形表示)和调用关系(用箭头表示)两种,如下:
    在这里插入图片描述
    HIPO图:在H图的基础上,除了最顶层的方框之外,其余方框都加了编号,如下:
    在这里插入图片描述
    结构图:
    在这里插入图片描述
    在这里插入图片描述例题:高考录取分统分子系统有如下功能:
    (1)计算标准分:根据考生原始分计算得到标准分,存入考生分数文件;
    (2)计算录取线分:根据标准分、计划招生人数计算录取线,存入录取线文件。
    根据要求画出该系统的数据流程图,并将其转换为软件结构图。

    耦合与内聚

    在这里插入图片描述

    宽、深、扇入、扇出

    在这里插入图片描述

    详细设计

    详细设计确定每个模块的内部执行过程,模块的独立性用耦合与内聚衡量。
    详细设计的工具有:
    程序流程图
    在这里插入图片描述
    N-S图
    在这里插入图片描述
    PAD图
    在这里插入图片描述
    判定表
    在这里插入图片描述

    判定树
    判定树是一种树图形方式来表示多个条件多个取值所应采取的动作。

    在这里插入图片描述

    程序复杂度定量度量

    在这里插入图片描述

  • 相关阅读:
    SpringBoot静态资源配置
    PCL 环境下安装配置CGAL 5.4.1
    0905(047天 大数02 hadoop环境搭建)
    【数据可视化】第四章—— 基于pandas的数据可视化(pandas基本操作)
    Nacos配置中心交互模型
    msys2 |arch pacman:tesseract ocr 安装 - 思源笔记自动调用
    Allegro铜皮动静态切换操作指导
    并发程序的隐藏杀手你知道是谁吗?
    浅析诊断数据库—ODX
    chatgpt相关问题解答
  • 原文地址:https://blog.csdn.net/weixin_43249758/article/details/132816501