[开发笔记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设计电路板学习,过程保存为开发笔记,旨在普及和沟通技术,共同进步,学无 ...
随机推荐
- java 数据类型:ArrayList;LinkList性能分析
各种线性表的性能分析. java提供的List就是一个线性表接口,ArrayList和LinkedList是线性表的两种实现.基于数组的线性表和基于链表的线性表. 一般来说,我们无需理会ArrayLi ...
- 【LeetCode】1466. 重新规划路线 Reorder Routes to Make All Paths Lead to the City Zero (Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS BFS 日期 题目地址:https://lee ...
- 『学了就忘』vim编辑器基础 — 94、vim编辑器介绍
目录 1.vim编辑器简介 2.vim的工作模式 (1)命令模式 (2)输入模式 (3)最后行模式(末行模式) 1.vim编辑器简介 vim是一个全屏幕纯文本(绘个表格或者插个图片就不要想了)编辑器, ...
- 人脸搜索项目开源了:人脸识别(M:N)-Java版
一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...
- 「HAOI2016」找相同字符
知识点: SA,线段树,广义 SAM 原题面 Loj Luogu 给定两字符串 \(S_1, S_2\),求出在两字符串中各取一个子串,使得这两个子串相同的方案数. 两方案不同当且仅当这两个子串中有一 ...
- 基于Java swing+mysql+eclipse的【图书管理系统】
本项目为Java swing项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考. CSDN赞助下载:https://download.csdn.net ...
- 编写Java程序,实现从控制台输入对应个数的整数,输出对输入整数的从大到小显示
编写Java程序,实现从控制台输入对应个数的整数,输出对输入整数的从大到小显示 效果如下: 实现代码: import java.util.Arrays; import java.util.Scanne ...
- Java支持IPv6研究
1.Java对IPv6的支持 相对其他开发语言而言,Java对IPv6的支持是比较透明的, 如果全部采用域名(主机名)的方式进行通信,那么基本不需要修改也无需编译原来的代码就可以直接在IPv6上运行. ...
- AES对称加密算法实现:Java,C#,Golang,Python
高级加密标准(Advanced Encryption Standard,简写AES),是一种用来替代DES的对称加密算法,相比DES,AES安全性更高,加密速度更快,因此被广泛使用. 理论上看,AES ...
- centos一步一步搭建tendermint
一.必要条件 1.安装go 请根据官方文档安装:https://golang.org/doc/install 要特别注意的是: /etc/profile 添加以下内容: export GOPATH=/ ...