【软件工程】第三章

简介: 【软件工程】第三章

软件需求分析的任务

1、深入描述软件的功能和性能

2、确定软件设计的约束和软件同其他系统元素的接口细节

3、定义软件的其他有效性需求


常用的分析方法


软件需求分析的原则

从现实中分离功能,即描述要“做什么”而不是“怎么实现”

1、需要能够表达和理解问题的信息域和功能域

2、要能以层次化的方式对问题进行分解和不断细化

分解方法:横向分解、纵向分解


需求分析的步骤

结构化分析方法(SA)就是面向数据流自顶向下逐步求精进行需求分析的方法


数据流图(DFD)

数据流图是什么

是描述数据处理过程的工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能

特征是什么

抽象性、概括性、层次性

面向数据流需求分析方法

结构化分析方法,使用数据流图DFD与数据字典DD来描述

(面向数据流问题的需求分析适合于数据处理类型软件的需求描述)

优缺点

1、总体概念强,每一层都明确强调“干什么”,“需要做什么”,“给出什么”

2、可以反映出数据的流向和处理过程

3、由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易纠正

4、容易与计算机处理相对照

5、不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到

6、如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大

数据流图中的主要图形元素

分层数据流图(一般划分3层)

实例说明

计算机教材销售系统

检查和修改数据流图的原则

数据流图上所有图形符号只限于前述四种基本图形元素

数据流图的主图必须包括前述四种基本元素,缺一不可

每个加工至少有一个输入数据流和一个输出数据流

在数据流图中,需要按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系

规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致

用于写加工逻辑说明的工具

结构化英语

判定表

判定树

软件原型分类

探索型、实验型、进化型


常用的动态分析方法

状态迁移图:描述系统的状态,(“〇”)表示可得到的系统状态,(“→”)表示从一种状态向另一种状态的迁移

优点

状态之间的关系能够直观地捕捉到

由于状态迁移图的单纯性,能够机械地分析许多情况,可以很容易地建立分析工具

时序图

Petri图:简称PNG,位置(“〇”)、转移(“?”),图中的有向边表示对转移的输入,或由转移的输出


相关文章
|
2月前
|
Web App开发 缓存 监控
商品销量详情接口(item_get_sales)深度分析及 Python 实现
item_get_sales接口用于获取商品销量数据,包括历史趋势、时段分布、规格占比等,助力销售策略优化、库存管理与竞品分析。支持多平台调用,提供Python示例代码,适用于电商运营与市场分析场景。
成功解决TypeError: unhashable type: 'numpy.ndarray'
成功解决TypeError: unhashable type: 'numpy.ndarray'
|
6月前
|
人工智能 自然语言处理 数据挖掘
如何通过AI辅助数据分析
“数据驱动决策"已成为企业战略共识,越来越多的企业将数据分析列入核心投资。随着AI越来越成熟,使用AI辅助数据分析可以显著提升效率、深度和自动化水平。
882 7
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
265 1
|
8月前
|
存储 缓存 数据挖掘
《解锁反规范化设计的适用场景:数据库性能优化的深度洞察》
数据库设计中,规范化与反规范化是两种重要策略。规范化减少冗余、确保一致性,而反规范化通过增加冗余提升查询性能,适用于数据查询密集型场景、复杂分析与报表生成、历史数据与日志管理、分布式与缓存架构以及性能优化等场景。例如,在电商平台商品展示中,反规范化可避免多表连接,提高查询效率;在数据分析中,整合相关表简化查询逻辑;在日志管理中,集中存储提升性能。然而,反规范化会带来数据冗余和一致性维护的挑战,需根据业务需求权衡利弊,合理应用以构建高效稳定的数据库系统。
165 6
|
11月前
|
JSON 缓存 负载均衡
Node.js 的性能
Node.js 的性能
305 12
|
Ubuntu Linux Shell
Linux系统密码忘记
【10月更文挑战第2天】在Linux系统中,若忘记密码,可以通过单用户模式或使用Live CD/USB来重置。对于Ubuntu系统,可通过GRUB引导菜单进入单用户模式,利用命令行重置密码;或使用Live CD/USB启动并挂载硬盘分区后修改密码文件。CentOS系统同样支持单用户模式重置密码,也可借助安装介质进入救援模式,挂载文件系统后进行密码重置。这些方法均能在忘记密码的情况下帮助恢复系统访问。
616 3
|
缓存 监控 Kubernetes
go-zero解读与最佳实践(上)
go-zero解读与最佳实践(上)
|
存储 程序员 数据处理
【软件设计师】程序猿需掌握的技能——数据流图
【软件设计师】程序猿需掌握的技能——数据流图