【系统架构】第五章-软件工程基础知识(需求工程和系统分析与设计)

news/2024/11/30 4:59:28/

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)

需求工程

软件需求3个层次:

  • 业务需求:反映了组织机构或客户对系统、产品高层次的目标要求
  • 用户需求:描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望,
  • 功能需求:定义了开发人员必须实现的软件功能

需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其特征和相关约束。需求工程覆盖了体系结构设计之前的各项开发活动,主要包括分析客户要求、对未来系统的各项功能性及非功能性需求进行规格说明,目标是:确定客户需求,定义设想中系统的所有外部特征。

需求活动的阶段:需求获取、需求分析、形成需求规格(需求文档化)、需求确认与验证、需求管理。
需求管理活动在形成需求文档初稿时就开始。
强调内容如下:
1、控制对需求基线的变动
2、保持项目计划与需求一致
3、控制单个需求和需求文档的版本情况
4、管理需求和联系链,或管理单个需求和其他项目可交付产品之间的依赖关系
5、跟踪基线中的需求状态
在这里插入图片描述
一、需求获取
需求获取参考步骤:
1、开发高层的业务模型
2、定义项目范围和高层需求
3、识别用户角色和用户代表
4、确定目标系统的业务工作流
5、需求整理与总结(功能需求、性能需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等)

需求获取方法:
1、用户面谈
2、需求专题讨论会(优点:协助建立一支高效的团队,围绕项目成功的目标、所有的风险承担人都畅所欲言、促进风险承担人和开发团队之间达成共识、揭露和解决那些妨碍项目成功的行政问题、能够很快地产生初步的系统定义、可以有效地解决不同涉众之间的需求冲突)
3、问卷调查
4、现场观察
5、原型化方法
6、头脑风暴法

二、需求变更
需求变更管理过程:
1、问题分析和变更描述
2、变更分析和成本计算
3、变更实现

常见的需求变更策略:
1、所有需求变更必须遵循变更控制过程
2、对于获得批准的变更,不应该做设计和实现工作
3、变更应该由项目变更控制委员会决定实现哪些变更
4、项目风险承担者应该能够了解变更的内容
5、绝不能充项目配置库中删除或者修改变更请求的原始文档
6、每一个集成的需求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性

变更控制委员会做出决策的过程及操作步骤:
1、制定决策
2、交流情况
3、重新协商约定

三、需求追踪
需求跟踪提供了由需求到产品实现整个过程范围的明确查阅能力,目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。

需求跟踪的两个方式:
1、正向跟踪(产品需求规格说明书)
2、逆向跟踪

系统分析与设计

一、结构化方法
结构化分析:给我一组帮助系统分析人员产生功能规约的原理与技术
步骤:
1、分析业务情况,做出反映当前物理模型的数据流图(DFD)
2、推导出等价的逻辑模型DFD
3、设计新的逻辑系统,生成数据字典和基元描述
4、建立人机接口,提出可供选择的目标系统物理模型的DFD
5、确定各种方案的成本和风险等级,据此对各种方案进行分析
6、选择一种方案
7、建立完整的需求规约
在这里插入图片描述
在这里插入图片描述

结构化设计:面向数据流的设计方法

结构化编程:采用自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口和一个出口

数据库设计:内容包括,需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护

二、面向对象方法
以用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现

面向对象分析方法(OOA)
面向对象分析:
OOA原则:抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析
基本步骤:确定对象和类、确定结构、确定主题、确定属性、确定方法

面向对象设计(OOD):
OOD中,类可以分为:实体类、控制类、边界类

面向对象编程(OOP):
基本特点:封装、继承、多态

数据持久化和数据库:
一般会引入持久层,专注于实现数据持久化,将数据使用者和数据实体相关联,实现了数据处理层内部的业务逻辑和数据逻辑的解耦


作者其他要推荐的文章,欢迎来学习:
基于Spring Boot 3.1.0 系列文章

  1. Spring Boot 源码阅读初始化环境搭建
  2. Spring Boot 框架整体启动流程详解
  3. Spring Boot 系统初始化器详解
  4. Spring Boot 监听器详解
  5. Spring Boot banner详解
  6. Spring Boot 属性配置解析
  7. Spring Boot 属性加载原理解析
  8. Spring Boot 异常报告器解析
  9. 使用GraalVM 构建 Spring Boot 3.0 原生可执行文件
  10. Spring Boot 3.x微服务升级经历

