软件工程-从规划、需求(DFD数据流图),到设计、实现和测试

本文详述了软件工程的关键环节,包括需求工程的开发与管理,如需求获取、分析和验证;软件设计的结构化方法和工作流设计;软件测试的各类类型和阶段;以及软件维护的不同类别。同时,探讨了软件开发环境和工具的重要性,强调了数据流图、需求管理基线、模块独立等概念。
摘要由CSDN通过智能技术生成

目录

1. 需求工程

1.1 需求开发

1.2 需求管理

1.3 需求分析方法

2. 软件设计

2.1 软件设计活动

2.2 结构化设计

2.3 工作流设计

3. 软件测试

3.1 测试类型

3.2 测试阶段

3.3 性能测试

4. 软件维护

4.1 分类

5. 软件开发环境和工具

5.1 软件开发环境

5.2 软件开发工具

参考


1. 需求工程

需求开发是主线,是目标;需求管理是支持,是保障。

1.1 需求开发

包括需求获取、需求分析、编写需求规格说明书(需求定义)、需求验证 4个阶段。

  • 需求开发的工作:问题识别、分析和综合、编制需求分析文档、需求分析与评审

  • 需求开发的原则

  • 需求分类:功能需求、非功能需求、设计约束,其他:业务需求,用户需求,系统需求

  • 详细步骤:

    • 需求获取

          主要技术:用户访谈、用户调查、现场观摩、阅读历史文档、联合讨论会

    • 需求分析

          方法有:结构化分析方法、面向对象分析方法、面向问题域分析(PDOA, Problem Domain Oriented Analysis)。
      • 业务流程分析

      • 数据流图:数据流图是结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。

            DFD中有四种基本符号:数据流、加工、数据存储、外部实体

            数据流式具有名字和流向的数据,用标有名字的箭头表示;加工是对数据流的变换,用圆圈表示;数据存储是可访问的存储信息,用直线段表示;外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分。

      • 数据字典:对数据流图中所有元素的定义的集合,是关于数据的信息的集合。

        • 数据流设计

        • 数据元素字典设计

        • 数据处理字典设计

        • 数据结构字典设计

        • 数据存储字典设计

        • 对加工的描述:结构化语言、判定树、判定表

    • 需求定义

      • 严格定义方法

      • 原型方法

      • 软件需求说明书

    • 需求验证

1.2 需求管理

包括定义需求基线、处理需求变更、需求跟踪

1.3 需求分析方法

  • 结构化分析方法

  • 软系统方法

  • 面向对象分析方法

  • 面向问题域分析

2. 软件设计

从工程管理的角度看,软件设计可分为概要设计和详细设计两个阶段。概要设计也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构。详细设计也称为底层设计,即对结构图进行细化,得到详细的数据结构与算法。

2.1 软件设计活动

数据设计、软件结构设计、人机界面设计、过程设计。

2.2 结构化设计

  • 抽象化:过程的抽象、数据抽象、控制抽象。

  • 模块独立

  • 信息隐藏

  • 自顶向下、逐步求精

2.3 工作流设计

  • 工作流与BPR

  • 工作流机

  • 以工作流实现ERP和OA集成

3. 软件测试

3.1 测试类型

  • 动态类型

    • 黑盒测试:等价类划分、边界值分析、错误推测、因果图

    • 白盒测试:逻辑覆盖、循环覆盖、基本路径法、灰盒法

  • 静态测试

    • 桌前检查

    • 代码审查

    • 代码走查

3.2 测试阶段

  • 单元测试

  • 集成测试

  • 确认测试

    • 内部确认测试

    • Alpha测试

    • Beta测试

    • 验收测试

  • 系统测试

3.3 性能测试

  • 负载测试:指数据在超负荷环境中运行,程序是否能够承担。

  • 强度测试:在系统资源特别低的情况下考察软件系统运行情况。

  • 容量测试 :确定系统可处理的同时在线的最大用户数等。

4. 软件维护

4.1 分类

  • 改正性维护

  • 适应性维护

  • 完善性维护

5. 软件开发环境和工具

5.1 软件开发环境

  • 环境机制:提供工具集成机制(数据集成、控制集成、界面集成)和方法机制。

    • 环境信息库:存储软件工程项目在生存周期中的全部信息,是软件开发环境的核心

    • 过程控制和消息服务

    • 用户界面规范

  • 工具集:系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具等。

5.2 软件开发工具

  • 建模工具

  • 设计工具

  • 编程工具

  • 测试工具

  • 项目管理工具

参考

  • 《系统架构师》

关于作者:

犇叔,浙江大学计算机科学与技术专业,研究生毕业,而立有余。先后在华为、阿里巴巴和字节跳动,从事技术研发工作,资深研发专家。主要研究领域包括虚拟化、分布式技术和存储系统(包括CPU与计算、GPU异构计算、分布式块存储、分布式数据库等领域)、高性能RDMA网络协议和数据中心应用、Linux内核等方向。

专业方向爱好:数学、科学技术应用

关注犇叔,期望为您带来更多科研领域的知识和产业应用。

内容坚持原创,坚持干货有料。坚持长期创作,关注犇叔不迷路

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敩科炼技堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值