系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具
初
- 学习《系统架构设计师教程》,初心是为了学习更多知识,在计算机技术方面得到更大的提升。
- 希望自己记录学习的时候也能总结一些知识分享出来。也可能错误很多,希各个大佬多多包涵并指点一二,在此感谢。
记
软件系统工具
按软件过程活动划分:
- 软件开发工具
- 软件维护工具
- 软件管理
- 软件支持工具
软件开发工具
一般是指一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的特殊软件
需求分析工具
需求分析工具用以辅助软件需求分析活动,辅助系统分析员从需求定义出发,生成完整的、清晰的、一致的功能规范
这类辅助的工具一般有两种:
- 基于自然语言或图形描述的工具
- 基于形式化需求定义语言的工具
第一种(基于自然语言或图形描述的工具)这种工具,我们可以参考“数据库系统需求分析的工具”常用的工具有数据流程图、数据字典、判定表、判定树、统一建模语言(Unified Modeling Language,UML)
数据流程图(WORD、PPT、亿图):
数据流程图是一种描述系统数据流程的主要工具,它用一组符号来描述整个系统中信息的全貌,综合地反映出信息在系统中的流动、处理和存储情况。数据流程图有两个特征: 抽象性和概括性。抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况。概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体。
数据字典(数据库管理工具):
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。
数据字典是数据库的重要组成部分。我们可以使用数据库管理工具来做数据字典,建立实体-联系图(E-R图)来描述显示世界的模型概念,这个也是辅助需求分析的一种。
判定表(EXCEL)
判定表通常有以下四个部分组成:
- 条件桩
- 动作桩
- 条件项
- 动作项
判定表也是辅助我们做需求分析的一种工具,可以手工画判定表,也可以通过 EXCEL 来制作一个判定表,通过这个对需求进行一些整理。
判定树
判定树是在已知各种情况发生概率的基础上,通过构成判定树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性,有利于对需求的一些判断做一些分析,也是分析需求常用的工具之一。
UML
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言
UML主要有以下作用:
- 为软件系统建立可视化模型
- 为软件系统建立构件
- 为软件系统建立文档
这些都可作用与辅助需求分析
—华丽分割线—
第二种:基于形式化需求定义语言的工具(没研究过,下面引用的是原文,大概是说,一种通过不断交互来判断的)
基于形式化需求定义语言的工具大多以基于知识的需求智能助手的形式出现,并把人工智能技术运用于软件工程。这类工具通常具有一个知识库和一个推理机制。知识库中存放需求分析所需的公共知识,以及特定的应用领域知识。这些知识能用来理解需求定义中的省略写法,能部分消除不完整性和歧义性。推理机制能容忍需求定义的无序性,部分解决描述中的不一致性。这类工具接受用形式化语言书写的功能描述,运用知识库中的知识,通过推理,发现需求定义中的矛盾和不足,经补充、更新知识库中的知识和规则,以及与系统分析员的不断交互,得到完整的功能规范。
设计工具
常用的有:UML工具、原型设计:Axure、汇报呈现类的 PPT、思维导图,这些设计工具都是辅助我们确定结构的设计工具。
UML工具
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言
UML主要有以下作用:
- 为软件系统建立可视化模型
- 为软件系统建立构件
- 为软件系统建立文档
那么常见的开源 UML 工具: Netbeans UML Plugin、Acceleo 、 Papyrus UML 、 UMLet
原型设计:Axure
在国内原型设计工具有很多,这里推荐 Axure,当然也有很多非常好的原型工具,看个人习惯选择。
PPT、思维导图
ppt、思维导图整理资料也是辅助结构的设计中非常好的工具
编码与排错工具
编码工具和排错工具用以辅助程序员进行编码活动。编码工具辅助程序员用某种程序语言编制源程序,并对源程序进行翻译,最终转换成可执行的代码,因此编码工具通常与编码所使用的程序语言密切相关。排错工具用来辅助程序员寻找源程序中错误的性质和原因,并确定其出错的位置。由于源程序一般以正文的形式出现,必须有编辑器将它输入,并进行浏览、编辑和修改。又由于源程序的编写往往不会一次成功,需要不断寻找其中的错误并加以纠正。编码工具和排错工具是编程活动的重要辅助工具,也是最早出现的软件工具。
编码工具(应该具备的程序功能):
- 编辑程序
- 汇编程序
- 编译程序
- 生成程序
排错工具(应该具备的程序功能):
- 源代码排错程序
- 排错程序生成程序
工具太多了,这里举例一些自己常用的:
- VSCode
- vim
vim插件可以集成到各个 IDE 中,非常不错。关于IDE知识可以参考这篇文章 : 什么是IDE?
软件维护工具
软件维护工具辅助软件维护过程中的活动,辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等。
版本控制工具
常见的版本控制工具:
- git
- svn
文档分析工具
也可以叫做数据分析工具,将开发的需求和源码做成一个文档,对应相关的模块。这样做检查的时候,可以过滤无关代码。
- 这种看不同的IDE有不同的插件,只要是符合上面所说的就是文档分析工具。
- 软件:Azure DevOps Server 这个管理工具涉及很多功能,其中就有文档分析工具
开发信息库工具
开发信息库工具用来维护软件项目的开发信息,包括对象、模块等。它记录每个对象的修改信息(已确定的错误及重要改动)和其他变形(如抽象数据结构的多种实现);维护对象和与之有关信息之间的关系;包括模块的设计者、新版本中模块的改动及其与错误、测试用例、测试结果之间的联系等;其他必须记录的信息,包括用来生成此软件产品的所有工具的版本信息(如编译程序、连接程序、生成程序的版本号),所采用的命令语言程序和系统库以及测试用例版本和测试报告。
- 软件:Azure DevOps Server 这个管理工具涉及很多功能,其中就有开发信息库工具
逆向工程工具
在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动称为逆向工程。例如,用反汇编工具将机器语言代码转换成汇编语言代码,用反编译工具将汇编语言代码或机器语言代码转换成某种高级程序语言源程序,之后再将源程序转换成详细设计的某种表示形式,这都属于逆向工程的范畴。逆向工程工具就是辅助软件人员进行这种逆向工程活动的软件工具。若软件缺乏必要的文档,原先的开发人员又已调离,就需使用逆向工程工具来理解原有的软件。
- 软件:dotPeek,反编译工具
再工程工具等
再工程工具用来支持重构- -个功能和性能更为完善的软件系统。目前的再工程工具主要集中在代码重构、程序结构重构和数据结构重构等方面。
软件管理和软件支持工具
项目管理工具用来辅助软件的项目管理活动。通常项目管理活动包括项目的计划、调度、通信、成本估算、资源分配及质量控制等。一个项目管理工具通常把重点放在某一个或某几个特定的管理环节上,而不提供对管理活动包罗万象的支持
- 软件参考: Azure DevOps Server
整理了 3 天,内容不多,大部分都了解了一点点,成长++