[开发笔记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设计电路板学习,过程保存为开发笔记,旨在普及和沟通技术,共同进步,学无 ...
随机推荐
- C++ happens-before 关系是不可传递的
P0668R4 对此进行了解释 The definition of plain happens-before became unpleasantly complicated with the intr ...
- LuoguP7189 [COCI2007-2008#6] PARKING 题解
Content 有 3 辆卡车,第 \(i\) 辆卡车停车开始时间为 \(l_i\),结束时间为 \(r_i\)(不包含).现在有以下收费方式: 停车辆数 每分钟每辆车单价 \(1\) \(a\) \ ...
- ss命令用来显示处于活动状态的套接字信息。
ss命令用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比net ...
- Windows系统CMD命令bat脚本编写
复制文件(/y 表示不提示确认框,/-y 表示提示是否覆盖确认) echo "复制文件" copy /y D:\apache-zookeeper-3.6.3.tar.gz E:\l ...
- flink使用命令开始、停止任务
命令操作 进行flink的安装目录 动态上传jar包启动job ./bin/flink run -c com.test.CountMain -P 3 Test-1. 0-SNAPSHOT.jar -- ...
- JAVA判断字符串中某个字符存在的个数
/** * 判断字符串中某个字符存在的个数 * @param str1 完整字符串 * @param str2 要统计匹配个数的字符 * @return */ public static int co ...
- JAVA获取当前年份,月份、日期、小时、分钟、秒等
import java.util.Calendar; public class Main { public static void main(String[] args) { Calendar cal ...
- git命令行常用操作总结
关于 更多使用细节(grammar和book),请参考 官网 1.上传代码 1.1 创建自己的远程Repository, github或者gitee 1.2 创建本地git仓库 $ git init ...
- 【LeetCode】292. Nim Game 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】998. Maximum Binary Tree II 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...