[开发笔记usbTOcan]软件需求分析和软件架构设计
前面文章进行了系统分析和系统架构设计,手工焊接了一个板子,集合EK-TMC123GXL开发板(请忽略焊接技术)


SWE.1 | 软件需求分析
软件需求分析过程的目的是将系统需求的软件相关部分转化为一组软件需求。
软件需求分析包括,
- 指定软件需求。使用系统需求和系统架构,以及对系统需求和架构的更改,以确定软件所需的功能和性能。在软件需求中指定功能性和非功能性软件需求。
组织软件需求。在软件需求描述中构造软件需求,比如
- 对项目相关集群进行分组,
- 按照项目的逻辑顺序排序,
- 根据项目的相关标准进行分类,
- 根据利益相关者的需求划分优先级。
- 分析软件需求。分析特定的软件需求,包括它们之间的相互依赖性,以确保正确性、技术可行性和可验证性,并支持风险识别。分析对成本、进度和技术的影响。根据利益相关者的需求划分优先级。
- 分析对操作环境的影响。分析软件需求对系统元素接口和操作环境的影响。
- 制定验证标准。为每个软件需求制定验证标准,为需求的验证提供定性和定量的措施。
- 建立双向可追溯性。在系统需求和软件需求之间建立双向的可追溯性。在系统架构和软件需求之间建立双向的可追溯性。
- 确保一致性。确保系统需求和软件需求之间的一致性。确保系统架构和软件需求之间的一致性。
- 沟通商定的软件需求。向所有相关方传达商定的软件需求和软件需求的更新。
在Enterprise Architect中定义软件需求

SWE.2 | 软件架构设计
软件架构设计过程的目的是建立一个体系结构设计,并确定哪些软件需求分配给软件的哪些元素,并根据定义的标准来评估软件体系结构设计。
它包括以下内容:
- 开发软件架构设计。根据功能和非功能软件需求,开发和记录软件体系结构设计,确定软件的要素。
- 分配软件需求。将软件需求分配给软件架构设计的元素。
- 定义软件元素的接口。识别、开发和记录每个软件元素的接口。
- 描述动态行为。评估和记录软件元素的时间和动态交互,以满足系统所需的动态行为。
- 定义资源消耗目标。确定并记录软件架构设计中所有相关元素在适当层次上的资源消耗目标。
- 评估可选的软件架构。定义体系结构的评估标准。根据改进的标准评估可选的软件架构。记录所选软件体系结构的基本原理。
- 建立双向可追溯性。建立软件需求和软件体系结构设计元素之间的双向可追溯性。
- 确保一致性。确保软件需求和软件架构设计之间的一致性。
- 沟通商定的软件架构设计。将商定的软件架构设计和相应的更新信息传达给所有相关方。
软件架构图

用户使用案例

[开发笔记usbTOcan]软件需求分析和软件架构设计的更多相关文章
- [开发笔记usbTOcan]需求获取与系统需求分析
简介 一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发.最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统.接下来的几篇文章,我会记录一个USB转C ...
- TERSUS无代码开发(笔记09)-简单实例前端样式设计
前端常用样式设计 =========================================================================================== ...
- [开发笔记usbTOcan]系统架构设计
SYS.3 | 系统架构设计 系统架构设计过程的目的是建立一个系统体系结构设计,并确定哪些系统需求分配给系统的哪些元素,并根据确定的标准评估系统架构. 系统结构设计需要做一下工作: 开发系统架构设计. ...
- [开发笔记usbTOcan]PyUSB访问设备
前面的几个章节的介绍,基本把usbTOcan的底层代码设计好,现在需要介绍PC端的PyUSB进行简单的测试. 在文章开始之前,需要简单的介绍一下整个系统. 0 | 部署 这里使用了两块TM4C123G ...
- Bytom Dapp 开发笔记(一):架构设计
简介 研究比原链已经一年了,用比原链做了几个dapp,而且最近还做了一个基于他们插件钱包的dapp,总结了一些遇到的坑,还有一些技术细节,接下来我会分成三章,从dapp设计架构上,到深入到源码分析去帮 ...
- [开发笔记usbTOcan]用树莓派搭建私有Git服务器
0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...
- TERSUS无代码开发(笔记08)-简单实例电脑端后台逻辑开发
主管审批功能逻辑开发 1.查询逻辑开发(查询待审批记录) 2.批准处理(将选中的一条记录进行批准处理) =============================================== ...
- TERSUS无代码开发(笔记05)-简单实例电脑端页面设计
案例笔记电脑端页面设计 1.新建项目(请假管理qjgl) 2.开发软件界面介绍(常用的功能按键) 3.目录中显示元件对象 4.对元件对象的操作主要方式是双击(双击哪个元件, ...
- 硬件开发笔记(一):高速电路设计Cadence Aleego软件介绍和安装过程
前言 红胖子软硬通吃的前提的使用AD,涉及到高速电路板,要配合高速硬件工程师,使用Aleegro更合适,遂开启了Aleegro设计电路板学习,过程保存为开发笔记,旨在普及和沟通技术,共同进步,学无 ...
随机推荐
- LuoguP7019 [NWRRC2017]Auxiliary Project 题解
Update \(\texttt{2021.6.24}\) 修改了一处格式上的错误和一处笔误. Content 已知用 LED 灯来显示 \(0\sim9\) 这十个数字分别需要 \(6,2,5,5, ...
- JAVA获取请求的IP地址
private static final String[] ADDR_HEADER = { "X-Forwarded-For", "Proxy-Client-IP&quo ...
- CountDownLatch源码阅读
简介 CountDownLatch是JUC提供的一个线程同步工具,主要功能就是协调多个线程之间的同步,或者说实现线程之间的通信 CountDown,数数字,只能往下数.Latch,门闩.光看名字就能明 ...
- c++之sigslot库
关于 本文演示环境: win10 + VS2017 1. demo #include <iostream> #include "sigslot.h" using nam ...
- 【LeetCode】383. Ransom Note 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 Python解法 日期 [LeetCo ...
- 【九度OJ】题目1040:Prime Number 解题报告
[九度OJ]题目1040:Prime Number 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1040 题目描述: Ou ...
- a.equals(b) 判断对象相等
一.值是null的情况: 1.a.equals(b), a 是null, 抛出NullPointException异常. 2.a.equals(b), a不是null, b是null, 返回fals ...
- Adversarial Defense by Restricting the Hidden Space of Deep Neural Networks
目录 概 主要内容 Mustafa A., Khan S., Hayat M., Goecke R., Shen J., Shao L., Adversarial Defense by Restric ...
- Proximal Algorithms 7 Examples and Applications
目录 LASSO proximal gradient method ADMM 矩阵分解 ADMM算法 多时期股票交易 随机最优 Robust and risk-averse optimization ...
- 使用子查询获取,使用 all 关键字获取比所有“国内短线游”价格高的线路信息,按照线路类型、线路价格升序显示线路编号、线路名和价格
查看本章节 查看作业目录 需求说明: 使用子查询获取"国内短线游"及"国内长线游"的线路信息,按照线路类型.线路价格升序显示线路编号.线路名和价格 使用 all ...