Prometheus 系列文章

  1. Prometheus 的介绍和安装
  2. 直观感受PromQL及其数据类型
  3. PromQL之选择器和运算符
  4. PromQL之函数
  5. Prometheus 告警机制介绍及命令解读
  6. Prometheus 告警模块配置深度解析
  7. Prometheus 配置身份认证
  8. Prometheus 动态拉取监控服务
  9. Prometheus 监控云Mysql和自建Mysql

Grafana 系列文章,版本:OOS v9.3.1

  1. Grafana 的介绍和安装
  2. Grafana监控大屏配置参数介绍(一)
  3. Grafana监控大屏配置参数介绍(二)
  4. Grafana监控大屏可视化图表
  5. Grafana 查询数据和转换数据
  6. Grafana 告警模块介绍
  7. Grafana 告警接入飞书通知

Spring Boot Admin 系列

  1. Spring Boot Admin 参考指南
  2. SpringBoot Admin服务离线、不显示健康信息的问题
  3. Spring Boot Admin2 @EnableAdminServer的加载
  4. Spring Boot Admin2 AdminServerAutoConfiguration详解
  5. Spring Boot Admin2 实例状态监控详解
  6. Spring Boot Admin2 自定义JVM监控通知
  7. Spring Boot Admin2 自定义异常监控
  8. Spring Boot Admin 监控指标接入Grafana可视化

http://www.ppmy.cn/news/575974.html

相关文章

快速引用包或移除多余的包的快捷键

问题:快速引用包或移除多余的包的快捷键 解决: 快速引用包: Ctrlalto 移除多余的包: Ctrlshifto

[转载]npm Uninstall——如何删除包

原文:npm Uninstall – How to Remove a Package,作者:Kolade Chris Node 包管理器(NPM)提供了各种命令,让你可以可以使用包。 就像你可以从 npm 库中安装一个包一样,你也可以删除它。 要删除…

简洁全面总结 R-安装卸载及加载卸除包

安装 三个开放源: CRAN(R语言官网) 链接:https://www.r-project.org/ Bioconductor 链接: http://www.bioconductor.org/ Github 链接: https://github.com/ 五种方法: 1、R官网(CRAN)直接下载安装 直接下载安装所需R包,如安装readr&…

HBuilder最新最全快捷键清单及快捷键修改方法

HBuilder大家应该都很熟悉了,不说废话,直接上快捷键。 Hbuilder的快捷键是很多的,共分了12类,下面将分类展示这些快捷键。 HBuilder的快捷键在软件里就可以查看的,按下ctrlshiftL就可以查看快捷键了。 下面在介绍一下H…

华为设备命令控制台的快捷键

CTRLB 将光标向左移动一个字符。 CTRLD 删除当前光标所在位置的字符。 CTRLA 将光标移动到当前行的第一个字符。 CTRLE 将光标移动到当前行的末尾。 CTRLF 将光标向右移动一个字符。 CTRLH 删除光标左侧的一个字符。 CTRLN 显示历史命令缓冲区中的后一条命令。 CTRLP 显示历史命…

UFS 13 - Logical Unit Management

UFS 13 - Logical Unit Management 1 Introduction2 Logical Unit features3 Logical Unit Configuration 基于UFS 3.1 标准文档阐述 UFS 1-UFS架构简介1 UFS 2 -UFS架构简介2 UFS 3 - UFS RPMB UFS 4 - UFS Boot UFS 5 - UFS UIC Layer: MIPI M-PHY UFS 6 - UAP – SCSI Comma…

AI+算力=最强龙头

AI与算力相辅相成 随着人工智能技术的飞速发展,“AI算力”的结合应用已成为科技行业的热点话题,甚至诞生出“AI算力最强龙头“的网络热门等式。该组合不仅可以提高计算效率,还可以为各行各业带来更强大的数据处理和分析能力,从而…

rust abc(3): 布尔和字符类型的使用并与C/C++对比

文章目录 1. 目的2. 布尔类型2.1 只能赋值为小写的 true, false2.2 不能把数字赋值给bool类型变量2.3 正确写法汇总 3. 字符类型3.1 UTF-8 编码3.2 字符的意思是单个字符,多个字符不能用单引号 4. 总结 1. 目的 继续熟悉 rust 语言的基本数据类型, 感受 rust 编译期…