• 软考 -结构化开发


    系统分析与设计

    系统分析

    目的:提交系统方案说明书!将现有系统的物理模型转化为目标系统的物理模型

    系统分析步骤

    物理模型 --> 逻辑模型 --> 具体化的物理模型

    系统设计

    系统设计基本原理

    • 抽象:本质方面
    • 模块化:可组合,分解和更换的单元
    • 信息隐蔽:将程序拆分隐蔽的封装在一个单一的设计模块中
    • 模块独立:高内聚,低耦合

    步骤

    概要设计:设计软件系统总体结构,数据结构及数据库设计,编写概要设计文档、评审

    详细设计:模块内详细算法设计·数据结构设计,物理设计,其他设计(用户界面),编写详细设计说明书、评审

    内聚耦合

    内聚

    在这里插入图片描述

    耦合

    在这里插入图片描述
    在这里插入图片描述

    模块设计

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RLgKEL7-1668504410086)(结构化开发.assets/image-20221013145153116.png)]

    需求分析

    软件需求

    按需求内容分类:

    • 业务需求:宏观的功能需求

    • 用户需求:每个用户的具体需求

    • 系统需求:经过整合后,包括功能,性能,设计约束三方面

    从客户角度分类:

    • 基本需求:需求明确规定的功能
    • 期望需求:客户认为理所当然的其他功能
    • 兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本

    软件需求分类:

    • 功能需求:软件必须完成的基本动作
    • 性能需求:系统响应速度、处理速度等
    • 设计约束:受其他标准硬件限制等方面
    • 属性:可用性,安全性,可维护性,可转移性
    • 外部接口需求:用户接口,硬件接口,软件接口,通信接口

    需求工程

    需求分析方法

    结构化分析SA

    **自顶向下,逐步分解,是面向数据的,强调分析对象的数据流,**需要建立:

    • 功能模型(数据流图)
    • 行为模型(状态转换图)
    • 数据模型(ER图)
    • 数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)

    缺点:人为的将系统分割开来,无法获取各个功能之间的关联情况;

    • 根据加工规格说明和控制规格说明 进行程序设计
    • 根据数据字典和实体关系图 进行数据设计
    • 根据数据流图 进行接口设计和体系结构设计
    测试基础知识

    测试阶段

    • 单元测试:桩模块(用来模拟被测试模块所调用的子模块测试)

    • 集成测试

    • 确认测试:

    • 系统测试:系统性能测试

    • 回归测试:软件修改错误后检查是否引入新的错误

    测试策略

    • 自底向上:测试模块后合并,优点:早教验证了底层模块
    • 自顶向下:测试整个系统后逐步细分。优点:较早验证了系统的主要控制
    • 三明治:自底向上+自顶向下,优点涵盖,缺点工作量大

    测试类型

    • 黑盒测试
    • 白盒测试
    • 灰盒测试

    测试方法

    • 路径覆盖测试
    • 折半查找测试
    • 语句覆盖测试

    测试用例设计【常考】

    黑盒测试用例:

    • 等价类划分:一个测试用例代表一类条件
    • 边界值划分:数据采用边界值
    • 错误推测:

    白盒子测试用例:

    • 语句覆盖:所有语句都要执行
    • 判定覆盖:所有判断分支都要执行
    • 路径覆盖:所有路径都需要覆盖
    维护

    维护工具

    • 版本控制工具
    • 文档分析工具
    • 开发信息库工具
    • **逆向工程(从产品到设计的过程,在需求分析阶段进行)**工具
    • 再工程工具
    • 配置管理支持工具

    维护类型

    • 正确性:正在系统开发阶段已发生且未被发现的错误
    • 适应性:应用软件适应信息技术变化和管理需求变化而进行的修改
    • 完善性:扩充功能和改善性能的修改
    • 预防性:为了适应未来软硬件环境的改变,主动做出的修改

    系统可维护性的评价指标(软件质量特性)

    • 易理解性
    • 易测试性
    • 易修改性
    • 稳定性
    数据流图DFD

    在这里插入图片描述

  • 相关阅读:
    安卓恶意应用识别(二)(安卓APK反编译)
    JMeter性能测试,完整入门篇
    一文通览腾讯云大数据ES、数据湖计算、云数据仓库产品新版本技术创新
    无人直播间带货还能做吗?
    【VyOS-开源篇-3】- container for vyos 搭建 Halo 博客-vyos-开源篇
    03 MIT线性代数-矩阵乘法和逆矩阵Multiplication & inverse matrices
    JDK JRE JVM解释及Java代码编译运行过程
    SAP-MM-错误代码M7018 输入物料转移过账
    六、单例模式
    Python Machine Learning Cookbook
  • 原文地址:https://blog.csdn.net/laity__c/article/details/127870085